- java.lang.Object
- 
- javax.crypto.Cipher
 
- 
- 直系の既知のサブクラス:
- NullCipher
 
 public class Cipher extends Object このクラスは、暗号化および復号化の暗号機能を提供します。 これは、JCE (Java Cryptographic Extension)フレームワークのコア部分を構成します。Cipherオブジェクトを生成するには、アプリケーションはCipherの getInstanceメソッドを呼び出して、要求された変換の名前を渡します。 必要に応じて、プロバイダの名前を指定できます。変換は、指定された入力に対して実行し、何らかの出力を生成する操作(または操作のセット)を説明する文字列です。 変換には、常に暗号アルゴリズム(e.g., 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パラメータで暗号オブジェクトを再初期化するようにしてください。 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); ...Javaプラットフォームの実装は、すべて次の標準のCipher変換とカッコ内の鍵サイズをサポートする必要があります。- AES/CBC/NoPadding(128)
- AES/CBC/PKCS5Padding(128)
- AES/ECB/NoPadding(128)
- AES/ECB/PKCS5Padding(128)
- AES/GCM/NoPadding(128)
- DES/CBC/NoPadding(56)
- DES/CBC/PKCS5Padding(56)
- DES/ECB/NoPadding(56)
- DES/ECB/PKCS5Padding(56)
- 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
- 関連項目:
- KeyGenerator,- SecretKey
 
- 
- 
フィールドのサマリーフィールド 修飾子と型 フィールド 説明 static intDECRYPT_MODE暗号を復号化モードに初期化するのに使用する定数です。static intENCRYPT_MODE暗号を暗号化モードに初期化するのに使用する定数です。static intPRIVATE_KEYラップ解除される鍵が「非公開鍵」であることを示すのに使用する定数です。static intPUBLIC_KEYラップ解除される鍵が「公開鍵」であることを示すのに使用する定数です。static intSECRET_KEYラップ解除される鍵が「秘密鍵」であることを示すのに使用する定数です。static intUNWRAP_MODE暗号を鍵ラッピング解除モードに初期化するのに使用する定数です。static intWRAP_MODE暗号を鍵ラッピング・モードに初期化するのに使用する定数です。
 - 
メソッドのサマリーすべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 byte[]doFinal()複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を終了します。byte[]doFinal(byte[] input)単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。intdoFinal(byte[] output, int outputOffset)複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を終了します。byte[]doFinal(byte[] input, int inputOffset, int inputLen)単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。intdoFinal(byte[] input, int inputOffset, int inputLen, byte[] output)単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。intdoFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset)単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。intdoFinal(ByteBuffer input, ByteBuffer output)単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。StringgetAlgorithm()このCipherオブジェクトのアルゴリズム名を返します。intgetBlockSize()ブロック・サイズを返します(バイト単位)。ExemptionMechanismgetExemptionMechanism()この暗号で使用される除外メカニズム・オブジェクトを返します。static CiphergetInstance(String transformation)指定された変換を実装するCipherオブジェクトを返します。static CiphergetInstance(String transformation, String provider)指定された変換を実装するCipherオブジェクトを返します。static CiphergetInstance(String transformation, Provider provider)指定された変換を実装するCipherオブジェクトを返します。byte[]getIV()新しいバッファの初期化ベクトル(IV)を返します。static intgetMaxAllowedKeyLength(String transformation)インストールされているJCE管轄ポリシー・ファイルに従って、指定された変換の鍵の最大長を返します。static AlgorithmParameterSpecgetMaxAllowedParameterSpec(String transformation)管轄ポリシー・ファイルに従って、最大の暗号パラメータ値を含むAlgorithmParameterSpecオブジェクトを返します。intgetOutputSize(int inputLen)入力の長さinputLen(バイト単位)を指定して、次のupdateまたはdoFinal操作の結果を保持するために必要な出力バッファの長さをバイト数で返します。AlgorithmParametersgetParameters()この暗号で使用されるパラメータを返します。ProvidergetProvider()このCipherオブジェクトのプロバイダを返します。voidinit(int opmode, Certificate certificate)この暗号を、検証操作のために指定された公開鍵で初期化します。voidinit(int opmode, Certificate certificate, SecureRandom random)この暗号を、検証操作のために指定された公開鍵および乱数発生の元を使って初期化します。voidinit(int opmode, Key key)鍵を使用してこの暗号を初期化します。voidinit(int opmode, Key key, AlgorithmParameters params)鍵とアルゴリズム・パラメータのセットを使用してこの暗号を初期化します。voidinit(int opmode, Key key, AlgorithmParameters params, SecureRandom random)鍵、アルゴリズム・パラメータのセット、および乱数発生の元を使用してこの暗号を初期化します。voidinit(int opmode, Key key, SecureRandom random)鍵と乱数発生の元を使用してこの暗号を初期化します。voidinit(int opmode, Key key, AlgorithmParameterSpec params)鍵とアルゴリズム・パラメータのセットを使用してこの暗号を初期化します。voidinit(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random)鍵、アルゴリズム・パラメータのセット、および乱数発生の元を使用してこの暗号を初期化します。Keyunwrap(byte[] wrappedKey, String wrappedKeyAlgorithm, int wrappedKeyType)前にラップされた鍵をラップ解除します。byte[]update(byte[] input)複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を継続し、別のデータ部分を処理します。byte[]update(byte[] input, int inputOffset, int inputLen)複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を継続し、別のデータ部分を処理します。intupdate(byte[] input, int inputOffset, int inputLen, byte[] output)複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を継続し、別のデータ部分を処理します。intupdate(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset)複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を継続し、別のデータ部分を処理します。intupdate(ByteBuffer input, ByteBuffer output)複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を継続し、別のデータ部分を処理します。voidupdateAAD(byte[] src)AAD (Additional Authentication Data)のマルチパート更新を継続します。voidupdateAAD(byte[] src, int offset, int len)提供されたバッファのサブセットを使用して、Additional Authentication Data (AAD)のマルチパート更新を続行します。voidupdateAAD(ByteBuffer src)AAD (Additional Authentication Data)のマルチパート更新を継続します。byte[]wrap(Key key)鍵をラップします。
 
