JavaTM 2 Platform
Standard Ed. 6

java.security.cert
類別 CertificateFactorySpi

java.lang.Object
  繼承者 java.security.cert.CertificateFactorySpi

public abstract class CertificateFactorySpi
extends Object

此類別定義了 CertificateFactory 類別的服務提供者介面 (SPI)。希望為特定的證書型別(如 X.509)提供 CertificateFactory 實作的每個加密服務提供者都必須實作此類別中的所有抽象方法。

CertificateFactory 用於根據相關的編碼產生證書、證書路徑 (CertPath) 和證書撤消列表 (CRL) 物件。

X.509 的 CertificateFactory 返回的證書必須是 java.security.cert.X509Certificate 的實例,CRL 的 CertificateFactory 返回的證書則必須是 java.security.cert.X509CRL 的實例。

從以下版本開始:
1.2
另請參見:
CertificateFactory, Certificate, X509Certificate, CertPath, CRL, X509CRL

建構子摘要
CertificateFactorySpi()
           
 
方法摘要
abstract  Certificate engineGenerateCertificate(InputStream inStream)
          產生一個證書對象並使用從輸入串流 inStream 中讀取的資料對它進行初始化。
abstract  Collection<? extends Certificate> engineGenerateCertificates(InputStream inStream)
          返回從給定輸入串流 inStream 中讀取的證書的集合視圖(可能為空)。
 CertPath engineGenerateCertPath(InputStream inStream)
          產生一個 CertPath 物件,並使用從 InputStream inStream 中讀取的資料對它進行初始化。
 CertPath engineGenerateCertPath(InputStream inStream, String encoding)
          產生一個 CertPath 物件,並使用從 InputStream inStream 中讀取的資料對它進行初始化。
 CertPath engineGenerateCertPath(List<? extends Certificate> certificates)
          產生一個 CertPath 物件,並使用 CertificateList 對它進行初始化。
abstract  CRL engineGenerateCRL(InputStream inStream)
          產生一個證書撤消列表 (CRL) 物件,並使用從輸入串流 inStream 中讀取的資料對它進行初始化。
abstract  Collection<? extends CRL> engineGenerateCRLs(InputStream inStream)
          返回從給定輸入串流 inStream 中讀取的 CRL 的集合視圖(可能為空)。
 Iterator<String> engineGetCertPathEncodings()
          返回此 CertificateFactory 支持的 CertPath 編碼的迭代器,預設編碼方式優先。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

CertificateFactorySpi

public CertificateFactorySpi()
方法詳細資訊

engineGenerateCertificate

public abstract Certificate engineGenerateCertificate(InputStream inStream)
                                               throws CertificateException
產生一個證書對象並使用從輸入串流 inStream 中讀取的資料對它進行初始化。

為了利用此 CertificateFactory 所支持的專門的證書格式,可將返回的證書物件的型別強制轉換為相應的證書類別。例如,如果此 CertificateFactory 實作 X.509 證書,則可將返回的證書物件的型別強制轉換為 X509Certificate 類別。

在用於 X.509 證書的 CertificateFactory 情況中,inStream 中提供的證書必須是 DER 編碼的,並且可以二進制或可列印的 (Base64) 編碼形式提供。如果以 Base64 編碼的形式提供該證書,則該證書必須由 -----BEGIN CERTIFICATE----- 語句開始,由 -----END CERTIFICATE----- 語句結束。

注意,如果給定的輸入串流不支持 markreset,則此方法將使用整個輸入串流。否則,每次調用此方法都需要一個證書,並且將輸入串流的讀取位置定位在固有證書結尾標記後的下一個可用位元組處。如果輸入串流中的資料不包含固有的證書結尾標記(不同於 EOF),並且在解析該證書後有一個尾隨資料,則拋出 CertificateException

參數:
inStream - 帶有證書資料的輸入串流。
返回:
已使用輸入串流中的資料初始化的證書物件。
拋出:
CertificateException - 如果發生解析錯誤。

engineGenerateCertPath

public CertPath engineGenerateCertPath(InputStream inStream)
                                throws CertificateException
產生一個 CertPath 物件,並使用從 InputStream inStream 中讀取的資料對它進行初始化。假定資料是以預設編碼方式進行編碼的。

Java 2 Platform Standard Edition 的 1.4 版本中添加了此方法。為了維持與現有服務提供者的後向相容性,無法 abstract 此方法,並且預設會拋出 UnsupportedOperationException

參數:
inStream - 套件含資料的 InputStream
返回:
已使用 InputStream 中的資料初始化的 CertPath
拋出:
CertificateException - 如果解碼時出現異常
UnsupportedOperationException - 如果不支持此方法
從以下版本開始:
1.4

engineGenerateCertPath

public CertPath engineGenerateCertPath(InputStream inStream,
                                       String encoding)
                                throws CertificateException
產生一個 CertPath 物件,並使用從 InputStream inStream 中讀取的資料對它進行初始化。假定資料是以指定的編碼方式進行編碼的。

Java 2 Platform Standard Edition 的 1.4 版本中添加了此方法。為了維持與現有服務提供者的後向相容性,無法 abstract 此方法,並且預設會拋出 UnsupportedOperationException

參數:
inStream - 套件含資料的 InputStream
encoding - 資料使用的編碼
返回:
已使用 InputStream 中的資料初始化的 CertPath
拋出:
CertificateException - 如果解碼時出現異常或者不支持所請求的編碼
UnsupportedOperationException - 如果不支持此方法
從以下版本開始:
1.4

