mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-06 06:40:49 +02:00
89 lines
3.3 KiB
C
89 lines
3.3 KiB
C
/*!
|
|
\ingroup RIPEMD
|
|
|
|
\brief この関数は、ripemdのダイジェスト、バッファ、loLenおよびhiLenを初期化することで、ripemd構造体を初期化します。
|
|
|
|
\return 0 関数の実行が成功した場合に返されます。RipeMd構造体が初期化されます。
|
|
\return BAD_FUNC_ARG RipeMd構造体がNULLの場合に返されます。
|
|
|
|
\param ripemd 初期化するripemd構造体へのポインタ
|
|
|
|
_Example_
|
|
\code
|
|
RipeMd md;
|
|
int ret;
|
|
ret = wc_InitRipeMd(&md);
|
|
if (ret != 0) {
|
|
// 失敗ケース
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_RipeMdUpdate
|
|
\sa wc_RipeMdFinal
|
|
*/
|
|
int wc_InitRipeMd(RipeMd* ripemd);
|
|
|
|
/*!
|
|
\ingroup RIPEMD
|
|
|
|
\brief この関数は、入力データのRipeMdダイジェストを生成し、結果をripemd->digestバッファに格納します。wc_RipeMdUpdateを実行した後、生成されたripemd->digestを既知の認証タグと比較して、メッセージの真正性を検証する必要があります。
|
|
|
|
\return 0 関数の実行が成功した場合に返されます。
|
|
\return BAD_FUNC_ARG RipeMd構造体がNULLの場合、またはdataがNULLでlenがゼロでない場合に返されます。この関数は、dataがNULLでlenが0の場合は実行されるべきです。
|
|
|
|
\param ripemd wc_InitRipeMdで初期化されるripemd構造体へのポインタ
|
|
\param data ハッシュ化されるデータ
|
|
\param len データのサイズ(バイト単位)
|
|
|
|
_Example_
|
|
\code
|
|
const byte* data; // ハッシュ化されるデータ
|
|
....
|
|
RipeMd md;
|
|
int ret;
|
|
ret = wc_InitRipeMd(&md);
|
|
if (ret == 0) {
|
|
ret = wc_RipeMdUpdate(&md, plain, sizeof(plain));
|
|
if (ret != 0) {
|
|
// 失敗ケース …
|
|
\endcode
|
|
|
|
\sa wc_InitRipeMd
|
|
\sa wc_RipeMdFinal
|
|
*/
|
|
int wc_RipeMdUpdate(RipeMd* ripemd, const byte* data, word32 len);
|
|
|
|
/*!
|
|
\ingroup RIPEMD
|
|
|
|
\brief この関数は、計算されたダイジェストをhashにコピーします。部分的にハッシュ化されていないブロックがある場合、このメソッドはブロックを0でパディングし、hashにコピーする前にそのブロックのラウンドをダイジェストに含めます。ripemdの状態はリセットされます。
|
|
|
|
\return 0 関数の実行が成功した場合に返されます。RipeMd構造体の状態がリセットされました。
|
|
\return BAD_FUNC_ARG RipeMd構造体またはhashパラメータがNULLの場合に返されます。
|
|
|
|
\param ripemd wc_InitRipeMdで初期化され、wc_RipeMdUpdateからのハッシュを含むripemd構造体へのポインタ。状態はリセットされます
|
|
\param hash ダイジェストをコピーするバッファ。RIPEMD_DIGEST_SIZEバイトである必要があります
|
|
|
|
_Example_
|
|
\code
|
|
RipeMd md;
|
|
int ret;
|
|
byte digest[RIPEMD_DIGEST_SIZE];
|
|
const byte* data; // ハッシュ化されるデータ
|
|
...
|
|
ret = wc_InitRipeMd(&md);
|
|
if (ret == 0) {
|
|
ret = wc_RipeMdUpdate(&md, plain, sizeof(plain));
|
|
if (ret != 0) {
|
|
// RipeMd更新失敗ケース
|
|
}
|
|
ret = wc_RipeMdFinal(&md, digest);
|
|
if (ret != 0) {
|
|
// RipeMd Final失敗ケース
|
|
}...
|
|
\endcode
|
|
|
|
\sa none
|
|
*/
|
|
int wc_RipeMdFinal(RipeMd* ripemd, byte* hash);
|