コンテンツにスキップ

アルゴリズム - 3DES

Functions

Name
int wc_Des_SetKey(Des * des, const byte * key, const byte * iv, int dir)
この関数は、引数として与えられたDes構造体の鍵と初期化ベクトル(iv)を設定します。また、暗号化と復号に必要なバッファがまだ初期化されていない場合、それらを初期化し、スペースを割り当てます。注意: ivが提供されない場合(つまりiv == NULL)、初期化ベクトルはデフォルトで0のivになります。
void wc_Des_SetIV(Des * des, const byte * iv)
この関数は、引数として与えられたDes構造体の初期化ベクトル(iv)を設定します。NULLのivが渡された場合、初期化ベクトルを0に設定します。
int wc_Des_CbcEncrypt(Des * des, byte * out, const byte * in, word32 sz)
この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。
int wc_Des_CbcDecrypt(Des * des, byte * out, const byte * in, word32 sz)
この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。
int wc_Des_EcbEncrypt(Des * des, byte * out, const byte * in, word32 sz)
この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。電子コードブック(ECB)モードのDes暗号化を使用します。
int wc_Des3_EcbEncrypt(Des3 * des, byte * out, const byte * in, word32 sz)
この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。電子コードブック(ECB)モードのDes3暗号化を使用します。警告: ほぼすべてのユースケースで、ECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用することは避けてください。
int wc_Des3_SetKey(Des3 * des, const byte * key, const byte * iv, int dir)
この関数は、引数として与えられたDes3構造体の鍵と初期化ベクトル(iv)を設定します。また、暗号化と復号に必要なバッファがまだ初期化されていない場合、それらを初期化し、スペースを割り当てます。注意: ivが提供されない場合(つまりiv == NULL)、初期化ベクトルはデフォルトで0のivになります。
int wc_Des3_SetIV(Des3 * des, const byte * iv)
この関数は、引数として与えられたDes3構造体の初期化ベクトル(iv)を設定します。NULLのivが渡された場合、初期化ベクトルを0に設定します。
int wc_Des3_CbcEncrypt(Des3 * des, byte * out, const byte * in, word32 sz)
この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。
int wc_Des3_CbcDecrypt(Des3 * des, byte * out, const byte * in, word32 sz)
この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。
int wc_Des_CbcDecryptWithKey(byte * out, const byte * in, word32 sz, const byte * key, const byte * iv)
この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。この関数はwc_Des_CbcDecryptの代替で、ユーザーがDes構造体を直接インスタンス化せずにメッセージを復号できるようにします。
int wc_Des_CbcEncryptWithKey(byte * out, const byte * in, word32 sz, const byte * key, const byte * iv)
この関数は、入力平文inを暗号化し、結果の暗号文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。この関数はwc_Des_CbcEncryptの代替で、ユーザーがDes構造体を直接インスタンス化せずにメッセージを暗号化できるようにします。
int wc_Des3_CbcEncryptWithKey(byte * out, const byte * in, word32 sz, const byte * key, const byte * iv)
この関数は、入力平文inを暗号化し、結果の暗号文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDES(3DES)暗号化を使用します。この関数はwc_Des3_CbcEncryptの代替で、ユーザーがDes3構造体を直接インスタンス化せずにメッセージを暗号化できるようにします。
int wc_Des3_CbcDecryptWithKey(byte * out, const byte * in, word32 sz, const byte * key, const byte * iv)
この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。この関数はwc_Des3_CbcDecryptの代替で、ユーザーがDes3構造体を直接インスタンス化せずにメッセージを復号できるようにします。

Functions Documentation

function wc_Des_SetKey

int wc_Des_SetKey(
    Des * des,
    const byte * key,
    const byte * iv,
    int dir
)

この関数は、引数として与えられたDes構造体の鍵と初期化ベクトル(iv)を設定します。また、暗号化と復号に必要なバッファがまだ初期化されていない場合、それらを初期化し、スペースを割り当てます。注意: ivが提供されない場合(つまりiv == NULL)、初期化ベクトルはデフォルトで0のivになります。

