JavaTM 2 Platform
Standard Ed. 6

javax.crypto
類別 ExemptionMechanism

java.lang.Object
  繼承者 javax.crypto.ExemptionMechanism

public class ExemptionMechanism
extends Object

此類別提供了豁免 (exemption) 機制的功能,例如,密鑰恢復密鑰喚醒密鑰托管

使用豁免機制的應用程序或 applet 比不使用豁免機制的應用程序或 applet 具有更強的加密性能。

從以下版本開始:
1.4

建構子摘要
protected ExemptionMechanism(ExemptionMechanismSpi exmechSpi, Provider provider, String mechanism)
          創建 ExemptionMechanism 物件。
 
方法摘要
protected  void finalize()
          確保不存在對此 ExemptionMechanism 物件存儲的密鑰的參考時,該密鑰將被除去。
 byte[] genExemptionBlob()
          產生豁免機制密鑰 blob。
 int genExemptionBlob(byte[] output)
          產生豁免機制密鑰 blob,並將結果存儲在 output 緩衝區中。
 int genExemptionBlob(byte[] output, int outputOffset)
          產生豁免機制密鑰 blob,並將結果存儲在從 outputOffset(包括)開始的 output 緩衝區中。
static ExemptionMechanism getInstance(String algorithm)
          返回實作指定豁免機制演算法的 ExemptionMechanism 物件。
static ExemptionMechanism getInstance(String algorithm, Provider provider)
          返回實作指定豁免機制演算法的 ExemptionMechanism 物件。
static ExemptionMechanism getInstance(String algorithm, String provider)
          返回實作指定豁免機制演算法的 ExemptionMechanism 物件。
 String getName()
          返回此 ExemptionMechanism 物件的豁免機制名稱。
 int getOutputSize(int inputLen)
          根據給定的輸入長度 inputLen(以位元組為單位),返回保存下一個 genExemptionBlob 操作結果所需的輸出緩衝區長度(以位元組為單位)。
 Provider getProvider()
          返回此 ExemptionMechanism 物件的提供者。
 void init(Key key)
          用密鑰初始化此豁免機制。
 void init(Key key, AlgorithmParameters params)
          用一個密鑰和一組演算法參數初始化此豁免機制。
 void init(Key key, AlgorithmParameterSpec params)
          用一個密鑰和一組演算法參數初始化此豁免機制。
 boolean isCryptoAllowed(Key key)
          返回此豁免機制是否已成功產生結果 blob。
 
從類別 java.lang.Object 繼承的方法
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

ExemptionMechanism

protected ExemptionMechanism(ExemptionMechanismSpi exmechSpi,
                             Provider provider,
                             String mechanism)
創建 ExemptionMechanism 物件。

參數:
exmechSpi - 代理
provider - 提供者
mechanism - 豁免機制
方法詳細資訊

getName

public final String getName()
返回此 ExemptionMechanism 物件的豁免機制名稱。

這與創建此 ExemptionMechanism 物件的 getInstance 調用之一指定的名稱相同。

返回:
ExemptionMechanism 物件的豁免機制名稱。

getInstance

public static final ExemptionMechanism getInstance(String algorithm)
                                            throws NoSuchAlgorithmException
返回實作指定豁免機制演算法的 ExemptionMechanism 物件。

此方法從首選 Provider 開始遍歷已註冊安全提供者列表。返回一個封裝 ExemptionMechanismSpi 實作的新 ExemptionMechanism 物件,該實作取自支持指定演算法的第一個 Provider。

注意,可以通過 Security.getProviders() 方法獲取已註冊提供者列表。

參數:
algorithm - 所請求豁免機制的標準名稱。有關標準豁免機制名稱的資訊,請參閱 Java Cryptography Architecture Reference Guide 中的附錄 A。
返回:
新的 ExemptionMechanism 物件。
拋出:
NullPointerException - 如果 algorithm 為 null。
NoSuchAlgorithmException - 如果沒有 Provider 支持指定演算法的 ExemptionMechanismSpi 實作。
另請參見:
Provider

