mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-09 04:00:53 +02:00
165 lines
6.4 KiB
C
165 lines
6.4 KiB
C
/*!
|
|
\ingroup Camellia
|
|
|
|
\brief この関数は、camelliaオブジェクトのキーと初期化ベクトルを設定し、暗号として使用するために初期化します。
|
|
|
|
\return 0 キーと初期化ベクトルの設定に成功した場合に返されます
|
|
\return BAD_FUNC_ARG 入力引数の1つの処理中にエラーが発生した場合に返されます
|
|
\return MEMORY_E XMALLOCでメモリ割り当て中にエラーが発生した場合に返されます
|
|
|
|
\param cam キーとivを設定するcamellia構造体へのポインタ
|
|
\param key 暗号化と復号に使用する16、24、または32バイトのキーを含むバッファへのポインタ
|
|
\param len 渡されるキーの長さ
|
|
\param iv このcamellia構造体で使用する16バイトの初期化ベクトルを含むバッファへのポインタ
|
|
|
|
_Example_
|
|
\code
|
|
Camellia cam;
|
|
byte key[32];
|
|
// キーを初期化
|
|
byte iv[16];
|
|
// ivを初期化
|
|
if( wc_CamelliaSetKey(&cam, key, sizeof(key), iv) != 0) {
|
|
// camellia構造体の初期化エラー
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_CamelliaEncryptDirect
|
|
\sa wc_CamelliaDecryptDirect
|
|
\sa wc_CamelliaCbcEncrypt
|
|
\sa wc_CamelliaCbcDecrypt
|
|
*/
|
|
int wc_CamelliaSetKey(wc_Camellia* cam, const byte* key, word32 len,
|
|
const byte* iv);
|
|
|
|
/*!
|
|
\ingroup Camellia
|
|
|
|
\brief この関数は、camelliaオブジェクトの初期化ベクトルを設定します。
|
|
|
|
\return 0 キーと初期化ベクトルの設定に成功した場合に返されます
|
|
\return BAD_FUNC_ARG 入力引数の1つの処理中にエラーが発生した場合に返されます
|
|
|
|
\param cam ivを設定するcamellia構造体へのポインタ
|
|
\param iv このcamellia構造体で使用する16バイトの初期化ベクトルを含むバッファへのポインタ
|
|
|
|
_Example_
|
|
\code
|
|
Camellia cam;
|
|
byte iv[16];
|
|
// ivを初期化
|
|
if( wc_CamelliaSetIV(&cam, iv) != 0) {
|
|
// camellia構造体の初期化エラー
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_CamelliaSetKey
|
|
*/
|
|
int wc_CamelliaSetIV(wc_Camellia* cam, const byte* iv);
|
|
|
|
/*!
|
|
\ingroup Camellia
|
|
|
|
\brief この関数は、提供されたcamelliaオブジェクトを使用して1ブロックの暗号化を行います。バッファinから最初の16バイトブロックを解析し、暗号化された結果をバッファoutに格納します。この関数を使用する前に、wc_CamelliaSetKeyを使用してcamelliaオブジェクトを初期化する必要があります。
|
|
|
|
\return none 戻り値なし。
|
|
|
|
\param cam 暗号化に使用するcamellia構造体へのポインタ
|
|
\param out 暗号化されたブロックを格納するバッファへのポインタ
|
|
\param in 暗号化する平文ブロックを含むバッファへのポインタ
|
|
|
|
_Example_
|
|
\code
|
|
Camellia cam;
|
|
// キーとivでcam構造体を初期化
|
|
byte plain[] = { // 暗号化するメッセージで初期化 };
|
|
byte cipher[16];
|
|
|
|
wc_CamelliaEncryptDirect(&ca, cipher, plain);
|
|
\endcode
|
|
|
|
\sa wc_CamelliaDecryptDirect
|
|
*/
|
|
int wc_CamelliaEncryptDirect(wc_Camellia* cam, byte* out,
|
|
const byte* in);
|
|
|
|
/*!
|
|
\ingroup Camellia
|
|
|
|
\brief この関数は、提供されたcamelliaオブジェクトを使用して1ブロックの復号を行います。バッファinから最初の16バイトブロックを解析し、復号して、結果をバッファoutに格納します。この関数を使用する前に、wc_CamelliaSetKeyを使用してcamelliaオブジェクトを初期化する必要があります。
|
|
|
|
\return none 戻り値なし。
|
|
|
|
\param cam 暗号化に使用するcamellia構造体へのポインタ
|
|
\param out 復号された平文ブロックを格納するバッファへのポインタ
|
|
\param in 復号する暗号文ブロックを含むバッファへのポインタ
|
|
|
|
_Example_
|
|
\code
|
|
Camellia cam;
|
|
// キーとivでcam構造体を初期化
|
|
byte cipher[] = { // 復号する暗号化されたメッセージで初期化 };
|
|
byte decrypted[16];
|
|
|
|
wc_CamelliaDecryptDirect(&cam, decrypted, cipher);
|
|
\endcode
|
|
|
|
\sa wc_CamelliaEncryptDirect
|
|
*/
|
|
int wc_CamelliaDecryptDirect(wc_Camellia* cam, byte* out,
|
|
const byte* in);
|
|
|
|
/*!
|
|
\ingroup Camellia
|
|
|
|
\brief この関数は、バッファinから平文を暗号化し、出力をバッファoutに格納します。暗号ブロック連鎖(CBC)モードのCamelliaを使用してこの暗号化を実行します。
|
|
|
|
\return none 戻り値なし。
|
|
|
|
\param cam 暗号化に使用するcamellia構造体へのポインタ
|
|
\param out 暗号化された暗号文を格納するバッファへのポインタ
|
|
\param in 暗号化する平文を含むバッファへのポインタ
|
|
\param sz 暗号化するメッセージのサイズ
|
|
|
|
_Example_
|
|
\code
|
|
Camellia cam;
|
|
// キーとivでcam構造体を初期化
|
|
byte plain[] = { // 復号する暗号化されたメッセージで初期化 };
|
|
byte cipher[sizeof(plain)];
|
|
|
|
wc_CamelliaCbcEncrypt(&cam, cipher, plain, sizeof(plain));
|
|
\endcode
|
|
|
|
\sa wc_CamelliaCbcDecrypt
|
|
*/
|
|
int wc_CamelliaCbcEncrypt(wc_Camellia* cam,
|
|
byte* out, const byte* in, word32 sz);
|
|
|
|
/*!
|
|
\ingroup Camellia
|
|
|
|
\brief この関数は、バッファinから暗号文を復号し、出力をバッファoutに格納します。暗号ブロック連鎖(CBC)モードのCamelliaを使用してこの復号を実行します。
|
|
|
|
\return none 戻り値なし。
|
|
|
|
\param cam 暗号化に使用するcamellia構造体へのポインタ
|
|
\param out 復号されたメッセージを格納するバッファへのポインタ
|
|
\param in 暗号化された暗号文を含むバッファへのポインタ
|
|
\param sz 暗号化するメッセージのサイズ
|
|
|
|
_Example_
|
|
\code
|
|
Camellia cam;
|
|
// キーとivでcam構造体を初期化
|
|
byte cipher[] = { // 復号する暗号化されたメッセージで初期化 };
|
|
byte decrypted[sizeof(cipher)];
|
|
|
|
wc_CamelliaCbcDecrypt(&cam, decrypted, cipher, sizeof(cipher));
|
|
\endcode
|
|
|
|
\sa wc_CamelliaCbcEncrypt
|
|
*/
|
|
int wc_CamelliaCbcDecrypt(wc_Camellia* cam,
|
|
byte* out, const byte* in, word32 sz);
|