public class X509CertSelector extends Object implements CertSelector
CertSelector
选择
X509Certificates
匹配所有指定的标准。这个类是特别有用当选择证书从一个
CertStore
建立PKIX标准的认证路径。
当第一次建造,一个X509CertSelector
没有标准的启用和各自的get
方法返回一个默认值(null
,或-1
为getBasicConstraints
法)。因此,该方法将返回true
match
任何X509Certificate
。通常,几个标准启用(通过调用setIssuer
或setKeyUsage
,例如),然后X509CertSelector
传递给CertStore.getCertificates
或一些类似的方法。
几个标准可以启用(通过调用setIssuer
和setSerialNumber
,例如),match
方法通常唯一匹配的单X509Certificate
。我们通常说,自从两发CAS具有相同的可分辨名称和每个问题同编号的证书是可能的。其他独特的组合,包括发行人、主体、subjectkeyidentifier和/或subjectpublickey标准。
请参阅RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile对下面提到的X.509证书扩展定义。
并发访问
除非另有说明,在这个类中定义的方法不是线程安全的。需要访问一个单一对象的多个线程同时应同步,并提供必要的锁。多线程每个操作单独的对象不需要同步。
CertSelector
,
X509Certificate
Constructor and Description |
---|
X509CertSelector()
创建一个
X509CertSelector 。
|
Modifier and Type | Method and Description |
---|---|
void |
addPathToName(int type, byte[] name)
添加一个名为pathtonames准则。
|
void |
addPathToName(int type, String name)
添加一个名为pathtonames准则。
|
void |
addSubjectAlternativeName(int type, byte[] name)
添加一个名为subjectalternativenames准则。
|
void |
addSubjectAlternativeName(int type, String name)
添加一个名为subjectalternativenames准则。
|
Object |
clone()
返回此对象的副本。
|
byte[] |
getAuthorityKeyIdentifier()
返回authoritykeyidentifier准则。
|
int |
getBasicConstraints()
返回基本约束约束。
|
X509Certificate |
getCertificate()
返回certificateequals准则。
|
Date |
getCertificateValid()
返回certificatevalid准则。
|
Set<String> |
getExtendedKeyUsage()
返回extendedkeyusage准则。
|
X500Principal |
getIssuer()
作为一个
X500Principal 返回发行人标准。
|
byte[] |
getIssuerAsBytes()
返回作为字节数组的发行人标准。
|
String |
getIssuerAsString()
诋毁,使用
getIssuer()或
getIssuerAsBytes()相反。
|
boolean[] |
getKeyUsage()
返回keyusage准则。
|
boolean |
getMatchAllSubjectAltNames()
表明如果
X509Certificate 必须包含所有或在
setSubjectAlternativeNames 或
addSubjectAlternativeName 方法指定至少一个subjectalternativenames。
|
byte[] |
getNameConstraints()
返回名称约束条件。
|
Collection<List<?>> |
getPathToNames()
返回一个拷贝的pathtonames准则。
|
Set<String> |
getPolicy()
返回策略标准。
|
Date |
getPrivateKeyValid()
返回privatekeyvalid准则。
|
BigInteger |
getSerialNumber()
返回序列号标准。
|
X500Principal |
getSubject()
作为一个
X500Principal 返回主体标准。
|
Collection<List<?>> |
getSubjectAlternativeNames()
返回一个拷贝的subjectalternativenames准则。
|
byte[] |
getSubjectAsBytes()
返回字节数组的主题标准。
|
String |
getSubjectAsString()
诋毁,使用
getSubject()或
getSubjectAsBytes()相反。
|
byte[] |
getSubjectKeyIdentifier()
返回subjectkeyidentifier准则。
|
PublicKey |
getSubjectPublicKey()
返回subjectpublickey准则。
|
String |
getSubjectPublicKeyAlgID()
返回subjectpublickeyalgid准则。
|
boolean |
match(Certificate cert)
决定
Certificate 应选择。
|
void |
setAuthorityKeyIdentifier(byte[] authorityKeyID)
集authoritykeyidentifier准则。
|
void |
setBasicConstraints(int minMaxPathLen)
设置基本约束约束。
|
void |
setCertificate(X509Certificate cert)
集certificateequals准则。
|
void |
setCertificateValid(Date certValid)
集certificatevalid准则。
|
void |
setExtendedKeyUsage(Set<String> keyPurposeSet)
集extendedkeyusage准则。
|
void |
setIssuer(byte[] issuerDN)
设置发行人标准。
|
void |
setIssuer(String issuerDN)
诋毁,使用
setIssuer(X500Principal)或
setIssuer(byte[])相反。
|
void |
setIssuer(X500Principal issuer)
设置发行人标准。
|
void |
setKeyUsage(boolean[] keyUsage)
集keyusage准则。
|
void |
setMatchAllSubjectAltNames(boolean matchAllNames)
启用/禁用匹配所有在
setSubjectAlternativeNames 或
addSubjectAlternativeName 方法指定的subjectalternativenames。
|
void |
setNameConstraints(byte[] bytes)
设置名称约束标准。
|
void |
setPathToNames(Collection<List<?>> names)
集pathtonames准则。
|
void |
setPolicy(Set<String> certPolicySet)
设置策略约束。
|
void |
setPrivateKeyValid(Date privateKeyValid)
集privatekeyvalid准则。
|
void |
setSerialNumber(BigInteger serial)
设置序列号标准。
|
void |
setSubject(byte[] subjectDN)
设置主题标准。
|
void |
setSubject(String subjectDN)
诋毁,使用
setSubject(X500Principal)或
setSubject(byte[])相反。
|
void |
setSubject(X500Principal subject)
设置主题标准。
|
void |
setSubjectAlternativeNames(Collection<List<?>> names)
集subjectalternativenames准则。
|
void |
setSubjectKeyIdentifier(byte[] subjectKeyID)
集subjectkeyidentifier准则。
|
void |
setSubjectPublicKey(byte[] key)
集subjectpublickey准则。
|
void |
setSubjectPublicKey(PublicKey key)
集subjectpublickey准则。
|
void |
setSubjectPublicKeyAlgID(String oid)
集subjectpublickeyalgid准则。
|
String |
toString()
返回一个可打印的
CertSelector 表示。
|
public X509CertSelector()
X509CertSelector
。最初,没有标准,任何
X509Certificate
将匹配。
public void setCertificate(X509Certificate cert)
X509Certificate
必须等于
X509Certificate
传递到
match
方法。如果
null
,那么这个检查不适用。
此方法是特别有用的,当它是必要的,以匹配一个单一的证书。虽然其他的标准可以与certificateequals标准连接指定的,它通常是不实际的或必要的。
cert
-
X509Certificate
匹配(或
null
)
getCertificate()
public void setSerialNumber(BigInteger serial)
X509Certificate
证书序列号。如果
null
,任何证书序列号会做。
serial
-证书序列号匹配(或
null
)
getSerialNumber()
public void setIssuer(X500Principal issuer)
X509Certificate
。如果
null
,任何人可分辨名称会做。
issuer
-杰出的名字x500principal(或
null
)
public void setIssuer(String issuerDN) throws IOException
设置发行人标准。指定的可分辨名称必须与发行人尊敬的名字在X509Certificate
。如果null
,任何人可分辨名称会做。
如果issuerDN
不null
,它应该包含一个名称,在RFC 2253格式。
issuerDN
-在RFC 2253格式的识别名(或
null
)
IOException
如果分析错误发生(DN不正确的形式)
public void setIssuer(byte[] issuerDN) throws IOException
X509Certificate
。如果
null
指定发行人的标准是残疾人,任何人可分辨名称会做。
如果issuerDN
不null
,它应该包含一个单一的DER编码的可分辨名称的定义在x.501。ASN。这个结构表示1如下。
Name ::= CHOICE {
RDNSequence }
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName ::=
SET SIZE (1 .. MAX) OF AttributeTypeAndValue
AttributeTypeAndValue ::= SEQUENCE {
type AttributeType,
value AttributeValue }
AttributeType ::= OBJECT IDENTIFIER
AttributeValue ::= ANY DEFINED BY AttributeType
....
DirectoryString ::= CHOICE {
teletexString TeletexString (SIZE (1..MAX)),
printableString PrintableString (SIZE (1..MAX)),
universalString UniversalString (SIZE (1..MAX)),
utf8String UTF8String (SIZE (1.. MAX)),
bmpString BMPString (SIZE (1..MAX)) }
请注意,指定的字节数组在这里被克隆,以防止后续的修改。
issuerDN
- 1含专有名称的字节数组。1 DER编码的形式(或
null
)
IOException
如果编码发生错误(DN不正确的形式)
public void setSubject(X500Principal subject)
X509Certificate
标的可分辨名称匹配。如果
null
,任何学科的杰出的名字就可以了。
subject
-杰出的名字x500principal(或
null
)
public void setSubject(String subjectDN) throws IOException
设置主题标准。指定的可分辨名称必须在X509Certificate
标的可分辨名称匹配。如果null
,任何学科的杰出的名字就可以了。
如果subjectDN
不null
,它应该包含一个名称,在RFC 2253格式。
subjectDN
-在RFC 2253格式的识别名(或
null
)
IOException
如果分析错误发生(DN不正确的形式)
public void setSubject(byte[] subjectDN) throws IOException
X509Certificate
标的可分辨名称匹配。如果
null
,任何学科的杰出的名字就可以了。
如果subjectDN
不null
,它应该包含一个单一的DER编码的可分辨名称的定义在x.501。对ASN。这个结构表示1,看到setIssuer(byte [] issuerDN)
。
subjectDN
- 1含专有名称的字节数组。1 der格式(或
null
)
IOException
如果编码发生错误(DN不正确的形式)
public void setSubjectKeyIdentifier(byte[] subjectKeyID)
X509Certificate
必须包含一个subjectkeyidentifier扩展,扩展的内容符合指定的标准值。如果标准值
null
,没有subjectkeyidentifier检查会做的。
如果subjectKeyID
不null
,它应该包含一个单一的DER编码的值对应的推广价值的内容(不包括对象标识符,临界设置,和封装字符串)一subjectkeyidentifier延伸。ASN。这个结构表示1以下。
SubjectKeyIdentifier ::= KeyIdentifier
KeyIdentifier ::= OCTET STRING
由于主题密钥标识符的格式是没有任何标准的规定,主题密钥标识符不是由X509CertSelector
解析。相反,值的比较采用逐字节的比较。
请注意,这里提供的字节数组被克隆,以防止后续的修改。
subjectKeyID
-主题密钥标识符(或
null
)
getSubjectKeyIdentifier()
public void setAuthorityKeyIdentifier(byte[] authorityKeyID)
X509Certificate
必须包含一个authoritykeyidentifier延伸,延伸价值的内容符合指定的标准值。如果标准值
null
,没有authoritykeyidentifier检查会做的。
如果authorityKeyID
不null
,它应该包含一个单一的DER编码的值对应的推广价值的内容(不包括对象标识符,临界设置,和封装的字符串)的authoritykeyidentifier延伸。ASN。这个结构表示1以下。
AuthorityKeyIdentifier ::= SEQUENCE {
keyIdentifier [0] KeyIdentifier OPTIONAL,
authorityCertIssuer [1] GeneralNames OPTIONAL,
authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
KeyIdentifier ::= OCTET STRING
授权密钥标识符不由X509CertSelector
解析。相反,使用一个字节的字节比较值进行比较。
当AuthorityKeyIdentifier
的keyIdentifier
字段填充的值,通常是从发行者证书的SubjectKeyIdentifier
延伸。注意,然而,在发行者的证书X509Certificate.getExtensionValue(<SubjectKeyIdentifier Object Identifier>)
结果不能直接作为setAuthorityKeyIdentifier
输入。这是因为subjectkeyidentifier仅包含一个keyidentifier八进制字符串,而不是一个序列的keyidentifier,通用名,和certificateserialnumber。为了使用发行者证书的SubjectKeyIdentifier
延伸价值,就必须提取嵌入的KeyIdentifier
字节字符串的值,然后在这个字符串编码序列内。在subjectkeyidentifier更多细节,看setSubjectKeyIdentifier(byte[] subjectKeyID)
。
请注意,这里提供的字节数组被克隆,以防止后续的修改。
authorityKeyID
-公钥标识(或
null
)
getAuthorityKeyIdentifier()
public void setCertificateValid(Date certValid)
X509Certificate
。如果
null
,没有certificatevalid检查会做的。
值得注意的是,克隆到防止随后的修改Date
这里提供。
certValid
-
Date
检查(或
null
)
getCertificateValid()
public void setPrivateKeyValid(Date privateKeyValid)
X509Certificate
。如果
null
,没有privatekeyvalid检查会做的。
值得注意的是,克隆到防止随后的修改Date
这里提供。
privateKeyValid
-
Date
检查(或
null
)
getPrivateKeyValid()
public void setSubjectPublicKeyAlgID(String oid) throws IOException
X509Certificate
必须包含一个主题公钥与指定的算法。如果
null
,没有subjectpublickeyalgid检查会做的。
oid
-对象标识符(OID)的算法来检查(或
null
)。一个OID是由一组非负整数代表分离的时期。
IOException
-如果那是无效的,如不0的第一部分,1或2或第二成分大于39。
getSubjectPublicKeyAlgID()
public void setSubjectPublicKey(PublicKey key)
X509Certificate
必须包含指定的主题的公钥。如果
null
,没有subjectpublickey检查会做的。
key
-主体公钥检查(或
null
)
getSubjectPublicKey()
public void setSubjectPublicKey(byte[] key) throws IOException
X509Certificate
必须包含指定的主题的公钥。如果
null
,没有subjectpublickey检查会做的。
因为此方法允许将公钥指定为一个字节数组,它可以用于未知的密钥类型。
如果key
不null
,它应该包含一个单一的DER编码的subjectpublickeyinfo结构,定义在X.509。ASN。这个结构表示1如下。
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING }
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
-- contains a value of the type
-- registered for use with the
-- algorithm object identifier value
请注意,这里提供的字节数组被克隆,以防止后续的修改。
key
-含天冬酰胺的主体公共密钥字节数组。1德形式(或
null
)
IOException
如果编码发生错误(为主体的公共密钥不正确的形式)
getSubjectPublicKey()
public void setKeyUsage(boolean[] keyUsage)
X509Certificate
必须允许指定的keyusage值。如果
null
,没有keyusage检查会做的。注意,
X509Certificate
没有keyusage扩展隐式允许所有keyusage值。
请注意,这里提供的布尔数组是被克隆来保护的,以防止后续的修改。
keyUsage
-在同一格式的布尔数组返回的
X509Certificate.getKeyUsage()
布尔数组或
null
。
getKeyUsage()
public void setExtendedKeyUsage(Set<String> keyPurposeSet) throws IOException
X509Certificate
必须允许指定的密钥用途扩展密钥使用扩展。如果
keyPurposeSet
是空的或
null
,没有extendedkeyusage检查会做的。注意,
X509Certificate
没有extendedkeyusage扩展隐式允许所有关键目的。
值得注意的是,克隆到防止随后的修改Set
。
keyPurposeSet
-
Set
关键目的OID字符串格式(或
null
)。每个OID是由一组非负整数代表分离的时期。
IOException
-如果那是无效的,如不0的第一部分,1或2或第二成分大于39。
getExtendedKeyUsage()
public void setMatchAllSubjectAltNames(boolean matchAllNames)
setSubjectAlternativeNames
或
addSubjectAlternativeName
方法指定的subjectalternativenames。如果启用,该
X509Certificate
必须包含所有指定主题备用名称。如果禁用,该
X509Certificate
必须包含在指定至少一个主题备用名称。
的matchallnames标志true
默认。
matchAllNames
-如果
true
,国旗启用;如果
false
,国旗被禁用。
getMatchAllSubjectAltNames()
public void setSubjectAlternativeNames(Collection<List<?>> names) throws IOException
X509Certificate
必须包含所有或在指定的subjectalternativenames至少一个,根据不同的matchallnames标志的值(见
setMatchAllSubjectAltNames
)。
这种方法允许调用者指定,调用一个方法,为subjectalternativenames标准成套主题备用名称。指定的值替换为subjectalternativenames准则以前的值。
的names
参数(如果不是null
)是一个与每个名称包含在主题备用名称的一项Collection
准则。每个条目是一个List
的第一项是一个Integer
(名称类型0-8)和其第二项是一String
或字节数组(名称、字符串或ASN。1 DER编码的形式,分别)。可以有同一类型的多个名称。如果null
提供此参数的值,没有subjectalternativenames检查将进行。
每个主题备用名称在Collection
可以指定为一个String
或ASN。1编码的字节数组。关于使用格式的更多信息,见addSubjectAlternativeName(int type, String name)
和addSubjectAlternativeName(int type, byte [] name)
。
注:杰出的名字,而不是字符串形式指定字节数组的形式。更多信息见addSubjectAlternativeName(int, String)
注。
请注意,names
参数可以包含重复的名称(名称相同的名称和类型),但他们可以从名称的Collection
除去getSubjectAlternativeNames
方法返回。
注意:深拷贝在Collection
进行防止随后的修改。
names
-
Collection
名称(或
null
)
IOException
如果分析错误发生
getSubjectAlternativeNames()
public void addSubjectAlternativeName(int type, String name) throws IOException
X509Certificate
必须包含所有或在指定的subjectalternativenames至少一个,根据不同的matchallnames标志的值(见
setMatchAllSubjectAltNames
)。
此方法允许调用方将名称添加到主题替换名称的集合中。指定的名称添加到标准的subjectalternativenames以前的任何值。如果指定的名称是重复的,则可能被忽略。
该名称是以字符串格式提供的。RFC 822,DNS和URI的名字使用行之有效的字符串格式的类型(须包括在RFC 3280的限制)。IPv4地址的名字是提供使用星罗棋布的符号。OID地址名称表示为一系列的非负整数相隔时间。和目录的名称(可分辨名称)在RFC 2253中提供的格式。没有标准的格式字符串的定义但是,X.400名称、EDI政党名称,IPv6地址的名称,或任何其他类型的名称。他们应该使用addSubjectAlternativeName(int type, byte [] name)
方法指定。
注:杰出的名字,而不是使用addSubjectAlternativeName(int, byte[])。该方法不依赖于它可以不匹配的一些证书因为亏损在RFC 2253的字符串形式的一些杰出的名字信息编码。
type
-名称类型(0-8,按照RFC 3280,部分4.2.1.7)
name
-以字符串形式的名称(不
null
)
IOException
如果分析错误发生
public void addSubjectAlternativeName(int type, byte[] name) throws IOException
X509Certificate
必须包含所有或在指定的subjectalternativenames至少一个,根据不同的matchallnames标志的值(见
setMatchAllSubjectAltNames
)。
此方法允许调用方将名称添加到主题替换名称的集合中。指定的名称添加到标准的subjectalternativenames以前的任何值。如果指定的名称是重复的,则可能被忽略。
该名称被提供为一个字节数组。这个字节数组应该包含DER编码的名称,因为它会出现在RFC 3280中定义的generalname结构和X.509。编码的字节数组应该只包含名称编码的值,而不应包括在generalname结构相关的名称标签。ASN。这种结构的定义出现低于1。
GeneralName ::= CHOICE {
otherName [0] OtherName,
rfc822Name [1] IA5String,
dNSName [2] IA5String,
x400Address [3] ORAddress,
directoryName [4] Name,
ediPartyName [5] EDIPartyName,
uniformResourceIdentifier [6] IA5String,
iPAddress [7] OCTET STRING,
registeredID [8] OBJECT IDENTIFIER}
请注意,这里提供的字节数组被克隆,以防止后续的修改。
type
-名称类型(0-8,上面列出的)
name
- 1包含名称的字节数组1 DER编码的形式。
IOException
如果分析错误发生
public void setNameConstraints(byte[] bytes) throws IOException
X509Certificate
必须有主语和主题备用名称满足指定名称的限制。
名称约束被指定为一个字节数组。这个字节数组应该包含DER编码的名字约束形式,因为它们会出现在RFC 3280中定义的nameconstraints结构和X.509。ASN。这种结构的定义出现低于1。
NameConstraints ::= SEQUENCE {
permittedSubtrees [0] GeneralSubtrees OPTIONAL,
excludedSubtrees [1] GeneralSubtrees OPTIONAL }
GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
GeneralSubtree ::= SEQUENCE {
base GeneralName,
minimum [0] BaseDistance DEFAULT 0,
maximum [1] BaseDistance OPTIONAL }
BaseDistance ::= INTEGER (0..MAX)
GeneralName ::= CHOICE {
otherName [0] OtherName,
rfc822Name [1] IA5String,
dNSName [2] IA5String,
x400Address [3] ORAddress,
directoryName [4] Name,
ediPartyName [5] EDIPartyName,
uniformResourceIdentifier [6] IA5String,
iPAddress [7] OCTET STRING,
registeredID [8] OBJECT IDENTIFIER}
请注意,这里提供的字节数组被克隆,以防止后续的修改。
bytes
-含天冬酰胺的字节数组。1下一nameconstraints扩展用来检查名字约束编码。只有价值的延伸包括,不老或关键性标志。可以
null
,在没有名字的情况下将进行约束检查。
IOException
如果分析错误发生
getNameConstraints()
public void setBasicConstraints(int minMaxPathLen)
X509Certificates
必须包括一个pathlen至少价值basicconstraints延伸。如果值为- 2,只有最终实体证书被接受。如果值为- 1,则没有检查完成。
此约束是有用的,当建立一个认证路径向前(从目标向信任锚。如果部分道路已经建成,任何候选人证书必须有一个maxpathlen值大于或等于在部分路径证书号码。
minMaxPathLen
为基本约束条件约束的值
IllegalArgumentException
如果值小于2
getBasicConstraints()
public void setPolicy(Set<String> certPolicySet) throws IOException
X509Certificate
必须包含至少一个指定的政策在其证书策略扩展。如果
certPolicySet
是空的,然后
X509Certificate
至少必须包括一些指定的政策在其证书策略扩展。如果
certPolicySet
是
null
,没有政策将进行检查。
值得注意的是,克隆到防止随后的修改Set
。
certPolicySet
-
Set
的字符串格式的证书策略OID(或
null
)。每个OID是由一组非负整数代表分离的时期。
IOException
如果分析错误发生在老如第一部分是不是0,1或2或第二分量大于39。
getPolicy()
public void setPathToNames(Collection<List<?>> names) throws IOException
X509Certificate
不包含名称的限制,禁止建设路径指定的名称。
这种方法允许调用者指定,调用一个方法,一套完整的名字,X509Certificates
的名字约束必须允许。指定的值替换为pathtonames准则以前的值。
此约束是有用的,当建立一个认证路径向前(从目标向信任锚。如果已经建立了部分路径,任何候选证书都不能包含禁止在部分路径中构建路径的名称约束。
的names
参数(如果不是null
)是一个与每个名字被列入pathtonames标准之一项Collection
。每个条目是一个List
的第一项是一个Integer
(名称类型0-8)和其第二项是一String
或字节数组(名称、字符串或ASN。1 DER编码的形式,分别)。可以有同一类型的多个名称。如果null
提供此参数的值,没有pathtonames检查将进行。
在Collection
每个名称可能被指定为一个String
或ASN。1编码的字节数组。关于使用格式的更多信息,见addPathToName(int type, String name)
和addPathToName(int type, byte [] name)
。
注:杰出的名字,而不是字符串形式指定字节数组的形式。更多信息见addPathToName(int, String)
注。
请注意,names
参数可以包含重复的名称(名称相同的名称和类型),但他们可以从名称的Collection
除去getPathToNames
方法返回。
注意:深拷贝在Collection
进行防止随后的修改。
names
-每一名进入
Collection
(或
null
)
IOException
如果分析错误发生
getPathToNames()
public void addPathToName(int type, String name) throws IOException
X509Certificate
不包含名称的限制,禁止建设路径指定的名称。
这种方法允许调用者名称添加到该组的名称,X509Certificates
的名字约束必须允许。指定的名称添加到标准的pathtonames以前的任何值。如果名称是重复的,它可能会被忽略。
该名称是以字符串格式提供的。RFC 822,DNS和URI的名字使用行之有效的字符串格式的类型(须包括在RFC 3280的限制)。IPv4地址的名字是提供使用星罗棋布的符号。OID地址名称表示为一系列的非负整数相隔时间。和目录的名称(可分辨名称)在RFC 2253中提供的格式。没有标准的格式字符串的定义但是,X.400名称、EDI政党名称,IPv6地址的名称,或任何其他类型的名称。他们应该使用addPathToName(int type, byte [] name)
方法指定。
注:杰出的名字,而不是使用addPathToName(int, byte[])。该方法不依赖于它可以不匹配的一些证书因为亏损在RFC 2253的字符串形式的一些杰出的名字信息编码。
type
-名称类型(0-8,按照RFC 3280,部分4.2.1.7)
name
-以字符串形式的名称
IOException
如果分析错误发生
public void addPathToName(int type, byte[] name) throws IOException
X509Certificate
不包含名称的限制,禁止建设路径指定的名称。
这种方法允许调用者名称添加到该组的名称,X509Certificates
的名字约束必须允许。指定的名称添加到标准的pathtonames以前的任何值。如果名称是重复的,它可能会被忽略。
该名称被提供为一个字节数组。这个字节数组应该包含DER编码的名称,因为它会出现在RFC 3280中定义的generalname结构和X.509。ASN。这种结构1定义出现在addSubjectAlternativeName(int type, byte [] name)
文档。
请注意,这里提供的字节数组被克隆,以防止后续的修改。
type
-名称类型(0-8,按照RFC 3280,部分4.2.1.7)
name
- 1包含名称的字节数组1 DER编码的形式。
IOException
如果分析错误发生
public X509Certificate getCertificate()
X509Certificate
必须等于
X509Certificate
传递到
match
方法。如果
null
,这个检查不适用。
X509Certificate
匹配(或
null
)
setCertificate(java.security.cert.X509Certificate)
public BigInteger getSerialNumber()
X509Certificate
证书序列号。如果
null
,任何证书序列号会做。
null
)
setSerialNumber(java.math.BigInteger)
public X500Principal getIssuer()
X500Principal
返回发行人标准。这个杰出的名字必须与发行人尊敬的名字在
X509Certificate
。如果
null
,发行人的标准是残疾人,任何人可分辨名称会做。
null
)
public String getIssuerAsString()
作为一个String
返回发行人的标准。这一杰出的名称必须与发行人尊敬的名字在X509Certificate
。如果null
,发行人的标准是残疾人,任何人可分辨名称会做。
如果返回的值是不null
,它是一个著名的名字,在RFC 2253格式。
null
)
public byte[] getIssuerAsBytes() throws IOException
X509Certificate
。如果
null
,发行人的标准是残疾人,任何人可分辨名称会做。
如果返回的值是不null
,它含有一个单一的DER编码的识别名的字节数组,定义在x.501。ASN。这个结构表示1提供的文档中的setIssuer(byte [] issuerDN)
。
请注意,返回的字节数组被克隆,以防止后续的修改。
null
)
IOException
-如果一个编码错误发生
public X500Principal getSubject()
X500Principal
返回主体标准。这个杰出的名字必须在
X509Certificate
标的可分辨名称匹配。如果
null
,主体标准是残疾人和任何学科的杰出的名字就可以了。
null
)
public String getSubjectAsString()
作为一个String
返回主体标准。这个杰出的名字必须在X509Certificate
标的可分辨名称匹配。如果null
,主体标准是残疾人和任何学科的杰出的名字就可以了。
如果返回的值是不null
,它是一个著名的名字,在RFC 2253格式。
null
)
public byte[] getSubjectAsBytes() throws IOException
X509Certificate
标的可分辨名称匹配。如果
null
,主体标准是残疾人和任何学科的杰出的名字就可以了。
如果返回的值是不null
,它含有一个单一的DER编码的识别名的字节数组,定义在x.501。ASN。这个结构表示1提供的文档中的setSubject(byte [] subjectDN)
。
请注意,返回的字节数组被克隆,以防止后续的修改。
null
)
IOException
-如果一个编码错误发生
public byte[] getSubjectKeyIdentifier()
X509Certificate
必须包含具有指定值subjectkeyidentifier延伸。如果
null
,没有subjectkeyidentifier检查会做的。
请注意,返回的字节数组被克隆,以防止后续的修改。
null
)
setSubjectKeyIdentifier(byte[])
public byte[] getAuthorityKeyIdentifier()
X509Certificate
必须包含具有指定值authoritykeyidentifier延伸。如果
null
,没有authoritykeyidentifier检查会做的。
请注意,返回的字节数组被克隆,以防止后续的修改。
null
)
setAuthorityKeyIdentifier(byte[])
public Date getCertificateValid()
X509Certificate
。如果
null
,没有certificatevalid检查会做的。
值得注意的是,克隆到防止随后的修改Date
返回。
Date
检查(或
null
)
setCertificateValid(java.util.Date)
public Date getPrivateKeyValid()
X509Certificate
。如果
null
,没有privatekeyvalid检查会做的。
值得注意的是,克隆到防止随后的修改Date
返回。
Date
检查(或
null
)
setPrivateKeyValid(java.util.Date)
public String getSubjectPublicKeyAlgID()
X509Certificate
必须包含一个主题公钥与指定的算法。如果
null
,没有subjectpublickeyalgid检查会做的。
null
)。一个OID是由一组非负整数代表分离的时期。
setSubjectPublicKeyAlgID(java.lang.String)
public PublicKey getSubjectPublicKey()
X509Certificate
必须包含指定的主题的公钥。如果
null
,没有subjectpublickey检查会做的。
null
)
setSubjectPublicKey(java.security.PublicKey)
public boolean[] getKeyUsage()
X509Certificate
必须允许指定的keyusage值。如果为空,没有keyusage检查会做的。
请注意,返回的布尔数组被克隆,以防止后续的修改。
X509Certificate.getKeyUsage()
返回布尔数组。或
null
。
setKeyUsage(boolean[])
public Set<String> getExtendedKeyUsage()
X509Certificate
必须允许指定的密钥用途扩展密钥使用扩展。如果
keyPurposeSet
返回为空或
null
,没有extendedkeyusage检查会做的。注意,
X509Certificate
没有extendedkeyusage扩展隐式允许所有关键目的。
Set
OID不变(或
null
)
setExtendedKeyUsage(java.util.Set<java.lang.String>)
public boolean getMatchAllSubjectAltNames()
X509Certificate
必须包含所有或在
setSubjectAlternativeNames
或
addSubjectAlternativeName
方法指定至少一个subjectalternativenames。如果
true
,的
X509Certificate
必须包含所有指定主题备用名称。如果
false
,的
X509Certificate
必须包含在指定至少一个主题备用名称。
true
如果标志启用;
false
如果标志被禁用。国旗是
true
默认。
setMatchAllSubjectAltNames(boolean)
public Collection<List<?>> getSubjectAlternativeNames()
X509Certificate
必须包含所有或在指定的subjectalternativenames至少一个,根据不同的matchallnames标志的值(见
getMatchAllSubjectAltNames
)。如果返回值
null
,没有subjectalternativenames检查将进行。
如果返回的值是不null
,它是一个与每个名称包含在主题备用名称的一项Collection
准则。每个条目是一个List
的第一项是一个Integer
(名称类型0-8)和其第二项是一String
或字节数组(名称、字符串或ASN。1 DER编码的形式,分别)。可以有同一类型的多个名称。请注意,Collection
返回可能包含重复的名称(名称相同的名称和类型)。
每个主题备用名称在Collection
可以指定为一个String
或ASN。1编码的字节数组。关于使用格式的更多信息,见addSubjectAlternativeName(int type, String name)
和addSubjectAlternativeName(int type, byte [] name)
。
注意:深拷贝在Collection
进行防止随后的修改。
Collection
名称(或
null
)
setSubjectAlternativeNames(java.util.Collection<java.util.List<?>>)
public byte[] getNameConstraints()
X509Certificate
必须有主语和主题备用名称满足指定名称的限制。
名称约束作为一个字节数组返回。这个字节数组包含DER编码的名字约束形式,因为它们会出现在RFC 3280中定义的nameconstraints结构和X.509。ASN。这个结构表示1提供的文档中的setNameConstraints(byte [] bytes)
。
请注意,返回的字节数组被克隆,以防止后续的修改。
null
如果没有名字约束检查将进行。
setNameConstraints(byte[])
public int getBasicConstraints()
X509Certificates
必须包括一个pathlen至少价值basicconstraints延伸。如果值为- 2,只有最终实体证书被接受。如果值为1,没有basicconstraints检查。
setBasicConstraints(int)
public Set<String> getPolicy()
X509Certificate
必须包含至少一个指定的政策在其证书策略扩展。如果
Set
返回为空,然后
X509Certificate
至少必须包括一些指定的政策在其证书策略扩展。如果
Set
返回
null
,没有政策将进行检查。
Set
(或
null
)
setPolicy(java.util.Set<java.lang.String>)
public Collection<List<?>> getPathToNames()
X509Certificate
不包含名称的限制,禁止建设路径指定的名称。如果返回值
null
,没有pathtonames检查将进行。
如果返回的值是不null
,它是一个与每个名字被列入pathtonames标准之一项Collection
。每个条目是一个List
的第一项是一个Integer
(名称类型0-8)和其第二项是一String
或字节数组(名称、字符串或ASN。1 DER编码的形式,分别)。可以有同一类型的多个名称。请注意,Collection
返回可能包含重复的名称(名称相同的名称和类型)。
在Collection
每个名称可能被指定为一个String
或ASN。1编码的字节数组。关于使用格式的更多信息,见addPathToName(int type, String name)
和addPathToName(int type, byte [] name)
。
注意:深拷贝在Collection
进行防止随后的修改。
Collection
名称(或
null
)
setPathToNames(java.util.Collection<java.util.List<?>>)
public String toString()
CertSelector
表示。
public boolean match(Certificate cert)
Certificate
应选择。
match
接口
CertSelector
cert
-
Certificate
进行检查
true
如果
Certificate
应选择,否则
false
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.