コンテンツにスキップ

Algorithm - CMAC

Functions

Name
int wc_InitCmac(Cmac * cmac, const byte *key、word32 keySz、 int type、void * unused)
Cmac構造体をデフォルト値で初期化します
int wc_InitCmac_ex(Cmac * cmac, const byte * key, word32 keySz, int type, void *unused、void * heap, int devId)
Cmac構造体をデフォルト値で初期化します
int wc_CmacUpdate(Cmac * cmac, const byte * in, word32 inSz)
暗号ベースのメッセージ認証コード入力データを追加
int wc_CmacFinalNoFree(Cmac * cmac, byte * out, word32 * outSz)
暗号ベースのメッセージ認証コードの最終結果を生成します。ただし、使用したコンテキストのクリーンアップは行いません。
int wc_CmacFinal(Cmac * cmac, byte * out, word32 * outSz)
暗号ベースのメッセージ認証コードを使用して最終結果を生成します。加えて、内部でwc_CmacFreeを呼び出してコンテキスとをクリーンアップします。
int wc_CmacFree(Cmac * cmac)
CMAC処理中にCmac構造体内に確保されたオブジェクトを開放します。
int wc_AesCmacGenerate(byte * out, word32 * outSz, const byte *in、word32 inSz、 const byte * key, word32 keySz)
CMACを生成するためのシングルショット関数
int wc_AesCmacVerify(const byte * check, word32 checkSz, const byte *in、word32 inSz、 const byte * key, word32 keySz)
CMACを検証するためのシングルショット関数
int wc_CMAC_Grow(Cmac * cmac, const byte * in, int inSz)
WOLFSSL_HASH_KEEPマクロ定義時のみ使用可能。ハードウェアがシングルショットを必要とし、更新をメモリにキャッシュする必要がある場合に使用します。

Functions Documentation

function wc_InitCmac

int wc_InitCmac(
    Cmac * cmac,
    const byte *key、word32 keySz、 int type、void * unused
)

Cmac構造体をデフォルト値で初期化します

Parameters:

  • cmac Cmac構造体へのポインタ
  • key 鍵データへのポインタ
  • keySz 鍵データのサイズ(16、24、または 32)
  • type 常にWC_CMAC_AES(=1)
  • unused 使用されていません。互換性に関する将来の潜在的な使用のために存在します

See:

Return: 成功したら0を返します

Cmac cmac[1];
ret = wc_InitCmac(cmac、key、keySz、WC_CMAC_AES、NULL);
if (ret == 0) {
    ret = wc_CmacUpdate(cmac、in、inSz);
}
if (ret == 0) {
    ret = wc_CmacFinal(cmac, out, outSz);
}

function wc_InitCmac_ex

int wc_InitCmac_ex(
    Cmac * cmac,
    const byte * key,
    word32 keySz,
    int type,
    void *unused、void * heap,
    int devId
)

Cmac構造体をデフォルト値で初期化します

Parameters:

  • cmac Cmac構造体へのポインタ
  • key 鍵データへのポインタ
  • keySz 鍵データのサイズ(16、24、または 32)
  • type 常にWC_CMAC_AES(=1)
  • unused 使用されていません。互換性に関する将来の潜在的な使用のために存在します
  • heap 動的割り当てに使用されるヒープヒントへのポインタ。 通常、スタティックメモリオプションで使用されます。 NULLにすることができます。
  • devId 非同期ハードウェアで使用するID。非同期ハードウェアを使用していない場合は、INVALID_DEVIDに設定します。

See:

Return: 成功したら0を返します

Cmac cmac[1];
ret = wc_InitCmac_ex(cmac, key, keySz, WC_CMAC_AES, NULL, NULL, INVALID_DEVID);
if (ret == 0) {
    ret = wc_CmacUpdate(cmac, in, inSz);
}
if (ret == 0) {
    ret = wc_CmacFinal(cmac, out, &outSz);
}

function wc_CmacUpdate

