Files
wolfssl/doc/dox_comments/header_files-ja/des3.h
T
2025-12-03 13:39:09 +09:00

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);