MATH_CalcHMACSHA1

構文

#include <nitro/math/dgt.h>

static inline void MATH_CalcHMACSHA1( void* digest, const void* data, u32 dataLength, const void* key, u32 keyLength );

引数

digest 計算した鍵付ハッシュ値を格納するメモリへのポインタ。
data 入力データへのポインタ。
dataLength 入力データのサイズ。
key 鍵へのポインタ。
keyLength 鍵のサイズ。

返り値

なし。

説明

この関数は、SHA-1 を利用した HMAC の計算を行います。
生成される鍵付ハッシュ値の長さは 160 bit、すなわち MATH_SHA1_DIGEST_SIZE (= 20) バイトです。このサイズが格納できる領域を digest 引数に渡すようにしてください。
入力データも鍵も任意のサイズ・任意のアラインメント位置のものが使用できます。しかし、鍵に関しては、MATH_SHA1_DIGEST_SIZE より小さいと強度が弱くなり、MATH_SHA1_DIGEST_SIZE より大きくても強度の向上にはあまり寄与しません。

内部で MATHSHA1Context 構造体の大きさに100バイト程度を加えたサイズのスタックを使用します。スタックに十分な余裕がある状態で呼び出してください。

SHA-1 はメッセージダイジェスト値を求めるためのアルゴリズムです。詳細は IETF (The Internet Engineering Task Force) が発行している RFC (Request For Comments) 3174 を参照してください。
HMAC はメッセージ認証のための鍵付ハッシングのアルゴリズムです。内部でハッシュ関数として SHA-1 を使用するものは HMAC-SHA-1 と呼ばれます。詳細は RFC 2104 を参照してください。

参照

履歴

2005/04/12 説明の修正
2005/04/01 初版