Parameters:

  • des 初期化するDes構造体へのポインタ
  • key Des構造体を初期化するための8バイトの鍵を含むバッファへのポインタ
  • iv Des構造体を初期化するための8バイトのivを含むバッファへのポインタ。これが提供されない場合、ivはデフォルトで0になります
  • dir 暗号化の方向。有効なオプションは: DES_ENCRYPTIONとDES_DECRYPTIONです

See:

Return: 0 Des構造体の鍵と初期化ベクトルの設定に成功した場合

3

Example

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構造体の初期化エラー
}

function wc_Des_SetIV

void wc_Des_SetIV(
    Des * des,
    const byte * iv
)

この関数は、引数として与えられたDes構造体の初期化ベクトル(iv)を設定します。NULLのivが渡された場合、初期化ベクトルを0に設定します。

Parameters:

  • des ivを設定するDes構造体へのポインタ
  • iv Des構造体を初期化するための8バイトのivを含むバッファへのポインタ。これが提供されない場合、ivはデフォルトで0になります

See: wc_Des_SetKey

Return: none 戻り値なし。

3

Example

Des enc; // 暗号化に使用されるDes構造体
// wc_Des_SetKeyでencを初期化
byte iv[]  = { // 8バイトのivで初期化 };
wc_Des_SetIV(&enc, iv);
}

function wc_Des_CbcEncrypt

int wc_Des_CbcEncrypt(
    Des * des,
    byte * out,
    const byte * in,
    word32 sz
)

この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。

Parameters:

  • des 暗号化に使用するDes構造体へのポインタ
  • out 暗号化された暗号文を格納するバッファへのポインタ
  • in 暗号化するメッセージを含む入力バッファへのポインタ
  • sz 暗号化するメッセージの長さ

See:

Return: 0 指定された入力メッセージの暗号化に成功した場合に返されます

3

Example

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) {
    // メッセージの暗号化エラー
}

function wc_Des_CbcDecrypt

int wc_Des_CbcDecrypt(
    Des * des,
    byte * out,
    const byte * in,
    word32 sz
)

この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。

Parameters:

  • des 復号に使用するDes構造体へのポインタ
  • out 復号された平文を格納するバッファへのポインタ
  • in 暗号化された暗号文を含む入力バッファへのポインタ
  • sz 復号する暗号文の長さ

See:

Return: 0 指定された暗号文の復号に成功した場合に返されます

3

Example

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) {
    // メッセージの復号エラー
}

function wc_Des_EcbEncrypt

int wc_Des_EcbEncrypt(
    Des * des,
    byte * out,
    const byte * in,
    word32 sz
)

この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。電子コードブック(ECB)モードのDes暗号化を使用します。

Parameters:

  • des 暗号化に使用するDes構造体へのポインタ
  • out 暗号化されたメッセージを格納するバッファへのポインタ
  • in 暗号化する平文を含む入力バッファへのポインタ
  • sz 暗号化する平文の長さ

See: wc_Des_SetKe

Return: 0: 指定された平文の暗号化に成功した場合に返されます。

3

Example

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) {
    // メッセージの暗号化エラー
}

function wc_Des3_EcbEncrypt

int wc_Des3_EcbEncrypt(
    Des3 * des,
    byte * out,
    const byte * in,
    word32 sz
)

この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。電子コードブック(ECB)モードのDes3暗号化を使用します。警告: ほぼすべてのユースケースで、ECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用することは避けてください。

Parameters:

  • des3 暗号化に使用するDes3構造体へのポインタ
  • out 暗号化されたメッセージを格納するバッファへのポインタ
  • in 暗号化する平文を含む入力バッファへのポインタ
  • sz 暗号化する平文の長さ

See: wc_Des3_SetKey

Return: 0 指定された平文の暗号化に成功した場合に返されます

3

Example

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) {
    // メッセージの暗号化エラー
}

function wc_Des3_SetKey

int wc_Des3_SetKey(
    Des3 * des,
    const byte * key,
    const byte * iv,
    int dir
)