engineGenerateCertPath

public CertPath engineGenerateCertPath(List<? extends Certificate> certificates)
                                throws CertificateException
產生一個 CertPath 物件,並使用 CertificateList 對它進行初始化。

所提供的證書必須是該 CertificateFactory 所支持的型別。將從提供的 List 物件中複製出這些證書。

Java 2 Platform Standard Edition 的 1.4 版本中添加了此方法。為了維持與現有服務提供者的後向相容性,無法 abstract 此方法,並且預設會拋出 UnsupportedOperationException

參數:
certificates - CertificateList
返回:
已使用所提供的證書列表初始化的 CertPath
拋出:
CertificateException - 如果出現異常
UnsupportedOperationException - 如果不支持此方法
從以下版本開始:
1.4

engineGetCertPathEncodings

public Iterator<String> engineGetCertPathEncodings()
返回此 CertificateFactory 支持的 CertPath 編碼的迭代器,預設編碼方式優先。有關標準編碼名稱的資訊,請參閱 Java Certification Path API Programmer's Guide 中的附錄 A。

試圖修改返回的 Iterator(通過其 remove 方法)會導致拋出 UnsupportedOperationException

Java 2 Platform Standard Edition 的 1.4 版本中添加了此方法。為了維持與現有服務提供者的後向相容性,無法 abstract 此方法,並且預設會拋出 UnsupportedOperationException

返回:
在受支持的 CertPath 編碼名稱(以 String 的形式)上進行迭代的 Iterator
拋出:
UnsupportedOperationException - 如果不支持此方法
從以下版本開始:
1.4

engineGenerateCertificates

public abstract Collection<? extends Certificate> engineGenerateCertificates(InputStream inStream)
                                                                      throws CertificateException
返回從給定輸入串流 inStream 中讀取的證書的集合視圖(可能為空)。

為了利用此 CertificateFactory 所支持的專門的證書格式,可將返回的集合視圖中的每個元素的型別強制轉換為相應的證書類別。例如,如果此 CertificateFactory 實作 X.509 證書,則可將返回集合中的元素的型別強制轉換為 X509Certificate 類別。

在用於 X.509 證書的 CertificateFactory 情況中,inStream 可能包含單個 DER 編碼的證書,這些證書使用 generateCertificate 所描述的格式。另外,inStream 可能包含一個 PKCS#7 證書鏈。這是一個 PKCS#7 SignedData 物件,具有惟一認可 的有效欄位。需要特別指出的是,簽章和內容會被忽略。此格式允許同時下載多個證書。如果沒有證書,則返回一個空集合。

注意,如果給定的輸入串流不支持 markreset,則此方法將使用整個輸入串流。

參數:
inStream - 帶有證書的輸入串流。
返回:
java.security.cert.Certificate 物件的集合視圖(可能為空),用輸入串流中的資料對該物件進行初始化。
拋出:
CertificateException - 如果發生解析錯誤。

engineGenerateCRL

public abstract CRL engineGenerateCRL(InputStream inStream)
                               throws CRLException
產生一個證書撤消列表 (CRL) 物件,並使用從輸入串流 inStream 中讀取的資料對它進行初始化。

為了利用此 CertificateFactory 所支持的專門的 CRL 格式,可將返回的 CRL 物件的型別強制轉換為相應的 CRL 類別。例如,如果此 CertificateFactory 實作 X.509 CRL,則可將返回的 CRL 物件的型別強制轉換為 X509CRL 類別。

注意,如果給定的輸入串流不支持 markreset,則此方法將使用整個輸入串流。否則,每次調用此方法都需要一個 CRL,並且將輸入串流的讀取位置定位在固有 CRL 結尾標記後的下一個可用位元組處。如果輸入串流中的資料不包含固有的 CRL 結尾標記(不同於 EOF),並且在解析該 CRL 後有一個尾隨資料,則拋出 CRLException

參數:
inStream - 帶有 CRL 資料的輸入串流。
返回:
已使用輸入串流中的資料初始化的 CRL 物件。
拋出:
CRLException - 如果發生解析錯誤。

engineGenerateCRLs

public abstract Collection<? extends CRL> engineGenerateCRLs(InputStream inStream)
                                                      throws CRLException
返回從給定輸入串流 inStream 中讀取的 CRL 的集合視圖(可能為空)。

為了利用此 CertificateFactory 所支持的專門的 CRL 格式,可將返回的集合視圖中的每個元素的型別強制轉換為相應的 CRL 類別。例如,如果此 CertificateFactory 實作 X.509 CRL,則可將返回集合中的元素型別強制轉換為 X509CRL 類別。

在用於 X.509 CRL 的 CertificateFactory 情況中,inStream 可能包含單個 DER 編碼的 CRL。另外,inStream 可能包含一個 PKCS#7 CRL 集合。這是一個 PKCS#7 SignedData 物件,具有惟一被 crl 的有效欄位。需要特別指出的是,簽章和內容會被忽略。此格式允許同時下載多個 CRL。如果沒有 CRL,則返回一個空集合。

注意,如果給定的輸入串流不支持 markreset,則此方法將使用整個輸入串流。

參數:
inStream - 帶有 CRL 的輸入串流。
返回:
java.security.cert.CRL 物件的集合視圖(可能為空),用輸入串流中的資料對該物件進行初始化。
拋出:
CRLException - 如果發生解析錯誤。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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