JavaTM Platform
Standard Ed. 6

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
シールする暗号によって使用される、デフォルトの形式でエンコードされた暗号化パラメータです。

すなわち、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

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

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

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

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

getObject

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

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

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

getObject

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

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

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。