- すべての実装されたインタフェース:
Cloneable
public class Mac extends Object implements Cloneable
MACは、信頼できない媒体に送信または格納された情報の整合性を、秘密キーに基づいてチェックする方法を提供します。 一般に、メッセージ認証コードは、秘密キーを共有する2つのパーティ間で送信される情報の有効性を検証する場合に使用されます。
暗号化ハッシュ機能に基づくMACメカニズムは、HMACと呼ばれます。 HMACは、任意の暗号ハッシュ関数(例えば、SHA256またはSHA384)と共に、秘密の共有鍵と組み合わせて使用することができます。 HMACについては、RFC 2104で規定されています。
Javaプラットフォームの実装は、すべて次の標準のMacアルゴリズムをサポートする必要があります。
HmacMD5HmacSHA1HmacSHA256
- 導入されたバージョン:
- 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()バイトを処理します。
-
コンストラクタの詳細
-
Mac
MACオブジェクトを生成します。- パラメータ:
macSpi- 委譲先provider- プロバイダalgorithm- アルゴリズム
-
-
メソッドの詳細
-
getAlgorithm
public final String getAlgorithm()このMacオブジェクトのアルゴリズム名を返します。これは、この
Macオブジェクトを作成したgetInstance呼出しのいずれかに指定された名前と同じです。- 戻り値:
- この
Macオブジェクトのアルゴリズム名。
-
getInstance
public 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
-
getInstance
public 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
-
getInstance
public 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
-
getProvider
public final Provider getProvider()このMacオブジェクトのプロバイダを返します。- 戻り値:
- この
Macオブジェクトのプロバイダ。
-
getMacLength
public final int getMacLength()MACの長さをバイト単位で返します。- 戻り値:
- バイト単位のMAC長
-
init
public final void init(Key key) throws InvalidKeyException指定されたキーを使用してこのMacオブジェクトを初期化します。- パラメータ:
key- キー。- 例外:
InvalidKeyException- 指定されたキーがこのMACの初期化に不適切な場合。
-
init
public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException指定されたキーとアルゴリズム・パラメータを使用してこのMacオブジェクトを初期化します。- パラメータ:
key- キー。params- アルゴリズム・パラメータ。- 例外:
InvalidKeyException- 指定されたキーがこのMACの初期化に不適切な場合。InvalidAlgorithmParameterException- 指定されたアルゴリズム・パラメータがこのMACに不適切な場合。
-
update
public final void update(byte input) throws IllegalStateException指定されたバイトを処理します。- パラメータ:
input- 処理される入力バイト。- 例外:
IllegalStateException- このMacが初期化されていない場合。
-
update
public final void update(byte[] input) throws IllegalStateException指定されたバイトの配列を処理します。- パラメータ:
input- 処理されるバイトの配列。- 例外:
IllegalStateException- このMacが初期化されていない場合。
-
update
public final void update(byte[] input, int offset, int len) throws IllegalStateExceptioninput内のlenバイトを処理します。offsetから始めます。- パラメータ:
input- 入力バッファoffset- 入力を開始するinput内のオフセット。len- 処理するバイト数。- 例外:
IllegalStateException- このMacが初期化されていない場合。
-
update
public final void update(ByteBuffer input)ByteBufferinput内のinput.position()から始まるinput.remaining()バイトを処理します。 終了時に、バッファの位置はリミットに等しくなりますが、リミットは変更されません。- パラメータ:
input- ByteBuffer- 例外:
IllegalStateException- このMacが初期化されていない場合。- 導入されたバージョン:
- 1.5
-
doFinal
public final byte[] doFinal() throws IllegalStateExceptionMAC操作を終了します。このメソッドを呼び出すと、この
Macオブジェクトは、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して以前初期化された状態にリセットされます。 つまり、オブジェクトは、必要に応じてupdateおよびdoFinalの新規の呼出しを介してリセットされ、同じキーから別のMACを生成するために使用可能になります。 別のキーでこのMacオブジェクトを再使用するためには、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して再度初期化する必要があります。- 戻り値:
- MAC結果
- 例外:
IllegalStateException- このMacが初期化されていない場合。
-
doFinal
public 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が初期化されていない場合。
-
doFinal
public 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が初期化されていない場合。
-
reset
public final void reset()このMacオブジェクトをリセットします。このメソッドを呼び出すと、この
Macオブジェクトは、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して以前初期化された状態にリセットされます。 つまり、オブジェクトは、必要に応じてupdateおよびdoFinalの新規の呼出しを介してリセットされ、同じキーから別のMACを生成するために使用可能になります。 別のキーでこのMacオブジェクトを再使用するためには、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して再度初期化する必要があります。 -
clone
public final Object clone() throws CloneNotSupportedExceptionプロバイダの実装が複製可能な場合は複製を返します。- オーバーライド:
clone、クラス:Object- 戻り値:
- プロバイダの実装が複製可能な場合は複製
- 例外:
CloneNotSupportedException-Cloneableをサポートしていない委譲先で呼び出された場合。- 関連項目:
Cloneable
-