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