コンテンツにスキップ

アルゴリズム - SHA 128/224/256/384/512

Functions

Name
int wc_ShaHash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_Sha224Hash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_Sha256Hash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_Sha384Hash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_Sha512Hash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_Sha3_224Hash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_Sha3_256Hash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_Sha3_384Hash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_Sha3_512Hash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_Shake128Hash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_Shake256Hash(const byte * data, word32 len, byte * hash)
便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。
int wc_InitSha(wc_Sha * )
この関数はSHAを初期化します。これはwc_ShaHashによって自動的に呼び出されます。
int wc_ShaUpdate(wc_Sha * sha, const byte * data, word32 len)
長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。
int wc_ShaFinal(wc_Sha * sha, byte * hash)
データのハッシュ化を完了します。結果はhashに格納されます。 sha構造体の状態をリセットします。
void wc_ShaFree(wc_Sha * )
初期化されたSha構造体によって使用されるメモリをクリーンアップするために使用されます。
int wc_ShaGetHash(wc_Sha * sha, byte * hash)
ハッシュデータを取得します。結果はhashに格納されます。sha構造体の状態はリセットされません。
int wc_InitSha256(wc_Sha256 * )
この関数はSHA256を初期化します。これはwc_Sha256Hashによって自動的に呼び出されます。
int wc_Sha256Update(wc_Sha256 * sha, const byte * data, word32 len)
長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。
int wc_Sha256Final(wc_Sha256 * sha256, byte * hash)
データのハッシュ化を完了します。結果はhashに格納されます。sha256構造体の状態をリセットします。
void wc_Sha256Free(wc_Sha256 * )
Sha256構造体をリセットします。注意: これはWOLFSSL_TI_HASHが定義されている場合にのみサポートされます。
int wc_Sha256GetHash(wc_Sha256 * sha256, byte * hash)
ハッシュデータを取得します。結果はhashに格納されます。sha256構造体の状態はリセットされません。
int wc_InitSha224(wc_Sha224 * )
Sha224構造体を初期化するために使用されます。
int wc_Sha224Update(wc_Sha224 * sha224, const byte * data, word32 len)
長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。
int wc_Sha224Final(wc_Sha224 * sha224, byte * hash)
データのハッシュ化を完了します。結果はhashに格納されます。sha224構造体の状態をリセットします。
int wc_InitSha3_224(wc_Sha3 * sha3, void * heap, int devId)
この関数はSHA3-224を初期化します。これはwc_Sha3_224Hashによって自動的に呼び出されます。
int wc_Sha3_224_Update(wc_Sha3 * sha, const byte * data, word32 len)
長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。
int wc_Sha3_224_Final(wc_Sha3 * sha3, byte * hash)
データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。
void wc_Sha3_224_Free(wc_Sha3 * )
wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。
int wc_Sha3_224_GetHash(wc_Sha3 * sha3, byte * hash)
ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。
int wc_Sha3_224_Copy(wc_Sha3 * sha3, wc_Sha3 * dst)
ハッシュの状態をコピーします。
int wc_InitSha3_256(wc_Sha3 * sha3, void * heap, int devId)
この関数はSHA3-256を初期化します。これはwc_Sha3_256Hashによって自動的に呼び出されます。
int wc_Sha3_256_Update(wc_Sha3 * sha, const byte * data, word32 len)
長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。
int wc_Sha3_256_Final(wc_Sha3 * sha3, byte * hash)
データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。
void wc_Sha3_256_Free(wc_Sha3 * )
wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。
int wc_Sha3_256_GetHash(wc_Sha3 * sha3, byte * hash)
ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。
int wc_Sha3_256_Copy(wc_Sha3 * sha3, wc_Sha3 * dst)
ハッシュの状態をコピーします。
int wc_InitSha3_384(wc_Sha3 * sha3, void * heap, int devId)
この関数はSHA3-384を初期化します。これはwc_Sha3_384Hashによって自動的に呼び出されます。
int wc_Sha3_384_Update(wc_Sha3 * sha, const byte * data, word32 len)
長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。
int wc_Sha3_384_Final(wc_Sha3 * sha3, byte * hash)
データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。
void wc_Sha3_384_Free(wc_Sha3 * )
wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。
int wc_Sha3_384_GetHash(wc_Sha3 * sha3, byte * hash)
ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。
int wc_Sha3_384_Copy(wc_Sha3 * sha3, wc_Sha3 * dst)
ハッシュの状態をコピーします。
int wc_InitSha3_512(wc_Sha3 * sha3, void * heap, int devId)
この関数はSHA3-512を初期化します。これはwc_Sha3_512Hashによって自動的に呼び出されます。
int wc_Sha3_512_Update(wc_Sha3 * sha, const byte * data, word32 len)
長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。
int wc_Sha3_512_Final(wc_Sha3 * sha3, byte * hash)
データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。
void wc_Sha3_512_Free(wc_Sha3 * )
wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。
int wc_Sha3_512_GetHash(wc_Sha3 * sha3, byte * hash)
ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。
int wc_Sha3_512_Copy(wc_Sha3 * sha3, wc_Sha3 * dst)
ハッシュの状態をコピーします。
int wc_InitShake128(wc_Shake * shake, void * heap, int devId)
この関数はSHAKE-128を初期化します。これはwc_Shake128Hashによって自動的に呼び出されます。
int wc_Shake128_Update(wc_Shake * sha, const byte * data, word32 len)
長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。
int wc_Shake128_Final(wc_Shake * shake, byte * hash)
データのハッシュ化を完了します。結果はhashに格納されます。shake構造体の状態をリセットします。
int wc_Shake128_Absorb(wc_Shake * sha, const byte * data, word32 len)
長さlenの提供されたバイト配列を吸収するために呼び出されます。段階的に呼び出すことはできません。
int wc_Shake128_SqueezeBlocks(wc_Shake * shake, byte * out, word32 blockCnt)
さらに多くのデータブロックを絞り出します。結果はoutに格納されます。段階的に呼び出すことができます。
void wc_Shake128_Free(wc_Shake * )
wc_Shake構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。
int wc_Shake128_GetHash(wc_Shake * shake, byte * hash)
ハッシュデータを取得します。結果はhashに格納されます。shake構造体の状態をリセットしません。
int wc_Shake128_Copy(wc_Shake * shake, wc_Shake * dst)
ハッシュの状態をコピーします。
int wc_InitShake256(wc_Shake * shake, void * heap, int devId)
この関数はSHAKE-256を初期化します。これはwc_Shake256Hashによって自動的に呼び出されます。
int wc_Shake256_Update(wc_Shake * sha, const byte * data, word32 len)
長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。
int wc_Shake256_Final(wc_Shake * shake, byte * hash, word32 hashLen)
データのハッシュ化を完了します。結果はhashに格納されます。shake構造体の状態をリセットします。
int wc_Shake256_Absorb(wc_Shake * sha, const byte * data, word32 len)
長さlenの提供されたバイト配列を吸収するために呼び出されます。段階的に呼び出すことはできません。
int wc_Shake256_SqueezeBlocks(wc_Shake * shake, byte * out, word32 blockCnt)
さらに多くのデータブロックを絞り出します。結果はoutに格納されます。段階的に呼び出すことができます。
void wc_Shake256_Free(wc_Shake * )
wc_Shake構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。
int wc_Shake256_GetHash(wc_Shake * shake, byte * hash)
ハッシュデータを取得します。結果はhashに格納されます。shake構造体の状態をリセットしません。
int wc_Shake256_Copy(wc_Shake * shake, wc_Shake * dst)
ハッシュの状態をコピーします。
int wc_InitSha512(wc_Sha512 * )
この関数はSHA512を初期化します。これはwc_Sha512Hashによって自動的に呼び出されます。
int wc_Sha512Update(wc_Sha512 * sha, const byte * data, word32 len)
長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。
int wc_Sha512Final(wc_Sha512 * sha512, byte * hash)
データのハッシュ化を完了します。結果はhashに格納されます。
int wc_InitSha384(wc_Sha384 * )
この関数はSHA384を初期化します。これはwc_Sha384Hashによって自動的に呼び出されます。
int wc_Sha384Update(wc_Sha384 * sha, const byte * data, word32 len)
長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。
int wc_Sha384Final(wc_Sha384 * sha384, byte * hash)
データのハッシュ化を完了します。結果はhashに格納されます。

