JavaTM Platform
Standard Ed. 6

java.security.cert
类 TrustAnchor

java.lang.Object
  继承者 java.security.cert.TrustAnchor

public class TrustAnchor
     
extends Object

一个信任定位点或最受信任的证书颁发机构 (CA)。

此类表示“最受信任的 CA”,该 CA 用作验证 X.509 证书路径的信任定位点。最受信任的 CA 包括该 CA 的公钥、该 CA 的名称,以及可能使用此密钥所验证的路径集上的所有限制。可以受信任的 X509Certificate 形式或以单个参数的形式来指定这些参数。

并发访问

所有 TrustAnchor 对象必须是不可变的和线程安全的。也就是说,多个线程在单个 TrustAnchor 对象(或多个对象)上并发调用此类中所定义的各种方法不会产生什么恶果。要求 TrustAnchor 对象是不可变的并且是线程安全的就允许将其传递到各种代码片断中,而无需担心并列的访问。此规定适用于此类的所有公共字段和方法,以及由子类添加或重写的所有公共字段和方法。

从以下版本开始:
1.4
另请参见:
PKIXParameters.PKIXParameters(Set), PKIXBuilderParameters.PKIXBuilderParameters(Set, CertSelector)

构造方法摘要
TrustAnchor(String caName, PublicKey pubKey, byte[] nameConstraints)
          创建一个 TrustAnchor 实例,其中以不同的名称和公钥的形式指定最受信任的 CA。
TrustAnchor(X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints)
          创建一个 TrustAnchor 实例,其中以 X500Principal 和公钥的形式指定最受信任的 CA。
TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
          创建具有指定 X509Certificate 和可选 nameConstraints 的 TrustAnchor 实例,在验证 X.509 证书路径时,该 nameConstraints 用作额外的限制条件。
 
方法摘要
 X500Principal getCA()
          以 X500Principal 的形式返回最受信任的 CA 的名称。
 String getCAName()
          以 RFC 2253 String 格式返回最受信任的 CA 的名称。
 PublicKey getCAPublicKey()
          返回最受信任的 CA 的公钥。
 byte[] getNameConstraints()
          返回 nameConstraints 参数。
 X509Certificate getTrustedCert()
          返回最受信任的 CA 证书。
 String toString()
          返回描述此 TrustAnchor 的格式化字符串。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

TrustAnchor

public TrustAnchor(X509Certificate trustedCert,
                   byte[] nameConstraints)
创建具有指定 X509Certificate 和可选 nameConstraints 的 TrustAnchor 实例,在验证 X.509 证书路径时,该 nameConstraints 用作额外的限制条件。

以 byte 数组的形式指定该 nameConstraints。此 byte 数组应该包含 DER 编码形式的 nameConstraints,因为它们将出现在 RFC 2459 和 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}
 

注意,为了防止后续修改,将复制所提供的 nameConstraints byte 数组。

参数:
trustedCert - 受信任的 X509Certificate
nameConstraints - 一个 byte 数组,包含为检查 nameConstraints 所使用的 NameConstraints 扩展的 ASN.1 DER 编码。只包括该扩展的值,不包括 OID 或关键程度标志。指定 null 可省略该参数。
抛出:
IllegalArgumentException - 如果无法解码该 nameConstraints
NullPointerException - 如果指定的 X509Certificatenull

TrustAnchor

public TrustAnchor(X500Principal caPrincipal,
                   PublicKey pubKey,
                   byte[] nameConstraints)
创建一个 TrustAnchor 实例,其中以 X500Principal 和公钥的形式指定最受信任的 CA。nameConstraints 是可选的参数,在验证 X.509 证书路径时,将其用作额外的限制条件。

以 byte 数组的形式指定该 nameConstraints。此 byte 数组包含 DER 编码形式的 nameConstraints,因为它们将出现在 RFC 2459 和 X.509 内所定义的 NameConstraints 结构中。TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) 的文档中提供了此结构的 ASN.1 符号。

注意,为了防止后续修改,将复制此处所提供的 nameConstraints byte 数组。

参数:
caPrincipal - 最受信任的 CA 的名称,以 X500Principal 形式提供
pubKey - 最受信任的 CA 的公钥
nameConstraints - 一个 byte 数组,包含为检查 nameConstraints 所使用的 NameConstraints 扩展的 ASN.1 DER 编码。只包括该扩展的值,不包括 OID 或关键程度标志。指定 null 可省略该参数。
抛出:
NullPointerException - 如果指定的 caPrincipalpubKey 参数为 null
从以下版本开始:
1.5

TrustAnchor

public TrustAnchor(String caName,
                   PublicKey pubKey,
                   byte[] nameConstraints)
创建一个 TrustAnchor 实例,其中以不同的名称和公钥的形式指定最受信任的 CA。nameConstraints 是可选的参数,在验证 X.509 证书路径时,将其用作额外的限制条件。

以 byte 数组的形式指定该 nameConstraints。此 byte 数组包含 DER 编码形式的 nameConstraints,因为它们将出现在 RFC 2459 和 X.509 内所定义的 NameConstraints 结构中。TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) 的文档中提供了此结构的 ASN.1 符号。

注意,为了防止后续修改,将复制此处所提供的 nameConstraints byte 数组。

参数:
caName - 最受信任的 CA 的 X.500 区分名,以 RFC 2253 String 格式提供
pubKey - 最受信任的 CA 的公钥
nameConstraints - 一个 byte 数组,包含为检查 nameConstraints 所使用的 NameConstraints 扩展的 ASN.1 DER 编码。只包括该扩展的值,不包括 OID 或关键程度标志。指定 null 可省略该参数。
抛出:
IllegalArgumentException - 如果指定的 caName 参数是空 (caName.length() == 0),或者格式不正确,或者无法解码该 nameConstraints
NullPointerException - 如果指定的 caNamepubKey 参数为 null
方法详细信息

getTrustedCert

public final X509Certificate getTrustedCert()
返回最受信任的 CA 证书。

返回:
受信任的 X509Certificate,如果信任定位点未被指定为受信任的证书,则返回 null

getCA

public final X500Principal getCA()
以 X500Principal 的形式返回最受信任的 CA 的名称。

返回:
最受信任的 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()
返回 nameConstraints 参数。指定的 nameConstraints 是与此信任定位点相关联的,并且在验证 X.509 证书路径时,将其用作额外的限制条件。

以 byte 数组的形式返回该 nameConstraints。此 byte 数组包含 DER 编码形式的 nameConstraints,因为它们将出现在 RFC 2459 和 X.509 内所定义的 NameConstraints 结构中。TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) 的文档中提供了此结构的 ASN.1 符号。

注意,为了保护后续的修改,将复制返回的 byte 数组。

返回:
一个 byte 数组,包含为检查 nameConstraints 所使用的 NameConstraints 扩展的 ASN.1 DER 编码,如果未设置,则返回 null

toString

public String toString()
返回描述此 TrustAnchor 的格式化字符串。

覆盖:
Object 中的 toString
返回:
描述此 TrustAnchor 的格式化字符串

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策