Module java.base
Package javax.crypto

Class KEM.Encapsulator

java.lang.Object
javax.crypto.KEM.Encapsulator
封装类:
KEM

public static final class KEM.Encapsulator extends Object
由KEM发送方在KEM.html#newEncapsulator(java.security.PublicKey)上生成的封装器。

此类表示KEM的密钥封装函数。每次调用encapsulate方法都会生成一个新的秘密密钥和密钥封装消息,该消息以KEM.Encapsulated对象的形式返回。

自:
21
  • Method Details

    • providerName

      public String providerName()
      返回提供程序的名称。
      返回:
      提供程序的名称
    • encapsulate

      public KEM.Encapsulated encapsulate()
      密钥封装函数。

      此方法等效于encapsulate(0, secretSize(), "Generic")。每个实现都必须支持这组参数的组合。

      生成的秘密密钥通常会传递给密钥派生函数(KDF)作为输入密钥材料。

      返回:
      包含共享秘密、密钥封装消息和可选参数的KEM.Encapsulated对象。共享秘密是一个包含秘密所有字节的SecretKey,算法名称为"Generic"。
    • encapsulate

      public KEM.Encapsulated encapsulate(int from, int to, String algorithm)
      密钥封装函数。

      每次调用此方法都会生成一个新的秘密密钥和密钥封装消息,该消息以KEM.Encapsulated对象的形式返回。

      实现可以选择不支持fromtoalgorithm的任意组合。

      参数:
      from - 要返回的共享秘密字节数组的初始索引(包括)
      to - 要返回的共享秘密字节数组的最终索引(不包括)
      algorithm - 返回的秘密密钥的算法名称
      返回:
      包含共享秘密部分、密钥封装消息和可选参数的KEM.Encapsulated对象。共享秘密部分是一个包含从fromto(不包括)范围内的秘密字节的SecretKey,算法名称如指定。例如,encapsulate(0, 16, "AES")使用共享秘密的前16个字节作为128位AES密钥。
      抛出:
      IndexOutOfBoundsException - 如果from < 0from > toto > secretSize()
      NullPointerException - 如果algorithmnull
      UnsupportedOperationException - 如果封装器不支持fromtoalgorithm的组合
    • secretSize

      public int secretSize()
      返回共享秘密的大小。

      在调用encapsulate之前或者无法提取获得的SecretKey时,可以调用此方法来查找共享秘密的长度。

      返回:
      共享秘密的大小
    • encapsulationSize

      public int encapsulationSize()
      返回密钥封装消息的大小。

      在调用encapsulate之前,可以调用此方法来查找封装消息的长度。

      返回:
      密钥封装消息的大小