JavaTM 2 Platform
Standard Ed. 6

java.security.cert
類別 X509CRLSelector

java.lang.Object
  繼承者 java.security.cert.X509CRLSelector
所有已實作的介面:
Cloneable, CRLSelector

public class X509CRLSelector
extends Object
implements CRLSelector

選擇與所有指定標準相比對的 X509CRLCRLSelector。從 CertStore 中選擇 CRL 以檢查特定證書的撤消狀態時,此類別特別有用。

最初建構 X509CRLSelector 時,它沒有啟用任何標準,並且每個 get 方法都返回一個預設值 (null)。因此,對於任意 X509CRL 而言,match 方法將返回 true。通常,啟用多種標準(例如通過調用 setIssuerssetDateAndTime),然後將 X509CRLSelector 傳遞到 CertStore.getCRLs 或某個類似方法。

有關 X.509 CRL 各欄位和下面所述各擴展的定義,請參閱 RFC 2459。

共時存取

除非另行指定,否則此類別中所定義的方法不是執行緒安全的。需要共時存取單個物件的多個執行緒應該在它們之間實作同步並提供所需的鎖定。對於每個執行緒都操作一個不同物件的多個執行緒而言,無需實作同步。

從以下版本開始:
1.4
另請參見:
CRLSelector, X509CRL

建構子摘要
X509CRLSelector()
          創建一個 X509CRLSelector
 
方法摘要
 void addIssuer(X500Principal issuer)
          向 issuerNames 標準中添加名稱。
 void addIssuerName(byte[] name)
          向 issuerNames 標準中添加名稱。
 void addIssuerName(String name)
          已過時,使用 addIssuer(X500Principal)addIssuerName(byte[]) 替代。
 Object clone()
          返回此物件的副本。
 X509Certificate getCertificateChecking()
          返回要檢查的證書。
 Date getDateAndTime()
          返回 dateAndTime 標準。
 Collection<Object> getIssuerNames()
          返回該 issuerNames 標準的一個副本。
 Collection<X500Principal> getIssuers()
          返回 issuerNames 標準。
 BigInteger getMaxCRL()
          返回 maxCRLNumber 標準。
 BigInteger getMinCRL()
          返回 minCRLNumber 標準。
 boolean match(CRL crl)
          決定是否應該選擇某個 CRL
 void setCertificateChecking(X509Certificate cert)
          設置要檢查的證書。
 void setDateAndTime(Date dateAndTime)
          設置 dateAndTime 標準。
 void setIssuerNames(Collection<?> names)
          注意:請使用 setIssuers(Collection) 方法,或者使用此方法時僅指定 byte 陣列形式的標識名。
 void setIssuers(Collection<X500Principal> issuers)
          設置 issuerNames 標準。
 void setMaxCRLNumber(BigInteger maxCRL)
          設置 maxCRLNumber 標準。
 void setMinCRLNumber(BigInteger minCRL)
          設置 minCRLNumber 標準。
 String toString()
          返回該 X509CRLSelector 的可列印表示形式。
 
從類別 java.lang.Object 繼承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

X509CRLSelector

public X509CRLSelector()
創建一個 X509CRLSelector。最初未設置任何標準,所以任何 X509CRL 都比對。

方法詳細資訊

setIssuers

public void setIssuers(Collection<X500Principal> issuers)
設置 issuerNames 標準。X509CRL 中的發佈方標識名必須至少與某個指定的標識名相比對。如果指定的標識名為 null,則將比對任意發佈方標識名。

此方法允許調用方(使用單個方法調用)指定 X509CRL 可能包含的全部發佈方名稱集。指定的值會替換 issuerNames 標準以前的值。

names 參數(如果不為 null)是一個 X500PrincipalCollection

注意,names 參數可以包含重複的標識名,但是可能從 getIssuers 方法返回的名稱 Collection 中將其移除。

注意,要對該 Collection 執行複製以防後續修改。