- 
- 
- 
フィールドの詳細- 
ENCRYPT_MODEpublic static final int ENCRYPT_MODE 暗号を暗号化モードに初期化するのに使用する定数です。- 関連項目:
- 定数フィールド値
 
 - 
DECRYPT_MODEpublic static final int DECRYPT_MODE 暗号を復号化モードに初期化するのに使用する定数です。- 関連項目:
- 定数フィールド値
 
 - 
WRAP_MODEpublic static final int WRAP_MODE 暗号を鍵ラッピング・モードに初期化するのに使用する定数です。- 関連項目:
- 定数フィールド値
 
 - 
UNWRAP_MODEpublic static final int UNWRAP_MODE 暗号を鍵ラッピング解除モードに初期化するのに使用する定数です。- 関連項目:
- 定数フィールド値
 
 - 
PUBLIC_KEYpublic static final int PUBLIC_KEY ラップ解除される鍵が「公開鍵」であることを示すのに使用する定数です。- 関連項目:
- 定数フィールド値
 
 - 
PRIVATE_KEYpublic static final int PRIVATE_KEY ラップ解除される鍵が「非公開鍵」であることを示すのに使用する定数です。- 関連項目:
- 定数フィールド値
 
 - 
SECRET_KEYpublic static final int SECRET_KEY ラップ解除される鍵が「秘密鍵」であることを示すのに使用する定数です。- 関連項目:
- 定数フィールド値
 
 
- 
 - 
メソッドの詳細- 
getInstancepublic static final Cipher getInstance(String transformation) throws NoSuchAlgorithmException, NoSuchPaddingException 指定された変換を実装するCipherオブジェクトを返します。このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたアルゴリズムをサポートする最初のプロバイダからのCipherSpi実装をカプセル化する新しいCipherオブジェクトが返されます。 登録済みプロバイダのリストは、 Security.getProviders()メソッド経由で取得できます。- 実装上の注意:
- JDKリファレンス実装では、jdk.security.provider.preferredSecurityプロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。
- パラメータ:
- transformation- 変換の名前です(例:AES/CBC/PKCS5Padding)。 標準変換名については、「Javaセキュリティ標準アルゴリズム名指定」のCipherセクションを参照してください。
- 戻り値:
- 要求された変換を実装する暗号
- 例外:
- NoSuchAlgorithmException-- transformationが- null、空の、無効な形式、または- Providerが指定されたアルゴリズムの- CipherSpi実装をサポートしていない場合
- NoSuchPaddingException- 使用できないパディング方式が- transformationに含まれている場合
- 関連項目:
- Provider
 
 - 
