JavaTM 2 Platform
Standard Ed. 6

java.security
類別 KeyStoreSpi

java.lang.Object
  繼承者 java.security.KeyStoreSpi

public abstract class KeyStoreSpi
extends Object

此類別為 KeyStore 類別定義服務提供者介面 (SPI)。希望提供特定 keystore 型別的 keystore 實作的每個加密服務提供者必須實作此類別中所有的抽象方法。

從以下版本開始:
1.2
另請參見:
KeyStore

建構子摘要
KeyStoreSpi()
           
 
方法摘要
abstract  Enumeration<String> engineAliases()
          列出此 keystore 的所有別名。
abstract  boolean engineContainsAlias(String alias)
          檢查給定別名是否存在於此 keystore 中。
abstract  void engineDeleteEntry(String alias)
          刪除由此 keystore 中給定的別名標識的項。
 boolean engineEntryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass)
          確定指定 alias 的 keystore Entry 是否是指定 entryClass 的實例或子類別。
abstract  Certificate engineGetCertificate(String alias)
          返回與給定別名關聯的證書。
abstract  String engineGetCertificateAlias(Certificate cert)
          返回其證書和給定證書比對的第一個 keystore 項的名稱(別名)。
abstract  Certificate[] engineGetCertificateChain(String alias)
          返回與給定別名關聯的證書鏈。
abstract  Date engineGetCreationDate(String alias)
          返回該別名標識的項的創建日期。
 KeyStore.Entry engineGetEntry(String alias, KeyStore.ProtectionParameter protParam)
          使用指定保護參數獲取指定別名的 KeyStore.Entry
abstract  Key engineGetKey(String alias, char[] password)
          返回與給定別名關聯的密鑰,使用給定密碼恢復它。
abstract  boolean engineIsCertificateEntry(String alias)
          如果給定別名標識的項是通過調用 setCertificateEntry 或者調用使用 TrustedCertificateEntry 作為參數的 setEntry 來創建的,則返回 true。
abstract  boolean engineIsKeyEntry(String alias)
          如果給定別名標識的項是通過調用 setKeyEntry 或者調用使用 PrivateKeyEntrySecretKeyEntry 作為參數的 setEntry 創建的,則返回 true。
abstract  void engineLoad(InputStream stream, char[] password)
          從給定的輸入串流中載入此 KeyStore。
 void engineLoad(KeyStore.LoadStoreParameter param)
          使用給定的 KeyStore.LoadStoreParameter 載入該 keystore。
abstract  void engineSetCertificateEntry(String alias, Certificate cert)
          將給定證書分派給給定別名。
 void engineSetEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam)
          用指定別名保存 KeyStore.Entry
abstract  void engineSetKeyEntry(String alias, byte[] key, Certificate[] chain)
          將給定密鑰(已經被保護)分派給給定別名。
abstract  void engineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain)
          將給定的密鑰分派給給定的別名,用給定的密碼保護它。
abstract  int engineSize()
          獲取此 keystore 中項的數目。
 void engineStore(KeyStore.LoadStoreParameter param)
          使用給定的 KeyStore.LoadStoreParmeter 存儲此 keystore。
abstract  void engineStore(OutputStream stream, char[] password)
          將此 keystore 存儲到給定輸出串流中,並用給定的密碼保護其完整性。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

KeyStoreSpi

public KeyStoreSpi()
方法詳細資訊

engineGetKey

public abstract Key engineGetKey(String alias,
                                 char[] password)
                          throws NoSuchAlgorithmException,
                                 UnrecoverableKeyException
返回與給定別名關聯的密鑰,使用給定密碼恢復它。必須通過調用 setKeyEntry 或者調用使用 PrivateKeyEntrySecretKeyEntry 作為參數的 setEntry 將密鑰與別名關聯。

參數:
alias - 別名
password - 恢復密鑰所用的密碼
返回:
請求的密鑰,如果給定別名不存在或不標識與密鑰相關的項,則返回 null。
拋出:
NoSuchAlgorithmException - 如果不能找到恢復密鑰的演算法
UnrecoverableKeyException - 如果不能恢復密鑰(例如,給定的密碼錯誤)。

engineGetCertificateChain

public abstract Certificate[] engineGetCertificateChain(String alias)
返回與給定別名關聯的證書鏈。必須通過調用 setKeyEntry,或者調用使用 PrivateKeyEntry 做參數的 setEntry 將密鑰與別名關聯。

參數:
alias - 別名
返回:
證書鏈(按使用者證書在前根證書授權中心在後的順序),如果給定別名不存在或不包含證書鏈,則返回 null

engineGetCertificate

public abstract Certificate engineGetCertificate(String alias)
返回與給定別名關聯的證書。

如果給定的別名標識通過調用 setCertificateEntry 創建的項,或標識通過調用使用 TrustedCertificateEntry 參數的 setEntry 創建的項,那麼返回包含在該項中的可信證書。

如果給定的別名標識通過調用 setKeyEntry 創建的項,或標識通過調用使用 PrivateKeyEntry 作為參數的 setEntry 創建的項,那麼返回該項中證書鏈(如果存在證書鏈)的第一個元素。

