public abstract class X509CRL extends CRL implements X509Extension
一个X.509证书撤销列表(CRL)的抽象类。CRL是一个时间戳证书吊销列表识别。它是由一个证书颁发机构(钙)签署的,并在公共仓库中免费使用。
每一个撤销证书的证书编号CRL标识。当一个证书使用系统使用证书(例如,用于验证远程用户的数字签名),该系统不仅检查证书签名和有效性而且需要一个适当的-最近的CRL检查证书序列号不在其中。“最近发布”可能与地方政策变化的意义,但它通常意味着最新发布的CRL。CA问题按照正常周期的一个新的CRL(例如,每小时,每天或每周)。为项目添加到CRL撤销时,和一个条目可能被删除时,证书过期日期到达。
X.509 v2 CRL格式是下面描述的ASN。1:
certificatelist::=序列{tbscertlist tbscertlist,algorithmidentifier签名算法,签名位字符串
更多的信息可以发现,在RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile。
ASN的tbsCertList
1定义:
tbscertlist::=序列{版本版本可选,——如果存在的话,必须V2签名algorithmidentifier,发行人名称,此更新choiceoftime,nextupdate choiceoftime可选,序列{ revokedcertificates序列usercertificate certificateserialnumber,revocationdate choiceoftime,crlentryextensions扩展可选——如果存在的话,必须V2}可选,crlextensions [ 0 ]明确扩展可选——如果存在的话,必须V2}
CRL实例化使用证书厂。下面是一个例子,如何实例化一个X.509证书:
try (InputStream inStream = new FileInputStream("fileName-of-crl")) {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509CRL crl = (X509CRL)cf.generateCRL(inStream);
}
CRL
,
CertificateFactory
,
X509Extension
Modifier | Constructor and Description |
---|---|
protected |
X509CRL()
X.509 CRL的构造函数。
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object other)
比较这个CRL与给定对象的平等。
|
abstract byte[] |
getEncoded()
返回ASN.1 DER编码这个CRL表1。
|
abstract Principal |
getIssuerDN()
诋毁,取而代之的
getIssuerX500Principal()。
|
X500Principal |
getIssuerX500Principal()
发行人(发行人收益可分辨名称)从CRL值作为
X500Principal 。
|
abstract Date |
getNextUpdate()
从CRL获取
nextUpdate 日期。
|
abstract X509CRLEntry |
getRevokedCertificate(BigInteger serialNumber)
得到的条目,如果有的话,与给定的证书序列号。
|
X509CRLEntry |
getRevokedCertificate(X509Certificate certificate)
如果得到的条目,,对于给定的证书。
|
abstract Set<? extends X509CRLEntry> |
getRevokedCertificates()
从这个CRL获取所有条目。
|
abstract String |
getSigAlgName()
获取CRL签名算法的数字签名算法的名称。
|
abstract String |
getSigAlgOID()
从CRL获取签名算法OID的字符串。
|
abstract byte[] |
getSigAlgParams()
得到的DER编码的签名算法参数从CRL的签名算法。
|
abstract byte[] |
getSignature()
得到
signature 值(原始签名位)从CRL。
|
abstract byte[] |
getTBSCertList()
得到的DER编码CRL信息,从这个CRL的
tbsCertList 。
|
abstract Date |
getThisUpdate()
从CRL获取
thisUpdate 日期。
|
abstract int |
getVersion()
得到
version (版本号)从CRL值。
|
int |
hashCode()
返回此CRL的编码形式的hashCode值。
|
abstract void |
verify(PublicKey key)
验证这个CRL签署使用对应于给定的公钥私钥。
|
void |
verify(PublicKey key, Provider sigProvider)
验证这个CRL签署使用对应于给定的公钥私钥。
|
abstract void |
verify(PublicKey key, String sigProvider)
验证这个CRL签署使用对应于给定的公钥私钥。
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension
public boolean equals(Object other)
other
对象是一个
instanceof
X509CRL
,那么它的编码形式检索与此CRL的编码形式比较。
equals
方法重写,继承类
Object
other
-与此CRL相等测试对象。
Object.hashCode()
,
HashMap
public int hashCode()
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public abstract byte[] getEncoded() throws CRLException
CRLException
-如果一个编码错误发生。
public abstract void verify(PublicKey key) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
key
-用来进行验证的公钥。
NoSuchAlgorithmException
-不支持的签名算法。
InvalidKeyException
-错误的关键。
NoSuchProviderException
-如果没有默认提供程序。
SignatureException
-签名错误。
CRLException
-编码错误。
public abstract void verify(PublicKey key, String sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
key
-用来进行验证的公钥。
sigProvider
-签名的提供程序的名称。
NoSuchAlgorithmException
-不支持的签名算法。
InvalidKeyException
-错误的关键。
NoSuchProviderException
-不正确的供应商。
SignatureException
-签名错误。
CRLException
-编码错误。
public void verify(PublicKey key, Provider sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, SignatureException
abstract
,它提供了一个默认的实现。
key
-用来进行验证的公钥。
sigProvider
-签名提供商。
NoSuchAlgorithmException
-不支持的签名算法。
InvalidKeyException
-错误的关键。
SignatureException
-签名错误。
CRLException
-编码错误。
public abstract int getVersion()
version
(版本号)从CRL值。ASN。这1的定义是:
版本版本可选,——如果存在的话,必须V2版本::=整数{ V1,V2(0)(1),V3(2)}V3不适用于CRL而出现一致性--随着版本的证书定义
public abstract Principal getIssuerDN()
issuer
作为具体实现的主要目标,而不应依赖可移植代码。
得到issuer
(发行人可分辨名称)从CRL值。发行人名称标识符号的实体(和CRL发布)。
发行人名称字段包含一个X.500可分辨名称(DN)。ASN。此1定义:
发行人名称名称::=选择rdnsequence } {rdnsequence::=序列relativedistinguishednamerelativedistinguishedname::=套attributevalueassertionattributevalueassertion::=序列{AttributeType,属性值}AttributeType::=对象标识符属性值::=任何的
Name
描述了一个由属性层次的名称,如国家的名字,和对应的值,如美国。
AttributeValue
组件的类型是由
AttributeType
确定;一般来说这将是一个
directoryString
。一个
directoryString
通常是一个
PrintableString
,
TeletexString
或
UniversalString
。
public X500Principal getIssuerX500Principal()
X500Principal
。
建议子类重写此方法。
X500Principal
尊贵的名字
public abstract Date getThisUpdate()
thisUpdate
日期。ASN。这1的定义是:
此更新choiceoftimechoiceoftime::=选择{UTCTime UTCTime,generaltime generalizedtime }
thisUpdate
日期。
public abstract Date getNextUpdate()
nextUpdate
日期。
nextUpdate
日期,如果不存在或无效。
public abstract X509CRLEntry getRevokedCertificate(BigInteger serialNumber)
serialNumber
-编号证书的条目是要抬头
X509CRLEntry
public X509CRLEntry getRevokedCertificate(X509Certificate certificate)
此方法可用于查找CRL条目间接CRL,这意味着包含来自其他比CRL Issuer发行条目CRL。默认实现将只返回由发行人发行的证书CRL条目。子类,希望支持间接CRLs应重写此方法。
certificate
-证书的条目是要抬头
NullPointerException
如果证书是无效的
public abstract Set<? extends X509CRLEntry> getRevokedCertificates()
X509CRLEntry
public abstract byte[] getTBSCertList() throws CRLException
tbsCertList
。这可以用来独立验证签名。
CRLException
-如果一个编码错误发生。
public abstract byte[] getSignature()
signature
值(原始签名位)从CRL。ASN。这1的定义是:
签名位串
public abstract String getSigAlgName()
algorithmidentifier签名算法algorithmidentifier::=序列{算法对象标识符,参数定义的算法可选}-包含类型的值——注册用的——算法对象标识符值
该算法的名字是从algorithm
OID字符串确定。
public abstract String getSigAlgOID()
看到有关ASN getSigAlgName
1定义。
public abstract byte[] getSigAlgParams()
AlgorithmParameters
和实例化的名称由
getSigAlgName
。
看到有关ASN getSigAlgName
1定义。
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.