|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.security.cert.CRL java.security.cert.X509CRL
public abstract class X509CRL
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 |
建構子詳細資訊 |
---|
protected X509CRL()
方法詳細資訊 |
---|
public boolean equals(Object other)
other
物件是一個 instanceof
X509CRL
,則獲取其編碼形式並且與此 CRL 的編碼形式進行比較。
Object
中的 equals
other
- 要與此 CRL 進行相等性測試的物件。
Object.hashCode()
,
Hashtable
public int hashCode()
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public abstract byte[] getEncoded() throws CRLException
CRLException
- 如果發生編碼錯誤。public abstract void verify(PublicKey key) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
key
- 用於進行驗證的 PublicKey。
NoSuchAlgorithmException
- 如果簽章演算法不受支持。
InvalidKeyException
- 如果密鑰不正確。
NoSuchProviderException
- 如果沒有預設的提供者。
SignatureException
- 如果發生簽章錯誤。
CRLException
- 如果發生編碼錯誤。public abstract void verify(PublicKey key, String sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
key
- 用於進行驗證的 PublicKey。sigProvider
- 簽章提供者的名稱。
NoSuchAlgorithmException
- 如果簽章演算法不受支持。
InvalidKeyException
- 如果密鑰不正確。
NoSuchProviderException
- 如果提供者不正確。
SignatureException
- 如果發生簽章錯誤。
CRLException
- 如果發生編碼錯誤。public abstract int getVersion()
version
(版本號)值。此內容的 ASN.1 定義如下:
version Version OPTIONAL, -- if present, must be v2Version ::= INTEGER { v1(0), v2(1), v3(2) } -- v3 does not apply to CRLs but appears for consistency -- with definition of Version for certs
public abstract Principal getIssuerDN()
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
之一。
public X500Principal getIssuerX500Principal()
X500Principal
的形式返回 CRL 的發佈方(發佈方標識名)值。
建議子類別覆寫此方法。
X500Principal
public abstract Date getThisUpdate()
thisUpdate
日期。此內容的 ASN.1 定義如下:
thisUpdate ChoiceOfTime ChoiceOfTime ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }
thisUpdate
日期。public abstract Date getNextUpdate()
nextUpdate
日期。
nextUpdate
日期,如果不存在,則返回 null。public abstract X509CRLEntry getRevokedCertificate(BigInteger serialNumber)
serialNumber
- 要尋找其 CRL 項的證書的序列號
X509CRLEntry
public X509CRLEntry getRevokedCertificate(X509Certificate certificate)
此方法可用於在間接 CRL 中尋找 CRL 項,間接 CRL 意味著其中包含來自不同於 CRL 發佈方的發佈方的項。預設的實作只返回由 CRL 發佈方所發佈的證書項。希望支持間接 CRL 的子類別應該覆寫此方法。
certificate
- 證書,在 CRL 中尋找此證書的 CRL 項
NullPointerException
- 如果 certificate 為 nullpublic abstract Set<? extends X509CRLEntry> getRevokedCertificates()
X509CRLEntry
public abstract byte[] getTBSCertList() throws CRLException
tbsCertList
。這可用於獨立驗證簽章。
CRLException
- 如果發生編碼錯誤。public abstract byte[] getSignature()
signature
值(原始簽章位)。此內容的 ASN.1 定義如下:
signature BIT STRING
public abstract String getSigAlgName()
signatureAlgorithm AlgorithmIdentifierAlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } -- contains a value of the type -- registered for use with the -- algorithm object identifier value
根據 algorithm
OID 字元串確定該演算法名。
public abstract String getSigAlgOID()
有關相關的 ASN.1 定義,請參見 getSigAlgName
。
public abstract byte[] getSigAlgParams()
AlgorithmParameters
並使用 getSigAlgName
所返回的名稱進行實例化。
有關相關的 ASN.1 定義,請參見 getSigAlgName
。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。