int wc_CmacUpdate(
    Cmac * cmac,
    const byte * in,
    word32 inSz
)

暗号ベースのメッセージ認証コード入力データを追加

Parameters:

  • cmac Cmac構造体へのポインタ
  • in 処理する入力データへのポインタ
  • inSz 入力データのサイズ

See:

Return: 成功したら0を返します

ret = wc_CmacUpdate(cmac、in、inSz);

function wc_CmacFinalNoFree

int wc_CmacFinalNoFree(
    Cmac * cmac,
    byte * out,
    word32 * outSz
)

暗号ベースのメッセージ認証コードの最終結果を生成します。ただし、使用したコンテキストのクリーンアップは行いません。

Parameters:

  • cmac Cmac構造体へのポインタ
  • out 結果を格納するバッファへのポインタ
  • outSz 結果出力先バッファのサイズ

See:

Return: 成功したら0を返します

Example

ret = wc_CmacFinalNoFree(cmac, out, &outSz);
(void)wc_CmacFree(cmac);

function wc_CmacFinal

int wc_CmacFinal(
    Cmac * cmac,
    byte * out,
    word32 * outSz
)

暗号ベースのメッセージ認証コードを使用して最終結果を生成します。加えて、内部でwc_CmacFreeを呼び出してコンテキスとをクリーンアップします。

Parameters:

  • cmac Cmac構造体へのポインタ
  • out 結果を格納するバッファへのポインタ
  • outSz 結果出力先バッファのサイズ

See:

Return: 成功したら0を返します

ret = wc_CmacFinal(cmac, out, &outSz);

function wc_CmacFree

int wc_CmacFree(
    Cmac * cmac
)

CMAC処理中にCmac構造体内に確保されたオブジェクトを開放します。

Parameters:

  • cmac Cmac構造体へのポインタ

See:

Return: 成功したら0を返します

Example

ret = wc_CmacFinalNoFree(cmac, out, &outSz);
(void)wc_CmacFree(cmac);

function wc_AesCmacGenerate

int wc_AesCmacGenerate(
    byte * out,
    word32 * outSz,
    const byte *in、word32 inSz、 const byte * key,
    word32 keySz
)

CMACを生成するためのシングルショット関数

Parameters:

  • out 結果の出力先バッファへのポインタ
  • outSz 出力のポインタサイズ (in/out)
  • in 処理する入力データのポインタ
  • inSz 入力データのサイズ
  • key 鍵データへのポインタ
  • keySz 鍵データのサイズ (16、24、または 32)

See: wc_AesCmacVerify

Return: 成功したら0を返します

ret = wc_AesCmacGenerate(mac, &macSz, msg, msgSz, key, keySz);

function wc_AesCmacVerify

int wc_AesCmacVerify(
    const byte * check,
    word32 checkSz,
    const byte *in、word32 inSz、 const byte * key,
    word32 keySz
)

CMACを検証するためのシングルショット関数

Parameters:

  • check 検証対象となるCMAC処理結果データへのポインタ
  • checkSz CMAC処理結果データのサイズ
  • in 処理する入力データのポインタ
  • inSz 入力データのサイズ
  • key 鍵データへのポインタ
  • keySz 鍵データのサイズ (16、24、または 32)

See: wc_AesCmacGenerate

Return: 成功したら0を返します

ret = wc_AesCmacVerify(mac, macSz, msg, msgSz, key, keySz);

function wc_CMAC_Grow

int wc_CMAC_Grow(
    Cmac * cmac,
    const byte * in,
    int inSz
)

WOLFSSL_HASH_KEEPマクロ定義時のみ使用可能。ハードウェアがシングルショットを必要とし、更新をメモリにキャッシュする必要がある場合に使用します。

Parameters:

  • cmac Cmac構造体へのポインタ
  • in 処理する入力データへのポインタ
  • inSz 入力データのサイズ

Return: 成功したら0を返します

ret = wc_CMAC_Grow(cmac、in、inSz)

Updated on 2024-11-01 at 02:31:40 +0000