この関数は、引数として与えられたDes3構造体の鍵と初期化ベクトル(iv)を設定します。また、暗号化と復号に必要なバッファがまだ初期化されていない場合、それらを初期化し、スペースを割り当てます。注意: ivが提供されない場合(つまりiv == NULL)、初期化ベクトルはデフォルトで0のivになります。

Parameters:

  • des3 初期化するDes3構造体へのポインタ
  • key Des3構造体を初期化するための24バイトの鍵を含むバッファへのポインタ
  • iv Des3構造体を初期化するための8バイトのivを含むバッファへのポインタ。これが提供されない場合、ivはデフォルトで0になります
  • dir 暗号化の方向。有効なオプションは: DES_ENCRYPTIONとDES_DECRYPTIONです

See:

Return: 0 Des構造体の鍵と初期化ベクトルの設定に成功した場合

3

Example

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構造体の初期化エラー
}

function wc_Des3_SetIV

int wc_Des3_SetIV(
    Des3 * des,
    const byte * iv
)

この関数は、引数として与えられたDes3構造体の初期化ベクトル(iv)を設定します。NULLのivが渡された場合、初期化ベクトルを0に設定します。

Parameters:

  • des ivを設定するDes3構造体へのポインタ
  • iv Des3構造体を初期化するための8バイトのivを含むバッファへのポインタ。これが提供されない場合、ivはデフォルトで0になります

See: wc_Des3_SetKey

Return: none 戻り値なし。

3

Example

Des3 enc; // 暗号化に使用されるDes3構造体
// wc_Des3_SetKeyでencを初期化

byte iv[]  = { // 8バイトのivで初期化 };

wc_Des3_SetIV(&enc, iv);
}

function wc_Des3_CbcEncrypt

int wc_Des3_CbcEncrypt(
    Des3 * des,
    byte * out,
    const byte * in,
    word32 sz
)

この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。

Parameters:

  • des 暗号化に使用するDes3構造体へのポインタ
  • out 暗号化された暗号文を格納するバッファへのポインタ
  • in 暗号化するメッセージを含む入力バッファへのポインタ
  • sz 暗号化するメッセージの長さ

See:

Return: 0 指定された入力メッセージの暗号化に成功した場合に返されます

3

Example

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) {
    // メッセージの暗号化エラー
}

function wc_Des3_CbcDecrypt

int wc_Des3_CbcDecrypt(
    Des3 * des,
    byte * out,
    const byte * in,
    word32 sz
)

この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。

Parameters:

  • des 復号に使用するDes3構造体へのポインタ
  • out 復号された平文を格納するバッファへのポインタ
  • in 暗号化された暗号文を含む入力バッファへのポインタ
  • sz 復号する暗号文の長さ

See:

Return: 0 指定された暗号文の復号に成功した場合に返されます

3

Example

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) {
    // メッセージの復号エラー
}

function wc_Des_CbcDecryptWithKey

int wc_Des_CbcDecryptWithKey(
    byte * out,
    const byte * in,
    word32 sz,
    const byte * key,
    const byte * iv
)

この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。この関数はwc_Des_CbcDecryptの代替で、ユーザーがDes構造体を直接インスタンス化せずにメッセージを復号できるようにします。

Parameters:

  • out 復号された平文を格納するバッファへのポインタ
  • in 暗号化された暗号文を含む入力バッファへのポインタ
  • sz 復号する暗号文の長さ
  • key 復号に使用する8バイトのキーを含むバッファへのポインタ
  • iv 復号に使用する8バイトのivを含むバッファへのポインタ。ivが提供されない場合、ivはデフォルトで0になります

See: wc_Des_CbcDecrypt

Return:

  • 0 指定された暗号文の復号に成功した場合に返されます
  • MEMORY_E Des構造体用のスペース割り当て中にエラーが発生した場合に返されます

3

Example