getInstance

public static final ExemptionMechanism getInstance(String algorithm,
                                                   String provider)
                                            throws NoSuchAlgorithmException,
                                                   NoSuchProviderException
返回實作指定豁免機制演算法的 ExemptionMechanism 物件。

返回一個封裝 ExemptionMechanismSpi 實作的新 ExemptionMechanism 物件,該實作取自指定的提供者。指定提供者必須在安全提供者列表中註冊。

注意,可以通過 Security.getProviders() 方法獲取已註冊提供者列表。

參數:
algorithm - 所請求豁免機制的標準名稱。有關標準豁免機制名稱的資訊,請參閱 Java Cryptography Architecture Reference Guide 中的附錄 A。
provider - 提供者的名稱。
返回:
新的 ExemptionMechanism 物件。
拋出:
NullPointerException - 如果 algorithm 為 null。
NoSuchAlgorithmException - 如果不能從指定提供者獲得指定演算法的 ExemptionMechanismSpi 實作。
NoSuchProviderException - 如果指定提供者未在安全提供者列表中註冊。
IllegalArgumentException - 如果 provider 為 null 或空。
另請參見:
Provider

getInstance

public static final ExemptionMechanism getInstance(String algorithm,
                                                   Provider provider)
                                            throws NoSuchAlgorithmException
返回實作指定豁免機制演算法的 ExemptionMechanism 物件。

返回一個封裝 ExemptionMechanismSpi 實作的新 ExemptionMechanism 物件,該實作取自指定的 Provider 物件。 注意,指定的 Provider 物件無需在提供者列表中註冊。

參數:
algorithm - 所請求豁免機制的標準名稱。有關標準豁免機制名稱的資訊,請參閱 Java Cryptography Architecture Reference Guide 中的附錄 A。
provider - 提供者。
返回:
新的 ExemptionMechanism 物件。
拋出:
NullPointerException - 如果 algorithm 為 null。
NoSuchAlgorithmException - 如果不能從指定 Provider 物件獲得指定演算法的 ExemptionMechanismSpi 實作。
IllegalArgumentException - 如果 provider 為 null。
另請參見:
Provider

getProvider

public final Provider getProvider()
返回此 ExemptionMechanism 物件的提供者。

返回:
ExemptionMechanism 物件的提供者。

isCryptoAllowed

public final boolean isCryptoAllowed(Key key)
                              throws ExemptionMechanismException
返回此豁免機制是否已成功產生結果 blob。

該方法還確保了傳入的密鑰與此豁免機制在初始化和產生階段所使用的密鑰相同。

參數:
key - 加密將使用的密鑰。
返回:
此豁免機制是否已成功產生了相同密鑰的結果 blob;如果 key 為 null,則返回 false。
拋出:
ExemptionMechanismException - 如果在確定此豁免機制物件是否成功產生了結果 blob 的過程中遇到問題。

getOutputSize

public final int getOutputSize(int inputLen)
                        throws IllegalStateException
根據給定的輸入長度 inputLen(以位元組為單位),返回保存下一個 genExemptionBlob 操作結果所需的輸出緩衝區長度(以位元組為單位)。

下一個 genExemptionBlob 調用的實際輸出長度可能小於此方法返回的長度。

參數:
inputLen - 輸入長度(以位元組為單位)
返回:
所需的輸出緩衝區大小(以位元組為單位)
拋出:
IllegalStateException - 如果此豁免機制處於錯誤狀態(例如,尚未初始化)

init

public final void init(Key key)
                throws InvalidKeyException,
                       ExemptionMechanismException
用密鑰初始化此豁免機制。

如果此豁免機制需要演算法參數,而參數無法從給定的 key 派生,則底層豁免機制實作應自己產生所需的參數(使用特定於提供者的預設值);如果演算法參數必須由調用者指定,則會引發 InvalidKeyException

參數:
key - 用於此豁免機制的密鑰
拋出:
InvalidKeyException - 如果給定的密鑰不適合此豁免機制。
ExemptionMechanismException - 如果初始化過程中遇到問題。

