public class TrustAnchor
extends Object
java.lang.Object | |
↳ | java.security.cert.TrustAnchor |
信任锚或最受信任的认证中心(CA)。
这个类表示一个“最可信的CA”,它被用作验证X.509认证路径的信任锚点。 最可信的CA包括CA的公钥,CA的名称,以及对可以使用该密钥验证的路径集合的任何约束。 这些参数可以以可信X509Certificate
的形式或作为单独的参数来指定。
并发访问
所有TrustAnchor
对象必须是不可变的且线程安全的。 也就是说,多个线程可以并发地在单个TrustAnchor
对象(或多个对象)上调用此类中定义的方法,而不会产生不良影响。 要求TrustAnchor
对象是不可变的并且是线程安全的,因此可以将它们传递给各种代码,而不用担心协调访问。 本规定适用于该类的所有公共字段和方法以及任何由子类添加或覆盖的内容。
Public constructors |
|
---|---|
TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) 使用指定的 |
|
TrustAnchor(X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints) 创建 |
|
TrustAnchor(String caName, PublicKey pubKey, byte[] nameConstraints) 创建 |
Public methods |
|
---|---|
final X500Principal |
getCA() 以X500Principal的形式返回最受信任的CA的名称。 |
final String |
getCAName() 以RFC 2253 |
final PublicKey |
getCAPublicKey() 返回最值得信任的CA的公钥。 |
final byte[] |
getNameConstraints() 返回名称约束参数。 |
final X509Certificate |
getTrustedCert() 返回最受信任的CA证书。 |
String |
toString() 返回描述 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
TrustAnchor (X509Certificate trustedCert, byte[] nameConstraints)
使用指定的 X509Certificate
和可选的名称约束创建 TrustAnchor
的实例,这些约束在验证X.509证书路径时将用作附加约束。
名称约束被指定为一个字节数组。 这个字节数组应该包含DER编码形式的名称约束,因为它们将出现在RFC 3280和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}
请注意,提供的名称约束字节数组已克隆,以防止后续修改。
Parameters | |
---|---|
trustedCert |
X509Certificate : a trusted X509Certificate |
nameConstraints |
byte : a byte array containing the ASN.1 DER encoding of a NameConstraints extension to be used for checking name constraints. Only the value of the extension is included, not the OID or criticality flag. Specify null to omit the parameter. |
Throws | |
---|---|
IllegalArgumentException |
if the name constraints cannot be decoded |
NullPointerException |
if the specified X509Certificate is null |
TrustAnchor (X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints)
创建TrustAnchor
的实例,其中将最可信的CA指定为X500Principal和公钥。 名称约束是一个可选参数,用于在验证X.509认证路径时作为附加约束。
名称约束被指定为一个字节数组。 该字节数组包含名称约束的DER编码形式,因为它们出现在RFC 3280和X.509中定义的NameConstraints结构中。 该结构的ASN.1表示法在TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
的文档中提供。
请注意,这里提供的名称约束字节数组被克隆,以防止后续修改。
Parameters | |
---|---|
caPrincipal |
X500Principal : the name of the most-trusted CA as X500Principal |
pubKey |
PublicKey : the public key of the most-trusted CA |
nameConstraints |
byte : a byte array containing the ASN.1 DER encoding of a NameConstraints extension to be used for checking name constraints. Only the value of the extension is included, not the OID or criticality flag. Specify null to omit the parameter. |
Throws | |
---|---|
NullPointerException |
if the specified caPrincipal or pubKey parameter is null |
TrustAnchor (String caName, PublicKey pubKey, byte[] nameConstraints)
创建一个TrustAnchor
的实例,其中将最可信的CA指定为专有名称和公用密钥。 名称约束是一个可选参数,用于在验证X.509认证路径时作为附加约束。
名称约束被指定为一个字节数组。 该字节数组包含名称约束的DER编码形式,因为它们出现在RFC 3280和X.509中定义的NameConstraints结构中。 此结构的ASN.1表示法在TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
的文档中提供。
请注意,这里提供的名称约束字节数组被克隆,以防止后续修改。
Parameters | |
---|---|
caName |
String : the X.500 distinguished name of the most-trusted CA in RFC 2253 String format |
pubKey |
PublicKey : the public key of the most-trusted CA |
nameConstraints |
byte : a byte array containing the ASN.1 DER encoding of a NameConstraints extension to be used for checking name constraints. Only the value of the extension is included, not the OID or criticality flag. Specify null to omit the parameter. |
Throws | |
---|---|
IllegalArgumentException |
if the specified caName parameter is empty (caName.length() == 0) or incorrectly formatted or the name constraints cannot be decoded |
NullPointerException |
if the specified caName or pubKey parameter is null |
X500Principal getCA ()
以X500Principal的形式返回最受信任的CA的名称。
Returns | |
---|---|
X500Principal |
the X.500 distinguished name of the most-trusted CA, or null if the trust anchor was not specified as a trusted public key and name or X500Principal pair |
String getCAName ()
以RFC 2253 String
格式返回最受信任的CA的名称。
Returns | |
---|---|
String |
the X.500 distinguished name of the most-trusted CA, or null if the trust anchor was not specified as a trusted public key and name or X500Principal pair |
PublicKey getCAPublicKey ()
返回最值得信任的CA的公钥。
Returns | |
---|---|
PublicKey |
the public key of the most-trusted CA, or null if the trust anchor was not specified as a trusted public key and name or X500Principal pair |
byte[] getNameConstraints ()
返回名称约束参数。 指定的名称约束与此信任锚相关联,并且旨在用作验证X.509认证路径时的附加约束。
名称约束作为字节数组返回。 该字节数组包含名称约束的DER编码形式,因为它们出现在RFC 3280和X.509中定义的NameConstraints结构中。 此结构的ASN.1表示法在TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
的文档中提供。
请注意,返回的字节数组被克隆以防止后续修改。
Returns | |
---|---|
byte[] |
a byte array containing the ASN.1 DER encoding of a NameConstraints extension used for checking name constraints, or null if not set. |
X509Certificate getTrustedCert ()
返回最受信任的CA证书。
Returns | |
---|---|
X509Certificate |
a trusted X509Certificate or null if the trust anchor was not specified as a trusted certificate |
String toString ()
返回描述 TrustAnchor
的格式化字符串。
Returns | |
---|---|
String |
a formatted string describing the TrustAnchor |