|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.crypto.SealedObject
public class 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
すなわち、cipher.getParameters().getEncoded()
です。
コンストラクタの詳細 |
---|
public SealedObject(Serializable object, Cipher c) throws IOException, IllegalBlockSizeException
指定されたオブジェクトは直列化され、その直列化されたコンテンツは、完全に初期化された、指定された Cipher を使用して暗号化されます。
暗号化操作で使用される可能性のあるアルゴリズムパラメータは、新しい SealedObject
の内部に格納されます。
object
- シールするオブジェクト。 null も可c
- オブジェクトをシールするのに使用される暗号
NullPointerException
- 指定された暗号が null の場合
IOException
- 直列化でエラーが発生した場合
IllegalBlockSizeException
- 指定された暗号がブロック暗号であり、パディングが要求されておらず、入力長の合計 (つまり、直列化されたオブジェクトのコンテンツの長さ) が暗号のブロックサイズの倍数でない場合protected SealedObject(SealedObject so)
so
- SealedObject オブジェクト
NullPointerException
- 指定されたオブジェクトが null の場合メソッドの詳細 |
---|
public final String getAlgorithm()
public final Object getObject(Key key) throws IOException, ClassNotFoundException, NoSuchAlgorithmException, InvalidKeyException
このメソッドは、シール操作で使用されたアルゴリズムの暗号を作成します。デフォルトのプロバイダパッケージがそのアルゴリズムを実装する場合は、その実装を含む Cipher のインスタンスが使用されます。指定されたアルゴリズムがデフォルトのパッケージで使用可能でない場合は、ほかのパッケージが検索されます。Cipher オブジェクトは、指定された key
と、シール操作に使用されたパラメータ (もしあれば) を使用して、復号化用に初期化されます。
カプセル化されたオブジェクトは、シールと直列化を解除してから返されます。
key
- オブジェクトをシール解除するのに使用する鍵
IOException
- 直列化解除でエラーが発生した場合
ClassNotFoundException
- 直列化解除でエラーが発生した場合
NoSuchAlgorithmException
- オブジェクトをシール解除するアルゴリズムがない場合
InvalidKeyException
- アルゴリズムが間違っている場合など、指定された鍵を使用してオブジェクトをシール解除できない場合
NullPointerException
- key
が null の場合public final Object getObject(Cipher c) throws IOException, ClassNotFoundException, IllegalBlockSizeException, BadPaddingException
カプセル化されたオブジェクトは、Cipher がすでに適切に初期化されていることを前提として、指定された Cipher を使用してシール解除され、直列化解除されてから返されます。
c
- オブジェクトをシール解除するのに使用される暗号
NullPointerException
- 指定された暗号が null の場合
IOException
- 直列化解除でエラーが発生した場合
ClassNotFoundException
- 直列化解除でエラーが発生した場合
IllegalBlockSizeException
- 指定された暗号がブロック暗号であり、パディングが要求されておらず、入力長の合計が暗号のブロックサイズの倍数でない場合
BadPaddingException
- 指定された暗号が復号化用に初期化されており、パディングが指定されているが、入力データに適切な予期されるパディングバイトがない場合public final Object getObject(Key key, String provider) throws IOException, ClassNotFoundException, NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException
このメソッドは、シール操作に使用されたアルゴリズムの暗号を、指定された provider
からそのアルゴリズムの実装を使用して作成します。Cipher オブジェクトは、指定された key
と、シール操作に使用されたパラメータ (もしあれば) を使用して、復号化用に初期化されます。
カプセル化されたオブジェクトは、シールと直列化を解除してから返されます。
key
- オブジェクトをシール解除するのに使用する鍵provider
- オブジェクトをシール解除するアルゴリズムのプロバイダ名
IllegalArgumentException
- 指定されたプロバイダが null か空の場合
IOException
- 直列化解除でエラーが発生した場合
ClassNotFoundException
- 直列化解除でエラーが発生した場合
NoSuchAlgorithmException
- オブジェクトをシール解除するアルゴリズムがない場合
NoSuchProviderException
- 指定されたプロバイダが設定されていない場合
InvalidKeyException
- アルゴリズムが間違っている場合など、指定された鍵を使用してオブジェクトをシール解除できない場合
NullPointerException
- key
が null の場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。