|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.crypto.KeyAgreementSpi
public abstract class KeyAgreementSpi
此類別為 KeyAgreement
類別定義了服務提供者介面 (SPI)。此類別中的所有抽象方法必須由希望提供特定密鑰一致演算法實作的每個加密服務提供者來實作。
建立共享秘密所涉及的密鑰由某個密鑰產生器(KeyPairGenerator
或 KeyGenerator
,一個 KeyFactory
)來創建,或從密鑰協定協議的中間階段來創建 (engineDoPhase
)。
對於密鑰交換中的每個對應物,需要調用 engineDoPhase
。例如,如果密鑰交換是與其他一個參與者進行的,則需要調用一次 engineDoPhase
,將 lastPhase
標誌設置為 true
。如果密鑰交換是與其他兩個參與者進行的,則需要調用兩次 engineDoPhase
,第一次將 lastPhase
標誌設置為 false
,第二次將它設置為 true
。密鑰交換可能涉及任意數量的參與者。
KeyGenerator
,
SecretKey
建構子摘要 | |
---|---|
KeyAgreementSpi()
|
方法摘要 | |
---|---|
protected abstract Key |
engineDoPhase(Key key,
boolean lastPhase)
用給定密鑰執行此密鑰協定的下一個階段,該給定密鑰是從此密鑰協定中涉及的其他某個參與者那裡接收的。 |
protected abstract byte[] |
engineGenerateSecret()
產生共享秘密密鑰並在新的緩衝區中返回它。 |
protected abstract int |
engineGenerateSecret(byte[] sharedSecret,
int offset)
產生共享秘密密鑰,並將從 offset 開始(包括)的部分放入緩衝區 sharedSecret 。 |
protected abstract SecretKey |
engineGenerateSecret(String algorithm)
創建共享秘密密鑰,並將它作為所請求演算法型別的秘密密鑰物件返回。 |
protected abstract void |
engineInit(Key key,
AlgorithmParameterSpec params,
SecureRandom random)
用給定密鑰、演算法參數集和隨機源初始化此密鑰協定。 |
protected abstract void |
engineInit(Key key,
SecureRandom random)
用給定密鑰和隨機源初始化此密鑰協定。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public KeyAgreementSpi()
方法詳細資訊 |
---|
protected abstract void engineInit(Key key, SecureRandom random) throws InvalidKeyException
如果該密鑰一致演算法需要隨機位元組,則從給定的隨機源 random
中獲取它們。不過,如果底層演算法實作不需要任何隨機位元組,則忽略 random
。
key
- 參與者的私有資訊。例如,對於 Diffie-Hellman 密鑰協定,這應是參與者自己的 Diffie-Hellman 私鑰。random
- 隨機源
InvalidKeyException
- 如果給定的密鑰不適合此密鑰協定,即屬於錯誤型別或有一個不一致的演算法型別。protected abstract void engineInit(Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException
key
- 參與者的私有資訊。例如,對於 Diffie-Hellman 密鑰協定,這應是參與者自己的 Diffie-Hellman 私鑰。params
- 密鑰協定參數random
- 隨機源
InvalidKeyException
- 如果給定的密鑰不適合此密鑰協定,即屬於錯誤型別或有一個不一致的演算法型別。
InvalidAlgorithmParameterException
- 如果給定演算法不適合此密鑰協定。protected abstract Key engineDoPhase(Key key, boolean lastPhase) throws InvalidKeyException, IllegalStateException
key
- 此階段的密鑰。例如,對於兩個參與者之間的 Diffie-Hellman,此密鑰應是其他參與者的 Diffie-Hellman 公鑰。lastPhase
- 指示這是否是此密鑰協定的最後階段的標誌。
InvalidKeyException
- 如果給定密鑰不適合此階段。
IllegalStateException
- 如果尚未初始化此密鑰協定。protected abstract byte[] engineGenerateSecret() throws IllegalStateException
此方法重新設置此 KeyAgreementSpi
物件,以便能夠將它重新用於進一步的密鑰協定。如果沒有使用某個 engineInit
方法重新初始化此密鑰協定,則將相同的私有資訊和演算法參數用於後續密鑰協定。
IllegalStateException
- 如果尚未實作此密鑰協定protected abstract int engineGenerateSecret(byte[] sharedSecret, int offset) throws IllegalStateException, ShortBufferException
offset
開始(包括)的部分放入緩衝區 sharedSecret
。
如果 sharedSecret
緩衝區太小而無法保存該結果,則拋出 ShortBufferException
。在此情況下,應該用更大的輸出緩衝區重複進行此調用。
此方法重新設置此 KeyAgreementSpi
物件,以便能夠將它重新用於進一步的密鑰協定。如果沒有使用某個 engineInit
方法重新初始化此密鑰協定,則將相同的私有資訊和演算法參數用於後續密鑰協定。
sharedSecret
- 共享秘密密鑰的緩衝區offset
- 將存儲共享秘密密鑰的 sharedSecret
中的偏移量
sharedSecret
中的位元組數
IllegalStateException
- 如果尚未實作此密鑰協定
ShortBufferException
- 如果給定輸出緩衝區太小而無法保存該秘密密鑰protected abstract SecretKey engineGenerateSecret(String algorithm) throws IllegalStateException, NoSuchAlgorithmException, InvalidKeyException
此方法重新設置此 KeyAgreementSpi
物件,以便能夠將它重新用於進一步的密鑰協定。如果沒有使用某個 engineInit
方法重新初始化此密鑰協定,則將相同的私有資訊和演算法參數用於後續密鑰協定。
algorithm
- 所請求秘密密鑰的演算法
IllegalStateException
- 如果此密鑰協定尚未實作
NoSuchAlgorithmException
- 如果所請求的秘密密鑰演算法不可用
InvalidKeyException
- 如果無法使用共享秘密密鑰材料產生所請求演算法型別的秘密密鑰(例如,密鑰材料太短缺)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。