Functions Documentation

function wc_ShaHash

int wc_ShaHash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 正常に….の場合に返されます。
  • Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。

Example

none

function wc_Sha224Hash

int wc_Sha224Hash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 成功
  • <0 エラー

Example

none

function wc_Sha256Hash

int wc_Sha256Hash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 正常に…の場合に返されます
  • Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。

Example

none

function wc_Sha384Hash

int wc_Sha384Hash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 データのハッシュ化に成功した場合に返されます
  • Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。

Example

none

function wc_Sha512Hash

int wc_Sha512Hash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 入力されたデータのハッシュ化に成功した場合に返されます
  • Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。

Example

none

function wc_Sha3_224Hash

int wc_Sha3_224Hash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 データのハッシュ化に成功した場合に返されます
  • Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。

Example

none

function wc_Sha3_256Hash

int wc_Sha3_256Hash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 データのハッシュ化に成功した場合に返されます
  • Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。

Example

none

function wc_Sha3_384Hash

int wc_Sha3_384Hash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 データのハッシュ化に成功した場合に返されます
  • Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。

Example

none

function wc_Sha3_512Hash

int wc_Sha3_512Hash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 入力されたデータのハッシュ化に成功した場合に返されます
  • Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。

Example

none

function wc_Shake128Hash

int wc_Shake128Hash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 入力されたデータのハッシュ化に成功した場合に返されます
  • Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。

Example

none

function wc_Shake256Hash

int wc_Shake256Hash(
    const byte * data,
    word32 len,
    byte * hash
)

便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。

Parameters:

  • data ハッシュ化するデータ
  • len データの長さ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 入力されたデータのハッシュ化に成功した場合に返されます
  • Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。

Example

none

function wc_InitSha

int wc_InitSha(
    wc_Sha * 
)

