コンテンツにスキップ

Algorithm - SipHash

Functions

Name
int wc_InitSipHash(SipHash * siphash, const unsigned char * key, unsigned char outSz)
この関数は、MacサイズのキーでSiphashを初期化します。
int wc_SipHashUpdate(SipHash * siphash, const unsigned char * in, word32 inSz)
長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。
int wc_SipHashFinal(SipHash * siphash, unsigned char * out, unsigned char outSz)
データのMacingを確定します。結果が出入りする。
int wc_SipHash(const unsigned char * key, const unsigned char * in, word32 inSz, unsigned char * out, unsigned char outSz)
この機能はSiphashを使用してデータを1ショットして、キーに基づいてMACを計算します。

Functions Documentation

function wc_InitSipHash

int wc_InitSipHash(
    SipHash * siphash,
    const unsigned char * key,
    unsigned char outSz
)

この関数は、MacサイズのキーでSiphashを初期化します。

Parameters:

  • siphash Macingに使用するサイプハッシュ構造へのポインタ
  • key 16バイト配列へのポインタ Example
SipHash siphash[1];
unsigned char key[16] = { ... };
byte macSz = 8; // 8 or 16

if ((ret = wc_InitSipHash(siphash, key, macSz)) != 0) {
    WOLFSSL_MSG("wc_InitSipHash failed");
}
else if ((ret = wc_SipHashUpdate(siphash, data, len)) != 0) {
    WOLFSSL_MSG("wc_SipHashUpdate failed");
}
else if ((ret = wc_SipHashFinal(siphash, mac, macSz)) != 0) {
    WOLFSSL_MSG("wc_SipHashFinal failed");
}

See:

Return:

  • 0 初期化に成功したときに返されます
  • BAD_FUNC_ARG SiphashまたはキーがNULLのときに返されます
  • BAD_FUNC_ARG OUTSZが8でも16でもない場合に返されます

function wc_SipHashUpdate

int wc_SipHashUpdate(
    SipHash * siphash,
    const unsigned char * in,
    word32 inSz
)

長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。

Parameters:

  • siphash Macingに使用するサイプハッシュ構造へのポインタ
  • in マイートするデータ Example
SipHash siphash[1];
byte data[] = { Data to be MACed };
word32 len = sizeof(data);

if ((ret = wc_InitSipHash(siphash, key, macSz)) != 0) {
    WOLFSSL_MSG("wc_InitSipHash failed");
}
else if ((ret = wc_SipHashUpdate(siphash, data, len)) != 0) {
    WOLFSSL_MSG("wc_SipHashUpdate failed");
}
else if ((ret = wc_SipHashFinal(siphash, mac, macSz)) != 0) {
    WOLFSSL_MSG("wc_SipHashFinal failed");
}

See:

Return:

  • 0 Macにデータを追加したら、返されます
  • BAD_FUNC_ARG Siphashがnullのとき返されました
  • BAD_FUNC_ARG inneがnullのとき返され、Inszはゼロではありません

function wc_SipHashFinal

int wc_SipHashFinal(
    SipHash * siphash,
    unsigned char * out,
    unsigned char outSz
)

データのMacingを確定します。結果が出入りする。

Parameters:

  • siphash Macingに使用するサイプハッシュ構造へのポインタ
  • out MAC値を保持するためのバイト配列 Example
SipHash siphash[1];
byte mac[8] = { ... }; // 8 or 16 bytes
byte macSz = sizeof(mac);

if ((ret = wc_InitSipHash(siphash, key, macSz)) != 0) {
    WOLFSSL_MSG("wc_InitSipHash failed");
}
else if ((ret = wc_SipHashUpdate(siphash, data, len)) != 0) {
    WOLFSSL_MSG("wc_SipHashUpdate failed");
}
else if ((ret = wc_SipHashFinal(siphash, mac, macSz)) != 0) {
    WOLFSSL_MSG("wc_SipHashFinal failed");
}

See:

Return:

  • 0 ファイナライズに成功したときに返されます。
  • BAD_FUNC_ARG SiphashのOUTがNULLのときに返されます
  • BAD_FUNC_ARG OUTSZが初期化された値と同じではない場合に返されます

function wc_SipHash

int wc_SipHash(
    const unsigned char * key,
    const unsigned char * in,
    word32 inSz,
    unsigned char * out,
    unsigned char outSz
)

この機能はSiphashを使用してデータを1ショットして、キーに基づいてMACを計算します。

Parameters:

  • key 16バイト配列へのポインタ
  • in マイートするデータ
  • inSz マイクされるデータのサイズ
  • out MAC値を保持するためのバイト配列 Example
unsigned char key[16] = { ... };
byte data[] = { Data to be MACed };
word32 len = sizeof(data);
byte mac[8] = { ... }; // 8 or 16 bytes
byte macSz = sizeof(mac);

if ((ret = wc_SipHash(key, data, len, mac, macSz)) != 0) {
    WOLFSSL_MSG("wc_SipHash failed");
}

See:

Return:

  • 0 Macingに成功したときに返されました
  • BAD_FUNC_ARG キーまたはOUTがNULLのときに返されます
  • BAD_FUNC_ARG inneがnullのとき返され、Inszはゼロではありません
  • BAD_FUNC_ARG OUTSZが8でも16でもない場合に返されます

Updated on 2024-04-25 at 02:52:10 +0000