參數:
issuers - X500Principals 的 Collection(或者為 null
從以下版本開始:
1.5
另請參見:
getIssuers()

setIssuerNames

public void setIssuerNames(Collection<?> names)
                    throws IOException
注意:請使用 setIssuers(Collection) 方法,或者使用此方法時僅指定 byte 陣列形式的標識名。有關更多資訊,請參閱 addIssuerName(String)

設置 issuerNames 標準。X509CRL 中的發佈方標識名必須至少與某個指定的標識名相比對。如果指定的標識名為 null,則將比對任意發佈方標識名。

此方法允許調用方(使用單個方法調用)指定 X509CRL 可能包含的全部發佈方名稱集。指定的值會替換 issuerNames 標準以前的值。

names 參數(如果不為 null)是一個名稱的 Collection。每個名稱都是一個 String 或 byte 陣列(分別為 RFC 2253 或 ASN.1 DER 編碼形式),表示一個標識名。如果為此參數提供 null 值,則不執行 issuerNames 檢查。

注意,names 參數可以包含重複的標識名,但是可能從 getIssuerNames 方法返回的名稱 Collection 中將其移除。

如果以 byte 陣列的形式指定名稱,那麼它應該套件含單個 DER 編碼形式的標識名,正如 X.501 中定義的一樣。此結構的 ASN.1 表示如下:


 Name ::= CHOICE {
   RDNSequence }

 RDNSequence ::= SEQUENCE OF RelativeDistinguishedName

 RelativeDistinguishedName ::=
   SET SIZE (1 .. MAX) OF AttributeTypeAndValue

 AttributeTypeAndValue ::= SEQUENCE {
   type     AttributeType,
   value    AttributeValue }

 AttributeType ::= OBJECT IDENTIFIER

 AttributeValue ::= ANY DEFINED BY AttributeType
 ....
 DirectoryString ::= CHOICE {
       teletexString           TeletexString (SIZE (1..MAX)),
       printableString         PrintableString (SIZE (1..MAX)),
       universalString         UniversalString (SIZE (1..MAX)),
       utf8String              UTF8String (SIZE (1.. MAX)),
       bmpString               BMPString (SIZE (1..MAX)) }
 

注意,要對該 Collection 執行深層複製以防後續修改。

參數:
names - 一個名稱 Collection(或者為 null
拋出:
IOException - 如果發生解析錯誤
另請參見:
getIssuerNames()

addIssuer

public void addIssuer(X500Principal issuer)
向 issuerNames 標準中添加名稱。X509CRL 中的發佈方標識名必須至少與某個指定的標識名相比對。

此方法允許調用方向 X509CRL 可能包含的發佈方名稱集中添加一個名稱。將指定的名稱添加到 issuerNames 標準的以前值中。如果指定的名稱是重複的,則忽略它。

參數:
issuer - X500Principal 形式的發佈方
從以下版本開始:
1.5

addIssuerName

public void addIssuerName(String name)
                   throws IOException
已過時,使用 addIssuer(X500Principal)addIssuerName(byte[]) 替代。由於某些 RFC 2253 String 形式的標識名中會丟失編碼資訊,所以當此方法與某些 CRL 不比對時不應該依賴它。

向 issuerNames 標準中添加名稱。X509CRL 中的發佈方標識名必須至少與某個指定的標識名相比對。

此方法允許調用方向 X509CRL 可能包含的發佈方名稱集中添加一個名稱。將指定的名稱添加到 issuerNames 標準的以前值中。如果指定的名稱是重複的,則忽略它。

參數:
name - RFC 2253 形式的名稱
拋出:
IOException - 如果發生解析錯誤

addIssuerName

public void addIssuerName(byte[] name)
                   throws IOException
向 issuerNames 標準中添加名稱。X509CRL 中的發佈方標識名必須至少與某個指定的標識名相比對。

此方法允許調用方向 X509CRL 可能包含的發佈方名稱集中添加一個名稱。將指定的名稱添加到 issuerNames 標準的以前值中。如果指定的名稱是重複的,則忽略它。如果以 byte 陣列的形式指定名稱,那麼它應該套件含單個 DER 編碼形式的標識名,正如 X.501 中定義的一樣。此結構的 ASN.1 表示如下:

以 byte 陣列的形式提供該名稱。此 byte 陣列應該套件含單個 DER 編碼形式的標識名,正如 X.501 中定義的一樣。setIssuerNames(Collection names) 的文檔中提供了此結構的 ASN.1 表示。

注意,要複製此處提供的 byte 陣列以防後續修改。

參數:
name - 套件含 ASN.1 DER 編碼形式名稱的 byte 陣列
拋出:
IOException - 如果發生解析錯誤

setMinCRLNumber

public void setMinCRLNumber(BigInteger minCRL)
設置 minCRLNumber 標準。X509CRL 具有的 CRL 數字擴展的值必須大於或等於指定值。如果其值為 null,則不執行 minCRLNumber 檢查。

參數:
minCRL - 接受的最小 CRL 數字(或者為 null

setMaxCRLNumber

public void setMaxCRLNumber(BigInteger maxCRL)
設置 maxCRLNumber 標準。X509CRL 具有的 CRL 數字擴展的值必須小於等於指定值。如果其值為 null,則不執行 maxCRLNumber 檢查。

參數:
maxCRL - 接受的最大 CRL 數字(或者為 null

setDateAndTime

public void setDateAndTime(Date dateAndTime)
設置 dateAndTime 標準。指定的日期必須等於或遲於 X509CRL 的 thisUpdate 元件的日期,且早於 nextUpdate 元件的值日期。如果 X509CRL 不包含 nextUpdate 元件,則沒有比對。如果其值為 null,則不執行 dateAndTime 檢查。

注意,要複製此處提供的 Date 以防後續修改。

參數:
dateAndTime - 要進行比對的 Date(或者為 null
另請參見:
getDateAndTime()

setCertificateChecking

public void setCertificateChecking(X509Certificate cert)
設置要檢查的證書。這不是一個標準。相反,這是一個可選的資訊,在檢查指定證書的撤消狀態時,它可說明 CertStore 找到相關的 CRL。如果指定為 null,則不提供此種可選的資訊。

參數:
cert - 要檢查的 X509Certificate(或者為 null
另請參見:
getCertificateChecking()

getIssuers

public Collection<X500Principal> getIssuers()
返回 issuerNames 標準。X509CRL 中的發佈方標識名必須至少與某個指定的標識名相比對。如果返回值為 null,則任意發佈方標識名都比對。

如果返回值不為 null,則是一個 X500Principal 的不可修改的 Collection

返回:
一個不可修改的名稱 Collection(或者為 null
從以下版本開始:
1.5
另請參見:
setIssuers(java.util.Collection)

getIssuerNames

public Collection<Object> getIssuerNames()
返回該 issuerNames 標準的一個副本。X509CRL 中的發佈方標識名必須至少與某個指定的標識名相比對。如果返回值為 null,則任意發佈方標識名都比對。

如果返回值不為 null,則是一個名稱 Collection。每個名稱都是一個 String 或 byte 陣列(分別為 RFC 2253 或 ASN.1 DER 編碼形式),表示一個標識名。注意,返回的 Collection 可能包含重複的名稱。

如果以 byte 陣列的形式指定名稱,那麼它應該套件含單個 DER 編碼形式的標識名,正如 X.501 中定義的一樣。setIssuerNames(Collection names) 的文檔中給出了此結構的 ASN.1 表示。

注意,要對該 Collection 執行深層複製以防後續修改。

返回:
一個名稱 Collection(或者為 null
另請參見:
setIssuerNames(java.util.Collection)

getMinCRL

public BigInteger getMinCRL()
返回 minCRLNumber 標準。X509CRL 具有的 CRL 數字擴展的值必須大於或等於指定值。如果其值為 null,則不執行 minCRLNumber 檢查。

返回:
接受的最小 CRL 數字(或者為 null

getMaxCRL

public BigInteger getMaxCRL()
返回 maxCRLNumber 標準。X509CRL 具有的 CRL 數字擴展的值必須小於等於指定值。如果其值為 null,則不執行 maxCRLNumber 檢查。

返回:
接受的最大 CRL 數字(或者為 null

getDateAndTime

public Date getDateAndTime()
返回 dateAndTime 標準。指定的日期必須等於或遲於 X509CRL 的 thisUpdate 元件的日期,且早於 nextUpdate 元件的日期。如果 X509CRL 不包含 nextUpdate 元件,則沒有比對。如果其值為 null,則不執行 dateAndTime 檢查。

注意,要複製返回的 Date 以防後續修改。

返回:
要進行比對的 Date(或者為 null
另請參見:
setDateAndTime(java.util.Date)

getCertificateChecking

public X509Certificate getCertificateChecking()
返回要檢查的證書。這不是一個標準。相反,這是一個可選的資訊,在檢查指定證書的撤消狀態時,它可說明 CertStore 找到相關的 CRL。如果返回值為 null,則不提供此種可選的資訊。

返回:
要檢查的證書(或者為 null
另請參見:
setCertificateChecking(java.security.cert.X509Certificate)

toString

public String toString()
返回該 X509CRLSelector 的可列印表示形式。

覆寫:
類別 Object 中的 toString
返回:
描述該 X509CRLSelector 內容的 String

match

public boolean match(CRL crl)
決定是否應該選擇某個 CRL

指定者:
介面 CRLSelector 中的 match
參數:
crl - 要檢查的 CRL
返回:
如果應該選擇該 CRL,則返回 true;否則返回 false

clone

public Object clone()
返回此物件的副本。

指定者:
介面 CRLSelector 中的 clone
覆寫:
類別 Object 中的 clone
返回:
副本
另請參見:
Cloneable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only