public class Mac extends Object implements Cloneable
MAC は、信頼できない媒体に送信または格納された情報の整合性を、秘密鍵に基づいてチェックする方法を提供します。一般に、メッセージ認証コードは、秘密鍵を共有する 2 つのパーティー間で送信される情報の有効性を検証する場合に使用されます。
暗号化ハッシュ機能に基づく MAC メカニズムは、HMAC と呼ばれます。HMAC は、秘密共有鍵と組み合わせて、MD5 や SHA-1 などの任意の暗号化ハッシュ機能で使用できます。HMAC については、RFC 2104 で規定されています。
Java プラットフォームの実装は、すべて次の標準の Mac
アルゴリズムをサポートする必要があります。
修飾子 | コンストラクタと説明 |
---|---|
protected |
Mac(MacSpi macSpi, Provider provider, String algorithm)
MAC オブジェクトを生成します。
|
修飾子と型 | メソッドと説明 |
---|---|
Object |
clone()
プロバイダの実装が複製可能な場合は複製を返します。
|
byte[] |
doFinal()
MAC 操作を終了します。
|
byte[] |
doFinal(byte[] input)
指定されたバイトの配列を処理して MAC 操作を終了します。
|
void |
doFinal(byte[] output, int outOffset)
MAC 操作を終了します。
|
String |
getAlgorithm()
この
Mac オブジェクトのアルゴリズム名を返します。 |
static Mac |
getInstance(String algorithm)
指定された MAC アルゴリズムを実装する
Mac オブジェクトを返します。 |
static Mac |
getInstance(String algorithm, Provider provider)
指定された MAC アルゴリズムを実装する
Mac オブジェクトを返します。 |
static Mac |
getInstance(String algorithm, String provider)
指定された MAC アルゴリズムを実装する
Mac オブジェクトを返します。 |
int |
getMacLength()
MAC の長さをバイト単位で返します。
|
Provider |
getProvider()
この
Mac オブジェクトのプロバイダを返します。 |
void |
init(Key key)
指定された鍵を使用してこの
Mac オブジェクトを初期化します。 |
void |
init(Key key, AlgorithmParameterSpec params)
指定された鍵とアルゴリズムパラメータを使用してこの
Mac オブジェクトを初期化します。 |
void |
reset()
この
Mac オブジェクトをリセットします。 |
void |
update(byte input)
指定されたバイトを処理します。
|
void |
update(byte[] input)
指定されたバイトの配列を処理します。
|
void |
update(byte[] input, int offset, int len)
input 内の len バイトを処理します。offset から始めます。 |
void |
update(ByteBuffer input)
ByteBuffer
input 内の input.position() から始まる input.remaining() バイトを処理します。 |
public final String getAlgorithm()
Mac
オブジェクトのアルゴリズム名を返します。
これは、この Mac
オブジェクトを作成した getInstance
呼び出しのいずれかに指定された名前と同じです。
Mac
オブジェクトのアルゴリズム名。public static final Mac getInstance(String algorithm) throws NoSuchAlgorithmException
Mac
オブジェクトを返します。
このメソッドは、最優先の Provider から順に、登録済みのセキュリティー Provider のリストをトラバースします。指定されたアルゴリズムをサポートする最初のプロバイダからの MacSpi の実装をカプセル化する新しい Mac オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求された MAC アルゴリズムの標準名。標準のアルゴリズム名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの Mac のセクションを参照。Mac
オブジェクト。NoSuchAlgorithmException
- 指定したアルゴリズムの MacSpi 実装をサポートするプロバイダが存在しない場合。Provider
public static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Mac
オブジェクトを返します。
指定されたプロバイダからの MacSpi 実装をカプセル化する新しい Mac オブジェクトが返されます。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求された MAC アルゴリズムの標準名。標準のアルゴリズム名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの Mac のセクションを参照。provider
- プロバイダ名Mac
オブジェクト。NoSuchAlgorithmException
- 指定されたプロバイダに指定されたアルゴリズムの MacSpi の実装がない場合。NoSuchProviderException
- 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合IllegalArgumentException
- provider
が null または空の場合Provider
public static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Mac
オブジェクトを返します。
指定された Provider オブジェクトからの MacSpi 実装をカプセル化する新しい Mac オブジェクトが返されます。指定された Provider オブジェクトは、プロバイダリストに登録する必要はありません。
algorithm
- 要求された MAC アルゴリズムの標準名。標準のアルゴリズム名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの Mac のセクションを参照。provider
- プロバイダMac
オブジェクト。NoSuchAlgorithmException
- 指定された Provider オブジェクトに指定されたアルゴリズムの MacSpi の実装がない場合。IllegalArgumentException
- provider
が null の場合Provider
public final Provider getProvider()
Mac
オブジェクトのプロバイダを返します。Mac
オブジェクトのプロバイダ。public final int getMacLength()
public final void init(Key key) throws InvalidKeyException
Mac
オブジェクトを初期化します。key
- 鍵InvalidKeyException
- 指定された鍵がこの MAC の初期化に不適切な場合。public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException
Mac
オブジェクトを初期化します。key
- 鍵params
- アルゴリズムパラメータ。InvalidKeyException
- 指定された鍵がこの MAC の初期化に不適切な場合。InvalidAlgorithmParameterException
- 指定されたアルゴリズムパラメータがこの MAC に不適切な場合。public final void update(byte input) throws IllegalStateException
input
- 処理される入力バイト。IllegalStateException
- この Mac
が初期化されていない場合。public final void update(byte[] input) throws IllegalStateException
input
- 処理されるバイトの配列。IllegalStateException
- この Mac
が初期化されていない場合。public final void update(byte[] input, int offset, int len) throws IllegalStateException
input
内の len
バイトを処理します。offset
から始めます。input
- 入力バッファーoffset
- 入力を開始する input
内のオフセット。len
- 処理するバイト数。IllegalStateException
- この Mac
が初期化されていない場合。public final void update(ByteBuffer input)
input
内の input.position()
から始まる input.remaining()
バイトを処理します。終了時に、バッファーの位置はリミットに等しくなりますが、リミットは変更されません。input
- ByteBufferIllegalStateException
- この Mac
が初期化されていない場合。public final byte[] doFinal() throws IllegalStateException
このメソッドを呼び出すと、この Mac
オブジェクトは、init(Key)
または init(Key, AlgorithmParameterSpec)
の呼び出しを介して以前初期化された状態にリセットされます。つまり、オブジェクトは、必要に応じて update
および doFinal
の新規の呼び出しを介してリセットされ、同じ鍵から別の MAC を生成するために使用可能になります。別の鍵でこの Mac
オブジェクトを再使用するためには、init(Key)
または init(Key, AlgorithmParameterSpec)
の呼び出しを介して再度初期化する必要があります。
IllegalStateException
- この Mac
が初期化されていない場合。public final void doFinal(byte[] output, int outOffset) throws ShortBufferException, IllegalStateException
このメソッドを呼び出すと、この 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
が初期化されていない場合。public final byte[] doFinal(byte[] input) throws IllegalStateException
このメソッドを呼び出すと、この Mac
オブジェクトは、init(Key)
または init(Key, AlgorithmParameterSpec)
の呼び出しを介して以前初期化された状態にリセットされます。つまり、オブジェクトは、必要に応じて update
および doFinal
の新規の呼び出しを介してリセットされ、同じ鍵から別の MAC を生成するために使用可能になります。別の鍵でこの Mac
オブジェクトを再使用するためには、init(Key)
または init(Key, AlgorithmParameterSpec)
の呼び出しを介して再度初期化する必要があります。
input
- バイト単位のデータIllegalStateException
- この Mac
が初期化されていない場合。public final void reset()
Mac
オブジェクトをリセットします。
このメソッドを呼び出すと、この Mac
オブジェクトは、init(Key)
または init(Key, AlgorithmParameterSpec)
の呼び出しを介して以前初期化された状態にリセットされます。つまり、オブジェクトは、必要に応じて update
および doFinal
の新規の呼び出しを介してリセットされ、同じ鍵から別の MAC を生成するために使用可能になります。別の鍵でこの Mac
オブジェクトを再使用するためには、init(Key)
または init(Key, AlgorithmParameterSpec)
の呼び出しを介して再度初期化する必要があります。
public final Object clone() throws CloneNotSupportedException
clone
、クラス: Object
CloneNotSupportedException
- Cloneable
をサポートしていない委譲先で呼び出された場合。Cloneable
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.