getInstancepublic static final Cipher getInstance(String transformation, String provider) throws NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException 指定された変換を実装するCipherオブジェクトを返します。指定されたプロバイダからのCipherSpi実装をカプセル化する新しいCipherオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。 登録済みプロバイダのリストは、 Security.getProviders()メソッド経由で取得できます。- パラメータ:
- transformation- 変換の名前です(例:AES/CBC/PKCS5Padding)。 標準変換名については、「Javaセキュリティ標準アルゴリズム名指定」のCipherセクションを参照してください。
- provider- プロバイダ名
- 戻り値:
- 要求された変換を実装する暗号
- 例外:
- IllegalArgumentException-- providerが- nullまたは空の場合
- NoSuchAlgorithmException-- transformationが- null、空であるか、無効な形式である場合、または指定されたアルゴリズムの- CipherSpi実装が指定されたプロバイダから利用できない場合
- NoSuchPaddingException- 使用できないパディング方式が- transformationに含まれている場合
- NoSuchProviderException- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合
- 関連項目:
- Provider
 
 - 
getInstancepublic static final Cipher getInstance(String transformation, Provider provider) throws NoSuchAlgorithmException, NoSuchPaddingException 指定された変換を実装するCipherオブジェクトを返します。指定されたProviderオブジェクトからのCipherSpi実装をカプセル化する新しいCipherオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。 - パラメータ:
- transformation- 変換の名前です(例:AES/CBC/PKCS5Padding)。 標準変換名については、「Javaセキュリティ標準アルゴリズム名指定」のCipherセクションを参照してください。
- provider- プロバイダ
- 戻り値:
- 要求された変換を実装する暗号
- 例外:
- IllegalArgumentException-- providerが- nullの場合
- NoSuchAlgorithmException-- transformationが- null、空の、無効な形式、または指定されたアルゴリズムの- CipherSpi実装が指定された- Providerオブジェクトから利用できない場合
- NoSuchPaddingException- 使用できないパディング方式が- transformationに含まれている場合
- 関連項目:
- Provider
 
 - 
getProviderpublic final Provider getProvider() このCipherオブジェクトのプロバイダを返します。- 戻り値:
- このCipherオブジェクトのプロバイダ
 
 - 
getAlgorithmpublic final String getAlgorithm() このCipherオブジェクトのアルゴリズム名を返します。これは、この Cipherオブジェクトを作成したgetInstance呼出しのいずれかに指定された名前と同じです。- 戻り値:
- このCipherオブジェクトのアルゴリズム名。
 
 - 
getBlockSizepublic final int getBlockSize() ブロック・サイズを返します(バイト単位)。- 戻り値:
- ブロック・サイズ(バイト単位)。基本となるアルゴリズムがブロック暗号でない場合は0
 
 - 
getOutputSizepublic final int getOutputSize(int inputLen) 入力の長さinputLen(バイト単位)を指定して、次のupdateまたはdoFinal操作の結果を保持するために必要な出力バッファの長さをバイト数で返します。この呼出しでは、以前の update呼出しの処理されていない(バッファにある)データを考慮し、パディングおよびAEADタグ付けを行います。次の updateまたはdoFinal呼出しの実際の出力長は、このメソッドが返す長さより小さいことがあります。- パラメータ:
- inputLen- 入力長(バイト単位)
- 戻り値:
- 必要な出力バッファ・サイズ(バイト単位)
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(まだ初期化されていないなど)
 
 - 
getIVpublic final byte[] getIV() 新しいバッファの初期化ベクトル(IV)を返します。これは、ランダムIVが作成された場合、あるいはIVがユーザー指定のパスワードから派生するパスワードベースの暗号化または復号化のコンテキストにおいて役立ちます。 - 戻り値:
- 新しいバッファ内の初期化ベクトル。基本となるアルゴリズムがIVを使用しない場合、またはIVが設定されていない場合はnull
 
 - 