この関数はSHAを初期化します。これはwc_ShaHashによって自動的に呼び出されます。

Parameters:

  • sha 暗号化に使用するsha構造体へのポインタ

See:

Return: 0 初期化に成功した場合に返されます

Example

Sha sha[1];
if ((ret = wc_InitSha(sha)) != 0) {
   WOLFSSL_MSG("wc_InitSha failed");
}
else {
   wc_ShaUpdate(sha, data, len);
   wc_ShaFinal(sha, hash);
}

function wc_ShaUpdate

int wc_ShaUpdate(
    wc_Sha * sha,
    const byte * data,
    word32 len
)

長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。

Parameters:

  • sha 暗号化に使用するsha構造体へのポインタ
  • data ハッシュ化されるデータ
  • len ハッシュ化されるデータの長さ

See:

Return: 0 ダイジェストへのデータ追加に成功した場合に返されます。

Example

Sha sha[1];
byte data[] = { // ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha(sha)) != 0) {
   WOLFSSL_MSG("wc_InitSha failed");
}
else {
   wc_ShaUpdate(sha, data, len);
   wc_ShaFinal(sha, hash);
}

function wc_ShaFinal

int wc_ShaFinal(
    wc_Sha * sha,
    byte * hash
)

データのハッシュ化を完了します。結果はhashに格納されます。 sha構造体の状態をリセットします。

Parameters:

  • sha 暗号化に使用するsha構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 完了に成功した場合に返されます。

Example

Sha sha[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha(sha)) != 0) {
   WOLFSSL_MSG("wc_InitSha failed");
}
else {
   wc_ShaUpdate(sha, data, len);
   wc_ShaFinal(sha, hash);
}

function wc_ShaFree

void wc_ShaFree(
    wc_Sha * 
)

初期化されたSha構造体によって使用されるメモリをクリーンアップするために使用されます。

Parameters:

  • sha 解放するSha構造体へのポインタ。

See:

Return: 戻り値なし。

Example

Sha sha;
wc_InitSha(&sha);
// shaを使用
wc_ShaFree(&sha);

function wc_ShaGetHash

int wc_ShaGetHash(
    wc_Sha * sha,
    byte * hash
)

ハッシュデータを取得します。結果はhashに格納されます。sha構造体の状態はリセットされません。

Parameters:

  • sha 暗号化に使用するsha構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 完了に成功した場合に返されます。

Example

Sha sha[1];
if ((ret = wc_InitSha(sha)) != 0) {
WOLFSSL_MSG("wc_InitSha failed");
}
else {
    wc_ShaUpdate(sha, data, len);
    wc_ShaGetHash(sha, hash);
}

function wc_InitSha256

int wc_InitSha256(
    wc_Sha256 * 
)

この関数はSHA256を初期化します。これはwc_Sha256Hashによって自動的に呼び出されます。

Parameters:

  • sha256 暗号化に使用するsha256構造体へのポインタ

See:

Return: 0 初期化に成功した場合に返されます

Example

Sha256 sha256[1];
if ((ret = wc_InitSha256(sha256)) != 0) {
    WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
    wc_Sha256Update(sha256, data, len);
    wc_Sha256Final(sha256, hash);
}

function wc_Sha256Update

int wc_Sha256Update(
    wc_Sha256 * sha,
    const byte * data,
    word32 len
)

長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。

Parameters:

  • sha256 暗号化に使用するsha256構造体へのポインタ
  • data ハッシュ化されるデータ
  • len ハッシュ化されるデータの長さ

See:

Return: 0 ダイジェストへのデータ追加に成功した場合に返されます。

Example

Sha256 sha256[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha256(sha256)) != 0) {
   WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
    wc_Sha256Update(sha256, data, len);
    wc_Sha256Final(sha256, hash);
}

function wc_Sha256Final

int wc_Sha256Final(
    wc_Sha256 * sha256,
    byte * hash
)

データのハッシュ化を完了します。結果はhashに格納されます。sha256構造体の状態をリセットします。

Parameters:

  • sha256 暗号化に使用するsha256構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 完了に成功した場合に返されます。

Example

Sha256 sha256[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha256(sha256)) != 0) {
   WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
   wc_Sha256Update(sha256, data, len);
   wc_Sha256Final(sha256, hash);
}

function wc_Sha256Free

void wc_Sha256Free(
    wc_Sha256 * 
)

Sha256構造体をリセットします。注意: これはWOLFSSL_TI_HASHが定義されている場合にのみサポートされます。

Parameters:

  • sha256 解放するsha256構造体へのポインタ。

See:

Return: none 戻り値なし。

Example

Sha256 sha256;
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha256(&sha256)) != 0) {
    WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
    wc_Sha256Update(&sha256, data, len);
    wc_Sha256Final(&sha256, hash);
    wc_Sha256Free(&sha256);
}

function wc_Sha256GetHash

int wc_Sha256GetHash(
    wc_Sha256 * sha256,
    byte * hash
)

ハッシュデータを取得します。結果はhashに格納されます。sha256構造体の状態はリセットされません。

Parameters:

  • sha256 暗号化に使用するsha256構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 完了に成功した場合に返されます。