參數:
alias - 別名
返回:
證書,如果給定別名不存在或不包含證書,則返回 null。

engineGetCreationDate

public abstract Date engineGetCreationDate(String alias)
返回該別名標識的項的創建日期。

參數:
alias - 別名
返回:
此項的創建日期,如果給定的別名不存在,則返回 null

engineSetKeyEntry

public abstract void engineSetKeyEntry(String alias,
                                       Key key,
                                       char[] password,
                                       Certificate[] chain)
                                throws KeyStoreException
將給定的密鑰分派給給定的別名,用給定的密碼保護它。

如果給定密鑰的型別為 java.security.PrivateKey 型別,則它必須附帶證明相應公鑰的證書鏈。

如果給定的別名已經存在,則與別名關聯的 keystore 資訊被給定的密鑰(可能和證書鏈)覆寫。

參數:
alias - 別名
key - 要與別名關聯的密鑰
password - 保護密鑰的密碼
chain - 相應公鑰的證書鏈(只在給定密鑰的型別為 java.security.PrivateKey 時需要)。
拋出:
KeyStoreException - 如果不能保護給定密鑰,或此操作由於某些其他原因而失敗

engineSetKeyEntry

public abstract void engineSetKeyEntry(String alias,
                                       byte[] key,
                                       Certificate[] chain)
                                throws KeyStoreException
將給定密鑰(已經被保護)分派給給定別名。

如果被保護密鑰的型別為 java.security.PrivateKey,則它必須附帶證明相應公鑰的證書鏈。

如果給定的別名已經存在,則與別名關聯的 keystore 資訊被給定的密鑰(可能和證書鏈)覆寫。

參數:
alias - 別名
key - 要與別名關聯的密鑰(以受保護格式)
chain - 相應公鑰的證書鏈(只在受保護密鑰的型別為 java.security.PrivateKey 時有用)。
拋出:
KeyStoreException - 如果此操作失敗。

engineSetCertificateEntry

public abstract void engineSetCertificateEntry(String alias,
                                               Certificate cert)
                                        throws KeyStoreException
將給定證書分派給給定別名。

如果給定的別名標識通過調用 setCertificateEntry 創建的現有項,或者標識通過調用使用 TrustedCertificateEntry 作為參數的 setEntry 創建的現有項,那麼現有項中的可信證書被給定證書覆寫。

參數:
alias - 別名
cert - 證書
拋出:
KeyStoreException - 如果給定別名已存在且不標識一個套件含可信任證書的項,或此操作由於其他某些原因而失敗。

engineDeleteEntry

public abstract void engineDeleteEntry(String alias)
                                throws KeyStoreException
刪除由此 keystore 中給定的別名標識的項。

參數:
alias - 別名
拋出:
KeyStoreException - 如果該項不能被移除

engineAliases

public abstract Enumeration<String> engineAliases()
列出此 keystore 的所有別名。

返回:
別名的列舉

engineContainsAlias

public abstract boolean engineContainsAlias(String alias)
檢查給定別名是否存在於此 keystore 中。

參數:
alias - 別名
返回:
如果別名存在,則返回 true;否則,返回 false

engineSize

public abstract int engineSize()
獲取此 keystore 中項的數目。

返回:
此 keystore 中的項的數目

engineIsKeyEntry

public abstract boolean engineIsKeyEntry(String alias)
如果給定別名標識的項是通過調用 setKeyEntry 或者調用使用 PrivateKeyEntrySecretKeyEntry 作為參數的 setEntry 創建的,則返回 true。

參數:
alias - 要檢查的 keystore 項的別名
返回:
如果給定別名標識的項與密鑰相關,則返回 true;否則返回 false。

engineIsCertificateEntry

public abstract boolean engineIsCertificateEntry(String alias)
如果給定別名標識的項是通過調用 setCertificateEntry 或者調用使用 TrustedCertificateEntry 作為參數的 setEntry 來創建的,則返回 true。

參數:
alias - 要檢查的 keystore 項的別名
返回:
如果給定別名標識的項包含一個可信證書,則返回 true;否則,返回 false。

engineGetCertificateAlias

public abstract String engineGetCertificateAlias(Certificate cert)
返回其證書和給定證書比對的第一個 keystore 項的名稱(別名)。

此方法試圖將給定證書與每一個 keystore 項相比對。如果將被考慮的項是通過調用 setCertificateEntry 或者調用使用 TrustedCertificateEntry 作為參數的 setEntry 創建的,則將給定證書與該項的證書進行比較。

如果將被考慮的項是通過調用 setKeyEntry 或者調用使用 PrivateKeyEntry 作為參數的 setEntry 創建的,則將給定證書與該項證書鏈的第一個元素進行比較。

參數:
cert - 要比對的證書
返回:
帶有比對證書的第一個項的別名;如果在此 keystore 中沒有此類別項存在,則返回 null。

engineStore

public abstract void engineStore(OutputStream stream,
                                 char[] password)
                          throws IOException,
                                 NoSuchAlgorithmException,
                                 CertificateException
將此 keystore 存儲到給定輸出串流中,並用給定的密碼保護其完整性。

