|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.security.cert
类 X509CRL
java.lang.Object java.security.cert.CRL java.security.cert.X509CRL
- 所有已实现的接口:
- X509Extension
-
public abstract class X509CRL
- extends CRL
- implements X509Extension
X.509 证书撤消列表 (CRL) 的抽象类。CRL 是标识已撤消证书的时间戳列表。它由证书颁发机构 (CA) 签署并且可在公共存储库中随意使用。
在 CRL 中,通过每个已撤消证书的证书序列号来标识该证书。当使用证书的系统使用某个证书(例如,用它验证远程用户的数字签名)时,该系统不仅要检查该证书的签名和有效性,而且还要获得一个最近合适的 CRL,并检查该证书序列号在不在该 CRL 中。“最近合适”的含义可能随本地策略的不同而有所不同,但是它通常指的是最近发布的 CRL。CA 定期发布新的 CRL(例如每小时、每日、每周)。当撤消发生时向 CRL 添加一个项,而到达证书的终止日期时,可能会移除一个项。
X.509 v2 CRL 格式的 ASN.1 描述如下:
CertificateList ::= SEQUENCE { tbsCertList TBSCertList, signatureAlgorithm AlgorithmIdentifier, signature BIT STRING }
在 RFC 2459,即 "Internet X.509 Public Key Infrastructure Certificate and CRL Profile"(位于 http://www.ietf.org/rfc/rfc2459.txt )中可找到更多信息。
tbsCertList
的 ASN.1 定义是:
TBSCertList ::= SEQUENCE { version Version OPTIONAL, -- if present, must be v2 signature AlgorithmIdentifier, issuer Name, thisUpdate ChoiceOfTime, nextUpdate ChoiceOfTime OPTIONAL, revokedCertificates SEQUENCE OF SEQUENCE { userCertificate CertificateSerialNumber, revocationDate ChoiceOfTime, crlEntryExtensions Extensions OPTIONAL -- if present, must be v2 } OPTIONAL, crlExtensions [0] EXPLICIT Extensions OPTIONAL -- if present, must be v2 }
CRL 是使用证书工厂进行实例化的。下面的示例演示了如何实例化一个 X.509 CRL:
InputStream inStream = new FileInputStream("fileName-of-crl");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509CRL crl = (X509CRL)cf.generateCRL(inStream);
inStream.close();
- 另请参见:
-
CRL
,CertificateFactory
,X509Extension
构造方法摘要 | |
---|---|
protected |
X509CRL() X.509 CRL 的构造方法。 |
方法摘要 | |
---|---|
boolean |
equals(Object other) 比较此 CRL 与给定对象的相等性。 |
abstract byte[] |
getEncoded() 返回此 CRL 的 ASN.1 DER 编码形式。 |
abstract Principal |
getIssuerDN() 已过时,由 getIssuerX500Principal() 替代。 |
X500Principal |
getIssuerX500Principal() 以 X500Principal 的形式返回 CRL 的发布方(发布方标识名)值。 |
abstract Date |
getNextUpdate() 获得 CRL 的 nextUpdate 日期。 |
abstract X509CRLEntry |
getRevokedCertificate(BigInteger serialNumber) 获得具有给定证书 serialNumber 的 CRL 项(如果有)。 |
X509CRLEntry |
getRevokedCertificate(X509Certificate certificate) 获得给定证书的 CRL 项(如果有)。 |
abstract Set<? extends X509CRLEntry> |
getRevokedCertificates() 获得此 CRL 中的所有项。 |
abstract String |
getSigAlgName() 获得 CRL 签名算法的签名算法名。 |
abstract String |
getSigAlgOID() 获得 CRL 的签名算法 OID 字符串。 |
abstract byte[] |
getSigAlgParams() 获得此 CRL 的签名算法中 DER 编码形式的签名算法参数。 |
abstract byte[] |
getSignature() 获得 CRL 的 signature 值(原始签名位)。 |
abstract byte[] |
getTBSCertList() 从此 CRL 中获得以 DER 编码的 CRL 信息,即 tbsCertList 。 |
abstract Date |
getThisUpdate() 获得 CRL 的 thisUpdate 日期。 |
abstract int |
getVersion() 获得 CRL 的 version (版本号)值。 |
int |
hashCode() 根据此 CRL 的编码形式返回该 CRL 的哈希码值。 |
abstract void |
verify(PublicKey key) 验证是否已使用与给定公钥相应的私钥签署了此 CRL。 |
abstract void |
verify(PublicKey key, String sigProvider) 验证是否已使用与给定公钥相应的私钥签署了此 CRL。 |
从类 java.security.cert.CRL 继承的方法 |
---|
getType, isRevoked, toString |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
从接口 java.security.cert.X509Extension 继承的方法 |
---|
getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension |
构造方法详细信息 |
---|
X509CRL
protected X509CRL()
- X.509 CRL 的构造方法。
方法详细信息 |
---|
equals
public boolean equals(Object other)
-
比较此 CRL 与给定对象的相等性。如果
other
对象是一个instanceof
X509CRL
,则检索其编码形式并且与此 CRL 的编码形式进行比较。 -
- 参数:
-
other
- 要与此 CRL 进行相等性测试的对象。 - 返回:
- 当且仅当两个 CRL 的编码形式匹配时才返回 true;否则返回 false。
- 另请参见:
-
Object.hashCode()
,Hashtable
hashCode
public int hashCode()
- 根据此 CRL 的编码形式返回该 CRL 的哈希码值。
-
- 返回:
- 哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,Hashtable
getEncoded
public abstract byte[] getEncoded() throws CRLException
- 返回此 CRL 的 ASN.1 DER 编码形式。
-
-
- 返回:
- 此证书的编码形式
- 抛出:
-
CRLException
- 如果发生编码错误。
verify
public abstract void verify(PublicKey key) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
- 验证是否已使用与给定公钥相应的私钥签署了此 CRL。
-
-
- 参数:
-
key
- 用于进行验证的 PublicKey。 - 抛出:
-
NoSuchAlgorithmException
- 如果签名算法不受支持。 -
InvalidKeyException
- 如果密钥不正确。 -
NoSuchProviderException
- 如果没有默认的提供程序。 -
SignatureException
- 如果发生签名错误。 -
CRLException
- 如果发生编码错误。
verify
public abstract void verify(PublicKey key, String sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
- 验证是否已使用与给定公钥相应的私钥签署了此 CRL。此方法使用给定提供程序所提供的签名验证引擎。
-
-
- 参数:
-
key
- 用于进行验证的 PublicKey。 -
sigProvider
- 签名提供程序的名称。 - 抛出:
-
NoSuchAlgorithmException
- 如果签名算法不受支持。 -
InvalidKeyException
- 如果密钥不正确。 -
NoSuchProviderException
- 如果提供程序不正确。 -
SignatureException
- 如果发生签名错误。 -
CRLException
- 如果发生编码错误。
getVersion
public abstract int getVersion()
-
获得 CRL 的
version
(版本号)值。此内容的 ASN.1 定义如下:version Version OPTIONAL, -- if present, must be v2
Version ::= INTEGER { v1(0), v2(1), v3(2) } -- v3 does not apply to CRLs but appears for consistency -- with definition of Version for certs
-
-
- 返回:
- 版本号,比如 1 或 2。
getIssuerDN
public abstract Principal getIssuerDN()
-
已过时,由 getIssuerX500Principal() 替代。此方法返回作为特定 Principal 对象实现的
issuer
,可移植的代码不应依靠该对象。获得 CRL 的
issuer
(发布方的标识名)。发布方名称标识了签署(并发布)该 CRL 的实体。发布方名称字段包含一个 X.500 标识名 (DN)。此内容的 ASN.1 定义如下:
issuer Name Name ::= CHOICE { RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET OF AttributeValueAssertion AttributeValueAssertion ::= SEQUENCE { AttributeType, AttributeValue } AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY
Name
描述了一个层次结构名,由属性(如国家/地区名)和相应值(如 US)组成。AttributeValue
组件的类型由AttributeType
来确定;一般是directoryString
。directoryString
通常是PrintableString
、TeletexString
或UniversalString
之一。 -
-
- 返回:
- 一个 Principal,其名称是发布方的标识名。