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.