getParameterspublic final AlgorithmParameters getParameters() この暗号で使用されるパラメータを返します。返されるパラメータは、この暗号を初期化するのに使用したものと同じ場合があります。または、返されるパラメータには、この暗号にアルゴリズム・パラメータが必要で、かつアルゴリズム・パラメータで初期化されなかった場合に、基本となる暗号実装で使用されるデフォルトとランダムのパラメータ値の組み合わせが含まれることもあります。 - 戻り値:
- この暗号で使用されるパラメータ。この暗号でパラメータを使用しない場合はnull
 
 - 
getExemptionMechanismpublic final ExemptionMechanism getExemptionMechanism() この暗号で使用される除外メカニズム・オブジェクトを返します。- 戻り値:
- この暗号で使用される除外メカニズム・オブジェクト。この暗号で除外メカニズムを使用しない場合はnull
 
 - 
initpublic 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- 指定された鍵がこの暗号の初期化に不適切な場合、この暗号が指定された鍵から判定することができないアルゴリズム・パラメータを必要とする場合、または指定された鍵のサイズが最大許容鍵サイズ(設定されている管轄ポリシー・ファイルにより決定)を超える場合。
- UnsupportedOperationException-- opmodeが- WRAP_MODEまたは- UNWRAP_MODEの場合、そのモードは基になる- CipherSpiによって実装されていません。
 
 - 
initpublic 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- 指定された鍵がこの暗号の初期化に不適切な場合、この暗号が指定された鍵から判定することができないアルゴリズム・パラメータを必要とする場合、または指定された鍵のサイズが最大許容鍵サイズ(設定されている管轄ポリシー・ファイルにより決定)を超える場合。
- UnsupportedOperationException-- opmodeが- WRAP_MODEまたは- UNWRAP_MODEの場合、そのモードは基になる- CipherSpiによって実装されていません。
 
 - 
initpublic 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の場合、または指定されたアルゴリズム・パラメータが有効な制限(設定されている管轄ポリシー・ファイルにより決定)を超える暗号化強度を示す場合。
- UnsupportedOperationException-- opmodeが- WRAP_MODEまたは- UNWRAP_MODEの場合、そのモードは基になる- CipherSpiによって実装されていません。
 
 - 
initpublic 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の場合、または指定されたアルゴリズム・パラメータが有効な制限(設定されている管轄ポリシー・ファイルにより決定)を超える暗号化強度を示す場合。
- UnsupportedOperationException-- opmodeが- WRAP_MODEまたは- UNWRAP_MODEの場合、そのモードは基になる- CipherSpiによって実装されていません。
 
 - 
initpublic 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の場合、または指定されたアルゴリズム・パラメータが有効な制限(設定されている管轄ポリシー・ファイルにより決定)を超える暗号化強度を示す場合。
- UnsupportedOperationException-- opmodeが- WRAP_MODEまたは- UNWRAP_MODEの場合、そのモードは基になる- CipherSpiによって実装されていません。
 
 - 
initpublic 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の場合、または指定されたアルゴリズム・パラメータが有効な制限(設定されている管轄ポリシー・ファイルにより決定)を超える暗号化強度を示す場合。
- UnsupportedOperationException-- opmodeが- WRAP_MODEまたは- UNWRAP_MODEの場合、そのモードは基になる- CipherSpiによって実装されていません。
 
 - 
