|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.crypto
类 KeyAgreementSpi
java.lang.Object javax.crypto.KeyAgreementSpi
-
public abstract class KeyAgreementSpi
- extends Object
此类为 KeyAgreement
类定义了服务提供程序接口 (SPI)。此类中的所有抽象方法必须由希望提供特定密钥一致算法实现的每个加密服务提供程序来实现。
建立共享秘密所涉及的密钥由某个密钥生成器(KeyPairGenerator
或 KeyGenerator
,一个 KeyFactory
)来创建,或从密钥一致性协议的中间阶段来创建 engineDoPhase
。
对于密钥交换中的每个对应物,需要调用 engineDoPhase
。例如,如果密钥交换是与其他一个参与者进行的,则需要调用一次 engineDoPhase
,将 lastPhase
标志设置为 true
。如果密钥交换是与其他两个参与者进行的,则需要调用两次 engineDoPhase
,第一次将 lastPhase
标志设置为 false
,第二次将它设置为 true
。密钥交换可能涉及任意数量的参与者。
- 从以下版本开始:
- 1.4
- 另请参见:
-
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 |
构造方法详细信息 |
---|
KeyAgreementSpi
public KeyAgreementSpi()
方法详细信息 |
---|
engineInit
protected abstract void engineInit(Key key, SecureRandom random) throws InvalidKeyException
-
用给定密钥和随机源初始化此密钥一致性。给定密钥需要包含此密钥一致性所需的所有算法参数。
如果该密钥一致算法需要随机字节,则从给定的随机源
random
中获得它们。不过,如果基础算法实现不需要任何随机字节,则忽略random
。 -
- 参数:
-
key
- 参与者的私有信息。例如,对于 Diffie-Hellman 密钥一致性,这应是参与者自己的 Diffie-Hellman 私钥。 -
random
- 随机源 - 抛出:
-
InvalidKeyException
- 如果给定的密钥不适合此密钥一致性,即属于错误类型或有一个不一致的算法类型。
engineInit
protected abstract void engineInit(Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException
- 用给定密钥、算法参数集和随机源初始化此密钥一致性。
-
- 参数:
-
key
- 参与者的私有信息。例如,对于 Diffie-Hellman 密钥一致性,这应是参与者自己的 Diffie-Hellman 私钥。 -
params
- 密钥一致性参数 -
random
- 随机源 - 抛出:
-
InvalidKeyException
- 如果给定的密钥不适合此密钥一致性,即属于错误类型或有一个不一致的算法类型。 -
InvalidAlgorithmParameterException
- 如果给定算法不适合此密钥一致性。
engineDoPhase
protected abstract Key engineDoPhase(Key key, boolean lastPhase) throws InvalidKeyException, IllegalStateException
- 用给定密钥执行此密钥一致性的下一个阶段,该给定密钥是从此密钥一致性中涉及的其他某个参与者那里接收的。
-
- 参数:
-
key
- 此阶段的密钥。例如,对于两个参与者之间的 Diffie-Hellman,此密钥应是其他参与者的 Diffie-Hellman 公钥。 -
lastPhase
- 指示这是否是此密钥一致性的最后阶段的标志。 - 返回:
- 从此阶段得到的(中间)密钥;如果此阶段不产生密钥,则返回 null
- 抛出:
-
InvalidKeyException
- 如果给定密钥不适合此阶段。 -
IllegalStateException
- 如果尚未初始化此密钥一致性。
engineGenerateSecret
protected abstract byte[] engineGenerateSecret() throws IllegalStateException
-
生成共享秘密密钥并在新的缓冲区中返回它。
此方法重新设置此
KeyAgreementSpi
对象,以便能够将它重新用于进一步的密钥一致性。如果没有使用某个engineInit
方法重新初始化此密钥一致性,则将相同的私有信息和算法参数用于后续密钥一致性。 -
- 返回:
- 带有共享秘密密钥的新缓冲区
- 抛出:
-
IllegalStateException
- 如果尚未实现此密钥一致性
engineGenerateSecret
protected abstract int engineGenerateSecret(byte[] sharedSecret, int offset) throws IllegalStateException, ShortBufferException
-
生成共享秘密密钥,并将从
offset
开始(包括)的部分放入缓冲区sharedSecret
。如果
sharedSecret
缓冲区太小而无法保存该结果,则抛出ShortBufferException
。在此情况下,应该用更大的输出缓冲区重复进行此调用。此方法重新设置此
KeyAgreementSpi
对象,以便能够将它重新用于进一步的密钥一致性。如果没有使用某个engineInit
方法重新初始化此密钥一致性,则将相同的私有信息和算法参数用于后续密钥一致性。 -
- 参数:
-
sharedSecret
- 共享秘密密钥的缓冲区 -
offset
- 将存储共享秘密密钥的sharedSecret
中的偏移量 - 返回:
-
放入
sharedSecret
中的字节数 - 抛出:
-
IllegalStateException
- 如果尚未实现此密钥一致性 -
ShortBufferException
- 如果给定输出缓冲区太小而无法保存该秘密密钥
engineGenerateSecret
protected abstract SecretKey engineGenerateSecret(String algorithm) throws IllegalStateException, NoSuchAlgorithmException, InvalidKeyException
-
创建共享秘密密钥,并将它作为所请求算法类型的秘密密钥对象返回。
此方法重新设置此
KeyAgreementSpi
对象,以便能够将它重新用于进一步的密钥一致性。如果没有使用某个engineInit
方法重新初始化此密钥一致性,则将相同的私有信息和算法参数用于后续密钥一致性。 -
- 参数:
-
algorithm
- 所请求秘密密钥的算法 - 返回:
- 共享的秘密密钥
- 抛出:
-
IllegalStateException
- 如果此密钥一致性尚未实现 -
NoSuchAlgorithmException
- 如果所请求的秘密密钥算法不可用 -
InvalidKeyException
- 如果无法使用共享秘密密钥材料生成所请求算法类型的秘密密钥(例如,密钥材料太短缺)
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |