MATH_CalcHMACSHA256

構文

#include <nitro/math/dgt.h>

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

引数

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

返り値

なし。

説明

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

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

SHA-256 はメッセージダイジェスト値を求めるためのアルゴリズムです。詳細は FIPS (Federal Information Processing Standards) が発行している FIPS PUB 180-2 を参照してください。
HMAC はメッセージ認証のための鍵付ハッシングのアルゴリズムです。内部でハッシュ関数として SHA-256 を使用するものは HMAC-SHA-256 と呼ばれます。詳細は RFC 2104 を参照してください。

参照

履歴

2008/05/23 初版