コンテンツにスキップ

Algorithms - HMAC

Functions

Name
int wc_HmacSetKey(Hmac * hmac, int type, const byte * key, word32 keySz)
この関数はHMACオブジェクトを初期化し、その暗号化タイプ、キー、およびHMACの長さを設定します。
int wc_HmacUpdate(Hmac * hmac, const byte * in, word32 sz)
この関数は、HMACを使用して認証するメッセージを更新します。HMACオブジェクトがWC_HMACSETKEYで初期化された後に呼び出されるべきです。この関数は、ハッシュへのメッセージを更新するために複数回呼び出されることがあります。必要に応じてwc_hmacupdateを呼び出した後、最終認証済みメッセージタグを取得するためにwc_hmacfinalを呼び出す必要があります。
int wc_HmacFinal(Hmac * hmac, byte * out)
この関数は、HMACオブジェクトのメッセージの最終ハッシュを計算します。
int wolfSSL_GetHmacMaxSize(void )
この関数は、構成された暗号スイートに基づいて使用可能な最大のHMACダイジェストサイズを返します。
int wc_HKDF(int type, const byte * inKey, word32 inKeySz, const byte * salt, word32 saltSz, const byte * info, word32 infoSz, byte * out, word32 outSz)
この関数は、HMACキー導出機能(HKDF)へのアクセスを提供します。HMACを利用して、任意のSALTとオプションの情報を派生したキーに変換します。0またはNULLが指定されている場合、ハッシュ型はデフォルトでMD5になります。

Functions Documentation

function wc_HmacSetKey

int wc_HmacSetKey(
    Hmac * hmac,
    int type,
    const byte * key,
    word32 keySz
)

この関数はHMACオブジェクトを初期化し、その暗号化タイプ、キー、およびHMACの長さを設定します。

Parameters:

  • hmac 初期化するHMACオブジェクトへのポインタ
  • type HMACオブジェクトを使用する暗号化方式を指定します。有効なオプションは次のとおりです.MD5、SHA、SHA256、SHA384、SHA3-224、SHA3-256、SHA3-384、SHA3-512
  • key HMACオブジェクトを初期化するキーを含むバッファへのポインタ Example
Hmac hmac;
byte key[] = { // initialize with key to use for encryption };
if (wc_HmacSetKey(&hmac, MD5, key, sizeof(key)) != 0) {
    // error initializing Hmac object
}

See:

Return:

  • 0 HMACオブジェクトの初期化に成功しました
  • BAD_FUNC_ARG 入力タイプが無効な場合は返されます。有効なオプションは次のとおりです.MD5、SHA、SHA256、SHA384、SHA3-224、SHA3-256、SHA3-384、SHA3-512
  • MEMORY_E ハッシュに使用する構造体の割り当てメモリの割り当てがある場合
  • HMAC_MIN_KEYLEN_E FIPS実装を使用するときに返されることがあり、指定されたキー長は最小許容FIPS規格よりも短いです。

function wc_HmacUpdate

int wc_HmacUpdate(
    Hmac * hmac,
    const byte * in,
    word32 sz
)

この関数は、HMACを使用して認証するメッセージを更新します。HMACオブジェクトがWC_HMACSETKEYで初期化された後に呼び出されるべきです。この関数は、ハッシュへのメッセージを更新するために複数回呼び出されることがあります。必要に応じてwc_hmacupdateを呼び出した後、最終認証済みメッセージタグを取得するためにwc_hmacfinalを呼び出す必要があります。

Parameters:

  • hmac メッセージを更新するHMACオブジェクトへのポインタ
  • msg 追加するメッセージを含むバッファへのポインタ Example
Hmac hmac;
byte msg[] = { // initialize with message to authenticate };
byte msg2[] = { // initialize with second half of message };
// initialize hmac
if( wc_HmacUpdate(&hmac, msg, sizeof(msg)) != 0) {
    // error updating message
}
if( wc_HmacUpdate(&hmac, msg2, sizeof(msg)) != 0) {
    // error updating with second message
}

See:

Return:

  • 0 認証するメッセージの更新に成功しました
  • MEMORY_E ハッシュアルゴリズムで使用するためにメモリを割り当てるエラーがある場合

function wc_HmacFinal

int wc_HmacFinal(
    Hmac * hmac,
    byte * out
)

この関数は、HMACオブジェクトのメッセージの最終ハッシュを計算します。

Parameters:

  • hmac 最終ハッシュを計算するHMACオブジェクトへのポインタ Example
Hmac hmac;
byte hash[MD5_DIGEST_SIZE];
// initialize hmac with MD5 as type
// wc_HmacUpdate() with messages

if (wc_HmacFinal(&hmac, hash) != 0) {
    // error computing hash
}

See:

Return:

  • 0 最後のハッシュの計算に成功した
  • MEMORY_E ハッシュアルゴリズムで使用するためにメモリを割り当てるエラーがある場合

function wolfSSL_GetHmacMaxSize

int wolfSSL_GetHmacMaxSize(
    void 
)

この関数は、構成された暗号スイートに基づいて使用可能な最大のHMACダイジェストサイズを返します。

See: none

Return: Success 設定された暗号スイートに基づいて使用可能な最大のHMACダイジェストサイズを返します Example

int maxDigestSz = wolfSSL_GetHmacMaxSize();

function wc_HKDF

int wc_HKDF(
    int type,
    const byte * inKey,
    word32 inKeySz,
    const byte * salt,
    word32 saltSz,
    const byte * info,
    word32 infoSz,
    byte * out,
    word32 outSz
)

この関数は、HMACキー導出機能(HKDF)へのアクセスを提供します。HMACを利用して、任意のSALTとオプションの情報を派生したキーに変換します。0またはNULLが指定されている場合、ハッシュ型はデフォルトでMD5になります。

Parameters:

  • type HKDFに使用するハッシュタイプ。有効な型は次のとおりです.MD5、SHA、SHA256、SHA384、SHA3-224、SHA3-256、SHA3-384、SHA3-512
  • inKey KDFに使用するキーを含むバッファへのポインタ
  • inKeySz 入力キーの長さ
  • salt 任意のソルトを含むバッファへのポインタ。ソルトを使用しない場合は代わりにNULLを使用してください
  • saltSz ソルトの長さ。ソルトを使用しない場合は0を使用してください
  • info オプションの追加情報を含むバッファへのポインタ。追加情報を追加していない場合はNULLを使用してください
  • infoSz 追加情報の長さ追加情報を使用しない場合は0を使用してください
  • out 派生キーを保存するバッファへのポインタ Example
byte key[] = { // initialize with key };
byte salt[] = { // initialize with salt };
byte derivedKey[MAX_DIGEST_SIZE];

int ret = wc_HKDF(SHA512, key, sizeof(key), salt, sizeof(salt),
NULL, 0, derivedKey, sizeof(derivedKey));
if ( ret != 0 ) {
    // error generating derived key
}

See: wc_HmacSetKey

Return:

  • 0 与えられた入力でキーの生成に成功したら返されます
  • BAD_FUNC_ARG 無効なハッシュ型が引数として指定されている場合に返されます。有効な型は次のとおりです.MD5、SHA、SHA256、SHA384、SHA3-224、SHA3-256、SHA3-384、SHA3-512
  • MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます
  • HMAC_MIN_KEYLEN_E FIPS実装を使用するときに返されることがあり、指定されたキー長は最小許容FIPS規格よりも短いです。

Updated on 2024-04-19 at 02:10:11 +0000