initpublic final void init(int opmode, Certificate certificate) throws InvalidKeyExceptionこの暗号を、検証操作のために指定された公開鍵で初期化します。この暗号は、 opmodeの値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の4つの操作の1つに合わせて初期化されます。証明書の種類がX.509で、重要とマークされたkey usage拡張フィールドがあり、key usage拡張フィールドの値によって証明書の公開鍵とそれに対応する非公開鍵が opmodeの値で表される操作に使用されないものである場合は、InvalidKeyExceptionがスローされます。この暗号が、指定されたcertificateの公開鍵から派生できないアルゴリズム・パラメータを必要とする場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、 InvalidKeyExceptionを発生させます。 生成されたパラメータは、getParametersまたはgetIV(パラメータがIVの場合)を使用して取り出すことができます。この暗号が入力パラメータから派生できないアルゴリズム・パラメータを必要とし、適切なプロバイダ固有のデフォルト値がない場合は、必ず初期化に失敗します。 この暗号(基本となるフィード・バックまたはパディング方式を含む)が乱数バイトを必要とする場合(パラメータ生成のためなど)は、乱数発生の元として最優先の順位でインストールされているプロバイダの SecureRandomの実装を使用して取得します。 SecureRandomを提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。Cipherオブジェクトを初期化すると、それまでに獲得した状態がすべて失われることに留意してください。 つまり、Cipherを初期化することは、そのCipherの新規インスタンスを作成して初期化することと等価です。 - パラメータ:
- opmode- この暗号の操作モード(- ENCRYPT_MODE、- DECRYPT_MODE、- WRAP_MODE、または- UNWRAP_MODEのどれか)
- certificate- 証明書
- 例外:
- InvalidKeyException- 指定された証明書の公開鍵がこの暗号の初期化に不適切な場合、この暗号が指定された証明書の公開鍵から判定することができないアルゴリズム・パラメータを必要とする場合、または指定された証明書の公開鍵のサイズが最大許容鍵サイズ(設定されている管轄ポリシー・ファイルにより決定)を超える場合。
- UnsupportedOperationException-- opmodeが- WRAP_MODEまたは- UNWRAP_MODEの場合、そのモードは基になる- CipherSpiによって実装されていません。
 
 - 
initpublic 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- 指定された証明書の公開鍵がこの暗号の初期化に不適切な場合、この暗号が指定された証明書の公開鍵から判定することができないアルゴリズム・パラメータを必要とする場合、または指定された証明書の公開鍵のサイズが最大許容鍵サイズ(設定されている管轄ポリシー・ファイルにより決定)を超える場合。
- UnsupportedOperationException-- opmodeが- WRAP_MODEまたは- UNWRAP_MODEの場合、そのモードは基になる- CipherSpiによって実装されていません。
 
 - 
updatepublic final byte[] update(byte[] input) 複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を継続し、別のデータ部分を処理します。inputバッファ内のバイトが処理され、結果が新しいバッファに格納されます。inputの長さがゼロの場合、このメソッドはnullを返します。- パラメータ:
- input- 入力バッファ
- 戻り値:
- 結果の入った新しいバッファ。基本となる暗号がブロック暗号であり、入力データが短かすぎて新しいブロックにならない場合はnull
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)
 
 - 
updatepublic final byte[] update(byte[] input, int inputOffset, int inputLen)複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を継続し、別のデータ部分を処理します。inputOffsetから始まる、inputバッファ内の最初のinputLenバイトが処理され、結果が新しいバッファに格納されます。inputLenがゼロの場合、このメソッドはnullを返します。- パラメータ:
- input- 入力バッファ
- inputOffset- 入力を開始する- input内のオフセット
- inputLen- 入力長
- 戻り値:
- 結果の入った新しいバッファ。基本となる暗号がブロック暗号であり、入力データが短かすぎて新しいブロックにならない場合はnull
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)
 
 - 
updatepublic 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- 指定された出力バッファが小さすぎて結果を保持できない場合
 
 - 
updatepublic 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- 指定された出力バッファが小さすぎて結果を保持できない場合
 
 - 
updatepublic final int update(ByteBuffer input, ByteBuffer output) throws ShortBufferException 複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を継続し、別のデータ部分を処理します。input.position()から始まるすべてのinput.remaining()バイトが処理されます。 結果はoutputバッファに格納されます。 終了時に、入力バッファの位置はリミットに等しくなりますが、リミットは変更されません。 出力バッファの位置はnだけ増加します。nは、このメソッドが返す値です。出力バッファのリミットは変更されません。output.remaining()バイトが結果を保持するのに不十分な場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。注: このメソッドはコピーに対して安全である必要があります。つまり、 inputおよびoutputバッファは同じメモリー・ブロックを参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。- パラメータ:
- input- 入力ByteBuffer
- output- 出力ByteBuffer
- 戻り値:
- outputに格納されたバイト数
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)
- IllegalArgumentException- 入力と出力が同じオブジェクトである場合
- ReadOnlyBufferException- 出力バッファが読取り専用の場合
- ShortBufferException- 出力バッファ内に残っている容量が不足している場合
- 導入されたバージョン:
- 1.5
 
 - 
