此类表示“最受信任的CA”,用作验证X.509证书路径的信任锚点。最受信任的CA包括CA的公钥、CA的名称以及可能使用此密钥验证的路径集合上的任何约束。这些参数可以以受信任的X509Certificate
的形式或作为单独的参数来指定。
并发访问
所有TrustAnchor
对象必须是不可变的且线程安全的。也就是说,多个线程可以同时在单个TrustAnchor
对象(或多个对象)上调用此类中定义的方法,而不会产生任何不良影响。要求TrustAnchor
对象是不可变的和线程安全的,允许它们在各种代码片段之间传递,而无需担心协调访问。此规定适用于此类的所有公共字段和方法,以及任何子类添加或覆盖的字段和方法。
- 自:
- 1.4
- 参见:
-
Constructor Summary
ConstructorDescriptionTrustAnchor
(String caName, PublicKey pubKey, byte[] nameConstraints) 创建一个TrustAnchor
实例,其中最受信任的CA被指定为专有名称和公钥。TrustAnchor
(X509Certificate trustedCert, byte[] nameConstraints) 创建一个带有指定X509Certificate
和可选名称约束的TrustAnchor
实例,这些名称约束旨在在验证X.509证书路径时用作附加约束。TrustAnchor
(X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints) 创建一个TrustAnchor
实例,其中最受信任的CA被指定为X500Principal和公钥。 -
Method Summary
Modifier and TypeMethodDescriptionfinal X500Principal
getCA()
返回最受信任的CA的名称作为X500Principal。final String
返回最受信任的CA的名称,以RFC 2253String
格式。final PublicKey
返回最受信任的CA的公钥。final byte[]
返回名称约束参数。final X509Certificate
返回最受信任的CA证书。toString()
返回描述TrustAnchor
的格式化字符串。
-
Constructor Details
-
TrustAnchor
创建一个带有指定X509Certificate
和可选名称约束的TrustAnchor
实例,这些名称约束旨在在验证X.509证书路径时用作附加约束。名称约束被指定为一个字节数组。该字节数组应包含名称约束的DER编码形式,就像它们在RFC 5280和X.509中定义的NameConstraints结构中出现的那样。该结构的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}
请注意,提供的名称约束字节数组会被克隆以防止后续修改。
- 参数:
-
trustedCert
- 一个受信任的X509Certificate
-
nameConstraints
- 包含用于检查名称约束的NameConstraints扩展的ASN.1 DER编码的字节数组。仅包含扩展的值,不包括OID或关键性标志。指定null
以省略该参数。 - 抛出:
-
IllegalArgumentException
- 如果无法解码名称约束 -
NullPointerException
- 如果指定的X509Certificate
为null
-
TrustAnchor
创建一个TrustAnchor
实例,其中最受信任的CA被指定为X500Principal和公钥。名称约束是一个可选参数,旨在在验证X.509证书路径时用作附加约束。名称约束被指定为一个字节数组。该字节数组包含名称约束的DER编码形式,就像它们在RFC 5280和X.509中定义的NameConstraints结构中出现的那样。该结构的ASN.1符号在
TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
的文档中提供。请注意,此处提供的名称约束字节数组会被克隆以防止后续修改。
- 参数:
-
caPrincipal
- 最受信任的CA的名称,作为X500Principal -
pubKey
- 最受信任的CA的公钥 -
nameConstraints
- 包含用于检查名称约束的NameConstraints扩展的ASN.1 DER编码的字节数组。仅包含扩展的值,不包括OID或关键性标志。指定null
以省略该参数。 - 抛出:
-
NullPointerException
- 如果指定的caPrincipal
或pubKey
参数为null
- 自:
- 1.5
-
TrustAnchor
创建一个TrustAnchor
实例,其中最受信任的CA被指定为专有名称和公钥。名称约束是一个可选参数,旨在在验证X.509证书路径时用作附加约束。名称约束被指定为一个字节数组。该字节数组包含名称约束的DER编码形式,就像它们在RFC 5280和X.509中定义的NameConstraints结构中出现的那样。该结构的ASN.1符号在
TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
的文档中提供。请注意,此处提供的名称约束字节数组会被克隆以防止后续修改。
- 参数:
-
caName
- 最受信任的CA的X.500专有名称,以RFC 2253String
格式 -
pubKey
- 最受信任的CA的公钥 -
nameConstraints
- 包含用于检查名称约束的NameConstraints扩展的ASN.1 DER编码的字节数组。仅包含扩展的值,不包括OID或关键性标志。指定null
以省略该参数。 - 抛出:
-
IllegalArgumentException
- 如果指定的caName
参数为空(caName.length() == 0)
或格式不正确,或无法解码名称约束 -
NullPointerException
- 如果指定的caName
或pubKey
参数为null
-
-
Method Details
-
getTrustedCert
返回最受信任的CA证书。- 返回:
-
一个受信任的
X509Certificate
,如果信任锚点未指定为受信任证书,则返回null
-
getCA
返回最受信任的CA的名称作为X500Principal。- 返回:
-
最受信任的CA的X.500专有名称,如果信任锚点未指定为受信任的公钥和名称或X500Principal对,则返回
null
- 自:
- 1.5
-
getCAName
返回最受信任的CA的名称,以RFC 2253String
格式。- 返回:
-
最受信任的CA的X.500专有名称,如果信任锚点未指定为受信任的公钥和名称或X500Principal对,则返回
null
-
getCAPublicKey
返回最受信任的CA的公钥。- 返回:
-
最受信任的CA的公钥,如果信任锚点未指定为受信任的公钥和名称或X500Principal对,则返回
null
-
getNameConstraints
public final byte[] getNameConstraints()返回名称约束参数。指定的名称约束与此信任锚点相关联,旨在在验证X.509证书路径时用作附加约束。名称约束作为一个字节数组返回。该字节数组包含名称约束的DER编码形式,就像它们在RFC 5280和X.509中定义的NameConstraints结构中出现的那样。该结构的ASN.1符号在
TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
的文档中提供。请注意,返回的字节数组被克隆以防止后续修改。
- 返回:
-
一个包含用于检查名称约束的ASN.1 DER编码的NameConstraints扩展的字节数组,如果未设置,则返回
null
。
-
toString
返回描述TrustAnchor
的格式化字符串。
-