- すべての実装されたインタフェース:
- Cloneable
public class Mac extends Object implements Cloneable
MACは、信頼できない媒体に送信または格納された情報の整合性を、秘密キーに基づいてチェックする方法を提供します。 一般に、メッセージ認証コードは、秘密キーを共有する2つのパーティ間で送信される情報の有効性を検証する場合に使用されます。
暗号化ハッシュ機能に基づくMACメカニズムは、HMACと呼ばれます。 HMACは、任意の暗号ハッシュ関数(例えば、SHA256またはSHA384)と共に、秘密の共有鍵と組み合わせて使用することができます。 HMACについては、RFC 2104で規定されています。
 Javaプラットフォームの実装は、すべて次の標準のMacアルゴリズムをサポートする必要があります。
 
- HmacSHA1
- HmacSHA256
- 導入されたバージョン:
- 1.4
- 
コンストラクタのサマリー
- 
メソッドのサマリー修飾子と型 メソッド 説明 Objectclone()プロバイダの実装が複製可能な場合は複製を返します。byte[]doFinal()MAC操作を終了します。byte[]doFinal(byte[] input)指定されたバイトの配列を処理してMAC操作を終了します。voiddoFinal(byte[] output, int outOffset)MAC操作を終了します。StringgetAlgorithm()このMacオブジェクトのアルゴリズム名を返します。static MacgetInstance(String algorithm)指定されたMACアルゴリズムを実装するMacオブジェクトを返します。static MacgetInstance(String algorithm, String provider)指定されたMACアルゴリズムを実装するMacオブジェクトを返します。static MacgetInstance(String algorithm, Provider provider)指定されたMACアルゴリズムを実装するMacオブジェクトを返します。intgetMacLength()MACの長さをバイト単位で返します。ProvidergetProvider()このMacオブジェクトのプロバイダを返します。voidinit(Key key)指定されたキーを使用してこのMacオブジェクトを初期化します。voidinit(Key key, AlgorithmParameterSpec params)指定されたキーとアルゴリズム・パラメータを使用してこのMacオブジェクトを初期化します。voidreset()このMacオブジェクトをリセットします。voidupdate(byte input)指定されたバイトを処理します。voidupdate(byte[] input)指定されたバイトの配列を処理します。voidupdate(byte[] input, int offset, int len)input内のlenバイトを処理します。offsetから始めます。voidupdate(ByteBuffer input)ByteBufferinput内のinput.position()から始まるinput.remaining()バイトを処理します。
- 
コンストラクタの詳細- 
MacMACオブジェクトを生成します。- パラメータ:
- macSpi- 委譲先
- provider- プロバイダ
- algorithm- アルゴリズム
 
 
- 
- 
メソッドの詳細- 
getAlgorithmpublic final String getAlgorithm()このMacオブジェクトのアルゴリズム名を返します。これは、この Macオブジェクトを作成したgetInstance呼出しのいずれかに指定された名前と同じです。- 戻り値:
- このMacオブジェクトのアルゴリズム名。
 
- 
getInstancepublic static final Mac getInstance(String algorithm) throws NoSuchAlgorithmException指定されたMACアルゴリズムを実装するMacオブジェクトを返します。このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたアルゴリズムをサポートする最初のプロバイダからのMacSpiの実装をカプセル化する新しいMacオブジェクトが返されます。 登録済みプロバイダのリストは、 Security.getProviders()メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、jdk.security.provider.preferredSecurityプロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。
- パラメータ:
- algorithm- 要求されたMACアルゴリズムの標準名。 標準的なアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のMacのセクションを参照してください。
- 戻り値:
- 新しいMacオブジェクト
- 例外:
- NoSuchAlgorithmException-- Providerが、指定されたアルゴリズムの- MacSpi実装をサポートしていない場合
- NullPointerException-- algorithmが- nullである場合
- 関連項目:
- Provider
 
- 
getInstancepublic static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException指定されたMACアルゴリズムを実装するMacオブジェクトを返します。指定されたプロバイダからのMacSpi実装をカプセル化する新しいMacオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。 登録済みプロバイダのリストは、 Security.getProviders()メソッド経由で取得できます。- パラメータ:
- algorithm- 要求されたMACアルゴリズムの標準名。 標準的なアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のMacのセクションを参照してください。
- provider- プロバイダ名。
- 戻り値:
- 新しいMacオブジェクト
- 例外:
- IllegalArgumentException-- providerが- nullまたは空の場合
- NoSuchAlgorithmException- 指定されたアルゴリズムの- MacSpi実装が、指定されたプロバイダから利用可能でない場合
- NoSuchProviderException- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合
- NullPointerException-- algorithmが- nullである場合
- 関連項目:
- Provider
 
- 
getInstancepublic static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException指定されたMACアルゴリズムを実装するMacオブジェクトを返します。指定されたProviderオブジェクトからのMacSpi実装をカプセル化する新しいMacオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。 - パラメータ:
- algorithm- 要求されたMACアルゴリズムの標準名。 標準的なアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のMacのセクションを参照してください。
- provider- プロバイダ
- 戻り値:
- 新しいMacオブジェクト
- 例外:
- IllegalArgumentException-- providerが- nullの場合
- NoSuchAlgorithmException- 指定されたアルゴリズムの- MacSpi実装が、指定された- Providerオブジェクトから使用できない場合
- NullPointerException-- algorithmが- nullである場合
- 関連項目:
- Provider
 
