モジュール java.base
パッケージ javax.crypto

クラスKEM.Decapsulator

java.lang.Object
javax.crypto.KEM.Decapsulator
含まれているクラス:
KEM

public static final class KEM.Decapsulator extends Object
KEMレシーバ側のKEM.newDecapsulator(java.security.PrivateKey)によって生成されるデカプセレータ。

このクラスは、KEMのキー・デカプセル化機能を表します。 decapsulateメソッドを起動すると、キーのカプセル化メッセージから秘密キーがリカバリされます。

導入されたバージョン:
21
  • メソッドの詳細

    • providerName

      public String providerName()
      プロバイダの名前を返します。
      戻り値:
      プロバイダの名前
    • decapsulate

      public SecretKey decapsulate(byte[] encapsulation) throws DecapsulateException
      キーのデカプセル化機能。

      このメソッドはdecapsulate(encapsulation, 0, secretSize(), "Generic")と同等です。 この引数の組合せは、すべての実装でサポートされる必要があります。

      生成された秘密キーは通常、キー導出関数(KDF)に入力キーイング・マテリアルとして渡されます。

      パラメータ:
      encapsulation - 送信者からのキー・カプセル化メッセージ。 サイズは、encapsulationSize()によって返される値と等しくする必要があり、そうでない場合、DecapsulateExceptionがスローされます。
      戻り値:
      アルゴリズム名"一般"を持つSecretKeyとしての共有シークレット
      例外:
      DecapsulateException - デカプセル化プロセス中にエラーが発生した場合
      NullPointerException - encapsulationnullの場合
    • decapsulate

      public SecretKey decapsulate(byte[] encapsulation, int from, int to, String algorithm) throws DecapsulateException
      キーのデカプセル化機能。

      このメソッドを起動すると、キーのカプセル化メッセージから秘密キーがリカバリされます。

      実装では、fromtoおよびalgorithmの任意の組合せをサポートしないことを選択できます。

      パラメータ:
      encapsulation - 送信者からのキー・カプセル化メッセージ。 サイズは、encapsulationSize()によって返される値と等しくする必要があり、そうでない場合、DecapsulateExceptionがスローされます。
      from - 返される共有シークレット・バイト配列の初期インデックス(両端を含む)
      to - 返される共有シークレット・バイト配列の最終インデックス、排他的
      algorithm - 返される秘密キーのアルゴリズム名
      戻り値:
      fromからtoまでのシークレットのバイトを含むSecretKeyとしての共有シークレットの一部、排他的、および指定されたアルゴリズム名。 たとえば、decapsulate(encapsulation, secretSize() - 16, secretSize(), "AES")は、共有シークレットの最後の16バイトを128ビットのAESキーとして使用します。
      例外:
      DecapsulateException - デカプセル化プロセス中にエラーが発生した場合
      IndexOutOfBoundsException - from < 0from > toまたはto > secretSize()の場合
      NullPointerException - encapsulationまたはalgorithmnullの場合
      UnsupportedOperationException - fromto、およびalgorithmの組み合わせがデカプセレータによってサポートされない場合
    • secretSize

      public int secretSize()
      共有シークレットのサイズを返します。

      このメソッドをコールして、decapsulateがコールされる前に共有シークレットの長さを調べるか、取得したSecretKeyが抽出可能でないかを確認できます。

      戻り値:
      共有シークレットのサイズ
    • encapsulationSize

      public int encapsulationSize()
      キー・カプセル化メッセージのサイズを返します。

      このメソッドは、上位レベルのプロトコルによって長さ情報が提供されない場合に、長いバイト配列からカプセル化メッセージを抽出するために使用できます。

      戻り値:
      キー・カプセル化メッセージのサイズ