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実装をサポートするプロバイダが存在しない場合。Providerpublic 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または空の場合Providerpublic 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の場合Providerpublic 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、クラス: ObjectCloneNotSupportedException - Cloneableをサポートしていない委譲先で呼び出された場合。Cloneable バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.