- 直系の既知のサブクラス:
NullCipher
Cipherオブジェクトを作成するために、アプリケーションは暗号のgetInstanceメソッドをコールし、リクエストされたtransformationの名前をそれに渡します。 必要に応じて、プロバイダの名前を指定できます。
変換は、指定された入力に対して実行し、何らかの出力を生成する操作(または操作のセット)を説明する文字列です。 変換には、常に暗号アルゴリズム(例、AES)の名前が含まれ、フィードバック・モードとパディング・スキームが続きます。
変換は、次の書式で記述されます。
- "algorithm/mode/padding"または
- "algorithm"
後者の場合、モードおよびパディング方式には、プロバイダ固有のデフォルト値が使用されます。 たとえば、次は有効な変換です。
Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
CFBやOFBなどのモードを使用すると、ブロック暗号は、暗号の実際のブロック・サイズよりも小さい単位でデータを暗号化できます。 このようなモードを要求する場合、AES/CFB8/NoPaddingおよびAES/OFB32/PKCS5Padding変換で示されるように、一度に処理するビット数を、モード名に追加することで指定することもできます。 数値を指定しない場合、プロバイダ固有のデフォルトが使用されます。 (JDKプロバイダのデフォルト値については、「JDKプロバイダのドキュメント」を参照してください。) したがって、CFB8やOFB8などの8ビット・モードを使用することで、ブロック暗号をバイト指向のストリーム暗号に変換できます。
関連データ付き認証付暗号化方式(AEAD)などのモードは、機密データと暗号化されていないAdditional Associated Data (AAD)の両方に信頼性の証明を提供します。 (AEADやGCM/CCMなどのAADアルゴリズムの詳細については、RFC 5116を参照してください。) 機密データとAADデータは、どちらも認証タグを計算するときに使用できます(Macに似ています)。 このタグは暗号化の際に暗号テキストに追加され、復号化の際に検証されます。
GCMやCCMなどのAEADモードは、暗号テキストの信頼性計算を開始する前にAADの信頼性計算をすべて実行します。 実装の際に暗号テキストを内部にバッファしなくてすむようにするには、暗号テキストの処理(updateおよびdoFinalメソッドを使用) よりも前にGCMまたはCCMの実装にすべてのAADデータを供給(updateAADメソッドを使用)する必要があります。
GCMモードでは、ある特定のキーによる暗号化に使用されるIVは一意でなければならないという要件があります。 GCM暗号化にIVを繰り返し使用すると、偽造攻撃の対象になります。 したがって、GCMモードを使用する各暗号化演算の後に、コール元は、IV値が異なるGCMパラメータを使用してCipherオブジェクトを再初期化する必要があります。
GCMParameterSpec s = ...;
cipher.init(..., s);
// If the GCM parameters were generated by the provider, it can
// be retrieved by:
// cipher.getParameters().getParameterSpec(GCMParameterSpec.class);
cipher.updateAAD(...); // AAD
cipher.update(...); // Multi-part update
cipher.doFinal(...); // conclusion of operation
// Use a different IV value for every encryption
byte[] newIv = ...;
s = new GCMParameterSpec(s.getTLen(), newIv);
cipher.init(..., s);
...
ChaCha20およびChaCha20-Poly1305アルゴリズムでは、特定の鍵を使用する一意のnoncesにも同様の要件があります。 暗号化または復号化操作のたびに、呼出し元は異なるnonce値を指定するパラメータを使用してChaCha20またはChaCha20-Poly1305暗号を再初期化する必要があります。 ChaCha20およびChaCha20-Poly1305アルゴリズムの詳細は、RFC 7539を参照してください。
Javaプラットフォームのすべての実装は、カッコ内のキー・サイズを使用した次の標準のCipherオブジェクト変換をサポートするために必要です:
AES/CBC/NoPadding(128)AES/CBC/PKCS5Padding(128)AES/ECB/NoPadding(128)AES/ECB/PKCS5Padding(128)AES/GCM/NoPadding(128)DESede/CBC/NoPadding(168)DESede/CBC/PKCS5Padding(168)DESede/ECB/NoPadding(168)DESede/ECB/PKCS5Padding(168)RSA/ECB/PKCS1Padding(1024、2048)RSA/ECB/OAEPWithSHA-1AndMGF1Padding(1024、2048)RSA/ECB/OAEPWithSHA-256AndMGF1Padding(1024、2048)
- 導入されたバージョン:
- 1.4
- 関連項目:
-
フィールドのサマリー
フィールド修飾子と型フィールド説明static final int暗号を復号化モードに初期化するのに使用する定数です。static final int暗号を暗号化モードに初期化するのに使用する定数です。static final intラップ解除されるキーが「非公開キー」であることを示すのに使用する定数です。static final intラップ解除されるキーが「公開キー」であることを示すのに使用する定数です。static final intラップ解除されるキーが「秘密キー」であることを示すのに使用する定数です。static final int暗号をキー・ラッピング解除モードに初期化するのに使用する定数です。static final int暗号をキー・ラッピング・モードに初期化するのに使用する定数です。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明final byte[]doFinal()このCipherオブジェクトの初期化方法に応じて、複数パートの暗号化または復号化操作を終了します。final byte[]doFinal(byte[] input) 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。final intdoFinal(byte[] output, int outputOffset) このCipherオブジェクトの初期化方法に応じて、複数パートの暗号化または復号化操作を終了します。final byte[]doFinal(byte[] input, int inputOffset, int inputLen) 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。final intdoFinal(byte[] input, int inputOffset, int inputLen, byte[] output) 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。final intdoFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。final intdoFinal(ByteBuffer input, ByteBuffer output) 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。final StringこのCipherオブジェクトのアルゴリズム名を返します。final intブロック・サイズを返します(バイト単位)。final ExemptionMechanismこのCipherオブジェクトで使用される免税メカニズム・オブジェクトを返します。static final CiphergetInstance(String transformation) 指定された変換を実装するCipherオブジェクトを返します。static final CiphergetInstance(String transformation, String provider) 指定された変換を実装するCipherオブジェクトを返します。static final CiphergetInstance(String transformation, Provider provider) 指定された変換を実装するCipherオブジェクトを返します。final byte[]getIV()新しいバッファの初期化ベクトル(IV)を返します。static final intgetMaxAllowedKeyLength(String transformation) インストールされているJCE管轄ポリシー・ファイルに従って、指定された変換のキーの最大長を返します。static final AlgorithmParameterSpecgetMaxAllowedParameterSpec(String transformation) 管轄ポリシー・ファイルに従って最大Cipherパラメータ値を含む {code AlgorithmParameterSpec} オブジェクトを返します。final intgetOutputSize(int inputLen) 入力の長さinputLen(バイト単位)を指定して、次のupdateまたはdoFinal操作の結果を保持するために必要な出力バッファの長さをバイト数で返します。final AlgorithmParametersこのCipherオブジェクトで使用されるパラメータを返します。final ProviderこのCipherオブジェクトのプロバイダを返します。final voidinit(int opmode, Certificate certificate) このCipherオブジェクトを、指定された証明書の公開キーで初期化します。final voidinit(int opmode, Certificate certificate, SecureRandom random) このCipherオブジェクトを、指定された証明書の公開キーとランダム性のソースで初期化します。final voidこのCipherオブジェクトをキーで初期化します。final voidinit(int opmode, Key key, AlgorithmParameters params) このCipherオブジェクトをキーとアルゴリズム・パラメータのセットで初期化します。final voidinit(int opmode, Key key, AlgorithmParameters params, SecureRandom random) このCipherオブジェクトをキー、アルゴリズム・パラメータのセットおよびランダム性のソースで初期化します。final voidinit(int opmode, Key key, SecureRandom random) このCipherオブジェクトをキーとランダム性のソースで初期化します。final voidinit(int opmode, Key key, AlgorithmParameterSpec params) このCipherオブジェクトをキーとアルゴリズム・パラメータのセットで初期化します。final voidinit(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random) このCipherオブジェクトをキー、アルゴリズム・パラメータのセットおよびランダム性のソースで初期化します。toString()このCipherオブジェクトのString表現を返します。final Key前にラップされたキーをラップ解除します。final byte[]update(byte[] input) 複数部分の暗号化または復号化操作(このCipherオブジェクトの初期化方法に応じて)を続行し、別のデータ部分を処理します。final byte[]update(byte[] input, int inputOffset, int inputLen) 複数部分の暗号化または復号化操作(このCipherオブジェクトの初期化方法に応じて)を続行し、別のデータ部分を処理します。final intupdate(byte[] input, int inputOffset, int inputLen, byte[] output) 複数部分の暗号化または復号化操作(このCipherオブジェクトの初期化方法に応じて)を続行し、別のデータ部分を処理します。final intupdate(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) 複数部分の暗号化または復号化操作(このCipherオブジェクトの初期化方法に応じて)を続行し、別のデータ部分を処理します。final intupdate(ByteBuffer input, ByteBuffer output) 複数部分の暗号化または復号化操作(このCipherオブジェクトの初期化方法に応じて)を続行し、別のデータ部分を処理します。final voidupdateAAD(byte[] src) AAD (Additional Authentication Data)のマルチパート更新を継続します。final voidupdateAAD(byte[] src, int offset, int len) 提供されたバッファのサブセットを使用して、Additional Authentication Data (AAD)のマルチパート更新を続行します。final voidupdateAAD(ByteBuffer src) AAD (Additional Authentication Data)のマルチパート更新を継続します。final byte[]キーをラップします。
-
フィールド詳細
-
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
Cipherオブジェクトを作成します。- パラメータ:
cipherSpi- 委譲先provider- プロバイダtransformation- 変換- 例外:
NullPointerException-providerがnullの場合IllegalArgumentException- 指定された引数がCipherオブジェクトの作成に対して無効とみなされる場合
-
-
メソッドの詳細
-
getInstance
public static final Cipher getInstance(String transformation) throws NoSuchAlgorithmException, NoSuchPaddingException 指定された変換を実装するCipherオブジェクトを返します。このメソッドは、最も優先されるプロバイダから始まる登録済セキュリティ・プロバイダのリストを横断します。 指定されたアルゴリズムをサポートする最初のプロバイダから
CipherSpi実装をカプセル化する新しいCipherオブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- APIのノート:
- アルゴリズム、モードおよびパディングを完全に指定した変換を使用することをお薦めします。 これを行わないと、プロバイダはアプリケーションのセキュリティ要件を満たしていないモードおよびパディングにデフォルトを使用します。
- 実装上のノート:
- JDKリファレンス実装では、
jdk.security.provider.preferredSecurityプロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。 JDKプロバイダで使用される変換のデフォルト値については、「JDKプロバイダ」ドキュメントの「暗号化変換」セクションも参照してください。 - パラメータ:
transformation- 変換の名前です(例:AES/CBC/PKCS5Padding)。 標準変換名については、「Javaセキュリティ標準アルゴリズム名指定」のCipherセクションを参照してください。- 戻り値:
- リクエストされた変換を実装する
Cipherオブジェクト - 例外:
NoSuchAlgorithmException-transformationがnullの場合、空の場合、無効な形式の場合、または指定したアルゴリズムに対するCipherSpi実装をプロバイダがサポートしていない場合NoSuchPaddingException- 使用できないパディング方式がtransformationに含まれている場合- 関連項目:
-
getInstance
public static final Cipher getInstance(String transformation, String provider) throws NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException 指定された変換を実装するCipherオブジェクトを返します。指定したプロバイダから
CipherSpi実装をカプセル化する新しいCipherオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- APIのノート:
- アルゴリズム、モードおよびパディングを完全に指定した変換を使用することをお薦めします。 これを行わないと、プロバイダはアプリケーションのセキュリティ要件を満たしていないモードおよびパディングにデフォルトを使用します。
- 実装上のノート:
- JDKプロバイダが使用する変換のデフォルト値については、「JDKプロバイダ」ドキュメントの「暗号化変換」セクションを参照してください。
- パラメータ:
transformation- 変換の名前です(例:AES/CBC/PKCS5Padding)。 標準変換名については、「Javaセキュリティ標準アルゴリズム名指定」のCipherセクションを参照してください。provider- プロバイダ名- 戻り値:
- リクエストされた変換を実装する
Cipherオブジェクト - 例外:
IllegalArgumentException-providerがnullまたは空の場合NoSuchAlgorithmException-transformationがnull、空であるか、無効な形式である場合、または指定されたアルゴリズムのCipherSpi実装が指定されたプロバイダから利用できない場合NoSuchPaddingException- 使用できないパディング方式がtransformationに含まれている場合NoSuchProviderException- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合- 関連項目:
-
getInstance
public static final Cipher getInstance(String transformation, Provider provider) throws NoSuchAlgorithmException, NoSuchPaddingException 指定された変換を実装するCipherオブジェクトを返します。指定した
providerオブジェクトからCipherSpi実装をカプセル化する新しいCipherオブジェクトが返されます。 指定されたproviderオブジェクトをプロバイダ・リストに登録する必要はありません。- APIのノート:
- アルゴリズム、モードおよびパディングを完全に指定した変換を使用することをお薦めします。 これを行わないと、プロバイダはアプリケーションのセキュリティ要件を満たしていないモードおよびパディングにデフォルトを使用します。
- 実装上のノート:
- JDKプロバイダが使用する変換のデフォルト値については、「JDKプロバイダ」ドキュメントの「暗号化変換」セクションを参照してください。
- パラメータ:
transformation- 変換の名前です(例:AES/CBC/PKCS5Padding)。 標準変換名については、「Javaセキュリティ標準アルゴリズム名指定」のCipherセクションを参照してください。provider- プロバイダ- 戻り値:
- リクエストされた変換を実装する
Cipherオブジェクト - 例外:
IllegalArgumentException-providerがnullの場合NoSuchAlgorithmException-transformationがnullの場合、空の場合、無効な形式の場合、または指定されたアルゴリズムのCipherSpi実装が指定されたproviderオブジェクトから使用できない場合NoSuchPaddingException- 使用できないパディング方式がtransformationに含まれている場合- 関連項目:
-
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呼出しの処理されていない(バッファにある)データを考慮し、パディングおよびAEADタグ付けを行います。次の
updateまたはdoFinal呼出しの実際の出力長は、このメソッドが返す長さより小さいことがあります。- パラメータ:
inputLen- 入力長(バイト単位)- 戻り値:
- 必要な出力バッファ・サイズ(バイト単位)
- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:まだ初期化されていません)
-
getIV
public final byte[] getIV()新しいバッファの初期化ベクトル(IV)を返します。これは、ランダムIVが作成された場合、あるいはIVがユーザー指定のパスワードから派生するパスワードベースの暗号化または復号化のコンテキストにおいて役立ちます。
- 戻り値:
- 新しいバッファ内の初期化ベクトル。この暗号がIVを使用しない場合、またはIVがまだ設定されていない場合は
null。
-
getParameters
public final AlgorithmParameters getParameters()このCipherオブジェクトで使用されるパラメータを返します。返されるパラメータは、この暗号の初期化に使用されたものと同じか、基礎となる暗号実装で使用される追加のデフォルトまたはランダム・パラメータ値が含まれる場合があります。 必要なパラメータが指定されておらず、暗号によって生成できる場合は、生成されたパラメータが返されます。 それ以外の場合は
nullが返されます。- 戻り値:
- この暗号で使用されるパラメータ、または
null
-
getExemptionMechanism
public final ExemptionMechanism getExemptionMechanism()このCipherオブジェクトで使用される免税メカニズム・オブジェクトを返します。- 戻り値:
- この
Cipherオブジェクトで使用される免税メカニズム・オブジェクト。このCipherオブジェクトで免税メカニズムが使用されていない場合はnull。
-
init
public final void init(int opmode, Key key) throws InvalidKeyException このCipherオブジェクトをキーで初期化します。Cipherオブジェクトは、次の4つの操作のいずれかに対して初期化されます:opmodeの値に応じて、暗号化、復号化、キー・ラップまたはキーのアン・ラップを行います。この暗号が、指定された
keyから派生できないアルゴリズム・パラメータを必要とする場合、基本となる暗号実装は、暗号化またはキー・ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化またはキー・ラッピング解除用に初期化されていれば、InvalidKeyExceptionを発生させます。 生成されたパラメータは、getParametersまたはgetIV(パラメータがIVの場合)を使用して取り出すことができます。この暗号が入力パラメータから派生できないアルゴリズム・パラメータを必要とし、適切なプロバイダ固有のデフォルト値がない場合は、必ず初期化に失敗します。
この暗号(フィードバックまたはパディング・スキームを含む)でランダム・バイト(例、パラメータ生成用)が必要な場合は、最も優先度の高いインストール済プロバイダの
SecureRandom実装をランダム性のソースとして使用して取得します。 SecureRandomを提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。Cipherオブジェクトが初期化されると、以前に取得されたすべての状態が失われることに注意してください。 つまり、Cipherオブジェクトの初期化は、そのCipherオブジェクトの新しいインスタンスを作成して初期化することと同じです。- パラメータ:
opmode- このCipherオブジェクト(これは次のいずれかです:ENCRYPT_MODE,DECRYPT_MODE,WRAP_MODEまたはUNWRAP_MODE)の操作モードkey- キー- 例外:
InvalidKeyException- 指定されたキーがこの暗号の初期化に不適切であるか、指定されたキーから決定できないアルゴリズム・パラメータが必要な場合、または指定されたキーに最大許容キー・サイズ(構成済管轄ポリシー・ファイルから決定)を超えるキー・サイズがある場合UnsupportedOperationException-opmodeがWRAP_MODEまたはUNWRAP_MODEであるが、基礎となるCipherSpiによってモードが実装されていない場合InvalidParameterException-opmodeが認識された値のいずれでもない場合
-
init
public final void init(int opmode, Key key, SecureRandom random) throws InvalidKeyException このCipherオブジェクトをキーとランダム性のソースで初期化します。Cipherオブジェクトは、次の4つの操作のいずれかに対して初期化されます:opmodeの値に応じて、暗号化、復号化、キー・ラップまたはキーのアン・ラップを行います。この暗号が、指定された
keyから派生できないアルゴリズム・パラメータを必要とする場合、基本となる暗号実装は、暗号化またはキー・ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化またはキー・ラッピング解除用に初期化されていれば、InvalidKeyExceptionを発生させます。 生成されたパラメータは、getParametersまたはgetIV(パラメータがIVの場合)を使用して取り出すことができます。この暗号が入力パラメータから派生できないアルゴリズム・パラメータを必要とし、適切なプロバイダ固有のデフォルト値がない場合は、必ず初期化に失敗します。
この暗号(フィードバックまたはパディング・スキームを含む)にランダム・バイト(例、パラメータ生成用)が必要な場合は、
randomから取得します。Cipherオブジェクトが初期化されると、以前に取得されたすべての状態が失われることに注意してください。 つまり、Cipherオブジェクトの初期化は、そのCipherオブジェクトの新しいインスタンスを作成して初期化することと同じです。- パラメータ:
opmode- このCipherオブジェクト(これは次のいずれかです:ENCRYPT_MODE,DECRYPT_MODE,WRAP_MODEまたはUNWRAP_MODE)の操作モードkey- 暗号化キーrandom- 乱数発生の元- 例外:
InvalidKeyException- 指定されたキーがこの暗号の初期化に不適切であるか、指定されたキーから決定できないアルゴリズム・パラメータが必要な場合、または指定されたキーに最大許容キー・サイズ(構成済管轄ポリシー・ファイルから決定)を超えるキー・サイズがある場合UnsupportedOperationException-opmodeがWRAP_MODEまたはUNWRAP_MODEであるが、基礎となるCipherSpiによってモードが実装されていない場合InvalidParameterException-opmodeが認識された値のいずれでもない場合
-
init
public final void init(int opmode, Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException このCipherオブジェクトをキーとアルゴリズム・パラメータのセットで初期化します。Cipherオブジェクトは、次の4つの操作のいずれかに対して初期化されます:opmodeの値に応じて、暗号化、復号化、キー・ラップまたはキーのアン・ラップを行います。この暗号にアルゴリズム・パラメータが必要で、
paramsがnullの場合、基礎となる暗号実装では、暗号化またはキー・ラッピングのために初期化されている場合に必要なパラメータ自体(プロバイダ固有のデフォルト値またはランダム値の使用)を生成し、復号化またはキー・アン・ラップのために初期化されている場合はInvalidAlgorithmParameterExceptionを生成します。 生成されたパラメータは、getParametersまたはgetIV(パラメータがIVの場合)を使用して取り出すことができます。この暗号が入力パラメータから派生できないアルゴリズム・パラメータを必要とし、適切なプロバイダ固有のデフォルト値がない場合は、必ず初期化に失敗します。
この暗号(フィードバックまたはパディング・スキームを含む)でランダム・バイト(例、パラメータ生成用)が必要な場合は、最も優先度の高いインストール済プロバイダの
SecureRandom実装をランダム性のソースとして使用して取得します。 SecureRandomを提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。Cipherオブジェクトが初期化されると、以前に取得されたすべての状態が失われることに注意してください。 つまり、Cipherオブジェクトの初期化は、そのCipherオブジェクトの新しいインスタンスを作成して初期化することと同じです。- パラメータ:
opmode- このCipherオブジェクト(これは次のいずれかです:ENCRYPT_MODE,DECRYPT_MODE,WRAP_MODEまたはUNWRAP_MODE)の操作モードkey- 暗号化キーparams- アルゴリズム・パラメータ- 例外:
InvalidKeyException- 指定されたキーがこの暗号の初期化に適していない場合、またはそのキー・サイズが最大許容キー・サイズ(構成済管轄ポリシー・ファイルから決定)を超えている場合InvalidAlgorithmParameterException- 指定されたアルゴリズム・パラメータがこの暗号に適していない場合、またはこの暗号にアルゴリズム・パラメータが必要で、paramsがnullである場合、または指定されたアルゴリズム・パラメータによって、法的制限(構成済管轄ポリシー・ファイルから決定)を超える暗号化強度が示されますUnsupportedOperationException-opmodeがWRAP_MODEまたはUNWRAP_MODEであるが、基礎となるCipherSpiによってモードが実装されていない場合InvalidParameterException-opmodeが認識された値のいずれでもない場合
-
init
public final void init(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException このCipherオブジェクトをキー、アルゴリズム・パラメータのセットおよびランダム性のソースで初期化します。Cipherオブジェクトは、次の4つの操作のいずれかに対して初期化されます:opmodeの値に応じて、暗号化、復号化、キー・ラップまたはキーのアン・ラップを行います。この暗号にアルゴリズム・パラメータが必要で、
paramsがnullの場合、基礎となる暗号実装では、暗号化またはキー・ラッピングのために初期化されている場合に必要なパラメータ自体(プロバイダ固有のデフォルト値またはランダム値の使用)を生成し、復号化またはキー・アン・ラップのために初期化されている場合はInvalidAlgorithmParameterExceptionを生成します。 生成されたパラメータは、getParametersまたはgetIV(パラメータがIVの場合)を使用して取り出すことができます。この暗号が入力パラメータから派生できないアルゴリズム・パラメータを必要とし、適切なプロバイダ固有のデフォルト値がない場合は、必ず初期化に失敗します。
この暗号(フィードバックまたはパディング・スキームを含む)にランダム・バイト(例、パラメータ生成用)が必要な場合は、
randomから取得します。Cipherオブジェクトが初期化されると、以前に取得されたすべての状態が失われることに注意してください。 つまり、Cipherオブジェクトの初期化は、そのCipherオブジェクトの新しいインスタンスを作成して初期化することと同じです。- パラメータ:
opmode- このCipherオブジェクト(これは次のいずれかです:ENCRYPT_MODE,DECRYPT_MODE,WRAP_MODEまたはUNWRAP_MODE)の操作モードkey- 暗号化キーparams- アルゴリズム・パラメータrandom- 乱数発生の元- 例外:
InvalidKeyException- 指定されたキーがこの暗号の初期化に適していない場合、またはそのキー・サイズが最大許容キー・サイズ(構成済管轄ポリシー・ファイルから決定)を超えている場合InvalidAlgorithmParameterException- 指定されたアルゴリズム・パラメータがこの暗号に適していない場合、またはこの暗号にアルゴリズム・パラメータが必要で、paramsがnullである場合、または指定されたアルゴリズム・パラメータによって、法的制限(構成済管轄ポリシー・ファイルから決定)を超える暗号化強度が示されますUnsupportedOperationException-opmodeがWRAP_MODEまたはUNWRAP_MODEであるが、基礎となるCipherSpiによってモードが実装されていない場合InvalidParameterException-opmodeが認識された値のいずれでもない場合
-
init
public final void init(int opmode, Key key, AlgorithmParameters params) throws InvalidKeyException, InvalidAlgorithmParameterException このCipherオブジェクトをキーとアルゴリズム・パラメータのセットで初期化します。Cipherオブジェクトは、次の4つの操作のいずれかに対して初期化されます:opmodeの値に応じて、暗号化、復号化、キー・ラップまたはキーのアン・ラップを行います。この暗号にアルゴリズム・パラメータが必要で、
paramsがnullの場合、基礎となる暗号実装では、暗号化またはキー・ラッピングのために初期化されている場合に必要なパラメータ自体(プロバイダ固有のデフォルト値またはランダム値の使用)を生成し、復号化またはキー・アン・ラップのために初期化されている場合はInvalidAlgorithmParameterExceptionを生成します。 生成されたパラメータは、getParametersまたはgetIV(パラメータがIVの場合)を使用して取り出すことができます。この暗号が入力パラメータから派生できないアルゴリズム・パラメータを必要とし、適切なプロバイダ固有のデフォルト値がない場合は、必ず初期化に失敗します。
この暗号(フィードバックまたはパディング・スキームを含む)でランダム・バイト(例、パラメータ生成用)が必要な場合は、最も優先度の高いインストール済プロバイダの
SecureRandom実装をランダム性のソースとして使用して取得します。 SecureRandomを提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。Cipherオブジェクトが初期化されると、以前に取得されたすべての状態が失われることに注意してください。 つまり、Cipherオブジェクトの初期化は、そのCipherオブジェクトの新しいインスタンスを作成して初期化することと同じです。- パラメータ:
opmode- このCipherオブジェクトの操作モード。これは次のいずれかです:ENCRYPT_MODE,DECRYPT_MODE,WRAP_MODEまたはUNWRAP_MODE)key- 暗号化キーparams- アルゴリズム・パラメータ- 例外:
InvalidKeyException- 指定されたキーがこの暗号の初期化に不適切な場合、または指定されたキーのサイズが最大許容キー・サイズ(設定されている管轄ポリシー・ファイルにより決定)を超える場合。InvalidAlgorithmParameterException- 指定されたアルゴリズム・パラメータがこの暗号に適していない場合、またはこの暗号にアルゴリズム・パラメータが必要で、paramsがnullである場合、または指定されたアルゴリズム・パラメータによって、法的制限(構成済管轄ポリシー・ファイルから決定)を超える暗号化強度が示されますUnsupportedOperationException-opmodeがWRAP_MODEまたはUNWRAP_MODEであるが、基礎となるCipherSpiによってモードが実装されていない場合InvalidParameterException-opmodeが認識された値のいずれでもない場合
-
init
public final void init(int opmode, Key key, AlgorithmParameters params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException このCipherオブジェクトをキー、アルゴリズム・パラメータのセットおよびランダム性のソースで初期化します。Cipherオブジェクトは、次の4つの操作のいずれかに対して初期化されます:opmodeの値に応じて、暗号化、復号化、キー・ラップまたはキーのアン・ラップを行います。この暗号にアルゴリズム・パラメータが必要で、
paramsがnullの場合、基礎となる暗号実装では、暗号化またはキー・ラッピングのために初期化されている場合に必要なパラメータ自体(プロバイダ固有のデフォルト値またはランダム値の使用)を生成し、復号化またはキー・アン・ラップのために初期化されている場合はInvalidAlgorithmParameterExceptionを生成します。 生成されたパラメータは、getParametersまたはgetIV(パラメータがIVの場合)を使用して取り出すことができます。この暗号が入力パラメータから派生できないアルゴリズム・パラメータを必要とし、適切なプロバイダ固有のデフォルト値がない場合は、必ず初期化に失敗します。
この暗号(フィードバックまたはパディング・スキームを含む)にランダム・バイト(例、パラメータ生成用)が必要な場合は、
randomから取得します。Cipherオブジェクトが初期化されると、以前に取得されたすべての状態が失われることに注意してください。 つまり、Cipherオブジェクトの初期化は、そのCipherオブジェクトの新しいインスタンスを作成して初期化することと同じです。- パラメータ:
opmode- このCipherオブジェクト(これは次のいずれかです:ENCRYPT_MODE,DECRYPT_MODE,WRAP_MODEまたはUNWRAP_MODE)の操作モードkey- 暗号化キーparams- アルゴリズム・パラメータrandom- 乱数発生の元- 例外:
InvalidKeyException- 指定されたキーがこの暗号の初期化に適していない場合、またはそのキー・サイズが最大許容キー・サイズ(構成済管轄ポリシー・ファイルから決定)を超えている場合InvalidAlgorithmParameterException- 指定されたアルゴリズム・パラメータがこの暗号に適していない場合、またはこの暗号にアルゴリズム・パラメータが必要で、paramsがnullである場合、または指定されたアルゴリズム・パラメータによって、法的制限(構成済管轄ポリシー・ファイルから決定)を超える暗号化強度が示されますUnsupportedOperationException-opmodeがWRAP_MODEまたはUNWRAP_MODEであるが、基礎となるCipherSpiによってモードが実装されていない場合InvalidParameterException-opmodeが認識された値のいずれでもない場合
-
init
public final void init(int opmode, Certificate certificate) throws InvalidKeyException このCipherオブジェクトを、指定された証明書の公開キーで初期化します。Cipherオブジェクトは、次の4つの操作のいずれかに対して初期化されます:opmodeの値に応じて、暗号化、復号化、キー・ラップまたはキーのアン・ラップを行います。証明書の種類がX.509で、重要とマークされたkey usage拡張フィールドがあり、key usage拡張フィールドの値によって証明書の公開キーとそれに対応する非公開キーが
opmodeの値で表される操作に使用されないものである場合は、InvalidKeyExceptionがスローされます。この暗号が、指定されたcertificateの公開キーから派生できないアルゴリズム・パラメータを必要とする場合、基本となる暗号実装は、暗号化またはキー・ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化またはキー・ラッピング解除用に初期化されていれば、
InvalidKeyExceptionを発生させます。 生成されたパラメータは、getParametersまたはgetIV(パラメータがIVの場合)を使用して取り出すことができます。この暗号が入力パラメータから派生できないアルゴリズム・パラメータを必要とし、適切なプロバイダ固有のデフォルト値がない場合は、必ず初期化に失敗します。
この暗号(フィードバックまたはパディング・スキームを含む)にランダム・バイト(例、パラメータ生成用)が必要な場合は、最も優先度の高いインストール済プロバイダの
SecureRandom実装をランダム性のソースとして使用して取得します。 SecureRandomを提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。Cipherオブジェクトが初期化されると、以前に取得されたすべての状態が失われることに注意してください。 つまり、Cipherオブジェクトの初期化は、そのCipherオブジェクトの新しいインスタンスを作成して初期化することと同じです。- パラメータ:
opmode- このCipherオブジェクト(これは次のいずれかです:ENCRYPT_MODE,DECRYPT_MODE,WRAP_MODEまたはUNWRAP_MODE)の操作モードcertificate- 証明書- 例外:
InvalidKeyException- 指定された証明書の公開キーがこの暗号の初期化に不適切である場合、またはこの暗号に、指定された証明書の公開キーから決定できないアルゴリズム・パラメータが必要な場合、または指定された証明書の公開キーのキー・サイズが最大許容キー・サイズ(構成済管轄ポリシー・ファイルによって決定されます)を超えているキー・サイズがありますUnsupportedOperationException-opmodeがWRAP_MODEまたはUNWRAP_MODEであるが、基礎となるCipherSpiによってモードが実装されていない場合InvalidParameterException-opmodeが認識された値のいずれでもない場合
-
init
public final void init(int opmode, Certificate certificate, SecureRandom random) throws InvalidKeyException このCipherオブジェクトを、指定された証明書の公開キーとランダム性のソースで初期化します。Cipherオブジェクトは、次の4つの操作のいずれかに対して初期化されます:opmodeの値に応じて、暗号化、復号化、キー・ラップまたはキーのアン・ラップを行います。証明書の種類がX.509で、重要とマークされたkey usage拡張フィールドがあり、key usage拡張フィールドの値によって証明書の公開キーとそれに対応する非公開キーが
opmodeの値で表される操作に使用されないものである場合は、InvalidKeyExceptionがスローされます。この暗号が、指定された
certificateの公開キーから派生できないアルゴリズム・パラメータを必要とする場合、基本となる暗号実装は、暗号化またはキー・ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化またはキー・ラッピング解除用に初期化されていれば、InvalidKeyExceptionを発生させます。 生成されたパラメータは、getParametersまたはgetIV(パラメータがIVの場合)を使用して取り出すことができます。この暗号が入力パラメータから派生できないアルゴリズム・パラメータを必要とし、適切なプロバイダ固有のデフォルト値がない場合は、必ず初期化に失敗します。
この暗号(フィードバックまたはパディング・スキームを含む)にランダム・バイト(例、パラメータ生成用)が必要な場合は、
randomから取得します。Cipherオブジェクトが初期化されると、以前に取得されたすべての状態が失われることに注意してください。 つまり、Cipherオブジェクトの初期化は、そのCipherオブジェクトの新しいインスタンスを作成して初期化することと同じです。- パラメータ:
opmode- このCipherオブジェクト(これは次のいずれかです:ENCRYPT_MODE,DECRYPT_MODE,WRAP_MODEまたはUNWRAP_MODE)の操作モードcertificate- 証明書random- 乱数発生の元- 例外:
InvalidKeyException- 指定された証明書の公開キーがこの暗号の初期化に不適切である場合、またはこの暗号に、指定された証明書の公開キーから決定できないアルゴリズム・パラメータが必要な場合、または指定された証明書の公開キーのキー・サイズが最大許容キー・サイズ(構成済管轄ポリシー・ファイルによって決定されます)を超えているキー・サイズがありますUnsupportedOperationException-opmodeがWRAP_MODEまたはUNWRAP_MODEであるが、基礎となるCipherSpiによってモードが実装されていない場合InvalidParameterException-opmodeが認識された値のいずれでもない場合
-
update
public final byte[] update(byte[] input) 複数部分の暗号化または復号化操作(このCipherオブジェクトの初期化方法に応じて)を続行し、別のデータ部分を処理します。inputバッファ内のバイトが処理され、結果が新しいバッファに格納されます。inputの長さがゼロの場合、このメソッドはnullを返します。- パラメータ:
input- 入力バッファ- 戻り値:
- 結果を含む新しいバッファ、またはこの暗号がブロック暗号であり、入力データが短すぎて新しいブロックが生成されない場合は
null - 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)
-
update
public final byte[] update(byte[] input, int inputOffset, int inputLen) 複数部分の暗号化または復号化操作(このCipherオブジェクトの初期化方法に応じて)を続行し、別のデータ部分を処理します。inputOffsetから始まる、inputバッファ内の最初のinputLenバイトが処理され、結果が新しいバッファに格納されます。inputLenがゼロの場合、このメソッドはnullを返します。- パラメータ:
input- 入力バッファinputOffset- 入力を開始するinput内のオフセットinputLen- 入力長- 戻り値:
- 結果を含む新しいバッファ。この暗号がブロック暗号であり、入力データが短すぎて新しいブロックになる場合は
null。 - 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)
-
update
public final int update(byte[] input, int inputOffset, int inputLen, byte[] output) throws ShortBufferException 複数部分の暗号化または復号化操作(このCipherオブジェクトの初期化方法に応じて)を続行し、別のデータ部分を処理します。inputOffsetから始まる、inputバッファ内の最初のinputLenバイトが処理され、結果がoutputバッファに格納されます。outputバッファが小さすぎて結果を保持できない場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。inputLenが0の場合、このメソッドは長さゼロを返します。ノート: このメソッドはコピーに対して安全である必要があります。つまり、
inputおよびoutputバッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。- パラメータ:
input- 入力バッファinputOffset- 入力を開始するinput内のオフセットinputLen- 入力長output- 結果を格納するバッファ- 戻り値:
outputに格納されたバイト数- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合
-
update
public final int update(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws ShortBufferException 複数部分の暗号化または復号化操作(このCipherオブジェクトの初期化方法に応じて)を続行し、別のデータ部分を処理します。inputOffsetから始まる、inputバッファ内の最初のinputLenバイトが処理され、結果はoutputバッファのoutputOffsetから始まる位置に格納されます。outputバッファが小さすぎて結果を保持できない場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。inputLenが0の場合、このメソッドは長さゼロを返します。ノート: このメソッドはコピーに対して安全である必要があります。つまり、
inputおよびoutputバッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。- パラメータ:
input- 入力バッファinputOffset- 入力を開始するinput内のオフセットinputLen- 入力長output- 結果を格納するバッファoutputOffset- 結果が格納されるoutput内のオフセット- 戻り値:
outputに格納されたバイト数- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合
-
update
public final int update(ByteBuffer input, ByteBuffer output) throws ShortBufferException 複数部分の暗号化または復号化操作(このCipherオブジェクトの初期化方法に応じて)を続行し、別のデータ部分を処理します。input.position()から始まるすべてのinput.remaining()バイトが処理されます。 結果はoutputバッファに格納されます。 終了時に、入力バッファの位置はリミットに等しくなりますが、リミットは変更されません。 出力バッファの位置はnだけ増加します。nは、このメソッドが返す値です。出力バッファのリミットは変更されません。output.remaining()バイトが結果を保持するのに不十分な場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。ノート: このメソッドはコピーに対して安全である必要があります。つまり、
inputおよびoutputバッファは同じノート・リー・ブロックを参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。- パラメータ:
input- 入力ByteBufferoutput- 出力ByteBuffer- 戻り値:
outputに格納されたバイト数- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)IllegalArgumentException- 入力と出力が同じオブジェクトである場合ReadOnlyBufferException- 出力バッファが読取り専用の場合ShortBufferException- 出力バッファ内に残っている容量が不足している場合- 導入されたバージョン:
- 1.5
-
doFinal
public final byte[] doFinal() throws IllegalBlockSizeException, BadPaddingExceptionこのCipherオブジェクトの初期化方法に応じて、複数パートの暗号化または復号化操作を終了します。入力データは前の
update操作中にバッファに入れられて、パディング(要求された場合)が適用されている場合があります。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果は新しいバッファに格納されます。このメソッドが終了すると、この
Cipherオブジェクトは、initへのコールによって以前に初期化されたときの状態にリセットされます。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。ノート: 例外がスローされた場合、この
Cipherオブジェクトは、再使用する前にリセットする必要がある場合があります。- 戻り値:
- 結果の入った新しいバッファ
- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。BadPaddingException- このCipherオブジェクトが復号化モードで、(un)パディングがリクエストされたが、復号化されたデータが適切なパディング・バイトによってバインドされていない場合AEADBadTagException- このCipherオブジェクトがAEADモード(GCM/CCMなど)で復号化されており、受信した認証タグが計算された値と一致しない場合
-
doFinal
public final int doFinal(byte[] output, int outputOffset) throws IllegalBlockSizeException, ShortBufferException, BadPaddingException このCipherオブジェクトの初期化方法に応じて、複数パートの暗号化または復号化操作を終了します。入力データは前の
update操作中にバッファに入れられて、パディング(要求された場合)が適用されている場合があります。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果は、outputOffsetから始まるoutputバッファに格納されます。outputバッファが小さすぎて結果を保持できない場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。このメソッドが終了すると、この
Cipherオブジェクトは、initへのコールによって以前に初期化されたときの状態にリセットされます。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。ノート: 例外がスローされた場合、この
Cipherオブジェクトは、再使用する前にリセットする必要がある場合があります。- パラメータ:
output- 結果を格納するバッファoutputOffset- 結果が格納されるoutput内のオフセット- 戻り値:
outputに格納されたバイト数- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合BadPaddingException- このCipherオブジェクトが復号化モードで、(un)パディングがリクエストされたが、復号化されたデータが適切なパディング・バイトによってバインドされていない場合AEADBadTagException- このCipherオブジェクトがAEADモード(GCM/CCMなど)で復号化されており、受信した認証タグが計算された値と一致しない場合
-
doFinal
public final byte[] doFinal(byte[] input) throws IllegalBlockSizeException, BadPaddingException 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 データは、このCipherオブジェクトの初期化方法に応じて暗号化または復号化されます。inputバッファ内のバイト、および前のupdate操作中にバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング(要求された場合)が適用されます。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果は新しいバッファに格納されます。このメソッドが終了すると、この
Cipherオブジェクトは、initへのコールによって以前に初期化されたときの状態にリセットされます。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。ノート: 例外がスローされた場合、この
Cipherオブジェクトは、再使用する前にリセットする必要がある場合があります。- パラメータ:
input- 入力バッファ- 戻り値:
- 結果の入った新しいバッファ
- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。BadPaddingException- このCipherオブジェクトが復号化モードで、(un)パディングがリクエストされたが、復号化されたデータが適切なパディング・バイトによってバインドされていない場合AEADBadTagException- このCipherオブジェクトがAEADモード(GCM/CCMなど)で復号化されており、受信した認証タグが計算された値と一致しない場合
-
doFinal
public final byte[] doFinal(byte[] input, int inputOffset, int inputLen) throws IllegalBlockSizeException, BadPaddingException 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 データは、このCipherオブジェクトの初期化方法に応じて暗号化または復号化されます。inputOffsetから始まるinputバッファ内の最初のinputLenバイト、および前のupdate操作でバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング(要求された場合)が適用されます。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果は新しいバッファに格納されます。このメソッドが終了すると、この
Cipherオブジェクトは、initへのコールによって以前に初期化されたときの状態にリセットされます。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。ノート: 例外がスローされた場合、この
Cipherオブジェクトは、再使用する前にリセットする必要がある場合があります。- パラメータ:
input- 入力バッファinputOffset- 入力を開始するinput内のオフセットinputLen- 入力長- 戻り値:
- 結果の入った新しいバッファ
- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。BadPaddingException- このCipherオブジェクトが復号化モードで、(un)パディングがリクエストされたが、復号化されたデータが適切なパディング・バイトによってバインドされていない場合AEADBadTagException- このCipherオブジェクトがAEADモード(GCM/CCMなど)で復号化されており、受信した認証タグが計算された値と一致しない場合
-
doFinal
public final int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 データは、このCipherオブジェクトの初期化方法に応じて暗号化または復号化されます。inputOffsetから始まるinputバッファ内の最初のinputLenバイト、および前のupdate操作でバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング(要求された場合)が適用されます。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果はoutputバッファに格納されます。outputバッファが小さすぎて結果を保持できない場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。このメソッドが終了すると、この
Cipherオブジェクトは、initへのコールによって以前に初期化されたときの状態にリセットされます。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。ノート: 例外がスローされた場合、この
Cipherオブジェクトは、再使用する前にリセットする必要がある場合があります。ノート: このメソッドはコピーに対して安全である必要があります。つまり、
inputおよびoutputバッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。- パラメータ:
input- 入力バッファinputOffset- 入力を開始するinput内のオフセットinputLen- 入力長output- 結果を格納するバッファ- 戻り値:
outputに格納されたバイト数- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合BadPaddingException- このCipherオブジェクトが復号化モードで、(un)パディングがリクエストされたが、復号化されたデータが適切なパディング・バイトによってバインドされていない場合AEADBadTagException- このCipherオブジェクトがAEADモード(GCM/CCMなど)で復号化されており、受信した認証タグが計算された値と一致しない場合
-
doFinal
public final int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 データは、このCipherオブジェクトの初期化方法に応じて暗号化または復号化されます。inputOffsetから始まるinputバッファ内の最初のinputLenバイト、および前のupdate操作でバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング(要求された場合)が適用されます。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果は、outputOffsetから始まるoutputバッファに格納されます。outputバッファが小さすぎて結果を保持できない場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。このメソッドが終了すると、この
Cipherオブジェクトは、initへのコールによって以前に初期化されたときの状態にリセットされます。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。ノート: 例外がスローされた場合、この
Cipherオブジェクトは、再使用する前にリセットする必要がある場合があります。ノート: このメソッドはコピーに対して安全である必要があります。つまり、
inputおよびoutputバッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。- パラメータ:
input- 入力バッファinputOffset- 入力を開始するinput内のオフセットinputLen- 入力長output- 結果を格納するバッファoutputOffset- 結果が格納されるoutput内のオフセット- 戻り値:
outputに格納されたバイト数- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合BadPaddingException- このCipherオブジェクトが復号化モードで、(un)パディングがリクエストされたが、復号化されたデータが適切なパディング・バイトによってバインドされていない場合AEADBadTagException- このCipherオブジェクトがAEADモード(GCM/CCMなど)で復号化されており、受信した認証タグが計算された値と一致しない場合
-
doFinal
public final int doFinal(ByteBuffer input, ByteBuffer output) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 データは、このCipherオブジェクトの初期化方法に応じて暗号化または復号化されます。input.position()から始まるすべてのinput.remaining()バイトが処理されます。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果はoutputバッファに格納されます。 終了時に、入力バッファの位置はリミットに等しくなりますが、リミットは変更されません。 出力バッファの位置はnだけ増加します。nは、このメソッドが返す値です。出力バッファのリミットは変更されません。output.remaining()バイトが結果を保持するのに不十分な場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。このメソッドが終了すると、この
Cipherオブジェクトは、initへのコールによって以前に初期化されたときの状態にリセットされます。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。ノート: 例外がスローされた場合、この
Cipherオブジェクトは、再使用する前にリセットする必要がある場合があります。ノート: このメソッドはコピーに対して安全である必要があります。つまり、
inputおよびoutputバッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。- パラメータ:
input- 入力ByteBufferoutput- 出力ByteBuffer- 戻り値:
outputに格納されたバイト数- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)IllegalArgumentException- 入力と出力が同じオブジェクトである場合ReadOnlyBufferException- 出力バッファが読取り専用の場合IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。ShortBufferException- 出力バッファ内に残っている容量が不足している場合BadPaddingException- このCipherオブジェクトが復号化モードで、(un)パディングがリクエストされたが、復号化されたデータが適切なパディング・バイトによってバインドされていない場合AEADBadTagException- このCipherオブジェクトがAEADモード(GCM/CCMなど)で復号化されており、受信した認証タグが計算された値と一致しない場合- 導入されたバージョン:
- 1.5
-
wrap
public final byte[] wrap(Key key) throws IllegalBlockSizeException, InvalidKeyException キーをラップします。- パラメータ:
key- ラップされるキー- 戻り値:
- ラップされたキー
- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず、ラップされるキーのエンコーディングの長さがブロック・サイズの倍数でない場合InvalidKeyException- この暗号(例、ハードウェアで保護されたキーがソフトウェアのみの暗号に渡されています)を使用してキーをラップすることが不可能または安全でない場合UnsupportedOperationException-CipherSpi内の対応するメソッドがサポートされていない場合
-
unwrap
public final Key unwrap(byte[] wrappedKey, String wrappedKeyAlgorithm, int wrappedKeyType) throws InvalidKeyException, NoSuchAlgorithmException 前にラップされたキーをラップ解除します。- パラメータ:
wrappedKey- ラップを解除されるキーwrappedKeyAlgorithm- ラップされたキーに関連したアルゴリズムwrappedKeyType- ラップされたキーのタイプ。 これは、SECRET_KEY、PRIVATE_KEY、PUBLIC_KEYのいずれかである必要がある- 戻り値:
- ラップ解除されたキー
- 例外:
IllegalStateException- このCipherオブジェクトが間違った状態にある場合、(例:初期化されていません)NoSuchAlgorithmException- インストールされているどのプロバイダもwrappedKeyAlgorithmのwrappedKeyTypeタイプのキーを作成できない場合InvalidKeyException-wrappedKeyがwrappedKeyAlgorithmのwrappedKeyTypeタイプのラップされたキーを表さない場合UnsupportedOperationException-CipherSpi内の対応するメソッドがサポートされていない場合
-
getMaxAllowedKeyLength
public static final int getMaxAllowedKeyLength(String transformation) throws NoSuchAlgorithmException インストールされているJCE管轄ポリシー・ファイルに従って、指定された変換のキーの最大長を返します。 JCE無制限の強度の管轄ポリシー・ファイルがインストールされている場合、Integer.MAX_VALUEが返されます。 デフォルトのキー・サイズとJCEの管轄ポリシー・ファイルの詳細については、「JDKプロバイダのドキュメント」の暗号のデフォルトと制限を参照してください。- パラメータ:
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 管轄ポリシー・ファイルに従って最大Cipherパラメータ値を含む {code AlgorithmParameterSpec} オブジェクトを返します。 JCE無制限の強度の管轄区域ポリシー・ファイルがインストールされている場合、またはポリシー・ファイルの指定された変換のパラメータに最大制限がない場合、nullが返されます。- パラメータ:
transformation- 暗号変換- 戻り値:
- 最大値または
nullを保持する {code AlgorithmParameterSpec} オブジェクト - 例外:
NullPointerException-transformationがnullの場合NoSuchAlgorithmException-transformationが有効な変換でない場合、つまり、"algorithm"または"algorithm/mode/padding"の形式- 導入されたバージョン:
- 1.5
-
updateAAD
public final void updateAAD(byte[] src) AAD (Additional Authentication Data)のマルチパート更新を継続します。このメソッドを呼び出すと、AEAD (GCM/CCM)などのモードで操作するときに
CipherオブジェクトにAADが提供されます。 このCipherオブジェクトがGCMまたはCCMモードで動作している場合は、暗号テキスト(updateおよびdoFinalメソッドを使用)の操作を開始する前に、すべてのAADを指定する必要があります。- パラメータ:
src- Additional Authentication Dataを格納するバッファ- 例外:
IllegalArgumentException-srcバイト配列がnullの場合IllegalStateException- このCipherオブジェクトが間違った状態である(例:初期化されていません)の場合、AADを受け入れないか、GCMまたはCCMモードで動作していて、アクティブな暗号化/復号化操作に対してupdateメソッドの1つがすでにコールされている場合UnsupportedOperationException-CipherSpi内の対応するメソッドが実装によってオーバーライドされていない場合- 導入されたバージョン:
- 1.7
-
updateAAD
public final void updateAAD(byte[] src, int offset, int len) 提供されたバッファのサブセットを使用して、Additional Authentication Data (AAD)のマルチパート更新を続行します。このメソッドを呼び出すと、AEAD (GCM/CCM)などのモードで操作するときに
CipherオブジェクトにAADが提供されます。 このCipherオブジェクトがGCMまたはCCMモードで動作している場合は、暗号テキスト(updateおよびdoFinalメソッドを使用)の操作を開始する前に、すべてのAADを指定する必要があります。- パラメータ:
src- AADを格納するバッファoffset- AAD入力を開始するsrc内のオフセットlen- AADバイトの数- 例外:
IllegalArgumentException-srcバイト配列がnullであるか、offsetまたはlengthが0未満であるか、offsetおよびlenの合計がsrcバイト配列の長さより大きい場合IllegalStateException- このCipherオブジェクトが間違った状態である(例:初期化されていません)の場合、AADを受け入れないか、GCMまたはCCMモードで動作していて、アクティブな暗号化/復号化操作に対してupdateメソッドの1つがすでにコールされている場合UnsupportedOperationException-CipherSpi内の対応するメソッドが実装によってオーバーライドされていない場合- 導入されたバージョン:
- 1.7
-
updateAAD
public final void updateAAD(ByteBuffer src) AAD (Additional Authentication Data)のマルチパート更新を継続します。このメソッドを呼び出すと、AEAD (GCM/CCM)などのモードで操作するときに
CipherオブジェクトにAADが提供されます。 このCipherオブジェクトがGCMまたはCCMモードで動作している場合は、暗号テキスト(updateおよびdoFinalメソッドを使用)の操作を開始する前に、すべてのAADを指定する必要があります。src.position()から始まるすべてのsrc.remaining()バイトが処理されます。 終了時に、入力バッファの位置はリミットに等しくなりますが、リミットは変更されません。- パラメータ:
src- AADを格納するバッファ- 例外:
IllegalArgumentException-src ByteBufferがnullの場合IllegalStateException- このCipherオブジェクトが間違った状態である(例:初期化されていません)の場合、AADを受け入れないか、GCMまたはCCMモードで動作していて、アクティブな暗号化/復号化操作に対してupdateメソッドの1つがすでにコールされている場合UnsupportedOperationException-CipherSpi内の対応するメソッドが実装によってオーバーライドされていない場合- 導入されたバージョン:
- 1.7
-
toString
public String toString()このCipherオブジェクトのString表現を返します。
-