Example

Sha256 sha256[1];
if ((ret = wc_InitSha256(sha256)) != 0) {
   WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
   wc_Sha256Update(sha256, data, len);
   wc_Sha256GetHash(sha256, hash);
}

function wc_InitSha224

int wc_InitSha224(
    wc_Sha224 * 
)

Sha224構造体を初期化するために使用されます。

Parameters:

  • sha224 初期化するSha224構造体へのポインタ。

See:

Return:

  • 0 成功
  • 1 sha224がnullのためにエラーが返されます。

Example

Sha224 sha224;
if(wc_InitSha224(&sha224) != 0)
{
    // エラーを処理
}

function wc_Sha224Update

int wc_Sha224Update(
    wc_Sha224 * sha224,
    const byte * data,
    word32 len
)

長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。

Parameters:

  • sha224 暗号化に使用するSha224構造体へのポインタ。
  • data ハッシュ化されるデータ。
  • len ハッシュ化されるデータの長さ。

See:

Return:

  • 0 成功
  • 1 関数が失敗した場合にエラーが返されます。
  • BAD_FUNC_ARG sha224またはdataがnullの場合にエラーが返されます。

Example

Sha224 sha224;
byte data[] = { /* ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha224(&sha224)) != 0) {
   WOLFSSL_MSG("wc_InitSha224 failed");
}
else {
  wc_Sha224Update(&sha224, data, len);
  wc_Sha224Final(&sha224, hash);
}

function wc_Sha224Final

int wc_Sha224Final(
    wc_Sha224 * sha224,
    byte * hash
)

データのハッシュ化を完了します。結果はhashに格納されます。sha224構造体の状態をリセットします。

Parameters:

  • sha224 暗号化に使用するsha224構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return:

  • 0 成功
  • <0 エラー

Example

Sha224 sha224;
byte data[] = { /* ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha224(&sha224)) != 0) {
    WOLFSSL_MSG("wc_InitSha224 failed");
}
else {
    wc_Sha224Update(&sha224, data, len);
    wc_Sha224Final(&sha224, hash);
}

function wc_InitSha3_224

int wc_InitSha3_224(
    wc_Sha3 * sha3,
    void * heap,
    int devId
)

この関数はSHA3-224を初期化します。これはwc_Sha3_224Hashによって自動的に呼び出されます。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ

See:

Return: 0 初期化に成功した場合に返されます

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
    wc_Sha3_224_Update(sha3, data, len);
    wc_Sha3_224_Final(sha3, hash);
}

function wc_Sha3_224_Update

int wc_Sha3_224_Update(
    wc_Sha3 * sha,
    const byte * data,
    word32 len
)

長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • data ハッシュ化されるデータ
  • len ハッシュ化されるデータの長さ

See:

Return: 0 ダイジェストへのデータの追加に成功した場合に返されます。

Example

wc_Sha3 sha3[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
    wc_Sha3_224_Update(sha3, data, len);
    wc_Sha3_224_Final(sha3, hash);
}

function wc_Sha3_224_Final

int wc_Sha3_224_Final(
    wc_Sha3 * sha3,
    byte * hash
)

データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 完了に成功した場合に返されます。

Example

wc_Sha3 sha3[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
   wc_Sha3_224_Update(sha3, data, len);
   wc_Sha3_224_Final(sha3, hash);
}

function wc_Sha3_224_Free

void wc_Sha3_224_Free(
    wc_Sha3 * 
)

wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。

Parameters:

  • sha3 解放されるsha3構造体へのポインタ。

See:

Return: none 戻り値なし。

Example

wc_Sha3 sha3;
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_224(&sha3, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
    wc_Sha3_224_Update(&sha3, data, len);
    wc_Sha3_224_Final(&sha3, hash);
    wc_Sha3_224_Free(&sha3);
}

function wc_Sha3_224_GetHash

int wc_Sha3_224_GetHash(
    wc_Sha3 * sha3,
    byte * hash
)

ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 ハッシュのコピーに成功した場合に返されます。

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
   wc_Sha3_224_Update(sha3, data, len);
   wc_Sha3_224_GetHash(sha3, hash);
}

function wc_Sha3_224_Copy

int wc_Sha3_224_Copy(
    wc_Sha3 * sha3,
    wc_Sha3 * dst
)

ハッシュの状態をコピーします。

Parameters:

  • sha3 コピーするsha3構造体へのポインタ
  • dst コピー先のsha3構造体へのポインタ

See:

Return: 0 コピーに成功した場合に返されます。

Example

wc_Sha3 sha3[1];
wc_Sha3 sha3_dup[1];
if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
   wc_Sha3_224_Update(sha3, data, len);
   wc_Sha3_224_Copy(sha3, sha3_dup);
}

function wc_InitSha3_256

int wc_InitSha3_256(
    wc_Sha3 * sha3,
    void * heap,
    int devId
)

この関数はSHA3-256を初期化します。これはwc_Sha3_256Hashによって自動的に呼び出されます。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ

See:

Return: 0 初期化に成功した場合に返されます

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
    wc_Sha3_256_Update(sha3, data, len);
    wc_Sha3_256_Final(sha3, hash);
}

function wc_Sha3_256_Update

int wc_Sha3_256_Update(
    wc_Sha3 * sha,
    const byte * data,
    word32 len
)

長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • data ハッシュ化されるデータ
  • len ハッシュ化されるデータの長さ

See:

Return: 0 ダイジェストへのデータの追加に成功した場合に返されます。

Example

wc_Sha3 sha3[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
    wc_Sha3_256_Update(sha3, data, len);
    wc_Sha3_256_Final(sha3, hash);
}

function wc_Sha3_256_Final

int wc_Sha3_256_Final(
    wc_Sha3 * sha3,
    byte * hash
)

データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 完了に成功した場合に返されます。

Example

wc_Sha3 sha3[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
   wc_Sha3_256_Update(sha3, data, len);
   wc_Sha3_256_Final(sha3, hash);
}

function wc_Sha3_256_Free

void wc_Sha3_256_Free(
    wc_Sha3 * 
)

wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。

Parameters:

  • sha3 解放されるsha3構造体へのポインタ。

See:

Return: none 戻り値なし。

Example

wc_Sha3 sha3;
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_256(&sha3, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
    wc_Sha3_256_Update(&sha3, data, len);
    wc_Sha3_256_Final(&sha3, hash);
    wc_Sha3_256_Free(&sha3);
}

function wc_Sha3_256_GetHash

int wc_Sha3_256_GetHash(
    wc_Sha3 * sha3,
    byte * hash
)

ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 ハッシュのコピーに成功した場合に返されます。

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
   wc_Sha3_256_Update(sha3, data, len);
   wc_Sha3_256_GetHash(sha3, hash);
}

function wc_Sha3_256_Copy

int wc_Sha3_256_Copy(
    wc_Sha3 * sha3,
    wc_Sha3 * dst
)

ハッシュの状態をコピーします。

Parameters:

  • sha3 コピーするsha3構造体へのポインタ
  • dst コピー先のsha3構造体へのポインタ

See:

Return: 0 コピーに成功した場合に返されます。

Example

wc_Sha3 sha3[1];
wc_Sha3 sha3_dup[1];
if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
   wc_Sha3_256_Update(sha3, data, len);
   wc_Sha3_256_Copy(sha3, sha3_dup);
}

function wc_InitSha3_384

int wc_InitSha3_384(
    wc_Sha3 * sha3,
    void * heap,
    int devId
)

この関数はSHA3-384を初期化します。これはwc_Sha3_384Hashによって自動的に呼び出されます。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ

See:

Return: 0 初期化に成功した場合に返されます

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitSha3_384 failed");
}
else {
    wc_Sha3_384_Update(sha3, data, len);
    wc_Sha3_384_Final(sha3, hash);
}

function wc_Sha3_384_Update

int wc_Sha3_384_Update(
    wc_Sha3 * sha,
    const byte * data,
    word32 len
)

長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • data ハッシュ化されるデータ
  • len ハッシュ化されるデータの長さ

See:

Return: 0 ダイジェストへのデータの追加に成功した場合に返されます。

Example

wc_Sha3 sha3[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_384 failed");
}
else {
    wc_Sha3_384_Update(sha3, data, len);
    wc_Sha3_384_Final(sha3, hash);
}

function wc_Sha3_384_Final

int wc_Sha3_384_Final(
    wc_Sha3 * sha3,
    byte * hash
)

データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 完了に成功した場合に返されます。

Example

wc_Sha3 sha3[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_384 failed");
}
else {
   wc_Sha3_384_Update(sha3, data, len);
   wc_Sha3_384_Final(sha3, hash);
}

function wc_Sha3_384_Free

void wc_Sha3_384_Free(
    wc_Sha3 * 
)

wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。

Parameters:

  • sha3 解放されるsha3構造体へのポインタ。

See:

Return: none 戻り値なし。

Example

wc_Sha3 sha3;
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_384(&sha3, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitSha3_384 failed");
}
else {
    wc_Sha3_384_Update(&sha3, data, len);
    wc_Sha3_384_Final(&sha3, hash);
    wc_Sha3_384_Free(&sha3);
}

function wc_Sha3_384_GetHash

int wc_Sha3_384_GetHash(
    wc_Sha3 * sha3,
    byte * hash
)

ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 ハッシュのコピーに成功した場合に返されます。

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_38384ailed");
}
else {
   wc_Sha3_384_Update(sha3, data, len);
   wc_Sha3_384_GetHash(sha3, hash);
}

function wc_Sha3_384_Copy

int wc_Sha3_384_Copy(
    wc_Sha3 * sha3,
    wc_Sha3 * dst
)

ハッシュの状態をコピーします。

Parameters:

  • sha3 コピーするsha3構造体へのポインタ
  • dst コピー先のsha3構造体へのポインタ

See:

Return: 0 コピーに成功した場合に返されます。

Example

wc_Sha3 sha3[1];
wc_Sha3 sha3_dup[1];
if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_384 failed");
}
else {
   wc_Sha3_384_Update(sha3, data, len);
   wc_Sha3_384_Copy(sha3, sha3_dup);
}

function wc_InitSha3_512

int wc_InitSha3_512(
    wc_Sha3 * sha3,
    void * heap,
    int devId
)

この関数はSHA3-512を初期化します。これはwc_Sha3_512Hashによって自動的に呼び出されます。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ

See:

Return: 0 初期化に成功した場合に返されます

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
    wc_Sha3_512_Update(sha3, data, len);
    wc_Sha3_512_Final(sha3, hash);
}

function wc_Sha3_512_Update

int wc_Sha3_512_Update(
    wc_Sha3 * sha,
    const byte * data,
    word32 len
)

長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • data ハッシュ化されるデータ
  • len ハッシュ化されるデータの長さ

See:

Return: 0 ダイジェストへのデータの追加に成功した場合に返されます。

Example

wc_Sha3 sha3[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
    wc_Sha3_512_Update(sha3, data, len);
    wc_Sha3_512_Final(sha3, hash);
}

function wc_Sha3_512_Final

int wc_Sha3_512_Final(
    wc_Sha3 * sha3,
    byte * hash
)

データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 完了に成功した場合に返されます。

Example

wc_Sha3 sha3[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
   wc_Sha3_512_Update(sha3, data, len);
   wc_Sha3_512_Final(sha3, hash);
}

function wc_Sha3_512_Free

void wc_Sha3_512_Free(
    wc_Sha3 * 
)

wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。

Parameters:

  • sha3 解放されるsha3構造体へのポインタ。

See:

Return: none 戻り値なし。

Example

wc_Sha3 sha3;
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha3_512(&sha3, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
    wc_Sha3_512_Update(&sha3, data, len);
    wc_Sha3_512_Final(&sha3, hash);
    wc_Sha3_512_Free(&sha3);
}

function wc_Sha3_512_GetHash

int wc_Sha3_512_GetHash(
    wc_Sha3 * sha3,
    byte * hash
)

ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。

Parameters:

  • sha3 暗号化に使用するsha3構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 ハッシュのコピーに成功した場合に返されます。

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
   wc_Sha3_512_Update(sha3, data, len);
   wc_Sha3_512_GetHash(sha3, hash);
}

function wc_Sha3_512_Copy

int wc_Sha3_512_Copy(
    wc_Sha3 * sha3,
    wc_Sha3 * dst
)

ハッシュの状態をコピーします。

Parameters:

  • sha3 コピーするsha3構造体へのポインタ
  • dst コピー先のsha3構造体へのポインタ

See:

Return: 0 コピーに成功した場合に返されます。

Example

wc_Sha3 sha3[1];
wc_Sha3 sha3_dup[1];
if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
   wc_Sha3_512_Update(sha3, data, len);
   wc_Sha3_512_Copy(sha3, sha3_dup);
}

function wc_InitShake128

int wc_InitShake128(
    wc_Shake * shake,
    void * heap,
    int devId
)

この関数はSHAKE-128を初期化します。これはwc_Shake128Hashによって自動的に呼び出されます。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ

See:

Return: 0 初期化に成功した場合に返されます

Example

wc_Shake shake[1];
if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
    wc_Shake128_Update(shake, data, len);
    wc_Shake128_Final(shake, hash);
}

function wc_Shake128_Update

int wc_Shake128_Update(
    wc_Shake * sha,
    const byte * data,
    word32 len
)

長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ
  • data ハッシュ化されるデータ
  • len ハッシュ化されるデータの長さ

See:

Return: 0 ダイジェストへのデータの追加に成功した場合に返されます。

Example

wc_Shake shake[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
    wc_Shake128_Update(shake, data, len);
    wc_Shake128_Final(shake, hash);
}

function wc_Shake128_Final

int wc_Shake128_Final(
    wc_Shake * shake,
    byte * hash
)

データのハッシュ化を完了します。結果はhashに格納されます。shake構造体の状態をリセットします。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 完了に成功した場合に返されます。

Example

wc_Shake shake[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
   wc_Shake128_Update(shake, data, len);
   wc_Shake128_Final(shake, hash);
}

function wc_Shake128_Absorb

int wc_Shake128_Absorb(
    wc_Shake * sha,
    const byte * data,
    word32 len
)

長さlenの提供されたバイト配列を吸収するために呼び出されます。段階的に呼び出すことはできません。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ
  • data 吸収されるデータ
  • len 吸収されるデータの長さ

See:

Return: 0 データの吸収に成功した場合に返されます。

Example

wc_Shake shake[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);
byte out[2 * WC_SHA3_128_BLOCK_SIZE];
int blocks = 2;

if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
   wc_Shake128_Absorb(shake, data, len);
   wc_Shake128_SqueezeBlocks(shake, out, blocks);
}

function wc_Shake128_SqueezeBlocks

int wc_Shake128_SqueezeBlocks(
    wc_Shake * shake,
    byte * out,
    word32 blockCnt
)

さらに多くのデータブロックを絞り出します。結果はoutに格納されます。段階的に呼び出すことができます。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ
  • hash 出力を保持するバイト配列。
  • blocks 絞り出すブロックの数。各ブロックはWC_SHA3_128_BLOCK_SIZEバイトの長さです。

See:

Return: 0 絞り出しに成功した場合に返されます。

Example

wc_Shake shake[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);
byte out[2 * WC_SHA3_128_BLOCK_SIZE];
int blocks = 2;

if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
   wc_Shake128_Absorb(shake, data, len);
   wc_Shake128_SqueezeBlocks(shake, out, blocks);
}

function wc_Shake128_Free

void wc_Shake128_Free(
    wc_Shake * 
)

wc_Shake構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。

Parameters:

  • shake 解放されるshake構造体へのポインタ。

See:

Return: none 戻り値なし。

Example

wc_Shake shake;
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitShake128(&shake, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
    wc_Shake128_Update(&shake, data, len);
    wc_Shake128_Final(&shake, hash);
    wc_Shake128_Free(&shake);
}

function wc_Shake128_GetHash

int wc_Shake128_GetHash(
    wc_Shake * shake,
    byte * hash
)

ハッシュデータを取得します。結果はhashに格納されます。shake構造体の状態をリセットしません。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 ハッシュのコピーに成功した場合に返されます。

Example

wc_Shake shake[1];
if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
   wc_Shake128_Update(shake, data, len);
   wc_Shake128_GetHash(shake, hash);
}

function wc_Shake128_Copy

int wc_Shake128_Copy(
    wc_Shake * shake,
    wc_Shake * dst
)

ハッシュの状態をコピーします。

Parameters:

  • shake コピーするshake構造体へのポインタ
  • dst コピー先のshake構造体へのポインタ

See:

Return: 0 コピーに成功した場合に返されます。

Example

wc_Shake shake[1];
wc_Shake shake_dup[1];
if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
   wc_Shake128_Update(shake, data, len);
   wc_Shake128_Copy(shake, shake_dup);
}

function wc_InitShake256

int wc_InitShake256(
    wc_Shake * shake,
    void * heap,
    int devId
)

この関数はSHAKE-256を初期化します。これはwc_Shake256Hashによって自動的に呼び出されます。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ

See:

Return: 0 初期化に成功した場合に返されます

Example

wc_Shake shake[1];
if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
    wc_Shake256_Update(shake, data, len);
    wc_Shake256_Final(shake, hash, sizeof(hash));
}

function wc_Shake256_Update

int wc_Shake256_Update(
    wc_Shake * sha,
    const byte * data,
    word32 len
)

長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ
  • data ハッシュ化されるデータ
  • len ハッシュ化されるデータの長さ

See:

Return: 0 ダイジェストへのデータの追加に成功した場合に返されます。

Example

wc_Shake shake[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
    wc_Shake256_Update(shake, data, len);
    wc_Shake256_Final(shake, hash, sizeof(hash));
}

function wc_Shake256_Final

int wc_Shake256_Final(
    wc_Shake * shake,
    byte * hash,
    word32 hashLen
)

データのハッシュ化を完了します。結果はhashに格納されます。shake構造体の状態をリセットします。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。
  • hashLen ハッシュのサイズ(バイト単位)。

See:

Return: 0 完了に成功した場合に返されます。

Example

wc_Shake shake[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
   wc_Shake256_Update(shake, data, len);
   wc_Shake256_Final(shake, hash, sizeof(hash));
}

function wc_Shake256_Absorb

int wc_Shake256_Absorb(
    wc_Shake * sha,
    const byte * data,
    word32 len
)

長さlenの提供されたバイト配列を吸収するために呼び出されます。段階的に呼び出すことはできません。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ
  • data 吸収されるデータ
  • len 吸収されるデータの長さ

See:

Return: 0 データの吸収に成功した場合に返されます。

Example

wc_Shake shake[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);
byte out[2 * WC_SHA3_256_BLOCK_SIZE];
int blocks = 2;

if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
   wc_Shake256_Absorb(shake, data, len);
   wc_Shake256_SqueezeBlocks(shake, out, blocks);
}

function wc_Shake256_SqueezeBlocks

int wc_Shake256_SqueezeBlocks(
    wc_Shake * shake,
    byte * out,
    word32 blockCnt
)

さらに多くのデータブロックを絞り出します。結果はoutに格納されます。段階的に呼び出すことができます。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ
  • hash 出力を保持するバイト配列。
  • blocks 絞り出すブロックの数。各ブロックはWC_SHA3_256_BLOCK_SIZEバイトの長さです。

See:

Return: 0 絞り出しに成功した場合に返されます。

Example

wc_Shake shake[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);
byte out[2 * WC_SHA3_256_BLOCK_SIZE];
int blocks = 2;

if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
   wc_Shake256_Absorb(shake, data, len);
   wc_Shake256_SqueezeBlocks(shake, out, blocks);
}

function wc_Shake256_Free

void wc_Shake256_Free(
    wc_Shake * 
)

wc_Shake構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。

Parameters:

  • shake 解放されるshake構造体へのポインタ。

See:

Return: none 戻り値なし。

Example

wc_Shake shake;
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitShake256(&shake, NULL, INVALID_DEVID)) != 0) {
    WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
    wc_Shake256_Update(&shake, data, len);
    wc_Shake256_Final(&shake, hash, sizeof(hash));
    wc_Shake256_Free(&shake);
}

function wc_Shake256_GetHash

int wc_Shake256_GetHash(
    wc_Shake * shake,
    byte * hash
)

ハッシュデータを取得します。結果はhashに格納されます。shake構造体の状態をリセットしません。

Parameters:

  • shake 暗号化に使用するshake構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 ハッシュのコピーに成功した場合に返されます。

Example

wc_Shake shake[1];
if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
   wc_Shake256_Update(shake, data, len);
   wc_Shake256_GetHash(shake, hash);
}

function wc_Shake256_Copy

int wc_Shake256_Copy(
    wc_Shake * shake,
    wc_Shake * dst
)

ハッシュの状態をコピーします。

Parameters:

  • shake コピーするshake構造体へのポインタ
  • dst コピー先のshake構造体へのポインタ

See:

Return: 0 コピーに成功した場合に返されます。

Example

wc_Shake shake[1];
wc_Shake shake_dup[1];
if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
   WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
   wc_Shake256_Update(shake, data, len);
   wc_Shake256_Copy(shake, shake_dup);
}

function wc_InitSha512

int wc_InitSha512(
    wc_Sha512 * 
)

この関数はSHA512を初期化します。これはwc_Sha512Hashによって自動的に呼び出されます。

Parameters:

  • sha512 暗号化に使用するsha512構造体へのポインタ

See:

Return: 0 初期化に成功した場合に返されます

Example

Sha512 sha512[1];
if ((ret = wc_InitSha512(sha512)) != 0) {
   WOLFSSL_MSG("wc_InitSha512 failed");
}
else {
   wc_Sha512Update(sha512, data, len);
   wc_Sha512Final(sha512, hash);
}

function wc_Sha512Update

int wc_Sha512Update(
    wc_Sha512 * sha,
    const byte * data,
    word32 len
)

長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。

Parameters:

  • sha512 暗号化に使用するsha512構造体へのポインタ
  • data ハッシュ化されるデータ
  • len ハッシュ化されるデータの長さ

See:

Return: 0 ダイジェストへのデータ追加に成功した場合に返されます。

Example

Sha512 sha512[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha512(sha512)) != 0) {
   WOLFSSL_MSG("wc_InitSha512 failed");
}
else {
   wc_Sha512Update(sha512, data, len);
   wc_Sha512Final(sha512, hash);
}

function wc_Sha512Final

int wc_Sha512Final(
    wc_Sha512 * sha512,
    byte * hash
)

データのハッシュ化を完了します。結果はhashに格納されます。

Parameters:

  • sha512 暗号化に使用するsha512構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 ハッシュの完了に成功した場合に返されます。

Example

Sha512 sha512[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha512(sha512)) != 0) {
    WOLFSSL_MSG("wc_InitSha512 failed");
}
else {
   wc_Sha512Update(sha512, data, len);
   wc_Sha512Final(sha512, hash);
}

function wc_InitSha384

int wc_InitSha384(
    wc_Sha384 * 
)

この関数はSHA384を初期化します。これはwc_Sha384Hashによって自動的に呼び出されます。

Parameters:

  • sha384 暗号化に使用するsha384構造体へのポインタ

See:

Return: 0 初期化に成功した場合に返されます

Example

Sha384 sha384[1];
if ((ret = wc_InitSha384(sha384)) != 0) {
   WOLFSSL_MSG("wc_InitSha384 failed");
}
else {
   wc_Sha384Update(sha384, data, len);
   wc_Sha384Final(sha384, hash);
}

function wc_Sha384Update

int wc_Sha384Update(
    wc_Sha384 * sha,
    const byte * data,
    word32 len
)

長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。

Parameters:

  • sha384 暗号化に使用するsha384構造体へのポインタ
  • data ハッシュ化されるデータ
  • len ハッシュ化されるデータの長さ

See:

Return: 0 ダイジェストへのデータ追加に成功した場合に返されます。

Example

Sha384 sha384[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha384(sha384)) != 0) {
   WOLFSSL_MSG("wc_InitSha384 failed");
}
else {
   wc_Sha384Update(sha384, data, len);
   wc_Sha384Final(sha384, hash);
}

function wc_Sha384Final

int wc_Sha384Final(
    wc_Sha384 * sha384,
    byte * hash
)

データのハッシュ化を完了します。結果はhashに格納されます。

Parameters:

  • sha384 暗号化に使用するsha384構造体へのポインタ
  • hash ハッシュ値を保持するバイト配列。

See:

Return: 0 完了に成功した場合に返されます。

Example

Sha384 sha384[1];
byte data[] = { ハッシュ化されるデータ };
word32 len = sizeof(data);

if ((ret = wc_InitSha384(sha384)) != 0) {
   WOLFSSL_MSG("wc_InitSha384 failed");
}
else {
   wc_Sha384Update(sha384, data, len);
   wc_Sha384Final(sha384, hash);
}

Updated on 2025-12-12 at 03:08:17 +0000