クラスSealedObject

java.lang.Object
javax.crypto.SealedObject
すべての実装されたインタフェース:
Serializable

public class SealedObject extends Object implements Serializable
プログラマは、このクラスを使用してオブジェクトを生成し、暗号化アルゴリズ を利用してその機密性を保護することができます。

Serializableオブジェクトがある 合、元のオブジェクトを直列化形式(例: "deep copy")でカプセル化するSealedObjectを作成し、AESなどの暗号化アルゴリズ を使用して、その機密性を保護するために、その直列化されたコンテンツを(encrypts)にシールできます。 そのあと、暗号化された内容の暗号解読(適正な暗号解読キーを使用)、および直列化解除を行うことにより、元のオブジェクトを復元できます。

SealedObjectに適用する前に、Cipherオブジェクトを正しいアルゴリズ 、キー、パディング・スキー などで完全に初期化する必要があります。

シールされた元のオブジェクトは、次の異なる2つの方法で復元可能です。

  • CipherオブジェクトをとるgetObjectメソッドを使用する。

    このメソッドは、オブジェクトをシールするのに使用したのとまったく同じアルゴリズ 、キー、パディング方式などで完全に初期化されたCipherオブジェクトを必要とします。

    この方法には、復号化キーに関する知識がなくても、シールされたオブジェクトのアンシールを実行できるという利点があります。 たとえば、あるパーティが暗号オブジェクトを必 の復号化キーを使って初期化したあとで、別のパーティに渡すと、そのパーティはシールされたオブジェクトをアンシールできます。

  • KeyオブジェクトをとるgetObjectメソッドの1つを使用する。

    この方法では、getObjectメソッドは、適切な復号化アルゴリズ 用の暗号オブジェクトを作成し、シール済みのオブジェクトに 納された特定の復号化キーおよびアルゴリズ ・パラメータ(存在する 合)を使用してそれを初期化します。

    この方式には、オブジェクトをシール解除する当事者はオブジェクトをシールするのに使用されたパラメータ(たとえば、IV)を追跡する必要がないという利点があります。