doFinalpublic final byte[] doFinal() throws IllegalBlockSizeException, BadPaddingException複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を終了します。入力データは前の update操作中にバッファに入れられて、パディング(要求された場合)が適用されている場合があります。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果は新しいバッファに格納されます。終了時に、このメソッドはこの暗号オブジェクトを前に initを呼び出して初期化されたときの状態にリセットします。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。注: 例外がスローされた場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。 - 戻り値:
- 結果の入った新しいバッファ
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)
- IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。
- BadPaddingException- この暗号が復号化モードであり、パディング(またはパディング解除)が要求されたが、復号化されたデータが適切なパディング・バイトでバインドされない場合。
- AEADBadTagException- この暗号がAEADモード(GCM/CCMなど)で復号化し、受け取った認証タグが計算された値と一致しない場合。
 
 - 
doFinalpublic final int doFinal(byte[] output, int outputOffset) throws IllegalBlockSizeException, ShortBufferException, BadPaddingException複数の部分から成る暗号化または復号化操作(この暗号の初期化方法により異なります)を終了します。入力データは前の update操作中にバッファに入れられて、パディング(要求された場合)が適用されている場合があります。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果は、outputOffsetから始まるoutputバッファに格納されます。outputバッファが小さすぎて結果を保持できない場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。終了時に、このメソッドはこの暗号オブジェクトを前に initを呼び出して初期化されたときの状態にリセットします。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。注: 例外がスローされた場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。 - パラメータ:
- output- 結果を格納するバッファ
- outputOffset- 結果が格納される- output内のオフセット
- 戻り値:
- outputに格納されたバイト数
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)
- IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。
- ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合
- BadPaddingException- この暗号が復号化モードであり、パディング(またはパディング解除)が要求されたが、復号化されたデータが適切なパディング・バイトでバインドされない場合。
- AEADBadTagException- この暗号がAEADモード(GCM/CCMなど)で復号化し、受け取った認証タグが計算された値と一致しない場合。
 
 - 
doFinalpublic final byte[] doFinal(byte[] input) throws IllegalBlockSizeException, BadPaddingException単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 データは、この暗号が初期化された方法に従って、暗号化または復号化されます。inputバッファ内のバイト、および前のupdate操作中にバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング(要求された場合)が適用されます。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果は新しいバッファに格納されます。終了時に、このメソッドはこの暗号オブジェクトを前に initを呼び出して初期化されたときの状態にリセットします。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。注: 例外がスローされた場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。 - パラメータ:
- input- 入力バッファ
- 戻り値:
- 結果の入った新しいバッファ
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)
- IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。
- BadPaddingException- この暗号が復号化モードであり、パディング(またはパディング解除)が要求されたが、復号化されたデータが適切なパディング・バイトでバインドされない場合。
- AEADBadTagException- この暗号がAEADモード(GCM/CCMなど)で復号化し、受け取った認証タグが計算された値と一致しない場合。
 
 - 
doFinalpublic final byte[] doFinal(byte[] input, int inputOffset, int inputLen) throws IllegalBlockSizeException, BadPaddingException単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 データは、この暗号が初期化された方法に従って、暗号化または復号化されます。inputOffsetから始まるinputバッファ内の最初のinputLenバイト、および前のupdate操作でバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング(要求された場合)が適用されます。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果は新しいバッファに格納されます。終了時に、このメソッドはこの暗号オブジェクトを前に initを呼び出して初期化されたときの状態にリセットします。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。注: 例外がスローされた場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。 - パラメータ:
- input- 入力バッファ
- inputOffset- 入力を開始する- input内のオフセット
- inputLen- 入力長
- 戻り値:
- 結果の入った新しいバッファ
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)
- IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。
- BadPaddingException- この暗号が復号化モードであり、パディング(またはパディング解除)が要求されたが、復号化されたデータが適切なパディング・バイトでバインドされない場合。
- AEADBadTagException- この暗号がAEADモード(GCM/CCMなど)で復号化し、受け取った認証タグが計算された値と一致しない場合。
 
 - 
