# 15.1 `hmac` -- メッセージ認証のための鍵付きハッシュ化

バージョン2.2 以降で新規追加された 仕様です。

このモジュールでは RFC 2104 で記述されている HMAC アルゴリズム を実装しています。

`new`( | key[, msg[, digestmod]])

  新たな hmac オブジェクトを返します。msg が存在すれば、 メソッド呼び出し `updatemsg` を行います。 digestmod は HMAC オブジェクトが使うダイジェストモジュール です。標準では `md5` モジュールになっています。

HMAC オブジェクトは以下のメソッドを持っています:

`update`( | msg)

  hmac オブジェクトを文字列 msg で更新します。繰り返し呼び出し を行うと、それらの引数を全て結合した引数で単一の呼び出しをした 際と同じに等価になります: すなわち `m.update(a); m.update(b)` は `m.update(a + b)` と等価です。

`digest`( | )

  これまで `update()` メソッドに渡された文字列のダイジェスト値 を返します。個の値は 16 バイトの文字列 (`md5` の場合) か、 20 バイトの文字列 (`sha` の場合) で、NULL バイトを含む 非 ASCII 文字が含まれることがあります。

`hexdigest`( | )

  `digest()` と似ていますが、ダイジェスト値が `md5` のときで長さ 32 文字 (`sha` のときで 40文字) の 16進数字 のみを含む文字列で返されます。この値は電子メールやその他の非バイナリ 環境で値をやり取りする際に使うことができます。

`copy`( | )

  hmac オブジェクトの (``クローン'' の)　コピーを返します。このコピー は最初の部分文字列が共通になっている文字列のダイジェスト値を効率 よく計算するために使うことができます。