|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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/CFB8/NoPadding
」および「DES/OFB32/PKCS5Padding
」変換に示されるように、この数値をモード名に追加することにより、一度に処理するビット数をオプションで指定できます。数値を指定しない場合、プロバイダ固有のデフォルトが使用されます(たとえば、SunJCE プロバイダでは DES にデフォルトの 64 ビットが使用される)。したがって、CFB8 や OFB8 などの 8 ビットモードを使用することで、ブロック暗号をバイト指向のストリーム暗号に変換できます。
- 導入されたバージョン:
- 1.4
- 関連項目:
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
フィールドの詳細
ENCRYPT_MODE
public static final int ENCRYPT_MODE
- 暗号を暗号化モードに初期化するのに使用する定数です。
- 関連項目:
- 定数フィールド値
DECRYPT_MODE
public static final int DECRYPT_MODE
- 暗号を復号化モードに初期化するのに使用する定数です。
- 関連項目:
- 定数フィールド値
WRAP_MODE
public static final int WRAP_MODE
- 暗号を鍵ラッピングモードに初期化するのに使用する定数です。
- 関連項目:
- 定数フィールド値
UNWRAP_MODE
public static final int UNWRAP_MODE
- 暗号を鍵ラッピング解除モードに初期化するのに使用する定数です。
- 関連項目:
- 定数フィールド値
PUBLIC_KEY
public static final int PUBLIC_KEY
- ラップ解除される鍵が「公開鍵」であることを示すのに使用する定数です。
- 関連項目:
- 定数フィールド値
PRIVATE_KEY
public static final int PRIVATE_KEY
- ラップ解除される鍵が「非公開鍵」であることを示すのに使用する定数です。
- 関連項目:
- 定数フィールド値
SECRET_KEY
public static final int SECRET_KEY
- ラップ解除される鍵が「秘密鍵」であることを示すのに使用する定数です。
- 関連項目:
- 定数フィールド値
コンストラクタの詳細
Cipher
protected Cipher(CipherSpi cipherSpi,
Provider provider,
String transformation)
- Cipher オブジェクトを生成します。
- パラメータ:
cipherSpi
- 委譲先provider
- プロバイダtransformation
- 変換
メソッドの詳細
getInstance
public static final Cipher getInstance(String transformation)
throws NoSuchAlgorithmException,
NoSuchPaddingException
- 指定された変換を実装する
Cipher
オブジェクトを返します。
このメソッドは、最優先のプロバイダから順に、登録済みのセキュリティープロバイダのリストをトラバースします。指定されたアルゴリズムをサポートする最初のプロバイダからの CipherSpi 実装をカプセル化する新しい Cipher オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
- パラメータ:
transformation
- 変換の名前。たとえば、DES/CBC/PKCS5Padding。
標準の変換名については、「Java 暗号化アーキテクチャーリファレンスガイド」の付録 A を参照
- 戻り値:
- 要求された変換を実装する暗号
- 例外:
NoSuchAlgorithmException
- transformation
が null、空、または無効な形式の場合。あるいは、指定されたアルゴリズムの CipherSpi 実装をサポートするプロバイダが存在しない場合
NoSuchPaddingException
- 使用できないパディング方式が transformation
に含まれている場合- 関連項目:
Provider
getInstance
public static final Cipher getInstance(String transformation,
String provider)
throws NoSuchAlgorithmException,
NoSuchProviderException,
NoSuchPaddingException
- 指定された変換を実装する
Cipher
オブジェクトを返します。
指定されたプロバイダからの CipherSpi 実装をカプセル化する新しい Cipher オブジェクトが返されます。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
- パラメータ:
transformation
- 変換の名前。たとえば、DES/CBC/PKCS5Padding。
標準の変換名については、「Java 暗号化アーキテクチャーリファレンスガイド」の付録 A を参照provider
- プロバイダ名
- 戻り値:
- 要求された変換を実装する暗号
- 例外:
NoSuchAlgorithmException
- transformation
が null、空、または無効な形式の場合。あるいは、指定されたアルゴリズムの CipherSpi 実装が、指定されたプロバイダから使用できない場合
NoSuchProviderException
- 指定したプロバイダがセキュリティープロバイダリストに登録されていない場合
NoSuchPaddingException
- 使用できないパディング方式が transformation
に含まれている場合
IllegalArgumentException
- provider
が null または空の場合- 関連項目:
Provider
getInstance
public static final Cipher getInstance(String transformation,
Provider provider)
throws NoSuchAlgorithmException,
NoSuchPaddingException
- 指定された変換を実装する
Cipher
オブジェクトを返します。
指定された Provider オブジェクトからの CipherSpi 実装をカプセル化する新しい Cipher オブジェクトが返されます。指定した Provider オブジェクトは、プロバイダリストに登録する必要はありません。
- パラメータ:
transformation
- 変換の名前。たとえば、DES/CBC/PKCS5Padding。
標準の変換名については、「Java 暗号化アーキテクチャーリファレンスガイド」の付録 A を参照provider
- プロバイダ
- 戻り値:
- 要求された変換を実装する暗号
- 例外:
NoSuchAlgorithmException
- transformation
が null、空、または無効な形式の場合。あるいは、指定されたアルゴリズムの CipherSpi 実装が、指定された Provider オブジェクトから使用できない場合
NoSuchPaddingException
- 使用できないパディング方式が transformation
に含まれている場合
IllegalArgumentException
- provider
が null の場合- 関連項目:
Provider
getProvider
public final Provider getProvider()
- この
Cipher
オブジェクトのプロバイダを返します。
- 戻り値:
- この
Cipher
オブジェクトのプロバイダ
getAlgorithm
public final String getAlgorithm()
- この
Cipher
オブジェクトのアルゴリズム名を返します。
これは、この Cipher
オブジェクトを生成した getInstance
呼び出しのどれかで指定された名前と同じです。
- 戻り値:
- この
Cipher
オブジェクトのアルゴリズム名
getBlockSize
public final int getBlockSize()
- ブロックサイズを返します (バイト単位)。
- 戻り値:
- ブロックサイズ (バイト単位)。基本となるアルゴリズムがブロック暗号でない場合は 0
getOutputSize
public final int getOutputSize(int inputLen)
- 入力の長さ
inputLen
(バイト単位) を指定して、次の update
または doFinal
操作の結果を保持するために必要な出力バッファーの長さをバイト数で返します。
この呼び出しでは、以前の update
呼び出しの処理されていない (バッファーにある) データを考慮し、パディングします。
次の update
または doFinal
呼び出しの実際の出力長は、このメソッドが返す長さより小さいことがあります。
- パラメータ:
inputLen
- 入力長 (バイト単位)
- 戻り値:
- 必要な出力バッファーサイズ (バイト単位)
- 例外:
IllegalStateException
- この暗号が誤った状態にある場合 (まだ初期化されていないなど)
getIV
public final byte[] getIV()
- 新しいバッファーの初期化ベクタ (IV) を返します。
これは、ランダム IV が作成された場合、あるいは IV がユーザー指定のパスワードから派生するパスワードベースの暗号化または復号化のコンテキストにおいて役立ちます。
- 戻り値:
- 新しいバッファー内の初期化ベクタ。基本となるアルゴリズムが IV を使用しない場合、または IV が設定されていない場合は null
getParameters
public final AlgorithmParameters getParameters()
- この暗号で使用されるパラメータを返します。
返されるパラメータは、この暗号を初期化するのに使用したものと同じ場合があります。または、返されるパラメータには、この暗号にアルゴリズムパラメータが必要で、かつアルゴリズムパラメータで初期化されなかった場合に、基本となる暗号実装で使用されるデフォルトとランダムのパラメータ値の組み合わせが含まれることもあります。
- 戻り値:
- この暗号で使用されるパラメータ。この暗号でパラメータを使用しない場合は null
getExemptionMechanism
public final ExemptionMechanism getExemptionMechanism()
- この暗号で使用される除外機構オブジェクトを返します。
- 戻り値:
- この暗号で使用される除外機構オブジェクト。この暗号で除外機構を使用しない場合は null
init
public final void init(int opmode,
Key key)
throws InvalidKeyException
- 鍵を使用してこの暗号を初期化します。
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
この暗号が、指定された key
から派生できないアルゴリズムパラメータを必要とする場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidKeyException
を発生させます。生成されたパラメータは、getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (パラメータ生成のためなど) は、乱数発生の元として最優先の順位でインストールされているプロバイダの SecureRandom
の実装を使用して取得します。SecureRandom を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
Cipher オブジェクトを初期化すると、それまでに獲得した状態がすべて失われることに留意してください。つまり、Cipher を初期化することは、その Cipher の新規インスタンスを作成して初期化することと等価です。
- パラメータ:
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- キー
- 例外:
InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合、この暗号が復号化用に初期化され、指定された鍵から判定することができないアルゴリズムパラメータを必要とする場合、または指定された鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合
init
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
- 指定された鍵がこの暗号の初期化に不適切な場合、この暗号が復号化用に初期化され、指定された鍵から判定することができないアルゴリズムパラメータを必要とする場合、または指定された鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合
init
public final void init(int opmode,
Key key,
AlgorithmParameterSpec params)
throws InvalidKeyException,
InvalidAlgorithmParameterException
- 鍵とアルゴリズムパラメータのセットを使用してこの暗号を初期化します。
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
この暗号がアルゴリズムパラメータを必要とし、params
が null の場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidAlgorithmParameterException
を発生させます。生成されたパラメータは、getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (パラメータ生成のためなど) は、乱数発生の元として最優先の順位でインストールされているプロバイダの SecureRandom
の実装を使用して取得します。SecureRandom を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
Cipher オブジェクトを初期化すると、それまでに獲得した状態がすべて失われることに留意してください。つまり、Cipher を初期化することは、その Cipher の新規インスタンスを作成して初期化することと等価です。
- パラメータ:
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- 暗号化鍵params
- アルゴリズムパラメータ
- 例外:
InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合、または指定された鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合
InvalidAlgorithmParameterException
- 指定されたアルゴリズムパラメータがこの暗号に不適切な場合、この暗号が復号化用に初期化され、アルゴリズムパラメータを必要とし、params
が null の場合、または指定されたアルゴリズムパラメータが有効な制限 (設定されている管轄ポリシーファイルにより決定) を超える暗号化強度を示す場合
init
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 の場合、または指定されたアルゴリズムパラメータが有効な制限 (設定されている管轄ポリシーファイルにより決定) を超える暗号化強度を示す場合
init
public final void init(int opmode,
Key key,
AlgorithmParameters params)
throws InvalidKeyException,
InvalidAlgorithmParameterException
- 鍵とアルゴリズムパラメータのセットを使用してこの暗号を初期化します。
この暗号は、opmode
の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。
この暗号がアルゴリズムパラメータを必要とし、params
が null の場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidAlgorithmParameterException
を発生させます。生成されたパラメータは、getParameters
または getIV
(パラメータが IV の場合) を使用して取り出すことができます。
この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (パラメータ生成のためなど) は、乱数発生の元として最優先の順位でインストールされているプロバイダの SecureRandom
の実装を使用して取得します。SecureRandom を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
Cipher オブジェクトを初期化すると、それまでに獲得した状態がすべて失われることに留意してください。つまり、Cipher を初期化することは、その Cipher の新規インスタンスを作成して初期化することと等価です。
- パラメータ:
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- 暗号化鍵params
- アルゴリズムパラメータ
- 例外:
InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合、または指定された鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合
InvalidAlgorithmParameterException
- 指定されたアルゴリズムパラメータがこの暗号に不適切な場合、この暗号が復号化用に初期化され、アルゴリズムパラメータを必要とし、params
が null の場合、または指定されたアルゴリズムパラメータが有効な制限 (設定されている管轄ポリシーファイルにより決定) を超える暗号化強度を示す場合
init
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 の場合、または指定されたアルゴリズムパラメータが有効な制限 (設定されている管轄ポリシーファイルにより決定) を超える暗号化強度を示す場合
init
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 を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
Cipher オブジェクトを初期化すると、それまでに獲得した状態がすべて失われることに留意してください。つまり、Cipher を初期化することは、その Cipher の新規インスタンスを作成して初期化することと等価です。
- パラメータ:
opmode
- この暗号の操作モード (ENCRYPT_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)certificate
- 証明書
- 例外:
InvalidKeyException
- 指定された証明書の公開鍵がこの暗号の初期化に不適切な場合、この暗号が復号化鍵またはラッピング解除鍵用に初期化され、指定された証明書の公開鍵から判定することができないアルゴリズムパラメータを必要とする場合、または指定された証明書の公開鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合
init
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
- 指定された証明書の公開鍵がこの暗号の初期化に不適切な場合、この暗号が復号化鍵またはラッピング解除鍵用に初期化され、指定された証明書の公開鍵から判定することができないアルゴリズムパラメータを必要とする場合、または指定された証明書の公開鍵のサイズが最大許容鍵サイズ (設定されている管轄ポリシーファイルにより決定) を超える場合
update
public final byte[] update(byte[] input)
- 複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。
input
バッファー内のバイトが処理され、結果が新しいバッファーに格納されます。
input
の長さがゼロの場合、このメソッドは null
を返します。
- パラメータ:
input
- 入力バッファー
- 戻り値:
- 結果の入った新しいバッファー。基本となる暗号がブロック暗号であり、入力データが短かすぎて新しいブロックにならない場合は null
- 例外:
IllegalStateException
- この暗号が誤った状態にある場合 (初期化されていないなど)
update
public final byte[] update(byte[] input,
int inputOffset,
int inputLen)
- 複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。
inputOffset
から始まる、input
バッファー内の最初の inputLen
バイトが処理され、結果が新しいバッファーに格納されます。
inputLen
がゼロの場合、このメソッドは null
を返します。
- パラメータ:
input
- 入力バッファーinputOffset
- 入力を開始する input
内のオフセットinputLen
- 入力長
- 戻り値:
- 結果の入った新しいバッファー。基本となる暗号がブロック暗号であり、入力データが短かすぎて新しいブロックにならない場合は null
- 例外:
IllegalStateException
- この暗号が誤った状態にある場合 (初期化されていないなど)
update
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
- 指定された出力バッファーが小さすぎて結果を保持できない場合
update
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
- 指定された出力バッファーが小さすぎて結果を保持できない場合
update
public final int update(ByteBuffer input,
ByteBuffer output)
throws ShortBufferException
- 複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。
input.position()
から始まるすべての input.remaining()
バイトが処理されます。結果は出力バッファーに格納されます。終了時に、入力バッファーの位置はリミットに等しくなりますが、リミットは変更されません。出力バッファーの位置は n だけ増加します。n は、このメソッドが返す値です。出力バッファーのリミットは変更されません。
output.remaining()
バイトが結果を保持するのに不十分な場合は、ShortBufferException
がスローされます。この場合、より大きな出力バッファーを使用してこの呼び出しを繰り返します。getOutputSize
を使用して、必要な出力バッファーのサイズを判定します。
注:このメソッドはコピーに対して安全である必要があります。つまり、input
および output
バッファーは同じメモリーブロックを参照することができ、結果が出力バッファーにコピーされるときに未処理の入力データが上書きされないことが必要です。
- パラメータ:
input
- 入力 ByteBufferoutput
- 出力 ByteByffer
- 戻り値:
output
に格納されたバイト数
- 例外:
IllegalStateException
- この暗号が誤った状態にある場合 (初期化されていないなど)
IllegalArgumentException
- 入力と出力が同じオブジェクトである場合
ReadOnlyBufferException
- 出力バッファーが読み取り専用の場合
ShortBufferException
- 出力バッファー内に残っている容量が不足している場合- 導入されたバージョン:
- 1.5
doFinal
public final byte[] doFinal()
throws IllegalBlockSizeException,
BadPaddingException
- 複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を終了します。
入力データは前の update
操作中にバッファーに入れられて、パディング (要求された場合) が適用されている場合があります。結果は新しいバッファーに格納されます。
終了時に、このメソッドはこの暗号オブジェクトを前に init
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (init
の呼び出しで指定された操作モードにより異なる)。
注:例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
- 戻り値:
- 結果の入った新しいバッファー
- 例外:
IllegalStateException
- この暗号が誤った状態にある場合 (初期化されていないなど)
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合
BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合
doFinal
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
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合
doFinal
public final byte[] doFinal(byte[] input)
throws IllegalBlockSizeException,
BadPaddingException
- 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。データは、この暗号が初期化された方法に従って、暗号化または復号化されます。
input
バッファー内のバイト、および前の update
操作中にバッファーに入れられた可能性のあるすべての入力バイトが処理され、パディング (要求された場合) が適用されます。結果は新しいバッファーに格納されます。
終了時に、このメソッドはこの暗号オブジェクトを前に init
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (init
の呼び出しで指定された操作モードにより異なる)。
注:例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
- パラメータ:
input
- 入力バッファー
- 戻り値:
- 結果の入った新しいバッファー
- 例外:
IllegalStateException
- この暗号が誤った状態にある場合 (初期化されていないなど)
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合
BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合
doFinal
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
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合
doFinal
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
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合
doFinal
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
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合
doFinal
public final int doFinal(ByteBuffer input,
ByteBuffer output)
throws ShortBufferException,
IllegalBlockSizeException,
BadPaddingException
- 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。データは、この暗号が初期化された方法に従って、暗号化または復号化されます。
input.position()
から始まるすべての input.remaining()
バイトが処理されます。結果は出力バッファーに格納されます。終了時に、入力バッファーの位置はリミットに等しくなりますが、リミットは変更されません。出力バッファーの位置は n だけ増加します。n は、このメソッドが返す値です。出力バッファーのリミットは変更されません。
output.remaining()
バイトが結果を保持するのに不十分な場合は、ShortBufferException
がスローされます。この場合、より大きな出力バッファーを使用してこの呼び出しを繰り返します。getOutputSize
を使用して、必要な出力バッファーのサイズを判定します。
終了時に、このメソッドはこの暗号オブジェクトを前に init
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (init
の呼び出しで指定された操作モードにより異なる)。
注:例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
注:このメソッドはコピーに対して安全である必要があります。つまり、input
および output
バッファーは同じバイト配列を参照することができ、結果が出力バッファーにコピーされるときに未処理の入力データが上書きされないことが必要です。
- パラメータ:
input
- 入力 ByteBufferoutput
- 出力 ByteBuffer
- 戻り値:
output
に格納されたバイト数
- 例外:
IllegalStateException
- この暗号が誤った状態にある場合 (初期化されていないなど)
IllegalArgumentException
- 入力と出力が同じオブジェクトである場合
ReadOnlyBufferException
- 出力バッファーが読み取り専用の場合
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合
ShortBufferException
- 出力バッファー内に残っている容量が不足している場合
BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合- 導入されたバージョン:
- 1.5
wrap
public final byte[] wrap(Key key)
throws IllegalBlockSizeException,
InvalidKeyException
- 鍵をラップします。
- パラメータ:
key
- ラップされる鍵
- 戻り値:
- ラップされた鍵
- 例外:
IllegalStateException
- この暗号が誤った状態にある場合 (初期化されていないなど)
IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず、ラップされる鍵のエンコーディングの長さがブロックサイズの倍数でない場合
InvalidKeyException
- この暗号を使用して鍵をラップすることが不可能か安全でない場合 (ハードウェア保護された鍵がソフトウェアだけの暗号に渡される場合など)
unwrap
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
タイプのラップされた鍵を表さない場合
getMaxAllowedKeyLength
public static final int getMaxAllowedKeyLength(String transformation)
throws NoSuchAlgorithmException
- インストールされている JCE 管轄ポリシーファイルに従って、指定された変換の鍵の最大長を返します。強度が無制限の JCE 管轄ポリシーファイルがインストールされている場合は、Integer.MAX_VALUE が返されます。JCE 管轄ポリシーファイルの鍵のデフォルトサイズについては、「Java 暗号化アーキテクチャーリファレンスガイド」の付録 E を参照してください。
- パラメータ:
transformation
- 暗号変換
- 戻り値:
- ビット単位の鍵の最大長または Integer.MAX_VALUE
- 例外:
NullPointerException
- transformation
が null の場合
NoSuchAlgorithmException
- transformation
が有効な変換でない場合。すなわち、「algorithm」または「algorithm/mode/padding」の形式でない場合- 導入されたバージョン:
- 1.5
getMaxAllowedParameterSpec
public static final AlgorithmParameterSpec getMaxAllowedParameterSpec(String transformation)
throws NoSuchAlgorithmException
- 管轄ポリシーファイルに従って、最大の暗号パラメータ値を含む AlgorithmParameterSpec オブジェクトを返します。強度が無制限の JCE 管轄ポリシーファイルがインストールされている場合、または指定された変換のパラメータの最大リミットがポリシーファイルに存在しない場合、null が返されます。
- パラメータ:
transformation
- 暗号変換
- 戻り値:
- 最大値を保持する AlgorithmParameterSpec または null
- 例外:
NullPointerException
- transformation
が null の場合
NoSuchAlgorithmException
- transformation
が有効な変換でない場合。すなわち、「algorithm」または「algorithm/mode/padding」の形式でない場合- 導入されたバージョン:
- 1.5
概要
パッケージ
クラス
使用
階層ツリー
非推奨 API
索引
ヘルプ
JavaTM Platform
Standard Ed. 6
前のクラス
次のクラス
フレームあり
フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド
詳細: フィールド | コンストラクタ | メソッド
バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。