doFinalpublic final int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 データは、この暗号が初期化された方法に従って、暗号化または復号化されます。inputOffsetから始まるinputバッファ内の最初のinputLenバイト、および前のupdate操作でバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング(要求された場合)が適用されます。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果はoutputバッファに格納されます。outputバッファが小さすぎて結果を保持できない場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。終了時に、このメソッドはこの暗号オブジェクトを前に initを呼び出して初期化されたときの状態にリセットします。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。注: 例外がスローされた場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。 注: このメソッドはコピーに対して安全である必要があります。つまり、 inputおよびoutputバッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。- パラメータ:
- input- 入力バッファ
- inputOffset- 入力を開始する- input内のオフセット
- inputLen- 入力長
- output- 結果を格納するバッファ
- 戻り値:
- outputに格納されたバイト数
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)
- IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。
- ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合
- BadPaddingException- この暗号が復号化モードであり、パディング(またはパディング解除)が要求されたが、復号化されたデータが適切なパディング・バイトでバインドされない場合。
- AEADBadTagException- この暗号がAEADモード(GCM/CCMなど)で復号化し、受け取った認証タグが計算された値と一致しない場合。
 
 - 
doFinalpublic final int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 データは、この暗号が初期化された方法に従って、暗号化または復号化されます。inputOffsetから始まるinputバッファ内の最初のinputLenバイト、および前のupdate操作でバッファに入れられた可能性のあるすべての入力バイトが処理され、パディング(要求された場合)が適用されます。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果は、outputOffsetから始まるoutputバッファに格納されます。outputバッファが小さすぎて結果を保持できない場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。終了時に、このメソッドはこの暗号オブジェクトを前に initを呼び出して初期化されたときの状態にリセットします。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。注: 例外がスローされた場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。 注: このメソッドはコピーに対して安全である必要があります。つまり、 inputおよびoutputバッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。- パラメータ:
- input- 入力バッファ
- inputOffset- 入力を開始する- input内のオフセット
- inputLen- 入力長
- output- 結果を格納するバッファ
- outputOffset- 結果が格納される- output内のオフセット
- 戻り値:
- outputに格納されたバイト数
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)
- IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。
- ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合
- BadPaddingException- この暗号が復号化モードであり、パディング(またはパディング解除)が要求されたが、復号化されたデータが適切なパディング・バイトでバインドされない場合。
- AEADBadTagException- この暗号がAEADモード(GCM/CCMなど)で復号化し、受け取った認証タグが計算された値と一致しない場合。
 
 - 