init

public final void init(Key key,
                       AlgorithmParameterSpec params)
                throws InvalidKeyException,
                       InvalidAlgorithmParameterException,
                       ExemptionMechanismException
用一個密鑰和一組演算法參數初始化此豁免機制。

如果此豁免機制需要演算法參數,而 params 為 null,則底層豁免機制實作應自己產生所需的參數(使用特定於提供者的預設值);如果演算法參數必須由調用者指定,則會引發 InvalidAlgorithmParameterException

參數:
key - 用於此豁免機制的密鑰
params - 演算法參數
拋出:
InvalidKeyException - 如果給定的密鑰不適合此豁免機制。
InvalidAlgorithmParameterException - 如果給定的演算法參數不適合此豁免機制。
ExemptionMechanismException - 如果初始化過程中遇到問題。

init

public final void init(Key key,
                       AlgorithmParameters params)
                throws InvalidKeyException,
                       InvalidAlgorithmParameterException,
                       ExemptionMechanismException
用一個密鑰和一組演算法參數初始化此豁免機制。

如果此豁免機制需要演算法參數,而 params 為 null,則底層豁免機制實作應自己產生所需的參數(使用特定於提供者的預設值);如果演算法參數必須由調用者指定,則會引發 InvalidAlgorithmParameterException

參數:
key - 用於此豁免機制的密鑰
params - 演算法參數
拋出:
InvalidKeyException - 如果給定的密鑰不適合此豁免機制。
InvalidAlgorithmParameterException - 如果給定的演算法參數不適合此豁免機制。
ExemptionMechanismException - 如果初始化過程中遇到問題。

genExemptionBlob

public final byte[] genExemptionBlob()
                              throws IllegalStateException,
                                     ExemptionMechanismException
產生豁免機制密鑰 blob。

返回:
包含結果密鑰 blob 的新緩衝區。
拋出:
IllegalStateException - 如果此豁免機制處於錯誤狀態(例如,尚未初始化)。
ExemptionMechanismException - 如果產生過程中遇到問題。

genExemptionBlob

public final int genExemptionBlob(byte[] output)
                           throws IllegalStateException,
                                  ShortBufferException,
                                  ExemptionMechanismException
產生豁免機制密鑰 blob,並將結果存儲在 output 緩衝區中。

如果 output 緩衝區太小無法保存該結果,則拋出 ShortBufferException。這種情況下,使用一個稍大的緩衝區再次調用。使用 getOutputSize 確定輸出緩衝區應為多大。

參數:
output - 用於保存結果的緩衝區
返回:
output 中存儲的位元組數
拋出:
IllegalStateException - 如果此豁免機制處於錯誤狀態(例如,尚未初始化)。
ShortBufferException - 如果給定的輸出緩衝區太小無法保存該結果。
ExemptionMechanismException - 如果產生過程中遇到問題。

genExemptionBlob

public final int genExemptionBlob(byte[] output,
                                  int outputOffset)
                           throws IllegalStateException,
                                  ShortBufferException,
                                  ExemptionMechanismException
產生豁免機制密鑰 blob,並將結果存儲在從 outputOffset(包括)開始的 output 緩衝區中。

如果 output 緩衝區太小無法保存該結果,則拋出 ShortBufferException。這種情況下,使用一個稍大的緩衝區再次調用。使用 getOutputSize 確定輸出緩衝區應為多大。

參數:
output - 用於保存結果的緩衝區
outputOffset - output 中存儲結果處的偏移量
返回:
output 中存儲的位元組數
拋出:
IllegalStateException - 如果此豁免機制處於錯誤狀態(例如,尚未初始化)。
ShortBufferException - 如果給定的輸出緩衝區太小無法保存該結果。
ExemptionMechanismException - 如果產生過程中遇到問題。

finalize

protected void finalize()
確保不存在對此 ExemptionMechanism 物件存儲的密鑰的參考時,該密鑰將被除去。

覆寫:
類別 Object 中的 finalize

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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