|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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 中的 equalsother - 要與此 CRL 進行相等性測試的物件。
Object.hashCode(),
Hashtablepublic int hashCode()
Object 中的 hashCodeObject.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 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
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 的發佈方(發佈方標識名)值。
建議子類別覆寫此方法。
X500Principalpublic 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 項的證書的序列號
X509CRLEntrypublic 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。