- 
getProviderpublic final Provider getProvider()このMacオブジェクトのプロバイダを返します。- 戻り値:
- このMacオブジェクトのプロバイダ。
 
- 
getMacLengthpublic final int getMacLength()MACの長さをバイト単位で返します。- 戻り値:
- バイト単位のMAC長
 
- 
initpublic final void init(Key key) throws InvalidKeyException指定されたキーを使用してこのMacオブジェクトを初期化します。- パラメータ:
- key- キー。
- 例外:
- InvalidKeyException- 指定されたキーがこのMACの初期化に不適切な場合。
 
- 
initpublic final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException指定されたキーとアルゴリズム・パラメータを使用してこのMacオブジェクトを初期化します。- パラメータ:
- key- キー。
- params- アルゴリズム・パラメータ。
- 例外:
- InvalidKeyException- 指定されたキーがこのMACの初期化に不適切な場合。
- InvalidAlgorithmParameterException- 指定されたアルゴリズム・パラメータがこのMACに不適切な場合。
 
- 
updatepublic final void update(byte input) throws IllegalStateException指定されたバイトを処理します。- パラメータ:
- input- 処理される入力バイト。
- 例外:
- IllegalStateException- この- Macが初期化されていない場合。
 
- 
updatepublic final void update(byte[] input) throws IllegalStateException指定されたバイトの配列を処理します。- パラメータ:
- input- 処理されるバイトの配列。
- 例外:
- IllegalStateException- この- Macが初期化されていない場合。
 
- 
updatepublic final void update(byte[] input, int offset, int len) throws IllegalStateExceptioninput内のlenバイトを処理します。offsetから始めます。- パラメータ:
- input- 入力バッファ
- offset- 入力を開始する- input内のオフセット。
- len- 処理するバイト数。
- 例外:
- IllegalStateException- この- Macが初期化されていない場合。
 
- 
updatepublic final void update(ByteBuffer input)ByteBufferinput内のinput.position()から始まるinput.remaining()バイトを処理します。 終了時に、バッファの位置はリミットに等しくなりますが、リミットは変更されません。- パラメータ:
- input- ByteBuffer
- 例外:
- IllegalStateException- この- Macが初期化されていない場合。
- 導入されたバージョン:
- 1.5
 
- 
doFinalpublic final byte[] doFinal() throws IllegalStateExceptionMAC操作を終了します。このメソッドを呼び出すと、この Macオブジェクトは、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して以前初期化された状態にリセットされます。 つまり、オブジェクトは、必要に応じてupdateおよびdoFinalの新規の呼出しを介してリセットされ、同じキーから別のMACを生成するために使用可能になります。 別のキーでこのMacオブジェクトを再使用するためには、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して再度初期化する必要があります。- 戻り値:
- MAC結果
- 例外:
- IllegalStateException- この- Macが初期化されていない場合。
 
- 
doFinalpublic final void doFinal(byte[] output, int outOffset) throws ShortBufferException, IllegalStateExceptionMAC操作を終了します。このメソッドを呼び出すと、この Macオブジェクトは、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して以前初期化された状態にリセットされます。 つまり、オブジェクトは、必要に応じてupdateおよびdoFinalの新規の呼出しを介してリセットされ、同じキーから別のMACを生成するために使用可能になります。 別のキーでこのMacオブジェクトを再使用するためには、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して再度初期化する必要があります。MAC結果は outputに格納されます。outOffsetから始まります。- パラメータ:
- output- MAC結果が格納されるバッファ
- outOffset- MACが格納される- output内のオフセット
- 例外:
- ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合
- IllegalStateException- この- Macが初期化されていない場合。
 
- 
doFinalpublic final byte[] doFinal(byte[] input) throws IllegalStateException指定されたバイトの配列を処理してMAC操作を終了します。このメソッドを呼び出すと、この Macオブジェクトは、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して以前初期化された状態にリセットされます。 つまり、オブジェクトは、必要に応じてupdateおよびdoFinalの新規の呼出しを介してリセットされ、同じキーから別のMACを生成するために使用可能になります。 別のキーでこのMacオブジェクトを再使用するためには、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して再度初期化する必要があります。- パラメータ:
- input- バイト単位のデータ
- 戻り値:
- MAC結果
- 例外:
- IllegalStateException- この- Macが初期化されていない場合。
 
- 
resetpublic final void reset()このMacオブジェクトをリセットします。このメソッドを呼び出すと、この Macオブジェクトは、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して以前初期化された状態にリセットされます。 つまり、オブジェクトは、必要に応じてupdateおよびdoFinalの新規の呼出しを介してリセットされ、同じキーから別のMACを生成するために使用可能になります。 別のキーでこのMacオブジェクトを再使用するためには、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して再度初期化する必要があります。
- 
clonepublic final Object clone() throws CloneNotSupportedExceptionプロバイダの実装が複製可能な場合は複製を返します。- オーバーライド:
- clone、クラス:- Object
- 戻り値:
- プロバイダの実装が複製可能な場合は複製
- 例外:
- CloneNotSupportedException-- Cloneableをサポートしていない委譲先で呼び出された場合。
- 関連項目:
- Cloneable
 
 
-