mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-06 13:30:50 +02:00
295 lines
11 KiB
C
295 lines
11 KiB
C
/*!
|
|
\ingroup 3DES
|
|
|
|
\brief この関数は、引数として与えられたDes構造体の鍵と初期化ベクトル(iv)を設定します。また、暗号化と復号に必要なバッファがまだ初期化されていない場合、それらを初期化し、スペースを割り当てます。注意: ivが提供されない場合(つまりiv == NULL)、初期化ベクトルはデフォルトで0のivになります。
|
|
|
|
\return 0 Des構造体の鍵と初期化ベクトルの設定に成功した場合
|
|
|
|
\param des 初期化するDes構造体へのポインタ
|
|
\param key Des構造体を初期化するための8バイトの鍵を含むバッファへのポインタ
|
|
\param iv Des構造体を初期化するための8バイトのivを含むバッファへのポインタ。これが提供されない場合、ivはデフォルトで0になります
|
|
\param dir 暗号化の方向。有効なオプションは: DES_ENCRYPTIONとDES_DECRYPTIONです
|
|
|
|
_Example_
|
|
\code
|
|
Des enc; // 暗号化に使用されるDes構造体
|
|
int ret;
|
|
byte key[] = { // 8バイトの鍵で初期化 };
|
|
byte iv[] = { // 8バイトのivで初期化 };
|
|
|
|
ret = wc_Des_SetKey(&des, key, iv, DES_ENCRYPTION);
|
|
if (ret != 0) {
|
|
// des構造体の初期化エラー
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_Des_SetIV
|
|
\sa wc_Des3_SetKey
|
|
*/
|
|
int wc_Des_SetKey(Des* des, const byte* key,
|
|
const byte* iv, int dir);
|
|
|
|
/*!
|
|
\ingroup 3DES
|
|
|
|
\brief この関数は、引数として与えられたDes構造体の初期化ベクトル(iv)を設定します。NULLのivが渡された場合、初期化ベクトルを0に設定します。
|
|
|
|
\return none 戻り値なし。
|
|
|
|
\param des ivを設定するDes構造体へのポインタ
|
|
\param iv Des構造体を初期化するための8バイトのivを含むバッファへのポインタ。これが提供されない場合、ivはデフォルトで0になります
|
|
|
|
_Example_
|
|
\code
|
|
Des enc; // 暗号化に使用されるDes構造体
|
|
// wc_Des_SetKeyでencを初期化
|
|
byte iv[] = { // 8バイトのivで初期化 };
|
|
wc_Des_SetIV(&enc, iv);
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_Des_SetKey
|
|
*/
|
|
void wc_Des_SetIV(Des* des, const byte* iv);
|
|
|
|
/*!
|
|
\ingroup 3DES
|
|
|
|
\brief この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。
|
|
|
|
\return 0 指定された入力メッセージの暗号化に成功した場合に返されます
|
|
|
|
\param des 暗号化に使用するDes構造体へのポインタ
|
|
\param out 暗号化された暗号文を格納するバッファへのポインタ
|
|
\param in 暗号化するメッセージを含む入力バッファへのポインタ
|
|
\param sz 暗号化するメッセージの長さ
|
|
|
|
_Example_
|
|
\code
|
|
Des enc; // 暗号化に使用されるDes構造体
|
|
// wc_Des_SetKeyでencを初期化、モードDES_ENCRYPTIONを使用
|
|
|
|
byte plain[] = { // メッセージで初期化 };
|
|
byte cipher[sizeof(plain)];
|
|
|
|
if ( wc_Des_CbcEncrypt(&enc, cipher, plain, sizeof(plain)) != 0) {
|
|
// メッセージの暗号化エラー
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_Des_SetKey
|
|
\sa wc_Des_CbcDecrypt
|
|
*/
|
|
int wc_Des_CbcEncrypt(Des* des, byte* out,
|
|
const byte* in, word32 sz);
|
|
|
|
/*!
|
|
\ingroup 3DES
|
|
|
|
\brief この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。
|
|
|
|
\return 0 指定された暗号文の復号に成功した場合に返されます
|
|
|
|
\param des 復号に使用するDes構造体へのポインタ
|
|
\param out 復号された平文を格納するバッファへのポインタ
|
|
\param in 暗号化された暗号文を含む入力バッファへのポインタ
|
|
\param sz 復号する暗号文の長さ
|
|
|
|
_Example_
|
|
\code
|
|
Des dec; // 復号に使用されるDes構造体
|
|
// wc_Des_SetKeyでdecを初期化、モードDES_DECRYPTIONを使用
|
|
|
|
byte cipher[] = { // 暗号文で初期化 };
|
|
byte decoded[sizeof(cipher)];
|
|
|
|
if ( wc_Des_CbcDecrypt(&dec, decoded, cipher, sizeof(cipher)) != 0) {
|
|
// メッセージの復号エラー
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_Des_SetKey
|
|
\sa wc_Des_CbcEncrypt
|
|
*/
|
|
int wc_Des_CbcDecrypt(Des* des, byte* out,
|
|
const byte* in, word32 sz);
|
|
|
|
/*!
|
|
\ingroup 3DES
|
|
|
|
\brief この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。電子コードブック(ECB)モードのDes暗号化を使用します。
|
|
|
|
\return 0: 指定された平文の暗号化に成功した場合に返されます。
|
|
|
|
\param des 暗号化に使用するDes構造体へのポインタ
|
|
\param out 暗号化されたメッセージを格納するバッファへのポインタ
|
|
\param in 暗号化する平文を含む入力バッファへのポインタ
|
|
\param sz 暗号化する平文の長さ
|
|
|
|
_Example_
|
|
\code
|
|
Des enc; // 暗号化に使用されるDes構造体
|
|
// wc_Des_SetKeyでencを初期化、モードDES_ENCRYPTIONを使用
|
|
|
|
byte plain[] = { // 暗号化するメッセージで初期化 };
|
|
byte cipher[sizeof(plain)];
|
|
|
|
if ( wc_Des_EcbEncrypt(&enc,cipher, plain, sizeof(plain)) != 0) {
|
|
// メッセージの暗号化エラー
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_Des_SetKe
|
|
*/
|
|
int wc_Des_EcbEncrypt(Des* des, byte* out,
|
|
const byte* in, word32 sz);
|
|
|
|
/*!
|
|
\ingroup 3DES
|
|
|
|
\brief この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。電子コードブック(ECB)モードのDes3暗号化を使用します。警告: ほぼすべてのユースケースで、ECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用することは避けてください。
|
|
|
|
\return 0 指定された平文の暗号化に成功した場合に返されます
|
|
|
|
\param des3 暗号化に使用するDes3構造体へのポインタ
|
|
\param out 暗号化されたメッセージを格納するバッファへのポインタ
|
|
\param in 暗号化する平文を含む入力バッファへのポインタ
|
|
\param sz 暗号化する平文の長さ
|
|
|
|
_Example_
|
|
\code
|
|
Des3 enc; // 暗号化に使用されるDes3構造体
|
|
// wc_Des3_SetKeyでencを初期化、モードDES_ENCRYPTIONを使用
|
|
|
|
byte plain[] = { // 暗号化するメッセージで初期化 };
|
|
byte cipher[sizeof(plain)];
|
|
|
|
if ( wc_Des3_EcbEncrypt(&enc,cipher, plain, sizeof(plain)) != 0) {
|
|
// メッセージの暗号化エラー
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_Des3_SetKey
|
|
*/
|
|
int wc_Des3_EcbEncrypt(Des3* des, byte* out,
|
|
const byte* in, word32 sz);
|
|
|
|
/*!
|
|
\ingroup 3DES
|
|
|
|
\brief この関数は、引数として与えられたDes3構造体の鍵と初期化ベクトル(iv)を設定します。また、暗号化と復号に必要なバッファがまだ初期化されていない場合、それらを初期化し、スペースを割り当てます。注意: ivが提供されない場合(つまりiv == NULL)、初期化ベクトルはデフォルトで0のivになります。
|
|
|
|
\return 0 Des構造体の鍵と初期化ベクトルの設定に成功した場合
|
|
|
|
\param des3 初期化するDes3構造体へのポインタ
|
|
\param key Des3構造体を初期化するための24バイトの鍵を含むバッファへのポインタ
|
|
\param iv Des3構造体を初期化するための8バイトのivを含むバッファへのポインタ。これが提供されない場合、ivはデフォルトで0になります
|
|
\param dir 暗号化の方向。有効なオプションは: DES_ENCRYPTIONとDES_DECRYPTIONです
|
|
|
|
_Example_
|
|
\code
|
|
Des3 enc; // 暗号化に使用されるDes3構造体
|
|
int ret;
|
|
byte key[] = { // 24バイトの鍵で初期化 };
|
|
byte iv[] = { // 8バイトのivで初期化 };
|
|
|
|
ret = wc_Des3_SetKey(&des, key, iv, DES_ENCRYPTION);
|
|
if (ret != 0) {
|
|
// des構造体の初期化エラー
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_Des3_SetIV
|
|
\sa wc_Des3_CbcEncrypt
|
|
\sa wc_Des3_CbcDecrypt
|
|
*/
|
|
int wc_Des3_SetKey(Des3* des, const byte* key,
|
|
const byte* iv,int dir);
|
|
|
|
/*!
|
|
\ingroup 3DES
|
|
|
|
\brief この関数は、引数として与えられたDes3構造体の初期化ベクトル(iv)を設定します。NULLのivが渡された場合、初期化ベクトルを0に設定します。
|
|
|
|
\return none 戻り値なし。
|
|
|
|
\param des ivを設定するDes3構造体へのポインタ
|
|
\param iv Des3構造体を初期化するための8バイトのivを含むバッファへのポインタ。これが提供されない場合、ivはデフォルトで0になります
|
|
|
|
_Example_
|
|
\code
|
|
Des3 enc; // 暗号化に使用されるDes3構造体
|
|
// wc_Des3_SetKeyでencを初期化
|
|
|
|
byte iv[] = { // 8バイトのivで初期化 };
|
|
|
|
wc_Des3_SetIV(&enc, iv);
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_Des3_SetKey
|
|
*/
|
|
int wc_Des3_SetIV(Des3* des, const byte* iv);
|
|
|
|
/*!
|
|
\ingroup 3DES
|
|
|
|
\brief この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。
|
|
|
|
\return 0 指定された入力メッセージの暗号化に成功した場合に返されます
|
|
|
|
\param des 暗号化に使用するDes3構造体へのポインタ
|
|
\param out 暗号化された暗号文を格納するバッファへのポインタ
|
|
\param in 暗号化するメッセージを含む入力バッファへのポインタ
|
|
\param sz 暗号化するメッセージの長さ
|
|
|
|
_Example_
|
|
\code
|
|
Des3 enc; // 暗号化に使用されるDes3構造体
|
|
// wc_Des3_SetKeyでencを初期化、モードDES_ENCRYPTIONを使用
|
|
|
|
byte plain[] = { // メッセージで初期化 };
|
|
byte cipher[sizeof(plain)];
|
|
|
|
if ( wc_Des3_CbcEncrypt(&enc, cipher, plain, sizeof(plain)) != 0) {
|
|
// メッセージの暗号化エラー
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_Des3_SetKey
|
|
\sa wc_Des3_CbcDecrypt
|
|
*/
|
|
int wc_Des3_CbcEncrypt(Des3* des, byte* out,
|
|
const byte* in,word32 sz);
|
|
|
|
/*!
|
|
\ingroup 3DES
|
|
|
|
\brief この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。
|
|
|
|
\return 0 指定された暗号文の復号に成功した場合に返されます
|
|
|
|
\param des 復号に使用するDes3構造体へのポインタ
|
|
\param out 復号された平文を格納するバッファへのポインタ
|
|
\param in 暗号化された暗号文を含む入力バッファへのポインタ
|
|
\param sz 復号する暗号文の長さ
|
|
|
|
_Example_
|
|
\code
|
|
Des3 dec; // 復号に使用されるDes構造体
|
|
// wc_Des3_SetKeyでdecを初期化、モードDES_DECRYPTIONを使用
|
|
|
|
byte cipher[] = { // 暗号文で初期化 };
|
|
byte decoded[sizeof(cipher)];
|
|
|
|
if ( wc_Des3_CbcDecrypt(&dec, decoded, cipher, sizeof(cipher)) != 0) {
|
|
// メッセージの復号エラー
|
|
}
|
|
\endcode
|
|
|
|
\sa wc_Des3_SetKey
|
|
\sa wc_Des3_CbcEncrypt
|
|
*/
|
|
int wc_Des3_CbcDecrypt(Des3* des, byte* out,
|
|
const byte* in,word32 sz);
|