- java.lang.Object
-
- java.security.cert.TrustAnchor
-
public class TrustAnchor extends Object
信任锚或最受信任的证书颁发机构(CA)。该类表示一个“最受信任的CA”,它被用作验证X.509认证路径的信任锚点。 最受信任的CA包括CA的公钥,CA的名称以及可以使用该密钥验证的路径集合上的任何限制。 这些参数可以以可信
X509Certificate
或独立参数的形式指定。并发访问
所有
TrustAnchor
对象必须是不可变的和线程安全的。 也就是说,多个线程可以同时在单个TrustAnchor
对象(或多个)上调用此类中定义的方法,而不会产生不良影响。 要求TrustAnchor
对象是不可变的和线程安全的,可以将它们传递到各种代码段,而不用担心协调访问。 这个规定适用于这个类的所有公共领域和方法,以及任何由子类添加或覆盖的规则。- 从以下版本开始:
- 1.4
- 另请参见:
-
PKIXParameters(Set)
,PKIXBuilderParameters(Set, CertSelector)
-
-
构造方法摘要
构造方法 Constructor 描述 TrustAnchor(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和公钥。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 X500Principal
getCA()
返回最受信任的CA作为X500Principal的名称。String
getCAName()
返回RFC 2253String
格式中最受信任的CA的名称。PublicKey
getCAPublicKey()
返回最受信任的CA的公钥。byte[]
getNameConstraints()
返回名称约束参数。X509Certificate
getTrustedCert()
返回最受信任的CA证书。String
toString()
返回描述TrustAnchor
的格式化字符串。
-
-
-
构造方法详细信息
-
TrustAnchor
public TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
创建具有指定的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
public TrustAnchor(X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints)
创建一个TrustAnchor
的实例,其中最受信任的CA被指定为X500Principal和公钥。 名称约束是可选参数,并且在验证X.509认证路径时被用作额外的约束。名称约束被指定为字节数组。 该字节数组包含名称约束的DER编码形式,因为它们将出现在RFC 5280和X.509中定义的NameConstraints结构中。 该结构的ASN.1符号在
TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
的文档中提供。请注意,此处提供的名称约束字节数组被克隆以防止后续修改。
- 参数
-
caPrincipal
- 最受信任的CA作为caPrincipal
的名称 -
pubKey
- 最受信任的CA的公钥 -
nameConstraints
- 包含用于检查名称约束的NameConstraints扩展的ASN.1 DER编码的字节数组。 只包括扩展的值,而不是OID或临界标志。 指定null
省略参数。 - 异常
-
NullPointerException
- 如果指定的caPrincipal
或pubKey
参数为null
- 从以下版本开始:
- 1.5
-
TrustAnchor
public TrustAnchor(String caName, PublicKey pubKey, byte[] nameConstraints)
创建一个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
-
-
方法详细信息
-
getTrustedCert
public final X509Certificate getTrustedCert()
返回最受信任的CA证书。- 结果
-
如果信任锚点未指定为受信任的证书,那么可信任的
X509Certificate
或null
-
getCA
public final X500Principal getCA()
返回最受信任的CA作为X500Principal的名称。- 结果
-
最信任的CA的X.500可分辨名称,或者如果信任锚点未指定为可信公用密钥和名称或X500Principal对,
null
- 从以下版本开始:
- 1.5
-
getCAName
public final String getCAName()
返回RFC 2253String
格式中最受信任的CA的名称。- 结果
-
最信任的CA的X.500可分辨名称,或者如果信任锚没有被指定为可信公钥和名称或X500Principal对,
null
-
getCAPublicKey
public final PublicKey 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)
的文档中提供。请注意,返回的字节数组被克隆以防止后续修改。
- 结果
-
一个包含用于检查名称约束的NameConstraints扩展的ASN.1 DER编码的字节数组,如果未设置
null
。
-
-