JavaTM 2 Platform
Standard Ed. 6

javax.crypto
類別 ExemptionMechanismSpi

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

public abstract class ExemptionMechanismSpi
extends Object

此類別為 ExemptionMechanism 類別定義了服務提供者介面 (SPI)。此類別中的所有抽象方法都必須由希望提供特定豁免機制實作的各個加密服務提供者來實作。

從以下版本開始:
1.4

建構子摘要
ExemptionMechanismSpi()
           
 
方法摘要
protected abstract  byte[] engineGenExemptionBlob()
          產生豁免機制密鑰 blob。
protected abstract  int engineGenExemptionBlob(byte[] output, int outputOffset)
          產生豁免機制密鑰 blob 並將結果存儲在從 outputOffset(包括)開始的 output 緩衝區中。
protected abstract  int engineGetOutputSize(int inputLen)
          給定了輸入長度 inputLen (以位元組為單位)的情況下,返回用於保存下一個 engineGenExemptionBlob 操作結果所需的輸出緩衝區長度的位元組長度。
protected abstract  void engineInit(Key key)
          用密鑰初始化此豁免機制。
protected abstract  void engineInit(Key key, AlgorithmParameters params)
          用一個密鑰和一組演算法參數初始化此豁免機制。
protected abstract  void engineInit(Key key, AlgorithmParameterSpec params)
          用一個密鑰和一組演算法參數初始化此豁免機制。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

ExemptionMechanismSpi

public ExemptionMechanismSpi()
方法詳細資訊

engineGetOutputSize

protected abstract int engineGetOutputSize(int inputLen)
給定了輸入長度 inputLen (以位元組為單位)的情況下,返回用於保存下一個 engineGenExemptionBlob 操作結果所需的輸出緩衝區長度的位元組長度。

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

參數:
inputLen - 輸入長度(以位元組為單位)
返回:
所需的輸出緩衝區大小(以位元組為單位)

engineInit

protected abstract void engineInit(Key key)
                            throws InvalidKeyException,
                                   ExemptionMechanismException
用密鑰初始化此豁免機制。

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

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

engineInit

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

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

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

engineInit

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

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

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

engineGenExemptionBlob

protected abstract byte[] engineGenExemptionBlob()
                                          throws ExemptionMechanismException
產生豁免機制密鑰 blob。

返回:
具有結果密鑰 blob 的新緩衝區。
拋出:
ExemptionMechanismException - 如果產生過程中出現問題。

engineGenExemptionBlob

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

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

參數:
output - 用於保存結果的緩衝區
outputOffset - output 中的偏移量,即結果保存的位置
返回:
output 中存儲的位元組數
拋出:
ShortBufferException - 如果給定的輸出緩衝區太小無法保存該結果。
ExemptionMechanismException - 如果產生過程中出現問題。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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