|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object | +--javax.crypto.SealedObject
このクラスにより、プログラマはオブジェクトを作成し、暗号化アルゴリズムを使用してその機密を保護することができます。
Serializable オブジェクトを指定すると、元のオブジェクトを直列化形式 (つまり「ディープコピー」) でカプセル化して、直列化されたコンテンツをシール (暗号化) し、DES などの暗号化アルゴリズムを使用してその機密を保護する SealedObject を作成できます。暗号化されたコンテンツはあとで、正しい復号化鍵を使用する対応するアルゴリズムで復号化し、直列化を解除して元のオブジェクトを生成できます。
Cipher オブジェクトは、正しいアルゴリズム、鍵、パディング方式などで完全に初期化してから SealedObject に適用する必要があります。
シールされた元のオブジェクトは、次の 2 つの方法で復元できます。
Cipher オブジェクトをとる getObject メソッドを使用する
このメソッドは、オブジェクトをシールするのに使用したのとまったく同じアルゴリズム、鍵、パディング方式などで完全に初期化された Cipher オブジェクトを必要とします。
この方式には、シールされたオブジェクトのシールを解除する当事者は復号化鍵を知る必要がないという利点があります。たとえば、ある当事者は、必要な復号化鍵で暗号オブジェクトを初期化したあと、シールされたオブジェクトのシールを解除する別の当事者に暗号オブジェクトを渡すことができます。
Key オブジェクトをとる getObject メソッドの 1 つを使用する
この方式では、getObject メソッドは、該当する暗号化アルゴリズムの暗号オブジェクトを作成し、指定された復号化鍵とシールされたオブジェクトに格納されたアルゴリズムパラメータ (もしあれば) を使用して初期化します。
この方式には、オブジェクトをシール解除する当事者はオブジェクトをシールするのに使用されたパラメータ (たとえば、IV) を追跡する必要がないという利点があります。
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 |
| フィールドの詳細 |
protected byte[] encodedParams
| コンストラクタの詳細 |
public SealedObject(Serializable object,
Cipher c)
throws IOException,
IllegalBlockSizeException
指定されたオブジェクトは直列化され、その直列化されたコンテンツは、完全に初期化された、指定された Cipher を使用して暗号化されます。
暗号化操作で使用される可能性のあるアルゴリズムパラメータは、新しい SealedObject の内部に格納されます。
object - シール対象のオブジェクトc - オブジェクトをシールするのに使用される暗号
IOException - 直列化でエラーが発生した場合
IllegalBlockSizeException - 指定された暗号がブロック暗号であり、パデジングが要求されておらず、入力長の合計 (つまり、直列化されたオブジェクトのコンテンツの長さ) が暗号のブロックサイズの倍数でない場合protected SealedObject(SealedObject so)
so - SealedObject オブジェクト| メソッドの詳細 |
public final String getAlgorithm()
public final Object getObject(Key key)
throws IOException,
ClassNotFoundException,
NoSuchAlgorithmException,
InvalidKeyException
このメソッドは、シール操作で使用されたアルゴリズムの暗号を作成します。デフォルトのプロバイダパッケージがそのアルゴリズムを実装する場合は、その実装を含む Cipher のインスタンスが使用されます。そのアルゴリズムがデフォルトのパッケージにない場合は、ほかのパッケージが検索されます。Cipher オブジェクトは、指定された key と、シール操作で使用されたパラメータ (もしあれば) を使用して、復号化用に初期化されます。
カプセル化されたオブジェクトは、シールと直列化を解除してから返されます。
key - オブジェクトをシール解除するのに使用する鍵
IOException - 直列化解除でエラーが発生した場合
ClassNotFoundException - 直列化解除でエラーが発生した場合
NoSuchAlgorithmException - オブジェクトをシール解除するアルゴリズムがない場合
InvalidKeyException - アルゴリズムが間違っている場合など、指定された鍵を使用してオブジェクトをシール解除できない場合
public final Object getObject(Cipher c)
throws IOException,
ClassNotFoundException,
IllegalBlockSizeException,
BadPaddingException
カプセル化されたオブジェクトは、Cipher がすでに適切に初期化されていることを前提として、指定された Cipher を使用してシール解除され、直列化解除されてから返されます。
c - オブジェクトをシール解除するのに使用される暗号
IOException - 直列化解除でエラーが発生した場合
ClassNotFoundException - 直列化解除でエラーが発生した場合
IllegalBlockSizeException - 指定された暗号がブロック暗号であり、パデジングが要求されておらず、入力長の合計が暗号のブロックサイズの倍数でない場合
BadPaddingException - 指定された暗号が復号化用に初期化されており、パディングが指定されているが、入力データに適切な予期されるパディングバイトがない場合
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 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
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.