模块 java.base

类 TrustAnchor

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
参见:
  • 构造方法详细信息

    • 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 结构中。 TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) 的文档中提供了此结构的 ASN.1 表示法。

      请注意,此处提供的名称约束字节数组已被克隆以防止后续修改。

      参数:
      caPrincipal - 最受信任的 CA 作为 X500Principal 的名称
      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 结构中。 TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) 的文档中提供了此结构的 ASN.1 表示法。

      请注意,此处提供的名称约束字节数组已被克隆以防止后续修改。

      参数:
      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 证书。
      返回:
      可信的 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 的公钥,如果未将信任锚指定为受信任的公钥和名称或 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

      public String  toString()
      返回描述 TrustAnchor 的格式化字符串。
      重写:
      toString 在类 Object
      返回:
      描述 TrustAnchor 的格式化字符串