JavaTM 2
Platform
Std. Ed. v1.4.0

javax.crypto
クラス SealedObject

java.lang.Object
  |
  +--javax.crypto.SealedObject
すべての実装インタフェース:
Serializable

public class SealedObject
extends Object
implements Serializable

このクラスにより、プログラマはオブジェクトを作成し、暗号化アルゴリズムを使用してその機密を保護することができます。

Serializable オブジェクトを指定すると、元のオブジェクトを直列化形式 (つまり「ディープコピー」) でカプセル化して、直列化されたコンテンツをシール (暗号化) し、DES などの暗号化アルゴリズムを使用してその機密を保護する SealedObject を作成できます。暗号化されたコンテンツはあとで、正しい復号化鍵を使用する対応するアルゴリズムで復号化し、直列化を解除して元のオブジェクトを生成できます。

Cipher オブジェクトは、正しいアルゴリズム、鍵、パディング方式などで完全に初期化してから SealedObject に適用する必要があります。

シールされた元のオブジェクトは、次の 2 つの方法で復元できます。

導入されたバージョン:
1.4
関連項目:
Cipher, 直列化された形式

フィールドの概要
protected  byte[] encodedParams
          符号化されたパラメータ
 
コンストラクタの概要
protected SealedObject(SealedObject so)
          渡された SealedObject オブジェクトから SealedObject オブジェクトを構築します。
  SealedObject(Serializable object, Cipher c)
          任意の Serializable オブジェクトから SealedObject を構築します。
 
メソッドの概要
 String getAlgorithm()
          このオブジェクトをシールするのに使用されたアルゴリズムを返します。
 Object getObject(Cipher c)
          元の (カプセル化された) オブジェクトを取り出します。
 Object getObject(Key key)
          元の (カプセル化された) オブジェクトを取り出します。
 Object getObject(Key key, String provider)
          元の (カプセル化された) オブジェクトを取り出します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

encodedParams

protected byte[] encodedParams
符号化されたパラメータ

コンストラクタの詳細

SealedObject

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

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

暗号化操作で使用される可能性のあるアルゴリズムパラメータは、新しい SealedObject の内部に格納されます。

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

SealedObject

protected SealedObject(SealedObject so)
渡された SealedObject オブジェクトから SealedObject オブジェクトを構築します。

パラメータ:
so - SealedObject オブジェクト
メソッドの詳細

getAlgorithm

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

戻り値:
このオブジェクトをシールするのに使用されたアルゴリズム

getObject

public final Object getObject(Key key)
                       throws IOException,
                              ClassNotFoundException,
                              NoSuchAlgorithmException,
                              InvalidKeyException
元の (カプセル化された) オブジェクトを取り出します。

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

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

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

getObject

public final Object getObject(Cipher c)
                       throws IOException,
                              ClassNotFoundException,
                              IllegalBlockSizeException,
                              BadPaddingException
元の (カプセル化された) オブジェクトを取り出します。

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

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

getObject

public final Object getObject(Key key,
                              String provider)
                       throws IOException,
                              ClassNotFoundException,
                              NoSuchAlgorithmException,
                              NoSuchProviderException,
                              InvalidKeyException
元の (カプセル化された) オブジェクトを取り出します。

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

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

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

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.