doFinalpublic final int doFinal(ByteBuffer input, ByteBuffer output) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException 単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。 データは、この暗号が初期化された方法に従って、暗号化または復号化されます。input.position()から始まるすべてのinput.remaining()バイトが処理されます。 GCM/CCMなどのAEADモードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。 結果はoutputバッファに格納されます。 終了時に、入力バッファの位置はリミットに等しくなりますが、リミットは変更されません。 出力バッファの位置はnだけ増加します。nは、このメソッドが返す値です。出力バッファのリミットは変更されません。output.remaining()バイトが結果を保持するのに不十分な場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。終了時に、このメソッドはこの暗号オブジェクトを前に initを呼び出して初期化されたときの状態にリセットします。 つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます(initの呼出しで指定された操作モードにより異なります)。注: 例外がスローされた場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。 注: このメソッドはコピーに対して安全である必要があります。つまり、 inputおよびoutputバッファは同じバイト配列を参照することができ、結果が出力バッファにコピーされるときに未処理の入力データが上書きされないことが必要です。- パラメータ:
- input- 入力ByteBuffer
- output- 出力ByteBuffer
- 戻り値:
- outputに格納されたバイト数
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)
- IllegalArgumentException- 入力と出力が同じオブジェクトである場合
- ReadOnlyBufferException- 出力バッファが読取り専用の場合
- IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず(暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロック・サイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。
- ShortBufferException- 出力バッファ内に残っている容量が不足している場合
- BadPaddingException- この暗号が復号化モードであり、パディング(またはパディング解除)が要求されたが、復号化されたデータが適切なパディング・バイトでバインドされない場合。
- AEADBadTagException- この暗号がAEADモード(GCM/CCMなど)で復号化し、受け取った認証タグが計算された値と一致しない場合。
- 導入されたバージョン:
- 1.5
 
 - 
wrappublic final byte[] wrap(Key key) throws IllegalBlockSizeException, InvalidKeyException 鍵をラップします。- パラメータ:
- key- ラップされる鍵。
- 戻り値:
- ラップされた鍵
- 例外:
- IllegalStateException- この暗号が誤った状態にある場合(初期化されていないなど)。
- IllegalBlockSizeException- この暗号がブロック暗号であり、パディングが要求されておらず、ラップされる鍵のエンコーディングの長さがブロック・サイズの倍数でない場合。
- InvalidKeyException- この暗号を使用して鍵をラップすることが不可能か安全でない場合(ハードウェア保護された鍵がソフトウェアだけの暗号に渡される場合など)。
- UnsupportedOperationException-- CipherSpi内の対応するメソッドがサポートされていない場合。
 
 - 
unwrappublic 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タイプのラップされた鍵を表さない場合。
- UnsupportedOperationException-- CipherSpi内の対応するメソッドがサポートされていない場合。
 
 - 
getMaxAllowedKeyLengthpublic 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
 
 - 
getMaxAllowedParameterSpecpublic 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
 
 - 
updateAADpublic final void updateAAD(byte[] src) AAD (Additional Authentication Data)のマルチパート更新を継続します。暗号がAEAD (GCM/CCM)などのモードで操作されると、このメソッドの呼出しでAADが提供されます。 この暗号がGCMまたはCCMモードで操作されている場合は、( updateおよびdoFinalメソッドを介した)暗号テキスト上の操作を開始する前に、すべてのAADが提供される必要があります。- パラメータ:
- src- Additional Authentication Dataを格納するバッファ
- 例外:
- IllegalArgumentException-- srcバイト配列がnullである場合
- IllegalStateException- この暗号が誤った状態であり(まだ初期化されていないなど)、AADを受け入れない場合、またはGCMまたはCCMモードで操作していて、アクティブな暗号化/復号化操作に対してすでに- updateメソッドが呼び出されている場合
- UnsupportedOperationException-- CipherSpi内の対応するメソッドが実装によってオーバーライドされていない場合
- 導入されたバージョン:
- 1.7
 
 - 
updateAADpublic final void updateAAD(byte[] src, int offset, int len)提供されたバッファのサブセットを使用して、Additional Authentication Data (AAD)のマルチパート更新を続行します。暗号がAEAD (GCM/CCM)などのモードで操作されると、このメソッドの呼出しでAADが提供されます。 この暗号がGCMまたはCCMモードで操作されている場合は、( updateおよびdoFinalメソッドを介した)暗号テキスト上の操作を開始する前に、すべてのAADが提供される必要があります。- パラメータ:
- src- AADを格納するバッファ
- offset- AAD入力を開始する- src内のオフセット
- len- AADバイトの数
- 例外:
- IllegalArgumentException-- srcバイト配列がnullの場合、- offsetか- lengthが0未満の場合、または- offsetと- lenとの合計が- srcバイト配列の長さの値よりも大きい場合
- IllegalStateException- この暗号が誤った状態であり(まだ初期化されていないなど)、AADを受け入れない場合、またはGCMまたはCCMモードで操作していて、アクティブな暗号化/復号化操作に対してすでに- updateメソッドが呼び出されている場合
- UnsupportedOperationException-- CipherSpi内の対応するメソッドが実装によってオーバーライドされていない場合
- 導入されたバージョン:
- 1.7
 
 - 
updateAADpublic final void updateAAD(ByteBuffer src) AAD (Additional Authentication Data)のマルチパート更新を継続します。暗号がAEAD (GCM/CCM)などのモードで操作されると、このメソッドの呼出しでAADが提供されます。 この暗号がGCMまたはCCMモードで操作されている場合は、( updateおよびdoFinalメソッドを介した)暗号テキスト上の操作を開始する前に、すべてのAADが提供される必要があります。src.position()から始まるすべてのsrc.remaining()バイトが処理されます。 終了時に、入力バッファの位置はリミットに等しくなりますが、リミットは変更されません。- パラメータ:
- src- AADを格納するバッファ
- 例外:
- IllegalArgumentException-- src ByteBufferがnullの場合
- IllegalStateException- この暗号が誤った状態であり(まだ初期化されていないなど)、AADを受け入れない場合、またはGCMまたはCCMモードで操作していて、アクティブな暗号化/復号化操作に対してすでに- updateメソッドが呼び出されている場合
- UnsupportedOperationException-- CipherSpi内の対応するメソッドが実装によってオーバーライドされていない場合
- 導入されたバージョン:
- 1.7
 
 
- 
 
-