int ret;
byte key[] = { // 8バイトのキーで初期化 };
byte iv[]  = { // 8バイトのivで初期化 };

byte cipher[]  = { // 暗号文で初期化 };
byte decoded[sizeof(cipher)];

if ( wc_Des_CbcDecryptWithKey(decoded, cipher, sizeof(cipher), key,
iv) != 0) {
    // メッセージの復号エラー
}

function wc_Des_CbcEncryptWithKey

int wc_Des_CbcEncryptWithKey(
    byte * out,
    const byte * in,
    word32 sz,
    const byte * key,
    const byte * iv
)

この関数は、入力平文inを暗号化し、結果の暗号文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。この関数はwc_Des_CbcEncryptの代替で、ユーザーがDes構造体を直接インスタンス化せずにメッセージを暗号化できるようにします。

Parameters:

  • out 最終的に暗号化されたデータ
  • in 暗号化されるデータ。Desブロックサイズにパディングされている必要があります。
  • sz 入力バッファのサイズ。
  • key 暗号化に使用するキーへのポインタ。
  • iv 初期化ベクトル

See:

Return:

  • 0 データの暗号化に成功した後に返されます。
  • MEMORY_E Des構造体用のメモリ割り当て中にエラーが発生した場合に返されます。
  • <0 暗号化中の任意のエラーで返されます。

3

Example

byte key[] = { // 8バイトのキーで初期化 };
byte iv[]  = { // 8バイトのivで初期化 };
byte in[] = { // 平文で初期化 };
byte out[sizeof(in)];
if ( wc_Des_CbcEncryptWithKey(&out, in, sizeof(in), key, iv) != 0)
{
    // メッセージの暗号化エラー
}

function wc_Des3_CbcEncryptWithKey

int wc_Des3_CbcEncryptWithKey(
    byte * out,
    const byte * in,
    word32 sz,
    const byte * key,
    const byte * iv
)

この関数は、入力平文inを暗号化し、結果の暗号文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDES(3DES)暗号化を使用します。この関数はwc_Des3_CbcEncryptの代替で、ユーザーがDes3構造体を直接インスタンス化せずにメッセージを暗号化できるようにします。

Parameters:

  • out 最終的に暗号化されたデータ
  • in 暗号化されるデータ。Desブロックサイズにパディングされている必要があります。
  • sz 入力バッファのサイズ。
  • key 暗号化に使用するキーへのポインタ。
  • iv 初期化ベクトル

See:

Return:

  • 0 データの暗号化に成功した後に返されます。
  • MEMORY_E Des構造体用のメモリ割り当て中にエラーが発生した場合に返されます。
  • <0 暗号化中の任意のエラーで返されます。

3

Example

byte key[] = { // 8バイトのキーで初期化 };
byte iv[]  = { // 8バイトのivで初期化 };

byte in[] = { // 平文で初期化 };
byte out[sizeof(in)];

if ( wc_Des3_CbcEncryptWithKey(&out, in, sizeof(in), key, iv) != 0)
{
    // メッセージの暗号化エラー
}

function wc_Des3_CbcDecryptWithKey

int wc_Des3_CbcDecryptWithKey(
    byte * out,
    const byte * in,
    word32 sz,
    const byte * key,
    const byte * iv
)

この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。この関数はwc_Des3_CbcDecryptの代替で、ユーザーがDes3構造体を直接インスタンス化せずにメッセージを復号できるようにします。

Parameters:

  • out 復号された平文を格納するバッファへのポインタ
  • in 暗号化された暗号文を含む入力バッファへのポインタ
  • sz 復号する暗号文の長さ
  • key 復号に使用する24バイトのキーを含むバッファへのポインタ
  • iv 復号に使用する8バイトのivを含むバッファへのポインタ。ivが提供されない場合、ivはデフォルトで0になります

See: wc_Des3_CbcDecrypt

Return:

  • 0 指定された暗号文の復号に成功した場合に返されます
  • MEMORY_E Des構造体用のスペース割り当て中にエラーが発生した場合に返されます

3

Example

int ret;
byte key[] = { // 24バイトのキーで初期化 };
byte iv[]  = { // 8バイトのivで初期化 };

byte cipher[]  = { // 暗号文で初期化 };
byte decoded[sizeof(cipher)];

if ( wc_Des3_CbcDecryptWithKey(decoded, cipher, sizeof(cipher),
key, iv) != 0) {
    // メッセージの復号エラー
}

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