java.lang.Object
javax.crypto.KEM.Encapsulator
- 封装类:
-
KEM
由KEM发送方在KEM.html#newEncapsulator(java.security.PublicKey)上生成的封装器。
此类表示KEM的密钥封装函数。每次调用encapsulate方法都会生成一个新的秘密密钥和密钥封装消息,该消息以KEM.Encapsulated对象的形式返回。
- 自:
- 21
-
Method Summary
Modifier and TypeMethodDescription密钥封装函数。encapsulate(int from, int to, String algorithm) 密钥封装函数。int返回密钥封装消息的大小。返回提供程序的名称。int返回共享秘密的大小。
-
Method Details
-
providerName
返回提供程序的名称。- 返回:
- 提供程序的名称
-
encapsulate
密钥封装函数。此方法等效于
encapsulate(0, secretSize(), "Generic")。每个实现都必须支持这组参数的组合。生成的秘密密钥通常会传递给密钥派生函数(KDF)作为输入密钥材料。
- 返回:
-
包含共享秘密、密钥封装消息和可选参数的
KEM.Encapsulated对象。共享秘密是一个包含秘密所有字节的SecretKey,算法名称为"Generic"。
-
encapsulate
密钥封装函数。每次调用此方法都会生成一个新的秘密密钥和密钥封装消息,该消息以
KEM.Encapsulated对象的形式返回。实现可以选择不支持
from、to和algorithm的任意组合。- 参数:
-
from- 要返回的共享秘密字节数组的初始索引(包括) -
to- 要返回的共享秘密字节数组的最终索引(不包括) -
algorithm- 返回的秘密密钥的算法名称 - 返回:
-
包含共享秘密部分、密钥封装消息和可选参数的
KEM.Encapsulated对象。共享秘密部分是一个包含从from到to(不包括)范围内的秘密字节的SecretKey,算法名称如指定。例如,encapsulate(0, 16, "AES")使用共享秘密的前16个字节作为128位AES密钥。 - 抛出:
-
IndexOutOfBoundsException- 如果from < 0,from > to或to > secretSize() -
NullPointerException- 如果algorithm为null -
UnsupportedOperationException- 如果封装器不支持from、to和algorithm的组合
-
secretSize
public int secretSize()返回共享秘密的大小。在调用
encapsulate之前或者无法提取获得的SecretKey时,可以调用此方法来查找共享秘密的长度。- 返回:
- 共享秘密的大小
-
encapsulationSize
public int encapsulationSize()返回密钥封装消息的大小。在调用
encapsulate之前,可以调用此方法来查找封装消息的长度。- 返回:
- 密钥封装消息的大小
-