public class TrustAnchor extends Object
这类代表一个“最受信任的CA”,这是作为一个X.509证书路径验证信任锚。一个最受信任的钙,包括公钥的钙,钙的名字,和任何约束的路径,可以使用此键进行验证的集合。这些参数可以在一个可信X509Certificate
形式或个别参数指定。
并发访问
所有的TrustAnchor
对象必须是不变的,线程安全的。那就是,多个线程可以同时调用这个类定义在一个TrustAnchor
对象的方法(或多个)无不良影响。需要TrustAnchor
对象是不变的和线程安全可以通过各地的各种代码,而不必担心协调访问。这一规定适用于所有公共字段和方法这一类的任何增加或由子类重写。
Constructor and Description |
---|
TrustAnchor(String caName, PublicKey pubKey, byte[] nameConstraints)
创建一个实例
TrustAnchor 哪里最受信任的CA被指定为一个可分辨名称和公钥。
|
TrustAnchor(X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints)
创建一个实例
TrustAnchor 哪里最受信任的CA被指定为一个x500principal和公钥。
|
TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
创建具有指定
X509Certificate 和可选的名字约束
TrustAnchor 实例,这是被用来作为额外的约束,在验证X.509证书路径。
|
Modifier and Type | Method and Description |
---|---|
X500Principal |
getCA()
作为一个x500principal返回最受信任的CA的名字。
|
String |
getCAName()
返回最受信任的CA的名字在RFC 2253
String 格式。
|
PublicKey |
getCAPublicKey()
返回最值得信赖的约的公钥。
|
byte[] |
getNameConstraints()
返回名称约束参数。
|
X509Certificate |
getTrustedCert()
返回最受信任的证书。
|
String |
toString()
返回一个格式化的字符串描述
TrustAnchor 。
|
public 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}
请注意,提供的名称约束字节数组被克隆,以防止后续的修改。
trustedCert
-一个值得信赖的
X509Certificate
nameConstraints
-含天冬酰胺的字节数组。1下一nameconstraints扩展用来检查名字约束编码。只有价值的延伸包括,不老或关键性标志。指定要省略参数
null
。
IllegalArgumentException
如果名字约束无法解码
NullPointerException
-如果指定
X509Certificate
是
null
public TrustAnchor(X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints)
TrustAnchor
哪里最受信任的CA被指定为一个x500principal和公钥。名称约束是一个可选的参数,并用来作为额外的约束,在验证X.509证书路径。
名称约束被指定为一个字节数组。这个字节数组包含DER编码的名字约束形式,因为它们会出现在RFC 3280中定义的nameconstraints结构和X.509。ASN。这个结构表示1提供的文档中的TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
。
请注意,这里提供的名称约束字节数组是被克隆来保护的,以防止后续的修改。
caPrincipal
-最值得信赖的名字作为x500principal CA
pubKey
-最受信任的CA的公钥
nameConstraints
-含天冬酰胺的字节数组。1下一nameconstraints扩展用来检查名字约束编码。只有价值的延伸包括,不老或关键性标志。指定要省略参数
null
。
NullPointerException
-如果指定
caPrincipal
或
pubKey
参数
null
public TrustAnchor(String caName, PublicKey pubKey, byte[] nameConstraints)
TrustAnchor
哪里最受信任的CA被指定为一个可分辨名称和公钥。名称约束是一个可选的参数,并用来作为额外的约束,在验证X.509证书路径。
名称约束被指定为一个字节数组。这个字节数组包含DER编码的名字约束形式,因为它们会出现在RFC 3280中定义的nameconstraints结构和X.509。ASN。这个结构表示1提供的文档中的TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
。
请注意,这里提供的名称约束字节数组是被克隆来保护的,以防止后续的修改。
caName
- X.500区分最受信任的CA的名字在
RFC 2253
String
格式
pubKey
-最受信任的CA的公钥
nameConstraints
-含天冬酰胺的字节数组。1下一nameconstraints扩展用来检查名字约束编码。只有价值的延伸包括,不老或关键性标志。指定要省略参数
null
。
IllegalArgumentException
-如果指定
caName
参数是空的
(caName.length() == 0)
或格式不正确或名称的限制无法解码
NullPointerException
-如果指定
caName
或
pubKey
参数
null
public final X509Certificate getTrustedCert()
X509Certificate
或
null
如果信任锚不指定为受信任的证书
public final X500Principal getCA()
null
如果信任锚没有被指定作为一个值得信赖的公共密钥、名称或x500principal双
public final String getCAName()
String
格式。
null
如果信任锚没有被指定作为一个值得信赖的公共密钥、名称或x500principal双
public final PublicKey getCAPublicKey()
null
如果信任锚没有被指定作为一个值得信赖的公共密钥、名称或x500principal双
public final byte[] getNameConstraints()
名称约束作为一个字节数组返回。这个字节数组包含DER编码的名字约束形式,因为它们会出现在RFC 3280中定义的nameconstraints结构和X.509。ASN。这个结构表示1提供的文档中的TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints)
。
请注意,返回的字节数组被克隆,以防止后续的修改。
null
如果没有设置。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.