導入されたバージョン:
1.4
関連 目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected byte[]
    デフォルトの形式でエンコードされた、シールCipherオブジェクトで使用される暗号化パラメータ。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
     
    任意のSerializableオブジェクトからSealedObjectを構築します。
    protected
    渡されたSealedObjectからSealedObjectオブジェクトを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    final String
    このオブジェクトをシールするのに使用されたアルゴリズ を返します。
    final Object
    元の(カプセル化された)オブジェクトを取り出します。
    final Object
    getObject(Key key, String provider)
    元の(カプセル化された)オブジェクトを取り出します。
    final Object
    元の(カプセル化された)オブジェクトを取り出します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • encodedParams

      protected byte[] encodedParams
      デフォルトの形式でエンコードされた、シールCipherオブジェクトで使用される暗号化パラメータ。

      つまり、Cipher.getParameters().getEncoded()です。

  • コンストラクタの詳細

    • SealedObject

      public SealedObject(Serializable object, Cipher c) throws IOException, IllegalBlockSizeException
      任意のSerializableオブジェクトからSealedObjectを構築します。

      指定されたオブジェクトは直列化され、その直列化されたコンテンツは、指定されたCipherオブジェクトを使用して暗号化されます。このオブジェクトは完全に初期化する必要があります。

      暗号化演算で使用できるアルゴリズ ・パラメータは、新しいSealedObject内に 納されます。

      パラメータ:
      object - シールされるオブジェクト。nullにできます。
      c - オブジェクトをシールするのに使用される暗号。
      スロー:
      NullPointerException - 指定された暗号がnullの 合。
      IOException - 直列化でエラーが発生した 合
      IllegalBlockSizeException - 指定された暗号がブロック暗号であり、パディングが要求されておらず、入力長の合計(つまり、直列化されたオブジェクトのコンテンツの長さ)が暗号のブロック・サイズの倍数でない 合
    • SealedObject

      protected SealedObject(SealedObject so)
      渡されたSealedObjectからSealedObjectオブジェクトを作成します。
      パラメータ:
      so - SealedObjectオブジェクト
      スロー:
      NullPointerException - 指定されたシール済オブジェクトがnullの 合。
  • メソッドの詳細

    • getAlgorithm

      public final String getAlgorithm()
      このオブジェクトをシールするのに使用されたアルゴリズ を返します。
      戻り値:
      このオブジェクトをシールするのに使用されたアルゴリズ 
    • getObject

      元の(カプセル化された)オブジェクトを取り出します。

      このメソッドは、シール操作で使用されたアルゴリズ の暗号を作成します。 デフォルトのプロバイダ・パッケージがそのアルゴリズ の実装を提供する 合は、その実装を含むCipherオブジェクトが使用されます。 指定されたアルゴリズ がデフォルトのパッケージで使用可能でない 合は、ほかのパッケージが検索されます。 Cipherオブジェクトは、指定されたkeyおよびシール操作で使用されていたパラメータ(もしあれば)を使用して、復号化用に初期化されます。

      カプセル化されたオブジェクトは、シールと直列化を解除してから返されます。

      パラメータ:
      key - オブジェクトをシール解除するのに使用するキー。
      戻り値:
      元のオブジェクト
      スロー:
      IOException - 直列化復元でエラーが発生した 合
      ClassNotFoundException - 直列化復元でエラーが発生した 合
      NoSuchAlgorithmException - オブジェクトをシール解除するアルゴリズ がない 合。
      InvalidKeyException - アルゴリズ が間違っている 合など、指定されたキーを使用してオブジェクトをシール解除できない 合。
      NullPointerException - keyがnullである 合。
    • getObject

      元の(カプセル化された)オブジェクトを取り出します。

      カプセル化されたオブジェクトは、戻される前に(指定されたCipherオブジェクトを使用して、Cipherオブジェクトがすでに適切に初期化されていることを前提としています)のシールが解除され、直列化解除されます。

      パラメータ:
      c - オブジェクトをシール解除するのに使用される暗号
      戻り値:
      元のオブジェクト
      スロー:
      NullPointerException - 指定された暗号がnullの 合。
      IOException - 直列化復元でエラーが発生した 合
      ClassNotFoundException - 直列化復元でエラーが発生した 合
      IllegalBlockSizeException - 指定された暗号がブロック暗号であり、パディングが要求されておらず、入力長の合計が暗号のブロック・サイズの倍数でない 合
      BadPaddingException - 指定された暗号が復号化用に初期化されており、パディングが指定されているが、入力データに適切な予期されるパディング・バイトがない 合
    • getObject

      元の(カプセル化された)オブジェクトを取り出します。

      このメソッドは、シール操作に使用されたアルゴリズ の暗号を、指定されたproviderからそのアルゴリズ の実装を使用して作成します。 Cipherオブジェクトは、指定されたkeyおよびシール操作で使用されていたパラメータ(もしあれば)を使用して、復号化用に初期化されます。

      カプセル化されたオブジェクトは、シールと直列化を解除してから返されます。

      パラメータ:
      key - オブジェクトをシール解除するのに使用するキー。
      provider - オブジェクトをシール解除するアルゴリズ のプロバイダ名。
      戻り値:
      元のオブジェクト
      スロー:
      IllegalArgumentException - 指定されたプロバイダがnullまたは空の 合。
      IOException - 直列化復元でエラーが発生した 合
      ClassNotFoundException - 直列化復元でエラーが発生した 合
      NoSuchAlgorithmException - オブジェクトをシール解除するアルゴリズ がない 合。
      NoSuchProviderException - 指定されたプロバイダが設定されていない 合。
      InvalidKeyException - アルゴリズ が間違っている 合など、指定されたキーを使用してオブジェクトをシール解除できない 合。
      NullPointerException - keyがnullである 合。