參數:
stream - 要寫入此 keystore 的輸出串流。
password - 產生 keystore 完整性檢驗的密碼
拋出:
IOException - 如果存在資料的 I/O 問題
NoSuchAlgorithmException - 如果不能找到恰當的資料完整性演算法
CertificateException - 如果包含在 keystore 資料中的任何證書不能被存儲

engineStore

public void engineStore(KeyStore.LoadStoreParameter param)
                 throws IOException,
                        NoSuchAlgorithmException,
                        CertificateException
使用給定的 KeyStore.LoadStoreParmeter 存儲此 keystore。

參數:
param - 指出存儲 keystore 的方式的 KeyStore.LoadStoreParmeter,可以為 null
拋出:
IllegalArgumentException - 如果給定的 KeyStore.LoadStoreParmeter 輸入無法識別
IOException - 如果存在資料 I/O 問題
NoSuchAlgorithmException - 如果不能找到恰當的資料完整性演算法
CertificateException - 如果 keystore 資料中的任何證書不能被存儲
從以下版本開始:
1.5

engineLoad

public abstract void engineLoad(InputStream stream,
                                char[] password)
                         throws IOException,
                                NoSuchAlgorithmException,
                                CertificateException
從給定的輸入串流中載入此 KeyStore。

可能給出密碼來解鎖 keystore(例如駐留在硬體標記設備上的 keystore)或檢驗 keystore 資料的完整性。如果沒有給出用於完整性檢驗的密碼,那麼就不會執行完整性檢驗。

參數:
stream - 從其載入 keystore 的輸入串流,或 null
password - 用來檢驗 keystore 完整性的密碼,用來解鎖 keystore 的密碼,或 null
拋出:
IOException - 如果存在 keystore 資料的 I/O 或格式問題,如果需要密碼卻沒有給出,或者給出的密碼錯誤。如果錯誤是由於密碼錯誤,則 IOExceptioncause 應該是一個 UnrecoverableKeyException
NoSuchAlgorithmException - 如果不能找到用來檢驗 keystore 完整性的演算法
CertificateException - 如果不能載入 keystore 中的任何證書

engineLoad

public void engineLoad(KeyStore.LoadStoreParameter param)
                throws IOException,
                       NoSuchAlgorithmException,
                       CertificateException
使用給定的 KeyStore.LoadStoreParameter 載入該 keystore。

注意,如果此 KeyStore 已經被載入,則它將再次從給定參數中被初始化和載入。

參數:
param - 指出載入 keystore 的方式的 KeyStore.LoadStoreParameter,可以為 null
拋出:
IllegalArgumentException - 如果給定的 KeyStore.LoadStoreParameter 輸入無法識別
IOException - 如果存在 keystore 資料的 I/O 或格式問題。如果錯誤是由於 ProtectionParameter 不正確(如密碼錯誤),則 IOExceptioncause 應該是一個 UnrecoverableKeyException
NoSuchAlgorithmException - 如果不能找到用來檢驗 keystore 完整性的演算法
CertificateException - 如果不能載入 keystore 中的任何證書
從以下版本開始:
1.5

engineGetEntry

public KeyStore.Entry engineGetEntry(String alias,
                                     KeyStore.ProtectionParameter protParam)
                              throws KeyStoreException,
                                     NoSuchAlgorithmException,
                                     UnrecoverableEntryException
使用指定保護參數獲取指定別名的 KeyStore.Entry

參數:
alias - 獲取此別名的 KeyStore.Entry
protParam - 用來保護 EntryProtectionParameter,可以為 null
返回:
指定別名的 KeyStore.Entry;如果不存在這樣的項,則返回 null
拋出:
KeyStoreException - 如果操作失敗
NoSuchAlgorithmException - 如果不能找到恢復項的演算法
UnrecoverableEntryException - 如果指定的 protParam 不足或無效
UnrecoverableKeyException - 如果該項是 PrivateKeyEntrySecretKeyEntry 並且指定的 protParam 不包含恢復密鑰所需的資訊(如密碼錯誤)
從以下版本開始:
1.5

engineSetEntry

public void engineSetEntry(String alias,
                           KeyStore.Entry entry,
                           KeyStore.ProtectionParameter protParam)
                    throws KeyStoreException
用指定別名保存 KeyStore.Entry。指定的保護參數用來保護 Entry

如果指定別名的項已經存在,它將被覆寫。

參數:
alias - 以此別名保存 KeyStore.Entry
entry - 要保存的 Entry
protParam - 用來保護 EntryProtectionParameter,可以為 null
拋出:
KeyStoreException - 如果此操作失敗
從以下版本開始:
1.5

engineEntryInstanceOf

public boolean engineEntryInstanceOf(String alias,
                                     Class<? extends KeyStore.Entry> entryClass)
確定指定 alias 的 keystore Entry 是否是指定 entryClass 的實例或子類別。

參數:
alias - 別名
entryClass - 項的類別
返回:
如果指定 alias 的 keystore Entry 是指定 entryClass 的實例或子類別,則返回 true;否則返回 false。
從以下版本開始:
1.5

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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