|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.crypto.Cipher
public class Cipher
このクラスは暗号化および復号化の機能を提供し、JCE (Java Cryptographic Extension) フレームワークのコアを形成します。
Cipher オブジェクトを作成するには、アプリケーションは Cipher の getInstance
メソッドを呼び出して、要求された「変換」の名前を渡します。必要に応じて、プロバイダの名前を指定することができます。
「変換」とは、出力を生成するために、指定された入力に対して実行する操作 (または一連の操作) を記述する文字列のことです。変換には常に暗号化アルゴリズム名 (DES など) が含まれており、フィードバックモードとパディング方式があとに続くことがあります。
変換の形式は次のとおりです。
後者の場合、モードとパディング方式についてはプロバイダ固有のデフォルト値が使用されます。有効な変換の例を次に示します。
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
ストリーム暗号化モードでブロック暗号を要求する場合 (たとえば、CFB
または OFB
モードの DES
) は、必要に応じて一度に処理するビット数を指定することができます。指定するには、"DES/CFB8/NoPadding" および "DES/OFB32/PKCS5Padding" 変換で示されるように、ビット数をモード名に追加します。ビット数の指定がない場合は、プロバイダ固有のデフォルト値が使用されます (たとえば、「SunJCE」プロバイダはデフォルトの 64 ビットを使用)。
KeyGenerator
,
SecretKey
フィールドの概要 | |
---|---|
static int |
DECRYPT_MODE
暗号を復号化モードに初期化するのに使用する定数です。 |
static int |
ENCRYPT_MODE
暗号を暗号化モードに初期化するのに使用する定数です。 |
static int |
PRIVATE_KEY
ラップ解除される鍵が「非公開鍵」であることを示すのに使用する定数です。 |
static int |
PUBLIC_KEY
ラップ解除される鍵が「公開鍵」であることを示すのに使用する定数です。 |
static int |
SECRET_KEY
ラップ解除される鍵が「秘密鍵」であることを示すのに使用する定数です。 |
static int |
UNWRAP_MODE
暗号を鍵ラッピング解除モードに初期化するのに使用する定数です。 |
static int |
WRAP_MODE
暗号を鍵ラッピングモードに初期化するのに使用する定数です。 |
コンストラクタの概要 | |
---|---|
protected |
Cipher(CipherSpi cipherSpi,
Provider provider,
String transformation)
Cipher オブジェクトを作成します。 |
メソッドの概要 | |
---|---|
byte[] |
doFinal()
複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を終了します。 |
byte[] |
doFinal(byte[] input)
単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 |
int |
doFinal(byte[] output,
int outputOffset)
複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を終了します。 |
byte[] |
doFinal(byte[] input,
int inputOffset,
int inputLen)
単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 |
int |
doFinal(byte[] input,
int inputOffset,
int inputLen,
byte[] output)
単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 |
int |
doFinal(byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 |
int |
doFinal(ByteBuffer input,
ByteBuffer output)
単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 |
String |
getAlgorithm()
この Cipher オブジェクトのアルゴリズム名を返します。 |
int |
getBlockSize()
ブロックサイズを返します (バイト単位)。 |
ExemptionMechanism |
getExemptionMechanism()
この暗号で使用される除外機構オブジェクトを返します。 |
static Cipher |
getInstance(String transformation)
指定された変換を実装する Cipher オブジェクトを生成します。 |
static Cipher |
getInstance(String transformation,
Provider provider)
指定されたプロバイダによって提供される、指定された変換を実装する Cipher オブジェクトを作成します。 |
static Cipher |
getInstance(String transformation,
String provider)
指定されたプロバイダによって提供される、指定された変換を実装する Cipher オブジェクトを作成します。 |
byte[] |
getIV()
新しいバッファの初期化ベクタ (IV) を返します。 |
static int |
getMaxAllowedKeyLength(String transformation)
インストールした JCE 管轄ポリシーファイルに基づいて、指定の変換を行う最大の鍵の長さを返します。 |
static AlgorithmParameterSpec |
getMaxAllowedParameterSpec(String transformation)
管轄ポリシーファイルに基づいて、最大暗号化パラメータ値を含む AlgorithmParameterSpec オブジェクトを返します。 |
int |
getOutputSize(int inputLen)
入力の長さ inputLen (バイト単位) を指定して、次の update または doFinal 操作の結果を保持するために必要な出力バッファの長さをバイト数で返します。 |
AlgorithmParameters |
getParameters()
この暗号で使用されるパラメータを返します。 |
Provider |
getProvider()
この Cipher オブジェクトのプロバイダを返します。 |
void |
init(int opmode,
Certificate certificate)
この暗号を、検証操作のために指定された公開鍵で初期化します。 |
void |
init(int opmode,
Certificate certificate,
SecureRandom random)
この暗号を、検証操作のために指定された公開鍵および乱数の発生源を使って初期化します。 |
void |
init(int opmode,
Key key)
鍵を使用してこの暗号を初期化します。 |
void |
init(int opmode,
Key key,
AlgorithmParameters params)
鍵とアルゴリズムパラメータのセットを使用してこの暗号を初期化します。 |
void |
init(int opmode,
Key key,
AlgorithmParameterSpec params)
鍵とアルゴリズムパラメータのセットを使用してこの暗号を初期化します。 |
void |
init(int opmode,
Key key,
AlgorithmParameterSpec params,
SecureRandom random)
鍵、アルゴリズムパラメータのセット、および乱数の発生源を使用してこの暗号を初期化します。 |
void |
init(int opmode,
Key key,
AlgorithmParameters params,
SecureRandom random)
鍵、アルゴリズムパラメータのセット、および乱数の発生源を使用してこの暗号を初期化します。 |
void |
init(int opmode,
Key key,
SecureRandom random)
鍵と乱数の発生源を使用してこの暗号を初期化します。 |
Key |
unwrap(byte[] wrappedKey,
String wrappedKeyAlgorithm,
int wrappedKeyType)
前にラップされた鍵をラップ解除します。 |
byte[] |
update(byte[] input)
複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。 |
byte[] |
update(byte[] input,
int inputOffset,
int inputLen)
複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。 |
int |
update(byte[] input,
int inputOffset,
int inputLen,
byte[] output)
複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。 |
int |
update(byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。 |
int |
update(ByteBuffer input,
ByteBuffer output)
複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。 |
byte[] |
wrap(Key key)
鍵をラップします。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
public static final int ENCRYPT_MODE
public static final int DECRYPT_MODE
public static final int WRAP_MODE
public static final int UNWRAP_MODE
public static final int PUBLIC_KEY
public static final int PRIVATE_KEY
public static final int SECRET_KEY
コンストラクタの詳細 |
---|
protected Cipher(CipherSpi cipherSpi, Provider provider, String transformation)
cipherSpi
- 委譲先provider
- プロバイダtransformation
- 変換メソッドの詳細 |
---|
public static final Cipher getInstance(String transformation) throws NoSuchAlgorithmException, NoSuchPaddingException
Cipher
オブジェクトを生成します。
要求された変換の実装をデフォルトのプロバイダパッケージが提供している場合は、その実装を含む Cipher
のインスタンスが返されます。デフォルトのプロバイダパッケージで目的の変換が提供されていない場合には、ほかのプロバイダパッケージが検索されます。
transformation
- 変換の名前。たとえば、DES/CBC/PKCS5Padding。変換の標準的な名前については、 「Java 暗号化拡張機能リファレンスガイド」の付録 A を参照
NoSuchAlgorithmException
- transformation
が null、空、形式が不正、または現在インストールされているプロバイダで使用不可能な場合
NoSuchPaddingException
- 使用できないパディング方式が transformation
に含まれている場合public static final Cipher getInstance(String transformation, String provider) throws NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException
Cipher
オブジェクトを作成します。
transformation
- 変換の名前。たとえば、DES/CBC/PKCS5Padding。変換の標準的な名前については、 「Java 暗号化拡張機能リファレンスガイド」の付録 A を参照provider
- プロバイダ名
NoSuchAlgorithmException
- transformation
が null、空、形式が不正、または現在インストールされているプロバイダから提供されていない場合
NoSuchProviderException
- 指定されたプロバイダが設定されていない場合
NoSuchPaddingException
- 使用できないパディング方式が transformation
に含まれている場合
IllegalArgumentException
- provider
が null の場合public static final Cipher getInstance(String transformation, Provider provider) throws NoSuchAlgorithmException, NoSuchPaddingException
Cipher
オブジェクトを作成します。provider
は登録されている必要はないことに注意してください。
transformation
- 変換の名前。たとえば、DES/CBC/PKCS5Padding。変換の標準的な名前については、 「Java 暗号化拡張機能リファレンスガイド」の付録 A を参照provider
- プロバイダ
NoSuchAlgorithmException
- transformation
が null、空、形式が不正、または現在インストールされているプロバイダから提供されていない場合
NoSuchPaddingException
- 使用できないパディング方式が transformation
に含まれている場合
IllegalArgumentException
- provider
が null の場合public final Provider getProvider()
Cipher
オブジェクトのプロバイダを返します。
Cipher
オブジェクトのプロバイダpublic final String getAlgorithm()
Cipher
オブジェクトのアルゴリズム名を返します。
これは、この Cipher
オブジェクトを作成した getInstance
呼び出しのどれかで指定された名前と同じです。
Cipher
オブジェクトのアルゴリズム名public final int getBlockSize()
public final int getOutputSize(int inputLen)
inputLen
(バイト単位) を指定して、次の update
または doFinal
操作の結果を保持するために必要な出力バッファの長さをバイト数で返します。
この呼び出しでは、以前の update
呼び出しの処理されていない (バッファにある) データを考慮し、パディングします。
次の update
または doFinal
呼び出しの実際の出力長は、このメソッドが返す長さより小さいことがあります。
inputLen
- 入力長 (バイト単位)
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、まだ初期化されていない)public final byte[] getIV()
これは、ランダム IV が作成された場合、あるいは IV がユーザ指定のパスワードから派生するパスワードベースの暗号化または復号化のコンテキストにおいて役立ちます。
public final AlgorithmParameters getParameters()
返されるパラメータは、この暗号を初期化するのに使用したものと同じ場合があります。または、返されるパラメータには、この暗号にアルゴリズムパラメータが必要で、かつアルゴリズムパラメータで初期化されなかった場合に、基本となる暗号実装で使用されるデフォルトとランダムのパラメータ値の組み合わせが含まれることもあります。
public final ExemptionMechanism getExemptionMechanism()
public final void init(int opmode, Key key) throws InvalidKeyException
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
この暗号が、指定された key
から派生できないアルゴリズムパラメータを必要とする場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidKeyException
を発生させます。生成されたパラメータは、getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (たとえば、パラメータ生成のため) は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダの
の実装を乱数の発生源として使用して乱数バイトを取得します。SecureRandom の実装を提供するプロバイダがインストールされていない場合は、システムが提供する乱数の発生源が使用されます。
SecureRandom
Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- キー
InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合、この暗号が復号化用に初期化され、指定された鍵から判定することができないアルゴリズムパラメータを必要とする場合、または指定された鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合public final void init(int opmode, Key key, SecureRandom random) throws InvalidKeyException
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
この暗号が、指定された key
から派生できないアルゴリズムパラメータを必要とする場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidKeyException
を発生させます。生成されたパラメータは、getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (たとえば、パラメータ生成のため) は、random
から取得します。
Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- 暗号化鍵random
- 乱数のソース
InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合、この暗号が復号化用に初期化され、指定された鍵から判定することができないアルゴリズムパラメータを必要とする場合、または指定された鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合public final void init(int opmode, Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
この暗号がアルゴリズムパラメータを必要とし、params
が null の場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidAlgorithmParameterException
を発生させます。生成されたパラメータは、 getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (たとえば、パラメータ生成のため) は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダの
の実装を乱数の発生源として使用して乱数バイトを取得します。SecureRandom の実装を提供するプロバイダがインストールされていない場合は、システムが提供する乱数の発生源が使用されます。
SecureRandom
Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- 暗号化鍵params
- アルゴリズムパラメータ
InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合、または指定された鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合
InvalidAlgorithmParameterException
- 指定されたアルゴリズムパラメータがこの暗号に不適切な場合、この暗号が復号化用に初期化され、アルゴリズムパラメータを必要とし、params
が null の場合、または指定されたアルゴリズムパラメータが有効な制限 (設定されている管轄ポリシーファイルにより決定) を超える暗号化強度を示す場合public final void init(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
この暗号がアルゴリズムパラメータを必要とし、params
が null の場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidAlgorithmParameterException
を発生させます。生成されたパラメータは、 getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (たとえば、パラメータ生成のため) は、random
から取得します。
Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- 暗号化鍵params
- アルゴリズムパラメータrandom
- 乱数のソース
InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合、または指定された鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合
InvalidAlgorithmParameterException
- 指定されたアルゴリズムパラメータがこの暗号に不適切な場合、この暗号が復号化用に初期化され、アルゴリズムパラメータを必要とし、params
が null の場合、または指定されたアルゴリズムパラメータが有効な制限 (設定されている管轄ポリシーファイルにより決定) を超える暗号化強度を示す場合public final void init(int opmode, Key key, AlgorithmParameters params) throws InvalidKeyException, InvalidAlgorithmParameterException
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
この暗号がアルゴリズムパラメータを必要とし、params
が null の場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidAlgorithmParameterException
を発生させます。生成されたパラメータは、 getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (たとえば、パラメータ生成のため) は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダの
の実装を乱数の発生源として使用して乱数バイトを取得します。SecureRandom の実装を提供するプロバイダがインストールされていない場合は、システムが提供する乱数の発生源が使用されます。
SecureRandom
Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- 暗号化鍵params
- アルゴリズムパラメータ
InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合、または指定された鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合
InvalidAlgorithmParameterException
- 指定されたアルゴリズムパラメータがこの暗号に不適切な場合、この暗号が復号化用に初期化され、アルゴリズムパラメータを必要とし、params
が null の場合、または指定されたアルゴリズムパラメータが有効な制限 (設定されている管轄ポリシーファイルにより決定) を超える暗号化強度を示す場合public final void init(int opmode, Key key, AlgorithmParameters params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
この暗号がアルゴリズムパラメータを必要とし、params
が null の場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidAlgorithmParameterException
を発生させます。生成されたパラメータは、 getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (たとえば、パラメータ生成のため) は、random
から取得します。
Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- 暗号化鍵params
- アルゴリズムパラメータrandom
- 乱数のソース
InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合、または指定された鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合
InvalidAlgorithmParameterException
- 指定されたアルゴリズムパラメータがこの暗号に不適切な場合、この暗号が復号化用に初期化され、アルゴリズムパラメータを必要とし、params
が null の場合、または指定されたアルゴリズムパラメータが有効な制限 (設定されている管轄ポリシーファイルにより決定) を超える暗号化強度を示す場合public final void init(int opmode, Certificate certificate) throws InvalidKeyException
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
証明書の種類が X.509 で、重要とマークされた key usage 拡張領域があり、key usage 拡張領域の値によって証明書の公開鍵とそれに対応する非公開鍵が opmode
の値で表される操作に使用されないものである場合は、InvalidKeyException
がスローされます。
この暗号が、指定された証明書の公開鍵から派生できないアルゴリズムパラメータを必要とする場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidKeyException
を発生させます。生成されたパラメータは、getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (たとえば、パラメータ生成のため) は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダの SecureRandom
の実装を乱数の発生源として使用して乱数バイトを取得します。SecureRandom の実装を提供するプロバイダがインストールされていない場合は、システムが提供する乱数の発生源が使用されます。
Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)certificate
- 証明書
InvalidKeyException
- 指定された証明書の公開鍵がこの暗号の初期化に不適切な場合、この暗号が復号化鍵またはラッピング解除鍵用に初期化され、指定された証明書の公開鍵から判定することができないアルゴリズムパラメータを必要とする場合、または指定された証明書の公開鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合public final void init(int opmode, Certificate certificate, SecureRandom random) throws InvalidKeyException
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
証明書の種類が X.509 で、重要とマークされた key usage 拡張領域があり、key usage 拡張領域の値によって証明書の公開鍵とそれに対応する非公開鍵が opmode
の値で表される操作に使用されないものである場合は、InvalidKeyException
がスローされます。
この暗号が、指定された certificate
の公開鍵から派生できないアルゴリズムパラメータを必要とする場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidKeyException
を発生させます。生成されたパラメータは、getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (たとえば、パラメータ生成のため) は、random
から取得します。
Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)certificate
- 証明書random
- 乱数のソース
InvalidKeyException
- 指定された証明書の公開鍵がこの暗号の初期化に不適切な場合、この暗号が復号化鍵またはラッピング解除鍵用に初期化され、指定された証明書の公開鍵から判定することができないアルゴリズムパラメータを必要とする場合、または指定された証明書の公開鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合public final byte[] update(byte[] input)
input
バッファ内のバイトが処理され、結果が新しいバッファに格納されます。
input
の長さがゼロの場合、このメソッドは null
を返します。
input
- 入力バッファ
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)public final byte[] update(byte[] input, int inputOffset, int inputLen)
inputOffset
から始まる、input
バッファ内の最初の inputLen
バイトが処理され、結果が新しいバッファに格納されます。
inputLen
がゼロの場合、このメソッドは null
を返します。
input
- 入力バッファinputOffset
- 入力を開始する input
内のオフセットinputLen
- 入力長
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)public final int update(byte[] input, int inputOffset, int inputLen, byte[] output) throws ShortBufferException
inputOffset
から始まる、input
バッファ内の最初の inputLen
バイトが処理され、結果が output
バッファに格納されます。
output
バッファが小さすぎて結果を保持できない場合は、ShortBufferException
がスローされます。この場合、より大きな出力バッファを使用してこの呼び出しを繰り返します。getOutputSize
を使用して、必要な出力バッファのサイズを判定します。
inputLen
が 0 の場合、このメソッドは長さゼロを返します。
注: このメソッドはコピーに対して安全である必要があります。つまり、input
および output
バッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。
input
- 入力バッファinputOffset
- 入力を開始する input
内のオフセットinputLen
- 入力長output
- 結果を格納するバッファ
output
に格納されたバイト数
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
ShortBufferException
- 指定された出力バッファが小さすぎて結果を保持できない場合public final int update(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws ShortBufferException
inputOffset
から始まる、input
バッファ内の最初の inputLen
バイトが処理され、結果は output
バッファの outputOffset
から始まる位置に格納されます。
output
バッファが小さすぎて結果を保持できない場合は、ShortBufferException
がスローされます。この場合、より大きな出力バッファを使用してこの呼び出しを繰り返します。getOutputSize
を使用して、必要な出力バッファのサイズを判定します。
inputLen
が 0 の場合、このメソッドは長さゼロを返します。
注: このメソッドはコピーに対して安全である必要があります。つまり、input
および output
バッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。
input
- 入力バッファinputOffset
- 入力を開始する input
内のオフセットinputLen
- 入力長output
- 結果を格納するバッファoutputOffset
- 結果が格納される output
内のオフセット
output
に格納されたバイト数
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
ShortBufferException
- 指定された出力バッファが小さすぎて結果を保持できない場合public final int update(ByteBuffer input, ByteBuffer output) throws ShortBufferException
input.position()
で始まるすべての input.remaining()
バイトが処理されます。結果は出力バッファに格納されます。戻り時には、入力バッファの位置はその上限と同じになり、上限は変更されません。出力バッファの位置は、このメソッドで返される値である n だけ進みます。出力バッファの上限は変更されません。
output.remaining()
バッファが結果を保持するのに不十分な場合は、ShortBufferException
がスローされます。この場合、より大きな出力バッファを使用してこの呼び出しを繰り返します。getOutputSize
を使用して、必要な出力バッファのサイズを判定します。
注: このメソッドはコピーに対して安全である必要があります。つまり、input
および output
バッファは同じメモリブロックを参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。
input
- 入力 ByteBufferoutput
- 出力 ByteByffer
output
に格納されたバイト数
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
IllegalArgumentException
- 入力および出力が同じオブジェクトの場合
ReadOnlyBufferException
- 出力バッファが読み取り専用バッファである場合
ShortBufferException
- 出力バッファ内に残っている容量が不足している場合public final byte[] doFinal() throws IllegalBlockSizeException, BadPaddingException
入力データは前の update
操作中にバッファに入れられて、パディング (要求された場合) が適用されている場合があります。結果は新しいバッファに格納されます。
終了時に、このメソッドはこの暗号オブジェクトを前に init
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (init
の呼び出しで指定された操作モードにより異なる)。
注: 例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合、または、この暗号化アルゴリズムでは提供された入力データを処理できない場合
BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合public final int doFinal(byte[] output, int outputOffset) throws IllegalBlockSizeException, ShortBufferException, BadPaddingException
入力データは前の update
操作中にバッファに入れられて、パディング (要求された場合) が適用されている場合があります。結果は、outputOffset
から始まる output
バッファに格納されます。
output
バッファが小さすぎて結果を保持できない場合は、ShortBufferException
がスローされます。この場合、より大きな出力バッファを使用してこの呼び出しを繰り返します。getOutputSize
を使用して、必要な出力バッファのサイズを判定します。
終了時に、このメソッドはこの暗号オブジェクトを前に init
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (init
の呼び出しで指定された操作モードにより異なる)。
注: 例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
output
- 結果を格納するバッファoutputOffset
- 結果が格納される output
内のオフセット
output
に格納されたバイト数
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合、または、この暗号化アルゴリズムでは提供された入力データを処理できない場合
ShortBufferException
- 指定された出力バッファが小さすぎて結果を保持できない場合
BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合public final byte[] doFinal(byte[] input) throws IllegalBlockSizeException, BadPaddingException
input
バッファ内のバイト、および前の update
操作中にバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング (要求された場合) が適用されます。結果は新しいバッファに格納されます。
終了時に、このメソッドはこの暗号オブジェクトを前に init
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (init
の呼び出しで指定された操作モードにより異なる)。
注: 例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
input
- 入力バッファ
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合、または、この暗号化アルゴリズムでは提供された入力データを処理できない場合
BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合public final byte[] doFinal(byte[] input, int inputOffset, int inputLen) throws IllegalBlockSizeException, BadPaddingException
inputOffset
から始まる input
バッファ内の最初の inputLen
バイト、および前の update
操作でバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング (要求された場合) が適用されます。結果は新しいバッファに格納されます。
終了時に、このメソッドはこの暗号オブジェクトを前に init
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (init
の呼び出しで指定された操作モードにより異なる)。
注: 例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
input
- 入力バッファinputOffset
- 入力を開始する input
内のオフセットinputLen
- 入力長
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合、または、この暗号化アルゴリズムでは提供された入力データを処理できない場合
BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合public final int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException
inputOffset
から始まる input
バッファ内の最初の inputLen
バイト、および前の update
操作でバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング (要求された場合) が適用されます。結果は output
バッファに格納されます。
output
バッファが小さすぎて結果を保持できない場合は、ShortBufferException
がスローされます。この場合、より大きな出力バッファを使用してこの呼び出しを繰り返します。getOutputSize
を使用して、必要な出力バッファのサイズを判定します。
終了時に、このメソッドはこの暗号オブジェクトを前に init
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (init
の呼び出しで指定された操作モードにより異なる)。
注: 例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
注: このメソッドはコピーに対して安全である必要があります。つまり、input
および output
バッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。
input
- 入力バッファinputOffset
- 入力を開始する input
内のオフセットinputLen
- 入力長output
- 結果を格納するバッファ
output
に格納されたバイト数
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合、または、この暗号化アルゴリズムでは提供された入力データを処理できない場合
ShortBufferException
- 指定された出力バッファが小さすぎて結果を保持できない場合
BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合public final int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException
inputOffset
から始まる input
バッファ内の最初の inputLen
バイト、および前の update
操作でバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング (要求された場合) が適用されます。結果は、outputOffset
から始まる output
バッファに格納されます。
output
バッファが小さすぎて結果を保持できない場合は、ShortBufferException
がスローされます。この場合、より大きな出力バッファを使用してこの呼び出しを繰り返します。getOutputSize
を使用して、必要な出力バッファのサイズを判定します。
終了時に、このメソッドはこの暗号オブジェクトを前に init
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (init
の呼び出しで指定された操作モードにより異なる)。
注: 例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
注: このメソッドはコピーに対して安全である必要があります。つまり、input
および output
バッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。
input
- 入力バッファinputOffset
- 入力を開始する input
内のオフセットinputLen
- 入力長output
- 結果を格納するバッファoutputOffset
- 結果が格納される output
内のオフセット
output
に格納されたバイト数
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合、または、この暗号化アルゴリズムでは提供された入力データを処理できない場合
ShortBufferException
- 指定された出力バッファが小さすぎて結果を保持できない場合
BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合public final int doFinal(ByteBuffer input, ByteBuffer output) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException
input.position()
で始まるすべての input.remaining()
バイトが処理されます。結果は出力バッファに格納されます。戻り時には、入力バッファの位置はその制限と等しくなり、制限は変更しません。出力バッファの位置は、このメソッドで返される値の n だけ進みます。出力バッファの制限は変更しません。
output.remaining()
バッファが結果を保持するのに不十分な場合は、ShortBufferException
がスローされます。この場合、より大きな出力バッファを使用してこの呼び出しを繰り返します。getOutputSize
を使用して、必要な出力バッファのサイズを判定します。
終了時に、このメソッドはこの暗号オブジェクトを前に init
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (init
の呼び出しで指定された操作モードにより異なる)。
注: 例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
注: このメソッドはコピーに対して安全である必要があります。つまり、input
および output
バッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。
input
- 入力 ByteBufferoutput
- 出力 ByteBuffer
output
に格納されたバイト数
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
IllegalArgumentException
- 入力および出力が同じオブジェクトの場合
ReadOnlyBufferException
- 出力バッファが読み取り専用バッファである場合
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合、または、この暗号化アルゴリズムでは提供された入力データを処理できない場合
ShortBufferException
- 出力バッファ内に残っている容量が不足している場合
BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合public final byte[] wrap(Key key) throws IllegalBlockSizeException, InvalidKeyException
key
- ラップされる鍵
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず、ラップされる鍵のエンコーディングの長さがブロックサイズの倍数でない場合
InvalidKeyException
- この暗号を使用して鍵をラップすることが不可能か安全でない場合 (たとえば、ハードウェア保護された鍵がソフトウェアだけの暗号に渡される場合)public final Key unwrap(byte[] wrappedKey, String wrappedKeyAlgorithm, int wrappedKeyType) throws InvalidKeyException, NoSuchAlgorithmException
wrappedKey
- ラップを解除される鍵wrappedKeyAlgorithm
- ラップされた鍵に関連したアルゴリズムwrappedKeyType
- ラップされた鍵のタイプ。SECRET_KEY
、PRIVATE_KEY
、または PUBLIC_KEY
のどれかである必要がある
IllegalStateException
- この暗号が誤った状態にある場合 (たとえば、初期化されていない)
NoSuchAlgorithmException
- インストールされているどのプロバイダも wrappedKeyAlgorithm
の wrappedKeyType
のタイプの鍵を作成できない場合
InvalidKeyException
- wrappedKey
が wrappedKeyAlgorithm
のラップキータイプ wrappedKeyType
を表していない場合public static final int getMaxAllowedKeyLength(String transformation) throws NoSuchAlgorithmException
transformation
- 暗号化変換
NullPointerException
- transformation
が null の場合
NoSuchAlgorithmException
- 形式が「アルゴリズム」または「アルゴリズム/モード/パディング」など、transformation
が有効な変換でない場合public static final AlgorithmParameterSpec getMaxAllowedParameterSpec(String transformation) throws NoSuchAlgorithmException
transformation
- 暗号化変換
NullPointerException
- transformation
が null の場合
NoSuchAlgorithmException
- 形式が「アルゴリズム」または「アルゴリズム/モード/パディング」など、transformation
が有効な変換でない場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。