模块  java.base
软件包  java.security.cert

Class TrustAnchor


  • public class TrustAnchor
    extends Object
    信任锚或最受信任的证书颁发机构(CA)。

    此类表示“最受信任的CA”,用作验证X.509证书路径的信任锚。 最受信任的CA包括CA的公钥,CA的名称以及可以使用此密钥验证的路径集的任何约束。 这些参数可以以受信任的X509Certificate的形式指定,也可以作为单独的参数指定。

    并发访问

    所有TrustAnchor对象必须是不可变且线程安全的。 也就是说,多个线程可以在单个TrustAnchor对象(或多个)上同时调用此类中定义的方法,而不会产生任何不良影响。 要求TrustAnchor对象是不可变的和线程安全的,允许它们传递给各种代码而不必担心协调访问。 此规定适用于此类的所有公共字段和方法以及由子类添加或重写的任何公共字段和方法。

    从以下版本开始:
    1.4
    另请参见:
    PKIXParameters(Set)PKIXBuilderParameters(Set, CertSelector)
    • 构造方法详细信息

      • 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 - 如果指定的 X509Certificatenull
      • 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 - caPrincipal中最受信任的CA的名称
        pubKey - 最受信任的CA的公钥
        nameConstraints - 包含NameConstraints扩展的ASN.1 DER编码的字节数组,用于检查名称约束。 仅包含扩展的值,而不包括OID或临界标志。 指定null以省略参数。
        异常
        NullPointerException - 如果指定的 caPrincipalpubKey参数是 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 - RFC 2253 String格式中最受信任的CA的X.500可分辨名称
        pubKey - 最受信任的CA的公钥
        nameConstraints - 包含NameConstraints扩展的ASN.1 DER编码的字节数组,用于检查名称约束。 仅包含扩展的值,而不包括OID或临界标志。 指定null以省略参数。
        异常
        IllegalArgumentException - 如果指定的 caName参数为空 (caName.length() == 0)或格式不正确或名称约束无法解码
        NullPointerException - 如果指定的 caNamepubKey参数为 null
    • 方法详细信息

      • getTrustedCert

        public final X509Certificate getTrustedCert()
        返回最受信任的CA证书。
        结果
        如果信任锚未指定为可信证书, null受信任的 X509Certificatenull
      • getCA

        public final X500Principal getCA()
        返回最受信任的CA的名称作为X500Principal。
        结果
        最受信任的CA的X.500可分辨名称,如果未将信任锚指定为受信任的公钥和名称或X500Principal对, null
        从以下版本开始:
        1.5
      • getCAName

        public final String getCAName()
        以RFC 2253 String格式返回最受信任的CA的名称。
        结果
        最受信任的CA的X.500可分辨名称,如果未将信任锚指定为受信任的公钥和名称或X500Principal对, null
      • getCAPublicKey

        public final PublicKey getCAPublicKey()
        返回最受信任的CA的公钥。
        结果
        最受信任的CA的 null如果未将信任锚指定为受信任的公钥和名称或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
      • toString

        public String toString()
        返回描述 TrustAnchor的格式化字符串。
        重写:
        toString在课程 Object
        结果
        a formatted string describing the TrustAnchor