diff --git a/doc/dox_comments/header_files-ja/aes.h b/doc/dox_comments/header_files-ja/aes.h index 51ff301ec8..259763de30 100644 --- a/doc/dox_comments/header_files-ja/aes.h +++ b/doc/dox_comments/header_files-ja/aes.h @@ -1,23 +1,31 @@ /*! \ingroup AES - \brief この関数は、鍵を設定して初期化ベクトルを設定することでAes構造体を初期化します。 - \return 0 鍵と初期化ベクトルを正常に設定しました - \return BAD_FUNC_ARG 鍵の長さが無効な場合に返されます。 - \param aes 変更するAes構造体へのポインタ - \param key 暗号化と復号のための16,24、または32バイトの秘密鍵 - \param len 渡された鍵の長さ - \param iv 鍵を初期化するために使用される初期化ベクトルへのポインタ + \brief この関数は、キーを設定し、初期化ベクトルを設定することでAES構造体を初期化します。 + + \return 0 キーと初期化ベクトルの設定に成功した場合に返されます。 + \return BAD_FUNC_ARG キーの長さが無効な場合に返されます。 + + \param aes 変更するAES構造体へのポインタ + \param key 暗号化と復号のための16、24、または32バイトの秘密鍵 + \param len 渡されたキーの長さ + \param iv キーの初期化に使用される初期化ベクトルへのポインタ + \param dir 暗号の方向。暗号化する場合はAES_ENCRYPTIONを設定し、復号する場合はAES_DECRYPTIONを設定します。一部のモード(CFBおよびCTR)の方向は常にAES_ENCRYPTIONです。 + _Example_ \code Aes enc; int ret = 0; - byte key[] = { some 16, 24 or 32 byte key }; - byte iv[] = { some 16 byte iv }; + byte key[] = { 16、24、または32バイトのキー }; + byte iv[] = { 16バイトのiv }; + if (ret = wc_AesInit(&enc, HEAP_HINT, INVALID_DEVID) != 0) { + // aes keyの初期化に失敗 + } if (ret = wc_AesSetKey(&enc, key, AES_BLOCK_SIZE, iv, AES_ENCRYPTION) != 0) { - // failed to set aes key + // aes keyの設定に失敗 } \endcode + \sa wc_AesSetKeyDirect \sa wc_AesSetIV */ @@ -26,19 +34,24 @@ int wc_AesSetKey(Aes* aes, const byte* key, word32 len, /*! \ingroup AES - \brief この関数は、指定されたAes構造体の初期化ベクトルを設定します。Aes構造体は、この関数を呼び出す前に初期化されていることが必要です。 - \return 0 初期化ベクトルを正常に設定します。 - \return BAD_FUNC_ARG Aes構造体へのポインタがNULLの場合に返されます。 - \param aes 初期化ベクトルを設定するAes構造体へのポインタ + \brief この関数は、特定のAESオブジェクトの初期化ベクトルを設定します。この関数を呼び出す前にAESオブジェクトを初期化する必要があります。 + + \return 0 初期化ベクトルの設定に成功した場合に返されます。 + \return BAD_FUNC_ARG AESポインタがNULLの場合に返されます。 + + \param aes 初期化ベクトルを設定するAES構造体へのポインタ + \param iv AES構造体を初期化するために使用される初期化ベクトル。値がNULLの場合、デフォルトの動作はivを0に初期化します。 + _Example_ \code Aes enc; - // set enc key - byte iv[] = { some 16 byte iv }; + // enc keyを設定 + byte iv[] = { 16バイトのiv }; if (ret = wc_AesSetIV(&enc, iv) != 0) { - // failed to set aes iv + // aes ivの設定に失敗 } \endcode + \sa wc_AesSetKeyDirect \sa wc_AesSetKey */ @@ -46,33 +59,32 @@ int wc_AesSetIV(Aes* aes, const byte* iv); /*! \ingroup AES - \brief 入力バッファの平文メッセージを暗号化し、AESでCipher Block Chainingを使用して出力バッファに出力します。 - この関数呼び出しには、メッセージの暗号化前にwc_AesSetKeyを呼び出してAESオブジェクトが初期化されている必要があります。 - この関数は、入力メッセージがAESブロック長であると仮定し、入力された長さがブロック長の倍数になることを想定しているため、 - ビルド構成でWOLFSSL_AES_CBC_LENGTH_CHECKSが定義されている場合は任意選択でチェックおよび適用されます。 - ブロック多入力を保証するために、PKCS#7スタイルのパディングを事前に追加する必要があります。 - これは自動的にパディングを追加するOpenSSL AES-CBCメソッドとは異なります。 - WOLFSSLと対応するOpenSSL関数を相互運用するには、OpenSSLコマンドライン関数で-nopadオプションを指定して、 - wolfSSL_AesCbcEncryptメソッドのように動作し、暗号化中に追加のパディングを追加しません。 + \brief 入力バッファinから平文メッセージを暗号化し、AESを使用した暗号ブロック連鎖により結果の暗号文を出力バッファoutに格納します。この関数は、メッセージを暗号化する前にAesSetKeyを呼び出してAESオブジェクトが初期化されている必要があります。この関数は、入力メッセージがAESブロック長に整列していることを前提としており、入力長がブロック長の倍数であることを期待します。ビルド構成でWOLFSSL_AES_CBC_LENGTH_CHECKSが定義されている場合、これはオプションでチェックおよび強制されます。ブロック倍数の入力を保証するために、事前にPKCS#7スタイルのパディングを追加する必要があります。これは、自動的にパディングを追加するOpenSSLのAES-CBCメソッドとは異なります。wolfSSLと対応するOpenSSL関数を相互運用させるには、OpenSSLコマンドライン関数で-nopadオプションを指定して、wolfSSLのAesCbcEncryptメソッドのように動作し、暗号化中に余分なパディングを追加しないようにする必要があります。 + + \return 0 メッセージの暗号化に成功した場合に返されます。 + \return BAD_ALIGN_E ブロック整列エラーで返される場合があります。 + \return BAD_LENGTH_E ライブラリがWOLFSSL_AES_CBC_LENGTH_CHECKSでビルドされている場合、入力長がAESブロック長の倍数でない場合に返されます。 + + \param aes データを暗号化するために使用されるAESオブジェクトへのポインタ + \param out 暗号化されたメッセージの暗号文を格納する出力バッファへのポインタ + \param in 暗号化されるメッセージを含む入力バッファへのポインタ + \param sz 入力メッセージのサイズ - \return 0 メッセージの暗号化に成功しました。 - \return BAD_ALIGN_E: ブロックアライメントエラー検出時に返される可能性があります - \return BAD_LENGTH_E ライブラリーがWOLFSSL_AES_CBC_LENGTH_CHECKSで構築されている場合で、入力長がAESブロック長の倍数でない場合に返されます。 - \param aes データの暗号化に使用されるAESオブジェクトへのポインタ - \param out 暗号化されたメッセージの暗号文を格納する出力バッファへのポインタ - \param in 暗号化されるメッセージを含む入力バッファへのポインタ _Example_ \code Aes enc; int ret = 0; - // initialize enc with AesSetKey, using direction AES_ENCRYPTION - byte msg[AES_BLOCK_SIZE * n]; // multiple of 16 bytes - // fill msg with data - byte cipher[AES_BLOCK_SIZE * n]; // Some multiple of 16 bytes + // wc_AesInitとwc_AesSetKeyを使用してencを初期化、方向は + // AES_ENCRYPTIONを使用 + byte msg[AES_BLOCK_SIZE * n]; // 16バイトの倍数 + // msgにデータを入力 + byte cipher[AES_BLOCK_SIZE * n]; // 16バイトの倍数 if ((ret = wc_AesCbcEncrypt(&enc, cipher, message, sizeof(msg))) != 0 ) { - // block align error + // ブロック整列エラー } \endcode + + \sa wc_AesInit \sa wc_AesSetKey \sa wc_AesSetIV \sa wc_AesCbcDecrypt @@ -82,33 +94,34 @@ int wc_AesCbcEncrypt(Aes* aes, byte* out, /*! \ingroup AES - \brief 入力バッファからの暗号メッセージを復号し、AESでCipher Block Chainingを使用して出力バッファに出力します。 - この関数呼び出しには、メッセージの暗号化前にwc_AesSetKeyを呼び出してAESオブジェクトが初期化されている必要があります。 - この関数は、元のメッセージがAESブロック長で整列していたと仮定し、入力された長さがブロック長の倍数になると予想しています。 - これはOpenSSL AES-CBCメソッドとは異なります。これは、PKCS#7パディングを自動的に追加するため、ブロックマルチ入力を必要としません。 - wolfSSL機能と同等のOpenSSL関数を相互運用するには、OpenSSLコマンドライン関数で-nopadオプションを指定し、 - wolfSSL_ AesCbcEncryptメソッドのように動作し、復号中にエラーを発生させません。 - \return 0 メッセージを正常に復号しました - \return BAD_ALIGN_E ブロックアライメントエラー検出時に返される可能性があります - \return BAD_LENGTH_E ライブラリーがWOLFSSL_AES_CBC_LENGTH_CHECKSで構築されている場合で、入力長がAESブロック長の倍数でない場合に返されます。 - \param aes データを復号するために使用されるAESオブジェクトへのポインタ。 - \param out 復号されたメッセージのプレーンテキストを保存する出力バッファへのポインタ。 - サイズはAES_BLOCK_SIZEの倍数でなければなりません。必要な場合はパディングは追加されます。 - \param in 復号する暗号テキストを含む入力バッファへのポインタ。 - サイズはAES_BLOCK_SIZEの倍数でなければなりません。パディングされている必要があります。 - \param sz 入力バッファのサイズ + \brief 入力バッファinから暗号を復号し、AESを使用した暗号ブロック連鎖により結果の平文を出力バッファoutに格納します。この関数は、メッセージを復号する前にAesSetKeyを呼び出してAES構造体が初期化されている必要があります。この関数は、元のメッセージがAESブロック長に整列していたことを前提としており、入力長がブロック長の倍数であることを期待します。ビルド構成でWOLFSSL_AES_CBC_LENGTH_CHECKSが定義されている場合、これはオプションでチェックおよび強制されます。これは、PKCS#7パディングを自動的に追加するOpenSSLのAES-CBCメソッドとは異なり、ブロック倍数の入力を必要としません。wolfSSL関数と同等のOpenSSL関数を相互運用させるには、OpenSSLコマンドライン関数で-nopadオプションを指定して、wolfSSLのAesCbcEncryptメソッドのように動作し、復号中にエラーを発生させないようにする必要があります。 + + \return 0 メッセージの復号に成功した場合に返されます。 + \return BAD_ALIGN_E ブロック整列エラーで返される場合があります。 + \return BAD_LENGTH_E ライブラリがWOLFSSL_AES_CBC_LENGTH_CHECKSでビルドされている場合、入力長がAESブロック長の倍数でない場合に返されます。 + + \param aes データを復号するために使用されるAESオブジェクトへのポインタ。 + \param out 復号されたメッセージの平文を格納する出力バッファへのポインタ。 + サイズはAES_BLOCK_LENGTHの倍数である必要があり、必要に応じてパディングされます + \param in 復号される暗号文を含む入力バッファへのポインタ。 + サイズはAES_BLOCK_LENGTHの倍数である必要があり、必要に応じてパディングされます + \param sz 入力メッセージのサイズ。 + _Example_ \code Aes dec; int ret = 0; - // initialize dec with AesSetKey, using direction AES_DECRYPTION - byte cipher[AES_BLOCK_SIZE * n]; // some multiple of 16 bytes - // fill cipher with cipher text + // wc_AesInitとwc_AesSetKeyを使用してdecを初期化、方向は + // AES_DECRYPTIONを使用 + byte cipher[AES_BLOCK_SIZE * n]; // 16バイトの倍数 + // cipherに暗号文を入力 byte plain [AES_BLOCK_SIZE * n]; if ((ret = wc_AesCbcDecrypt(&dec, plain, cipher, sizeof(cipher))) != 0 ) { - // block align error + // ブロック整列エラー } \endcode + + \sa wc_AesInit \sa wc_AesSetKey \sa wc_AesCbcEncrypt */ @@ -117,36 +130,36 @@ int wc_AesCbcDecrypt(Aes* aes, byte* out, /*! \ingroup AES - \brief 入力バッファからメッセージを暗号化/復号し、AES CTRモードを使用して出力バッファーに出力します。 - この関数は、wolfSSL_Aes_Counterがコンパイル時に有効になっている場合にのみ有効になります。 - この機能を呼び出す前に、Aes構造体をwc_AesSetKeyで初期化する必要があります。 - この関数は復号と暗号化の両方に使用されます。_注:暗号化と復号のための同じAPIを使用することについて。ユーザーは暗号化/復号のためのAes構造体を区別する必要があります。 - \return int WolfSSLエラーまたは成功状況に対応する整数値 - \param aes データを復号するために使用されるAes構造体へのポインタ - \param out 暗号化されたメッセージの暗号化テキストを保存する出力バッファへのポインタ - サイズはAES_BLOCK_SIZEの倍数でなければなりません。必要な場合はパディングは追加されます。 - \param in 暗号化されるプレーンテキストを含む入力バッファへのポインタ。 - サイズはAES_BLOCK_SIZEの倍数でなければなりません。パディングされている必要があります。 - \param sz 入力バッファのサイズ + \brief AESを使用したCTRモードで、入力バッファinからメッセージを暗号化/復号し、結果の暗号文を出力バッファoutに格納します。この関数は、コンパイル時にWOLFSSL_AES_COUNTERが有効になっている場合のみ有効です。この関数を呼び出す前に、AesSetKeyを介してAES構造体を初期化する必要があります。この関数は復号と暗号化の両方に使用されることに注意してください。注:暗号化と復号に同じAPIを使用することについて。ユーザは暗号化/復号用のAes構造体を区別する必要があります。 + + \return int wolfSSLエラーまたは成功ステータスに対応する整数値 + + \param aes データを復号するために使用されるAESオブジェクトへのポインタ + \param out 暗号化されたメッセージの暗号文を格納する出力バッファへのポインタ + サイズはAES_BLOCK_LENGTHの倍数である必要があり、必要に応じてパディングされます + \param in 暗号化される平文を含む入力バッファへのポインタ + サイズはAES_BLOCK_LENGTHの倍数である必要があり、必要に応じてパディングされます + \param sz 入力平文のサイズ + _Example_ \code Aes enc; Aes dec; - // initialize enc and dec with AesSetKeyDirect, using direction - AES_ENCRYPTION - // since the underlying API only calls Encrypt and by default calling - encrypt on - // a cipher results in a decryption of the cipher - - byte msg[AES_BLOCK_SIZE * n]; //n being a positive integer making msg - some multiple of 16 bytes - // fill plain with message text + // wc_AesInitとwc_AesSetKeyDirectを使用してencとdecを初期化、方向は + // AES_ENCRYPTIONを使用。基盤となるAPIは暗号化のみを呼び出し、 + // デフォルトで暗号に対して暗号化を呼び出すと暗号の復号が + // 行われるため + + byte msg[AES_BLOCK_SIZE * n]; // nは正の整数で、msgを + 16バイトの倍数にする + // plainにメッセージテキストを入力 byte cipher[AES_BLOCK_SIZE * n]; byte decrypted[AES_BLOCK_SIZE * n]; - wc_AesCtrEncrypt(&enc, cipher, msg, sizeof(msg)); // encrypt plain + wc_AesCtrEncrypt(&enc, cipher, msg, sizeof(msg)); // plainを暗号化 wc_AesCtrEncrypt(&dec, decrypted, cipher, sizeof(cipher)); - // decrypt cipher text + // 暗号文を復号 \endcode + \sa wc_AesSetKey */ int wc_AesCtrEncrypt(Aes* aes, byte* out, @@ -154,24 +167,25 @@ int wc_AesCtrEncrypt(Aes* aes, byte* out, /*! \ingroup AES - \brief この関数は、入力ブロックinで与えられた単一の平文データブロックを暗号化して単一の出力ブロックoutに出力します。 - その際に、Aes構造体で提供されたの鍵を使用します。鍵はこの機能を呼び出す前にwc_AesSetKeyで初期化されている必要があります。 - wc_AesSetKeyへの入力ivにはNULLを指定して呼び出してください。 - これは、Configure Option WolfSSL_AES_DIRECTが有効になっている場合にのみ有効になります。 - __ warning:ほぼすべてのユースケースでECBモードは安全性が低いと考えられています。 - 可能な限りECB APIを直接使用しないでください。 - \return int WolfSSLエラーまたは成功状況に対応する整数値 - \param aes データの暗号化に使用されるAes構造体へのポインタ - \param out 暗号化されたメッセージの暗号化テキストを保存する出力バッファへのポインタ + \brief この関数は、入力ブロックinの1ブロック暗号化を出力ブロックoutに行います。提供されたAES構造体のキーを使用し、この関数を呼び出す前にwc_AesSetKeyで初期化する必要があります。wc_AesSetKeyはivをNULLに設定して呼び出す必要があります。これは、構成オプションWOLFSSL_AES_DIRECTが有効になっている場合のみ有効です。警告:ほぼすべてのユースケースで、ECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用することは避けてください。 + + \return int wolfSSLエラーまたは成功ステータスに対応する整数値 + + \param aes データを暗号化するために使用されるAESオブジェクトへのポインタ + \param out 暗号化されたメッセージの暗号文を格納する出力バッファへのポインタ + \param in 暗号化される平文を含む入力バッファへのポインタ + _Example_ \code Aes enc; - // initialize enc with AesSetKey, using direction AES_ENCRYPTION - byte msg [AES_BLOCK_SIZE]; // 16 bytes - // initialize msg with plain text to encrypt + // wc_AesInitとwc_AesSetKeyを使用してencを初期化、方向は + // AES_ENCRYPTIONを使用 + byte msg [AES_BLOCK_SIZE]; // 16バイト + // msgを暗号化する平文で初期化 byte cipher[AES_BLOCK_SIZE]; wc_AesEncryptDirect(&enc, cipher, msg); \endcode + \sa wc_AesDecryptDirect \sa wc_AesSetKeyDirect */ @@ -179,22 +193,25 @@ int wc_AesEncryptDirect(Aes* aes, byte* out, const byte* in); /*! \ingroup AES - \brief この関数は、入力ブロックinで与えられた単一の暗号データブロックを復号して単一の出力ブロックoutに出力します。 - 提供されたAes構造体の鍵を使用します。Aes構造体は、この機能を呼び出す前にwc_AesSetKeyで初期化される必要があります。wc_AesSetKeyは、ivがNULLで呼び出される必要があります。 - これは、Configure Option WOLFSSL_AES_DIRECTが有効になっている場合にのみ有効になります。 - __ warning:ほぼすべてのユースケースでECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用しないでください。 - \return int WolfSSLエラーまたは成功状況に対応する整数値 - \param aes データの復号に使用されるAESオブジェクトへのポインタ - \param out 復号された平文テキストを格納する出力バッファへのポインタ + \brief この関数は、入力ブロックinの1ブロック復号を出力ブロックoutに行います。提供されたAES構造体のキーを使用し、この関数を呼び出す前にwc_AesSetKeyで初期化する必要があります。wc_AesSetKeyはivをNULLに設定して呼び出す必要があります。これは、構成オプションWOLFSSL_AES_DIRECTが有効になっている場合のみ有効です。警告:ほぼすべてのユースケースで、ECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用することは避けてください。 + + \return int wolfSSLエラーまたは成功ステータスに対応する整数値 + + \param aes データを暗号化するために使用されるAESオブジェクトへのポインタ + \param out 復号された暗号文の平文を格納する出力バッファへのポインタ + \param in 復号される暗号文を含む入力バッファへのポインタ + _Example_ \code Aes dec; - // initialize enc with AesSetKey, using direction AES_DECRYPTION - byte cipher [AES_BLOCK_SIZE]; // 16 bytes - // initialize cipher with cipher text to decrypt + // wc_AesInitとwc_AesSetKeyを使用してencを初期化、方向は + // AES_DECRYPTIONを使用 + byte cipher [AES_BLOCK_SIZE]; // 16バイト + // cipherを復号する暗号文で初期化 byte msg[AES_BLOCK_SIZE]; wc_AesDecryptDirect(&dec, msg, cipher); \endcode + \sa wc_AesEncryptDirect \sa wc_AesSetKeyDirect */ @@ -202,33 +219,33 @@ int wc_AesDecryptDirect(Aes* aes, byte* out, const byte* in); /*! \ingroup AES - \brief この関数は、CTRモードのAES鍵をAESで設定するために使用されます。 - 指定された鍵、iv(初期化ベクトル)、および暗号化dir(方向)でAESオブジェクトを初期化します。 - 構成オプションWOLFSSL_AES_DIRECTが有効になっている場合にのみ有効になります。 - wc_AesEncryptDirectとwc_AesDecryptDirectを呼び出す際のAes構造体の初期化にはこの関数を使う必要があります。 - 現在wc_AesSetKeyDirectは内部的にwc_AesSetKeyを使用します。 - __ warning:ほぼすべてのユースケースでECBモードは安全性が低いと考えられています。 - 可能な限りECB APIを直接使用しないでください - \return 0 鍵の設定に成功しました。 - \return BAD_FUNC_ARG 与えられたキーが無効な長さの場合に返されます。 - \param aes データの暗号化に使用されるAESオブジェクトへのポインタ - \param key 暗号化と復号のための16,24、または32バイトの秘密鍵 - \param len 渡された鍵の長さ - \param iv 鍵を初期化するために使用される初期化ベクトル - \param dir 暗号化の方向を指定します。wc_AesEncryptDirectに使用する際にはAES_ENCRYPTION、wc_AesDecryptDirectにはAES_DECRYPTIONを指定します。 - (注意: wc_AesSetKeyDirect をAesカウンターモードに使用する際には暗号化/復号によらず、AES_ENCRYPTIONを指定してください。) + \brief この関数は、AESを使用したCTRモードのAESキーを設定するために使用されます。指定されたキー、iv(初期化ベクトル)、および暗号化dir(方向)でAESオブジェクトを初期化します。構成オプションWOLFSSL_AES_DIRECTが有効になっている場合のみ有効です。現在、wc_AesSetKeyDirectは内部的にwc_AesSetKeyを使用しています。警告:ほぼすべてのユースケースで、ECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用することは避けてください。 + + \return 0 キーの設定に成功した場合に返されます。 + \return BAD_FUNC_ARG 指定されたキーの長さが無効な場合に返されます。 + + \param aes データを暗号化するために使用されるAESオブジェクトへのポインタ + \param key 暗号化と復号のための16、24、または32バイトの秘密鍵 + \param len 渡されたキーの長さ + \param iv キーの初期化に使用される初期化ベクトル + \param dir 暗号の方向。暗号化する場合はAES_ENCRYPTIONを設定し、復号する場合はAES_DECRYPTIONを設定します。(wolfssl/wolfcrypt/aes.hの列挙型を参照)(注:Aesカウンタモード(ストリーム暗号)でwc_AesSetKeyDirectを使用する場合、暗号化と復号の両方にAES_ENCRYPTIONのみを使用) _Example_ \code Aes enc; int ret = 0; - byte key[] = { some 16, 24, or 32 byte key }; - byte iv[] = { some 16 byte iv }; + byte key[] = { 16、24、または32バイトのキー }; + byte iv[] = { 16バイトのiv }; + + if (ret = wc_AesInit(&enc, HEAP_HINT, INVALID_DEVID) != 0) { + // aes keyの初期化に失敗 + } if (ret = wc_AesSetKeyDirect(&enc, key, sizeof(key), iv, AES_ENCRYPTION) != 0) { - // failed to set aes key + // aes keyの設定に失敗 } \endcode + \sa wc_AesEncryptDirect \sa wc_AesDecryptDirect \sa wc_AesSetKey @@ -238,21 +255,28 @@ int wc_AesSetKeyDirect(Aes* aes, const byte* key, word32 len, /*! \ingroup AES - \brief この機能は、AES GCM(Galois/Counter Mode)の鍵を設定するために使用されます。 - 与えられたkeyでAes構造体を初期化します。コンパイル時にConfigureオプションHAVE_AESGCMが有効になっている場合にのみ有効になります。 - \return 0 鍵の設定に成功しました。 - \return BAD_FUNC_ARG 与えられたkeyが無効な長さの場合に返されます。 - \param aes データの暗号化に使用されるAes構造体へのポインタ - \param key 暗号化と復号のための16,24、または32バイトの秘密鍵 + \brief この関数は、AES GCM(Galois/Counter Mode)のキーを設定するために使用されます。指定されたキーでAESオブジェクトを初期化します。コンパイル時に構成オプションHAVE_AESGCMが有効になっている場合のみ有効です。 + + \return 0 キーの設定に成功した場合に返されます。 + \return BAD_FUNC_ARG 指定されたキーの長さが無効な場合に返されます。 + + \param aes データを暗号化するために使用されるAESオブジェクトへのポインタ + \param key 暗号化と復号のための16、24、または32バイトの秘密鍵 + \param len 渡されたキーの長さ + _Example_ \code Aes enc; int ret = 0; - byte key[] = { some 16, 24,32 byte key }; + byte key[] = { 16、24、32バイトのキー }; + if (ret = wc_AesInit(&enc, HEAP_HINT, INVALID_DEVID) != 0) { + // aes keyの初期化に失敗 + } if (ret = wc_AesGcmSetKey(&enc, key, sizeof(key)) != 0) { - // failed to set aes key + // aes keyの設定に失敗 } \endcode + \sa wc_AesGcmEncrypt \sa wc_AesGcmDecrypt */ @@ -260,34 +284,40 @@ int wc_AesGcmSetKey(Aes* aes, const byte* key, word32 len); /*! \ingroup AES - \brief この関数は、バッファinに格納されている平文メッセージを暗号化し結果を出力バッファoutに出力します。 - 暗号化する呼び出しごとに新しいiv(初期化ベクトル)が必要です。また、入力認証ベクトル、authIn、authTagへの入力認証ベクトルをエンコードします。 - \return 0 入力メッセージの暗号化に成功しました - \param aes データの暗号化に使用されるAESオブジェクトへのポインタ - \param out 暗号テキストを出力する先のバッファへのポインタ。バッファサイズは入力バッファinのサイズ(sz)と同じでなければなりません。 - \param in 暗号化する平文メッセージを保持している入力バッファへのポインタ。サイズはAES_BLOCK_SIZEの倍数でなければなりません。パディングされている必要があります。 - \param sz 暗号化する入力メッセージの長さ - \param iv 初期化ベクトルを含むバッファへのポインタ - \param ivSz 初期化ベクトルの長さ - \param authTag 認証タグを保存するバッファへのポインタ - \param authTagSz 希望の認証タグの長さ - \param authIn 入力認証ベクトルを含むバッファへのポインタ + \brief この関数は、バッファinに保持されている入力メッセージを暗号化し、結果の暗号文を出力バッファoutに格納します。暗号化の呼び出しごとに新しいiv(初期化ベクトル)が必要です。また、入力認証ベクトルauthInを認証タグauthTagにエンコードします。 + + \return 0 入力メッセージの暗号化に成功した場合に返されます + + \param aes データを暗号化するために使用されるAESオブジェクトへのポインタ + \param out 暗号文を格納する出力バッファへのポインタ + サイズはinのサイズ(sz)と一致する必要があります + \param in 暗号化するメッセージを保持する入力バッファへのポインタ + サイズはAES_BLOCK_LENGTHの倍数である必要があり、必要に応じてパディングされます + \param sz 暗号化する入力メッセージの長さ + \param iv 初期化ベクトルを含むバッファへのポインタ + \param ivSz 初期化ベクトルの長さ + \param authTag 認証タグを格納するバッファへのポインタ + \param authTagSz 希望する認証タグの長さ + \param authIn 入力認証ベクトルを含むバッファへのポインタ + \param authInSz 入力認証ベクトルの長さ + _Example_ \code Aes enc; - // initialize aes structure by calling wc_AesGcmSetKey + // wc_AesInit()とwc_AesGcmSetKeyを呼び出してAes構造体を初期化 - byte plain[AES_BLOCK_LENGTH * n]; //n being a positive integer - making plain some multiple of 16 bytes - // initialize plain with msg to encrypt + byte plain[AES_BLOCK_LENGTH * n]; // nは正の整数で + plainを16バイトの倍数にする + // plainを暗号化するメッセージで初期化 byte cipher[sizeof(plain)]; - byte iv[] = // some 16 byte iv + byte iv[] = // 16バイトのiv byte authTag[AUTH_TAG_LENGTH]; - byte authIn[] = // Authentication Vector + byte authIn[] = // 認証ベクトル wc_AesGcmEncrypt(&enc, cipher, plain, sizeof(cipher), iv, sizeof(iv), - authTag, sizeof(authTag), authIn, sizeof(authIn)); + authTag, sizeof(authTag), authIn, sizeof(authIn)); \endcode + \sa wc_AesGcmSetKey \sa wc_AesGcmDecrypt */ @@ -299,35 +329,42 @@ int wc_AesGcmEncrypt(Aes* aes, byte* out, /*! \ingroup AES - \brief この関数は、バッファinで与えられた入力暗号テキストを復号し、結果を出力バッファoutに格納します。 - また、指定された認証タグ、authTagに対して、入力認証ベクトル、authInをチェックします。 - \return 0 入力メッセージの復号に成功しました - \return AES_GCM_AUTH_E 認証タグが提供された認証コードベクトルと一致しない場合、authtag。 - \param aes データの復号に使用されるAes構造体へのポインタ - \param out メッセージテキストを保存する出力バッファへのポインタ。サイズは入力バッファinのサイズ(sz)と同じでなければならない。 - \param in 暗号テキストを保持する入力バッファへのポインタ。サイズはAES_BLOCK_SIZEの倍数でなければならない。 - \param sz 復号する暗号テキストの長さ - \param iv 初期化ベクトルを含むバッファへのポインタ - \param ivSz 初期化ベクトルの長さ - \param authTag 認証タグを含むバッファへのポインタ - \param authTagSz 希望の認証タグの長さ - \param authIn 入力認証ベクトルを含むバッファへのポインタ + \brief この関数は、バッファinに保持されている入力暗号文を復号し、結果のメッセージテキストを出力バッファoutに格納します。また、入力認証ベクトルauthInを、提供された認証タグauthTagと照合してチェックします。ゼロ以外のエラーコードが返された場合、出力データは未定義です。ただし、呼び出し元は平文データの漏洩を防ぐために、無条件に出力バッファをゼロ化する必要があります。 + + \return 0 入力メッセージの復号と認証に成功した場合に返されます + \return AES_GCM_AUTH_E 認証タグが提供された認証コードベクトルauthTagと一致しない場合に返されます。 + + \param aes データを暗号化するために使用されるAESオブジェクトへのポインタ + \param out メッセージテキストを格納する出力バッファへのポインタ + サイズはinのサイズ(sz)と一致する必要があります + \param in 復号する暗号文を保持する入力バッファへのポインタ + サイズはAES_BLOCK_LENGTHの倍数である必要があり、必要に応じてパディングされます + \param sz 復号する暗号文の長さ + \param iv 初期化ベクトルを含むバッファへのポインタ + \param ivSz 初期化ベクトルの長さ + \param authTag 認証タグを含むバッファへのポインタ + \param authTagSz 希望する認証タグの長さ + \param authIn 入力認証ベクトルを含むバッファへのポインタ + \param authInSz 入力認証ベクトルの長さ + _Example_ \code - Aes enc; //can use the same struct as was passed to wc_AesGcmEncrypt - // initialize aes structure by calling wc_AesGcmSetKey if not already done + Aes enc; // wc_AesGcmEncryptに渡されたものと同じ構造体を使用可能 + // まだ完了していない場合は、wc_AesInitとwc_AesGcmSetKeyを呼び出して + // aes構造体を初期化 - byte cipher[AES_BLOCK_LENGTH * n]; //n being a positive integer - making cipher some multiple of 16 bytes - // initialize cipher with cipher text to decrypt + byte cipher[AES_BLOCK_LENGTH * n]; // nは正の整数で + cipherを16バイトの倍数にする + // cipherを復号する暗号文で初期化 byte output[sizeof(cipher)]; - byte iv[] = // some 16 byte iv + byte iv[] = // 16バイトのiv byte authTag[AUTH_TAG_LENGTH]; - byte authIn[] = // Authentication Vector + byte authIn[] = // 認証ベクトル wc_AesGcmDecrypt(&enc, output, cipher, sizeof(cipher), iv, sizeof(iv), - authTag, sizeof(authTag), authIn, sizeof(authIn)); + authTag, sizeof(authTag), authIn, sizeof(authIn)); \endcode + \sa wc_AesGcmSetKey \sa wc_AesGcmEncrypt */ @@ -339,46 +376,59 @@ int wc_AesGcmDecrypt(Aes* aes, byte* out, /*! \ingroup AES - \brief この関数は、GAROISメッセージ認証に使用されるGmac構造体の鍵を初期化して設定します。 - \return 0 鍵の設定に成功しました - \return BAD_FUNC_ARG 引数keyの長さが無効な場合は返されます。 - \param gmac 認証に使用されるGmac構造体へのポインタ - \param key 認証のための16,24、または32バイトの秘密鍵 + \brief この関数は、Galoisメッセージ認証に使用されるGMACオブジェクトのキーを初期化および設定します。 + + \return 0 キーの設定に成功した場合に返されます + \return BAD_FUNC_ARG キーの長さが無効な場合に返されます。 + + \param gmac 認証に使用されるgmacオブジェクトへのポインタ + \param key 認証のための16、24、または32バイトの秘密鍵 + \param len キーの長さ + _Example_ \code Gmac gmac; - key[] = { some 16, 24, or 32 byte length key }; + key[] = { 16、24、または32バイト長のキー }; + wc_AesInit(gmac.aes, HEAP_HINT, INVALID_DEVID); // devIdが更新されていることを確認 wc_GmacSetKey(&gmac, key, sizeof(key)); \endcode + \sa wc_GmacUpdate + \sa wc_AesInit */ int wc_GmacSetKey(Gmac* gmac, const byte* key, word32 len); /*! \ingroup AES - \brief この関数はauthIn InputのGMACハッシュを生成し、結果をauthTagバッファに格納します。 - wc_GmacUpdateを実行した後、生成されたauthTagを既知の認証タグに比較してメッセージの信頼性を検証する必要があります。 - \return 0 GMACハッシュの計算に成功しました。 - \param gmac 認証に使用されるGmac構造体へのポインタ - \param iv ハッシュに使用される初期化ベクトル - \param ivSz 使用される初期化ベクトルのサイズ - \param authIn 確認する認証ベクトルを含むバッファへのポインタ - \param authInSz 認証ベクトルのサイズ - \param authTag GMACハッシュを保存する出力バッファへのポインタ + \brief この関数は、authIn入力のGmacハッシュを生成し、結果をauthTagバッファに格納します。wc_GmacUpdateを実行した後、生成されたauthTagを既知の認証タグと比較して、メッセージの真正性を検証する必要があります。 + + \return 0 Gmacハッシュの計算に成功した場合に返されます。 + + \param gmac 認証に使用されるgmacオブジェクトへのポインタ + \param iv ハッシュに使用される初期化ベクトル + \param ivSz 使用される初期化ベクトルのサイズ + \param authIn 検証する認証ベクトルを含むバッファへのポインタ + \param authInSz 認証ベクトルのサイズ + \param authTag Gmacハッシュを格納する出力バッファへのポインタ + \param authTagSz Gmacハッシュを格納するために使用される出力バッファのサイズ + _Example_ \code Gmac gmac; - key[] = { some 16, 24, or 32 byte length key }; - iv[] = { some 16 byte length iv }; + key[] = { 16、24、または32バイト長のキー }; + iv[] = { 16バイト長のiv }; + wc_AesInit(gmac.aes, HEAP_HINT, INVALID_DEVID); // devIdが更新されていることを確認 wc_GmacSetKey(&gmac, key, sizeof(key)); - authIn[] = { some 16 byte authentication input }; - tag[AES_BLOCK_SIZE]; // will store authentication code + authIn[] = { 16バイトの認証入力 }; + tag[AES_BLOCK_SIZE]; // 認証コードを格納 wc_GmacUpdate(&gmac, iv, sizeof(iv), authIn, sizeof(authIn), tag, sizeof(tag)); \endcode + \sa wc_GmacSetKey + \sa wc_AesInit */ int wc_GmacUpdate(Gmac* gmac, const byte* iv, word32 ivSz, const byte* authIn, word32 authInSz, @@ -386,17 +436,23 @@ int wc_GmacUpdate(Gmac* gmac, const byte* iv, word32 ivSz, /*! \ingroup AES - \brief この関数は、CCMを使用してAESオブジェクトの鍵を設定します(CBC-MACのカウンタ)。Aes構造体へのポインタを取り、引数で与えられたkeyで初期化します。 + \brief この関数は、CCM(Counter with CBC-MAC)を使用してAESオブジェクトのキーを設定します。AES構造体へのポインタを受け取り、提供されたキーで初期化します。 + \return none - \param aes 引数keyを保管するためのAes構造体 - \param key 暗号化と復号のための16,24、または32バイトの秘密鍵 + + \param aes 提供されたキーを格納するaes構造体 + \param key 暗号化と復号のための16、24、または32バイトの秘密鍵 + \param keySz 提供されたキーのサイズ + _Example_ \code Aes enc; - key[] = { some 16, 24, or 32 byte length key }; + key[] = { 16、24、または32バイト長のキー }; - wc_AesCcmSetKey(&aes, key, sizeof(key)); + wc_AesInit(&enc, HEAP_HINT, INVALID_DEVID); // devIdが更新されていることを確認 + wc_AesCcmSetKey(&enc, key, sizeof(key)); \endcode + \sa wc_AesCcmEncrypt \sa wc_AesCcmDecrypt */ @@ -404,33 +460,38 @@ int wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz); /*! \ingroup AES - \brief この関数は、CCMを使用して、入力メッセージ、IN、OUT、OUT、OUTをCCM(CBC-MACのカウンタ)を暗号化します。 - その後、Authin Inputから認証タグ、AuthtAgを計算して格納します。 + + \brief この関数は、CCM(Counter with CBC-MAC)を使用して、入力メッセージinを出力バッファoutに暗号化します。その後、authIn入力から認証タグauthTagを計算して格納します。 + \return none - \param aes データの暗号化に使用されるAes構造体へのポインタ - \param out 暗号テキストを保存する出力バッファへのポインタ - \param in 暗号化するメッセージを保持している入力バッファへのポインタ - \param sz 暗号化する入力メッセージの長さ - \param nonce nonceを含むバッファへのポインタ(1回だけ使用されている数) - \param nonceSz ノンスの長さ - \param authTag 認証タグを保存するバッファへのポインタ - \param authTagSz 希望の認証タグの長さ - \param authIn 入力認証ベクトルを含むバッファへのポインタ + + \param aes データを暗号化するために使用されるAESオブジェクトへのポインタ + \param out 暗号文を格納する出力バッファへのポインタ + \param in 暗号化するメッセージを保持する入力バッファへのポインタ + \param sz 暗号化する入力メッセージの長さ + \param nonce ナンス(1回のみ使用される数値)を含むバッファへのポインタ + \param nonceSz ナンスの長さ + \param authTag 認証タグを格納するバッファへのポインタ + \param authTagSz 希望する認証タグの長さ + \param authIn 入力認証ベクトルを含むバッファへのポインタ + \param authInSz 入力認証ベクトルの長さ + _Example_ \code Aes enc; - // initialize enc with wc_AesCcmSetKey + // wc_AesInitとwc_AesCcmSetKeyでencを初期化 - nonce[] = { initialize nonce }; - plain[] = { some plain text message }; + nonce[] = { ナンスを初期化 }; + plain[] = { 平文メッセージ }; cipher[sizeof(plain)]; - authIn[] = { some 16 byte authentication input }; - tag[AES_BLOCK_SIZE]; // will store authentication code + authIn[] = { 16バイトの認証入力 }; + tag[AES_BLOCK_SIZE]; // 認証コードを格納 wc_AesCcmEncrypt(&enc, cipher, plain, sizeof(plain), nonce, sizeof(nonce), - tag, sizeof(tag), authIn, sizeof(authIn)); + tag, sizeof(tag), authIn, sizeof(authIn)); \endcode + \sa wc_AesCcmSetKey \sa wc_AesCcmDecrypt */ @@ -442,36 +503,42 @@ int wc_AesCcmEncrypt(Aes* aes, byte* out, /*! \ingroup AES - \brief この関数は、CCMを使用して、入力暗号テキストを、CCM(CBC-MACのカウンタ)を使用して出力バッファーに復号します。その後、authIn入力からauthTagを計算します。認証タグが無効な場合は、出力バッファをゼロに設定し、AES_CCM_AUTH_Eを返します。 - \return 0 入力メッセージの復号に成功しました - \return AES_CCM_AUTH_E 認証タグが提供された認証コードベクトルと一致しない場合 - \param aes データの復号に使用されるAes構造体へのポインタ - \param out 復号したテキストを出力する出力バッファへのポインタ - \param in 復号するメッセージを保持している入力バッファへのポインタ - \param sz 入力暗号テキストのサイズ - \param nonce nonceを含むバッファへのポインタ(1回だけ使用されている数) - \param nonceSz ノンスの長さ - \param authTag 認証タグを保存するバッファへのポインタ - \param authTagSz 希望の認証タグの長さ - \param authIn 入力認証ベクトルを含むバッファへのポインタ + + \brief この関数は、CCM(Counter with CBC-MAC)を使用して、入力暗号文inを出力バッファoutに復号します。その後、authIn入力から認証タグauthTagを計算します。ゼロ以外のエラーコードが返された場合、出力データは未定義です。ただし、呼び出し元は平文データの漏洩を防ぐために、無条件に出力バッファをゼロ化する必要があります。 + + \return 0 入力メッセージの復号に成功した場合に返されます + \return AES_CCM_AUTH_E 認証タグが提供された認証コードベクトルauthTagと一致しない場合に返されます。 + + \param aes データを暗号化するために使用されるAESオブジェクトへのポインタ + \param out 暗号文を格納する出力バッファへのポインタ + \param in 暗号化するメッセージを保持する入力バッファへのポインタ + \param sz 復号する入力暗号文の長さ + \param nonce ナンス(1回のみ使用される数値)を含むバッファへのポインタ + \param nonceSz ナンスの長さ + \param authTag 認証タグを格納するバッファへのポインタ + \param authTagSz 希望する認証タグの長さ + \param authIn 入力認証ベクトルを含むバッファへのポインタ + \param authInSz 入力認証ベクトルの長さ + _Example_ \code Aes dec; - // initialize dec with wc_AesCcmSetKey + // wc_AesInitとwc_AesCcmSetKeyでdecを初期化 - nonce[] = { initialize nonce }; - cipher[] = { encrypted message }; + nonce[] = { ナンスを初期化 }; + cipher[] = { 暗号化されたメッセージ }; plain[sizeof(cipher)]; - authIn[] = { some 16 byte authentication input }; - tag[AES_BLOCK_SIZE] = { authentication tag received for verification }; + authIn[] = { 16バイトの認証入力 }; + tag[AES_BLOCK_SIZE] = { 検証のために受信した認証タグ }; int return = wc_AesCcmDecrypt(&dec, plain, cipher, sizeof(cipher), nonce, sizeof(nonce),tag, sizeof(tag), authIn, sizeof(authIn)); if(return != 0) { - // decrypt error, invalid authentication code + // 復号エラー、無効な認証コード } \endcode + \sa wc_AesCcmSetKey \sa wc_AesCcmEncrypt */ @@ -483,23 +550,104 @@ int wc_AesCcmDecrypt(Aes* aes, byte* out, /*! \ingroup AES - \brief この関数は、AES XTSモードを使用する暗号化または復号で使用する鍵の設定に使用します。完了したら、AESキーでwc_AesXtsFreeを呼び出すことがユーザーになりました。 - \return 0 成功 - \param aes 暗号化または復号処理に使用するXtsAes構造体 - \param key 補正値(Tewak)を加味したAES鍵を保持しているバッファ - \param len 鍵バッファのサイズ。鍵サイズの2倍にする必要があります。(すなわち、16バイトの鍵の場合は32) - \param dir 処理方向、AES_EncryptionまたはAES_Decryptionのいずれかを指定します。 - \param heap メモリに使用するヒープヒント。NULLを設定することもできます。 + + \brief これはAES-XTSコンテキストを初期化するためのものです。使用が完了したら、ユーザがaesキーに対してwc_AesXtsFreeを呼び出す必要があります。 + + \return 0 成功 + + \param aes 暗号化/復号プロセスのためのAESキー + \param heap メモリに使用するヒープヒント。NULLでも可 + \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定 + _Example_ \code XtsAes aes; - if(wc_AesXtsSetKey(&aes, key, sizeof(key), AES_ENCRYPTION, NULL, 0) != 0) + if(wc_AesXtsInit(&aes, NULL, INVALID_DEVID) != 0) + { + // エラーを処理 + } + if(wc_AesXtsSetKeyNoInit(&aes, key, sizeof(key), AES_ENCRYPTION) != 0) + { + // エラーを処理 + } + wc_AesXtsFree(&aes); + \endcode + + \sa wc_AesXtsSetKey + \sa wc_AesXtsSetKeyNoInit + \sa wc_AesXtsEncrypt + \sa wc_AesXtsDecrypt + \sa wc_AesXtsFree +*/ +int wc_AesXtsInit(XtsAes* aes, void* heap, int devId); + + +/*! + \ingroup AES + + \brief これは、最初にwc_AesXtsInit()を呼び出した後、キーを正しい暗号化または復号タイプに設定するのに役立ちます。使用が完了したら、ユーザがaesキーに対してwc_AesXtsFreeを呼び出す必要があります。 + + \return 0 成功 + + \param aes 暗号化/復号プロセスのためのAESキー + \param key aesキー | tweakキーを保持するバッファ + \param len キーバッファの長さ(バイト単位)。キーサイズの2倍である必要があります。 + つまり、16バイトのキーの場合は32です。 + \param dir 方向、AES_ENCRYPTIONまたはAES_DECRYPTION + + _Example_ + \code + XtsAes aes; + + if(wc_AesXtsInit(&aes, NULL, 0) != 0) + { + // エラーを処理 + } + if(wc_AesXtsSetKeyNoInit(&aes, key, sizeof(key), AES_ENCRYPTION, NULL, 0) + != 0) + { + // エラーを処理 + } + wc_AesXtsFree(&aes); + \endcode + + \sa wc_AesXtsEncrypt + \sa wc_AesXtsDecrypt + \sa wc_AesXtsFree +*/ +int wc_AesXtsSetKeyNoInit(XtsAes* aes, const byte* key, + word32 len, int dir); + + +/*! + \ingroup AES + + \brief これは、キーを正しい暗号化または復号タイプに設定するのに役立ちます。使用が完了したら、ユーザがaesキーに対してwc_AesXtsFreeを呼び出す必要があります。 + + \return 0 成功 + + \param aes 暗号化/復号プロセスのためのAESキー + \param key aesキー | tweakキーを保持するバッファ + \param len キーバッファの長さ(バイト単位)。キーサイズの2倍である必要があります。 + つまり、16バイトのキーの場合は32です。 + \param dir 方向、AES_ENCRYPTIONまたはAES_DECRYPTION + \param heap メモリに使用するヒープヒント。NULLでも可 + \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定 + + _Example_ + \code + XtsAes aes; + + if(wc_AesXtsSetKey(&aes, key, sizeof(key), AES_ENCRYPTION, NULL, INVALID_DEVID) != 0) { - // Handle error + // エラーを処理 } wc_AesXtsFree(&aes); \endcode + + \sa wc_AesXtsInit + \sa wc_AesXtsSetKeyNoInit \sa wc_AesXtsEncrypt \sa wc_AesXtsDecrypt \sa wc_AesXtsFree @@ -509,12 +657,17 @@ int wc_AesXtsSetKey(XtsAes* aes, const byte* key, /*! \ingroup AES - \brief wc_AesXtsEncryptと同じ処理を行いますが、バイト配列の代わりにTweak値としてword64型を使用します。本関数でword64をバイト配列に変換し、wc_AesXtsEncryptを呼び出します。 - \return 0 成功 - \param aes ブロック暗号化/復号に使用するXtsAes構造体 - \param out 暗号テキストを保持するための出力バッファ - \param in 暗号化する入力プレーンテキストバッファ - \param sz バッファ(in, out両方)のサイズ + + \brief wc_AesXtsEncryptと同じプロセスですが、バイト配列の代わりにword64型をtweak値として使用します。これはword64をバイト配列に変換し、wc_AesXtsEncryptを呼び出すだけです。 + + \return 0 成功 + + \param aes ブロック暗号化/復号に使用するAESキー + \param out 暗号文を保持する出力バッファ + \param in 暗号化する入力平文バッファ + \param sz outとinバッファの両方のサイズ + \param sector tweakに使用する値 + _Example_ \code XtsAes aes; @@ -522,16 +675,18 @@ int wc_AesXtsSetKey(XtsAes* aes, const byte* key, unsigned char cipher[SIZE]; word64 s = VALUE; - //set up keys with AES_ENCRYPTION as dir - + // AES_ENCRYPTIONをdirとしてキーを設定 if(wc_AesXtsEncryptSector(&aes, cipher, plain, SIZE, s) != 0) { - // Handle error + // エラーを処理 } wc_AesXtsFree(&aes); \endcode + \sa wc_AesXtsEncrypt \sa wc_AesXtsDecrypt + \sa wc_AesXtsInit + \sa wc_AesXtsSetKeyNoInit \sa wc_AesXtsSetKey \sa wc_AesXtsFree */ @@ -540,12 +695,17 @@ int wc_AesXtsEncryptSector(XtsAes* aes, byte* out, /*! \ingroup AES - \brief wc_AesXtsDecryptと同じ処理を行いますが、バイト配列の代わりにTweak値としてword64タイプを使用します。本関数でword64をバイト配列に変換するだけです。 - \return 0 成功 - \param aes ブロック暗号化/復号に使用するXtsAes構造体 - \param out プレーンテキストを保持するための出力バッファ - \param in 復号する暗号テキストバッファ - \param sz バッファ(in, out両方)のサイズ + + \brief wc_AesXtsDecryptと同じプロセスですが、バイト配列の代わりにword64型をtweak値として使用します。これはword64をバイト配列に変換するだけです。 + + \return 0 成功 + + \param aes ブロック暗号化/復号に使用するAESキー + \param out 平文を保持する出力バッファ + \param in 復号する入力暗号文バッファ + \param sz outとinバッファの両方のサイズ + \param sector tweakに使用する値 + _Example_ \code XtsAes aes; @@ -553,16 +713,19 @@ int wc_AesXtsEncryptSector(XtsAes* aes, byte* out, unsigned char cipher[SIZE]; word64 s = VALUE; - //set up aes key with AES_DECRYPTION as dir and tweak with AES_ENCRYPTION + // AES_DECRYPTIONをdirとしてaesキーを設定し、tweakはAES_ENCRYPTIONで設定 if(wc_AesXtsDecryptSector(&aes, plain, cipher, SIZE, s) != 0) { - // Handle error + // エラーを処理 } wc_AesXtsFree(&aes); \endcode + \sa wc_AesXtsEncrypt \sa wc_AesXtsDecrypt + \sa wc_AesXtsInit + \sa wc_AesXtsSetKeyNoInit \sa wc_AesXtsSetKey \sa wc_AesXtsFree */ @@ -571,13 +734,18 @@ int wc_AesXtsDecryptSector(XtsAes* aes, byte* out, /*! \ingroup AES - \brief AES XTSモードで暗号化します。(XTS)XEX暗号化と平文がブロック長の倍数でない場合の処理(Ciphertext Stealing)を行います。 - \return 0 成功 - \param aes ブロック暗号化/復号に使用するXtsAes構造体 - \param out 暗号テキストを保持するための出力バッファ - \param in 暗号化する入力プレーンテキストを含むバッファ - \param sz バッファ(in, out両方)のサイズ - \param i Tweakに使用する値 + + \brief XTSモードのAES。(XTS)TweakとCipher Text Stealingを使用したXEX暗号化。 + + \return 0 成功 + + \param aes ブロック暗号化/復号に使用するAESキー + \param out 暗号文を保持する出力バッファ + \param in 暗号化する入力平文バッファ + \param sz outとinバッファの両方のサイズ + \param i tweakに使用する値 + \param iSz iバッファのサイズ、常にAES_BLOCK_SIZEである必要がありますが、この入力を持つことで、ユーザが関数を呼び出す方法についてのサニティチェックが追加されます。 + _Example_ \code XtsAes aes; @@ -585,15 +753,18 @@ int wc_AesXtsDecryptSector(XtsAes* aes, byte* out, unsigned char cipher[SIZE]; unsigned char i[AES_BLOCK_SIZE]; - //set up key with AES_ENCRYPTION as dir + // AES_ENCRYPTIONをdirとしてキーを設定 if(wc_AesXtsEncrypt(&aes, cipher, plain, SIZE, i, sizeof(i)) != 0) { - // Handle error + // エラーを処理 } wc_AesXtsFree(&aes); \endcode + \sa wc_AesXtsDecrypt + \sa wc_AesXtsInit + \sa wc_AesXtsSetKeyNoInit \sa wc_AesXtsSetKey \sa wc_AesXtsFree */ @@ -602,13 +773,18 @@ int wc_AesXtsEncrypt(XtsAes* aes, byte* out, /*! \ingroup AES - \brief 暗号化と同じプロセスですが、XtsAes構造体はAES_Decryptionタイプです。 - \return 0 成功 - \param aes ブロック暗号化/復号に使用するXtsAes構造体 - \param out プレーンテキストを保持するための出力バッファ - \param in 復号する暗号テキストを含むバッファ - \param sz バッファ(in, out両方)のサイズ - \param i Tweakに使用する値 + + \brief 暗号化と同じプロセスですが、AesキーはAES_DECRYPTIONタイプです。 + + \return 0 成功 + + \param aes ブロック暗号化/復号に使用するAESキー + \param out 平文を保持する出力バッファ + \param in 復号する入力暗号文バッファ + \param sz outとinバッファの両方のサイズ + \param i tweakに使用する値 + \param iSz iバッファのサイズ、常にAES_BLOCK_SIZEである必要がありますが、この入力を持つことで、ユーザが関数を呼び出す方法についてのサニティチェックが追加されます。 + _Example_ \code XtsAes aes; @@ -616,15 +792,18 @@ int wc_AesXtsEncrypt(XtsAes* aes, byte* out, unsigned char cipher[SIZE]; unsigned char i[AES_BLOCK_SIZE]; - //set up key with AES_DECRYPTION as dir and tweak with AES_ENCRYPTION + // AES_DECRYPTIONをdirとしてキーを設定し、tweakはAES_ENCRYPTIONで設定 if(wc_AesXtsDecrypt(&aes, plain, cipher, SIZE, i, sizeof(i)) != 0) { - // Handle error + // エラーを処理 } wc_AesXtsFree(&aes); \endcode + \sa wc_AesXtsEncrypt + \sa wc_AesXtsInit + \sa wc_AesXtsSetKeyNoInit \sa wc_AesXtsSetKey \sa wc_AesXtsFree */ @@ -633,20 +812,28 @@ int wc_AesXtsDecrypt(XtsAes* aes, byte* out, /*! \ingroup AES - \brief この関数はXtsAes構造体で使用されるすべてのリソースを解放します。 - \return 0 成功 + + \brief これは、XtsAes構造体によって使用されるリソースを解放するためのものです + + \return 0 成功 + + \param aes 解放するAESキー + _Example_ \code XtsAes aes; if(wc_AesXtsSetKey(&aes, key, sizeof(key), AES_ENCRYPTION, NULL, 0) != 0) { - // Handle error + // エラーを処理 } wc_AesXtsFree(&aes); \endcode + \sa wc_AesXtsEncrypt \sa wc_AesXtsDecrypt + \sa wc_AesXtsInit + \sa wc_AesXtsSetKeyNoInit \sa wc_AesXtsSetKey */ int wc_AesXtsFree(XtsAes* aes); @@ -654,65 +841,80 @@ int wc_AesXtsFree(XtsAes* aes); /*! \ingroup AES - \brief Aes構造体を初期化します。ヒープヒントを設定し、ASYNCハードウェアを使用する場合のIDも設定します。Aes構造体の使用が終了した際にwc_AesFreeを呼び出すのはユーザーに任されています。 - \return 0 成功 - \param aes 初期化対象のAes構造体 - \param heap 必要に応じてmalloc / freeに使用するヒープヒント + \brief Aes構造体を初期化します。使用するヒープヒントと非同期ハードウェアで使用するIDを設定します。使用が完了したら、ユーザがAes構造体に対してwc_AesFreeを呼び出す必要があります。 + \return 0 成功 + + \param aes 初期化するaes構造体 + \param heap 必要に応じてmalloc / freeに使用するヒープヒント + \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定 + _Example_ \code Aes enc; void* hint = NULL; - int devId = INVALID_DEVID; //if not using async INVALID_DEVID is default + int devId = INVALID_DEVID; // 非同期を使用しない場合はINVALID_DEVIDがデフォルト - //heap hint could be set here if used + // 使用する場合はここでヒープヒントを設定可能 wc_AesInit(&enc, hint, devId); \endcode + \sa wc_AesSetKey \sa wc_AesSetIV + \sa wc_AesFree */ int wc_AesInit(Aes* aes, void* heap, int devId); /*! \ingroup AES - \brief Aes構造体に関連つけられたリソースを可能なら解放します。 - 内部的にはノーオペレーションとなることもありますが、ベストプラクティスとしてどのケースでもこの関数を呼び出すことを推奨します。 - \return 戻り値なし - \param aes FreeすべきAes構造体へのポインタ + \brief 該当する場合、Aes構造体に関連付けられたリソースを解放します。内部的には時々no-opになることもありますが、新しい環境で使用するためにアプリケーションコードが移植される場合(呼び出しが適用される場合)など、一般的なベストプラクティスとしてすべてのケースで呼び出すことをお勧めします。 + \return no return(void関数) + + \param aes 解放するaes構造体 + _Example_ \code Aes enc; void* hint = NULL; - int devId = INVALID_DEVID; //if not using async INVALID_DEVID is default - //heap hint could be set here if used + int devId = INVALID_DEVID; // 非同期を使用しない場合はINVALID_DEVIDがデフォルト + + // 使用する場合はここでヒープヒントを設定可能 + wc_AesInit(&enc, hint, devId); - // ... do some interesting things ... + // ... 興味深いことをいくつか行う ... wc_AesFree(&enc); \endcode + \sa wc_AesInit */ int wc_AesFree(Aes* aes); /*! \ingroup AES - \brief AES CFBモードで暗号化を行います。 - \return 0 成功時に返ります。失敗時には負値が返されます。 - \param aes ブロック暗号化/復号に使用するAes構造体 - \param out 暗号テキストを保持するための出力バッファは、少なくとも入力プレーンテキストバッファと同じサイズが必要です。 - \param in 暗号化する入力プレーンテキストバッファ + + \brief CFBモードのAES。 + + \return 0 成功、失敗時は負のエラー値 + + \param aes ブロック暗号化/復号に使用するAESキー + \param out 暗号文を保持する出力バッファ(少なくとも入力バッファと同じ大きさである必要があります) + \param in 暗号化する入力平文バッファ + \param sz 入力バッファのサイズ + _Example_ \code Aes aes; unsigned char plain[SIZE]; unsigned char cipher[SIZE]; - //set up key with AES_ENCRYPTION as dir for both encrypt and decrypt + // 暗号化と復号の両方にAES_ENCRYPTIONをdirとしてキーを設定 if(wc_AesCfbEncrypt(&aes, cipher, plain, SIZE) != 0) { - // Handle error + // エラーを処理 } \endcode + \sa wc_AesCfbDecrypt \sa wc_AesSetKey */ @@ -720,24 +922,30 @@ int wc_AesCfbEncrypt(Aes* aes, byte* out, const byte* in, word32 sz); /*! \ingroup AES - \brief AES CFBモードで復号を行います。 - \return 0 成功時に返ります。失敗時には負値が返されます。 - \param aes ブロック暗号化/復号に使用するAes構造体 - \param out 復号されたテキストを保持するための出力バッファは、少なくとも入力バッファと同じサイズが必要です。 - \param in 復号する暗号データを保持した入力バッファ + + \brief CFBモードのAES。 + + \return 0 成功、失敗時は負のエラー値 + + \param aes ブロック暗号化/復号に使用するAESキー + \param out 復号されたテキストを保持する出力バッファ(少なくとも入力バッファと同じ大きさである必要があります) + \param in 復号する入力バッファ + \param sz 入力バッファのサイズ + _Example_ \code Aes aes; unsigned char plain[SIZE]; unsigned char cipher[SIZE]; - //set up key with AES_ENCRYPTION as dir for both encrypt and decrypt + // 暗号化と復号の両方にAES_ENCRYPTIONをdirとしてキーを設定 if(wc_AesCfbDecrypt(&aes, plain, cipher, SIZE) != 0) { - // Handle error + // エラーを処理 } \endcode + \sa wc_AesCfbEncrypt \sa wc_AesSetKey */ @@ -745,22 +953,27 @@ int wc_AesCfbDecrypt(Aes* aes, byte* out, const byte* in, word32 sz); /*! \ingroup AES - \brief この関数は、RFC 5297に記載されているようにSIV(合成初期化ベクトル)暗号化を実行します。 - \return 0 暗号化に成功した場合 - \return BAD_FUNC_ARG 鍵、SIV、または出力バッファがNULLの場合。鍵サイズが32,48、または64バイトの場合にも返されます。 - \return Other その他の負のエラー値。AESまたはCMAC操作が失敗した場合に返されます。 - \param key 使用する鍵を含むバイトバッファ。 - \param keySz 鍵バッファの長さ(バイト単位)。 - \param assoc 追加の認証された関連データ(AD)。 - \param assocSz ADバッファのバイト数 - \param nonce ナンス(一度だけ使用される値)。ADと同じ方法でアルゴリズムによって使用されます。 - \param nonceSz バイト単位のナンスバッファの長さ。 - \param in 暗号化する平文のバッファ。 - \param inSz 平文バッファの長さ - \param siv S2VによるSIV出力(RFC 5297 2.4参照)。 + + \brief この関数は、RFC 5297で説明されているSIV(合成初期化ベクトル)暗号化を実行します。 + + \return 0 暗号化に成功した場合。 + \return BAD_FUNC_ARG key、SIV、または出力バッファがNULLの場合に返されます。また、キーサイズが32、48、または64バイトでない場合にも返されます。 + \return Other AESまたはCMAC操作が失敗した場合に返されるその他の負のエラー値。 + + \param key 使用するキーを含むバイトバッファ。 + \param keySz キーバッファの長さ(バイト単位)。 + \param assoc 追加の認証された関連データ(AD)。 + \param assocSz ADバッファの長さ(バイト単位)。 + \param nonce 1回のみ使用される数値。アルゴリズムによってADと同じ方法で使用されます。 + \param nonceSz nonceバッファの長さ(バイト単位)。 + \param in 暗号化する平文バッファ。 + \param inSz 平文バッファの長さ。 + \param siv S2Vによって出力されるSIV(RFC 5297 2.4を参照)。 + \param out 暗号文を保持するバッファ。平文バッファと同じ長さである必要があります。 + _Example_ \code - byte key[] = { some 32, 48, or 64 byte key }; + byte key[] = { 32、48、または64バイトのキー }; byte assoc[] = {0x01, 0x2, 0x3}; byte nonce[] = {0x04, 0x5, 0x6}; byte plainText[] = {0xDE, 0xAD, 0xBE, 0xEF}; @@ -768,9 +981,10 @@ int wc_AesCfbDecrypt(Aes* aes, byte* out, const byte* in, word32 sz); byte cipherText[sizeof(plainText)]; if (wc_AesSivEncrypt(key, sizeof(key), assoc, sizeof(assoc), nonce, sizeof(nonce), plainText, sizeof(plainText), siv, cipherText) != 0) { - // failed to encrypt + // 暗号化に失敗 } \endcode + \sa wc_AesSivDecrypt */ @@ -781,36 +995,767 @@ int wc_AesSivEncrypt(const byte* key, word32 keySz, const byte* assoc, /*! \ingroup AES - \brief この機能は、RFC 5297に記載されているようにSIV(合成初期化ベクトル)復号を実行します - \return 0 復号に成功した場合 - \return BAD_FUNC_ARG 鍵、SIV、または出力バッファがNULLの場合。キーサイズが32,48、または64バイトの場合にも返されます。 - \return AES_SIV_AUTH_E S2Vによって派生したSIVが入力SIVと一致しない場合(RFC 5297 2.7を参照)。 - \return Other その他の負のエラー値。AESまたはCMAC操作が失敗した場合に返されます。 - \param key 使用する鍵を含むバイトバッファ。 - \param keySz 鍵バッファの長さ(バイト単位)。 - \param assoc 追加の認証された関連データ(AD)。 - \param assocSz ADバッファのバイト数 - \param nonce ナンス(一度だけ使用される値)。ADと同じ方法で、基礎となるアルゴリズムによって使用されます。 - \param nonceSz バイト単位のナンスバッファの長さ。 - \param in 復号する暗号文バッファ。 - \param inSz 暗号文バッファの長さ - \param siv 暗号文に付随するSIV(RFC 5297 2.4を参照)。 + \brief この関数は、RFC 5297で説明されているSIV(合成初期化ベクトル)復号を実行します。ゼロ以外のエラーコードが返された場合、出力データは未定義です。ただし、呼び出し元は平文データの漏洩を防ぐために、無条件に出力バッファをゼロ化する必要があります。 + + \return 0 復号に成功した場合。 + \return BAD_FUNC_ARG key、SIV、または出力バッファがNULLの場合に返されます。また、キーサイズが32、48、または64バイトでない場合にも返されます。 + \return AES_SIV_AUTH_E S2Vによって導出されたSIVが入力SIVと一致しない場合(RFC 5297 2.7を参照)。 + \return Other AESまたはCMAC操作が失敗した場合に返されるその他の負のエラー値。 + + \param key 使用するキーを含むバイトバッファ。 + \param keySz キーバッファの長さ(バイト単位)。 + \param assoc 追加の認証された関連データ(AD)。 + \param assocSz ADバッファの長さ(バイト単位)。 + \param nonce 1回のみ使用される数値。基盤となるアルゴリズムによってADと同じ方法で使用されます。 + \param nonceSz nonceバッファの長さ(バイト単位)。 + \param in 復号する暗号文バッファ。 + \param inSz 暗号文バッファの長さ。 + \param siv 暗号文に付随するSIV(RFC 5297 2.4を参照)。 + \param out 復号された平文を保持するバッファ。暗号文バッファと同じ長さである必要があります。 + _Example_ \code - byte key[] = { some 32, 48, or 64 byte key }; + byte key[] = { 32、48、または64バイトのキー }; byte assoc[] = {0x01, 0x2, 0x3}; byte nonce[] = {0x04, 0x5, 0x6}; byte cipherText[] = {0xDE, 0xAD, 0xBE, 0xEF}; - byte siv[AES_BLOCK_SIZE] = { the SIV that came with the ciphertext }; + byte siv[AES_BLOCK_SIZE] = { 暗号文に付属していたSIV }; byte plainText[sizeof(cipherText)]; if (wc_AesSivDecrypt(key, sizeof(key), assoc, sizeof(assoc), nonce, sizeof(nonce), cipherText, sizeof(cipherText), siv, plainText) != 0) { - // failed to decrypt + // 復号に失敗 } \endcode + \sa wc_AesSivEncrypt */ int wc_AesSivDecrypt(const byte* key, word32 keySz, const byte* assoc, word32 assocSz, const byte* nonce, word32 nonceSz, const byte* in, word32 inSz, byte* siv, byte* out); + + + + + + + +/*! + \ingroup AES + + \brief この関数は、「EAX: A Conventional Authenticated-Encryption Mode」(https://eprint.iacr.org/2003/069)で説明されているAES EAX暗号化と認証を実行します。これは、すべての暗号化と認証操作を1つの関数呼び出しで実行する「ワンショット」APIです。 + + \return 0 暗号化に成功した場合。 + \return BAD_FUNC_ARG 入力または出力バッファがNULLの場合に返されます。また、キーサイズが有効なAESキーサイズ(16、24、または32バイト)でない場合にも返されます + \return other AESまたはCMAC操作が失敗した場合に返されるその他の負のエラー値。 + + \param key 使用するキーを含むバッファ + \param keySz キーバッファの長さ(バイト単位) + \param[out] out 暗号文を保持するバッファ。平文バッファと同じ長さである必要があります + \param in 暗号化する平文バッファ + \param inSz 平文バッファの長さ + \param nonce EAX操作に使用する暗号ナンス + \param nonceSz nonceバッファの長さ(バイト単位) + \param[out] authTag 認証タグを格納するバッファへのポインタ + \param authTagSz 希望する認証タグの長さ + \param authIn 認証する入力データを含むバッファへのポインタ + \param authInSz 入力認証データの長さ + + _Example_ + \code + byte key[] = { 32、48、または64バイトのキー }; + byte nonce[] = {0x04, 0x5, 0x6}; + byte plainText[] = {0xDE, 0xAD, 0xBE, 0xEF}; + byte authIn[] = {0x01, 0x2, 0x3}; + + byte cipherText[sizeof(plainText)]; // 出力暗号文 + byte authTag[length, up to AES_BLOCK_SIZE]; // 出力authTag + + if (wc_AesEaxEncrypt(key, sizeof(key), + cipherText, plainText, sizeof(plainText), + nonce, sizeof(nonce), + authTag, sizeof(authTag), + authIn, sizeof(authIn)) != 0) { + // 暗号化に失敗 + } + + \endcode + + \sa wc_AesEaxDecryptAuth + +*/ +WOLFSSL_API int wc_AesEaxEncryptAuth(const byte* key, word32 keySz, byte* out, + const byte* in, word32 inSz, + const byte* nonce, word32 nonceSz, + /* 計算された認証タグの出力 */ + byte* authTag, word32 authTagSz, + /* 認証する入力データ */ + const byte* authIn, word32 authInSz); +/*! + \ingroup AES + + \brief この関数は、「EAX: A Conventional Authenticated-Encryption Mode」(https://eprint.iacr.org/2003/069)で説明されているAES EAX復号と認証を実行します。これは、すべての復号と認証操作を1つの関数呼び出しで実行する「ワンショット」APIです。ゼロ以外のエラーコードが返された場合、出力データは未定義です。ただし、呼び出し元は平文データの漏洩を防ぐために、無条件に出力バッファをゼロ化する必要があります。 + + \return 0 復号に成功した場合 + \return BAD_FUNC_ARG 入力または出力バッファがNULLの場合に返されます。また、キーサイズが有効なAESキーサイズ(16、24、または32バイト)でない場合にも返されます + \return AES_EAX_AUTH_E 認証タグが提供された認証コードベクトル \c authTag と一致しない場合 + \return other AESまたはCMAC操作が失敗した場合に返されるその他の負のエラー値。 + + \param key 使用するキーを含むバイトバッファ + \param keySz キーバッファの長さ(バイト単位) + \param[out] out 平文を保持するバッファ。入力暗号文バッファと同じ長さである必要があります + \param in 復号する暗号文バッファ + \param inSz 暗号文バッファの長さ + \param nonce EAX操作に使用する暗号ナンス + \param nonceSz nonceバッファの長さ(バイト単位) + \param authTag データの真正性をチェックするために照合する認証タグを保持するバッファ + \param authTagSz 入力認証タグの長さ + \param authIn 認証する入力データを含むバッファへのポインタ + \param authInSz 入力認証データの長さ + + _Example_ + \code + byte key[] = { 32、48、または64バイトのキー }; + byte nonce[] = {0x04, 0x5, 0x6}; + byte cipherText[] = {0xDE, 0xAD, 0xBE, 0xEF}; + byte authIn[] = {0x01, 0x2, 0x3}; + + byte plainText[sizeof(cipherText)]; // 出力平文 + byte authTag[length, up to AES_BLOCK_SIZE]; // 出力authTag + + if (wc_AesEaxDecrypt(key, sizeof(key), + cipherText, plainText, sizeof(plainText), + nonce, sizeof(nonce), + authTag, sizeof(authTag), + authIn, sizeof(authIn)) != 0) { + // 暗号化に失敗 + } + + \endcode + + \sa wc_AesEaxEncryptAuth + +*/ +WOLFSSL_API int wc_AesEaxDecryptAuth(const byte* key, word32 keySz, byte* out, + const byte* in, word32 inSz, + const byte* nonce, word32 nonceSz, + /* 検証する認証タグ */ + const byte* authTag, word32 authTagSz, + /* 認証する入力データ */ + const byte* authIn, word32 authInSz); + +/*! + \ingroup AES + \brief この関数は、認証付き暗号化または復号で使用するAesEaxオブジェクトを初期化します。この関数は、AES EAX増分APIのいずれかと使用する前に、AesEaxオブジェクトに対して呼び出す必要があります。ワンショットEAX API関数を使用する場合は呼び出す必要はありません。この関数で初期化されたすべてのAesEaxインスタンスは、インスタンスの使用が完了したらwc_AesEaxFree()の呼び出しで解放する必要があります。 + + \return 0 成功した場合 + \return error code 失敗した場合のエラーコード + + \param eax AEAD操作のコンテキストを保持するAES EAX構造体 + \param key 暗号化と復号のための16、24、または32バイトの秘密鍵 + \param keySz 提供されたキーの長さ(バイト単位) + \param nonce EAX操作に使用する暗号ナンス + \param nonceSz nonceバッファの長さ(バイト単位) + \param authIn (オプション)認証ストリームに追加する入力データ + 使用しない場合、この引数はNULLである必要があります + \param authInSz 入力認証データのサイズ(バイト単位) + + _Example_ + \code + AesEax eax; + key[] = { 16、24、または32バイト長のキー }; + nonce[] = { 任意の長さのnonce }; + authIn[] = { 認証ストリームに追加するデータ }; + plainText[] = {暗号化する平文データ}; + + cipherText[sizeof(plainText)]; // cipherTextを保持するバッファ + authTag[length, up to AES_BLOCK_SIZE]; // 計算された認証データを保持するバッファ + + AesEax eax; + + if ((ret = wc_AesEaxInit(eax, + key, keySz, + nonce, nonceSz, + authIn, authInSz)) != 0) { + goto cleanup; + } + + // さらに認証データを追加したい場合は、この時点で提供できます + // そうでない場合は、authInパラメータにNULLを使用し、authInサイズは0です + if ((ret = wc_AesEaxEncryptUpdate(eax, + cipherText, plainText, sizeof(plainText), + NULL, 0)) != 0) { + goto cleanup; + } + + if ((ret = wc_AesEaxEncryptFinal(eax, authTag, sizeof(authTag))) != 0) { + goto cleanup; + } + + cleanup: + wc_AesEaxFree(eax); + \endcode + + \sa wc_AesEaxEncryptUpdate + \sa wc_AesEaxDecryptUpdate + \sa wc_AesEaxAuthDataUpdate + \sa wc_AesEaxEncryptFinal + \sa wc_AesEaxDecryptFinal + \sa wc_AesEaxFree + +*/ +WOLFSSL_API int wc_AesEaxInit(AesEax* eax, + const byte* key, word32 keySz, + const byte* nonce, word32 nonceSz, + const byte* authIn, word32 authInSz); + +/*! + \ingroup AES + \brief この関数は、AES EAXを使用して入力データを暗号化し、オプションで認証ストリームにさらに入力データを追加します。\c eax は、\ref wc_AesEaxInit の呼び出しで事前に初期化されている必要があります。 + + \return 0 成功した場合 + \return error code 失敗した場合のエラーコード + + \param eax AEAD操作のコンテキストを保持するAES EAX構造体 + \param[out] out 暗号文を保持する出力バッファ + \param in 暗号化する平文を保持する入力バッファ + \param inSz 入力データバッファのサイズ(バイト単位) + \param authIn (オプション)認証ストリームに追加する入力データ + 使用しない場合、この引数はNULLである必要があります + \param authInSz 入力認証データのサイズ(バイト単位) + + _Example_ + \code + AesEax eax; + key[] = { 16、24、または32バイト長のキー }; + nonce[] = { 任意の長さのnonce }; + authIn[] = { 認証ストリームに追加するデータ }; + plainText[] = {暗号化する平文データ}; + + cipherText[sizeof(plainText)]; // cipherTextを保持するバッファ + authTag[length, up to AES_BLOCK_SIZE]; // 計算された認証データを保持するバッファ + + AesEax eax; + + if ((ret = wc_AesEaxInit(eax, + key, keySz, + nonce, nonceSz, + authIn, authInSz)) != 0) { + goto cleanup; + } + + // さらに認証データを追加したい場合は、この時点で提供できます + // そうでない場合は、authInパラメータにNULLを使用し、authInSzは0です + if ((ret = wc_AesEaxEncryptUpdate(eax, + cipherText, plainText, sizeof(plainText), + NULL, 0)) != 0) { + goto cleanup; + } + + if ((ret = wc_AesEaxEncryptFinal(eax, authTag, sizeof(authTag))) != 0) { + goto cleanup; + } + + cleanup: + wc_AesEaxFree(eax); + \endcode + + \sa wc_AesEaxInit + \sa wc_AesEaxDecryptUpdate + \sa wc_AesEaxAuthDataUpdate + \sa wc_AesEaxEncryptFinal + \sa wc_AesEaxDecryptFinal + \sa wc_AesEaxFree + +*/ +WOLFSSL_API int wc_AesEaxEncryptUpdate(AesEax* eax, byte* out, + const byte* in, word32 inSz, + const byte* authIn, word32 authInSz); + +/*! + \ingroup AES + \brief この関数は、AES EAXを使用して入力データを復号し、オプションで認証ストリームにさらに入力データを追加します。\c eax は、\ref wc_AesEaxInit の呼び出しで事前に初期化されている必要があります。 + + \return 0 成功した場合 + \return error code 失敗した場合のエラーコード + + \param eax AEAD操作のコンテキストを保持するAES EAX構造体 + \param[out] out 復号された平文を保持する出力バッファ + \param in 暗号文を保持する入力バッファ + \param inSz 入力データバッファのサイズ(バイト単位) + \param authIn (オプション)認証ストリームに追加する入力データ + 使用しない場合、この引数はNULLである必要があります + \param authInSz 入力認証データのサイズ(バイト単位) + + + _Example_ + \code + AesEax eax; + key[] = { 16、24、または32バイト長のキー }; + nonce[] = { 任意の長さのnonce }; + authIn[] = { 認証ストリームに追加するデータ }; + cipherText[] = {暗号化されたデータ}; + + plainText[sizeof(cipherText)]; // 復号されたデータを保持するバッファ + // 認証タグは、暗号化AEAD操作によって別の場所で生成されます + authTag[length, up to AES_BLOCK_SIZE] = { 認証タグ }; + + AesEax eax; + + if ((ret = wc_AesEaxInit(eax, + key, keySz, + nonce, nonceSz, + authIn, authInSz)) != 0) { + goto cleanup; + } + + // さらに認証データを追加したい場合は、この時点で提供できます + // そうでない場合は、authInパラメータにNULLを使用し、authInSzは0です + if ((ret = wc_AesEaxDecryptUpdate(eax, + plainText, cipherText, sizeof(cipherText), + NULL, 0)) != 0) { + goto cleanup; + } + + if ((ret = wc_AesEaxDecryptFinal(eax, authTag, sizeof(authTag))) != 0) { + goto cleanup; + } + + cleanup: + wc_AesEaxFree(eax); + \endcode + + \sa wc_AesEaxInit + \sa wc_AesEaxEncryptUpdate + \sa wc_AesEaxAuthDataUpdate + \sa wc_AesEaxEncryptFinal + \sa wc_AesEaxDecryptFinal + \sa wc_AesEaxFree + +*/ +WOLFSSL_API int wc_AesEaxDecryptUpdate(AesEax* eax, byte* out, + const byte* in, word32 inSz, + const byte* authIn, word32 authInSz); +/*! + \ingroup AES + \brief この関数は、認証ストリームに入力データを追加します。\c eax は、\ref wc_AesEaxInit の呼び出しで事前に初期化されている必要があります。 + + \return 0 成功した場合 + \return error code 失敗した場合のエラーコード + + \param eax AEAD操作のコンテキストを保持するAES EAX構造体 + \param authIn 認証ストリームに追加する入力データ + \param authInSz 入力認証データのサイズ(バイト単位) + + _Example_ + \code + AesEax eax; + key[] = { 16、24、または32バイト長のキー }; + nonce[] = { 任意の長さのnonce }; + authIn[] = { 認証ストリームに追加するデータ }; + cipherText[] = {暗号化されたデータ}; + + plainText[sizeof(cipherText)]; // 復号されたデータを保持するバッファ + // 認証タグは、暗号化AEAD操作によって別の場所で生成されます + authTag[length, up to AES_BLOCK_SIZE] = { 認証タグ }; + + AesEax eax; + + // ここでは追加する認証データなし + if ((ret = wc_AesEaxInit(eax, + key, keySz, + nonce, nonceSz, + NULL, 0)) != 0) { + goto cleanup; + } + + // ここでは追加する認証データなし、後でwc_AesEaxAuthDataUpdateで追加 + if ((ret = wc_AesEaxDecryptUpdate(eax, + plainText, cipherText, sizeof(cipherText), + NULL, 0)) != 0) { + goto cleanup; + } + + if ((ret = wc_AesEaxAuthDataUpdate(eax, authIn, sizeof(authIn))) != 0) { + goto cleanup; + } + + if ((ret = wc_AesEaxDecryptFinal(eax, authTag, sizeof(authTag))) != 0) { + goto cleanup; + } + + cleanup: + wc_AesEaxFree(eax); + \endcode + + \sa wc_AesEaxInit + \sa wc_AesEaxEncryptUpdate + \sa wc_AesEaxDecryptUpdate + \sa wc_AesEaxEncryptFinal + \sa wc_AesEaxDecryptFinal + \sa wc_AesEaxFree + +*/ +WOLFSSL_API int wc_AesEaxAuthDataUpdate(AesEax* eax, + const byte* authIn, word32 authInSz); + +/*! + \ingroup AES + \brief この関数は、暗号化AEAD操作を完了し、現在の認証ストリームに対して認証タグを生成します。\c eax は、\ref wc_AesEaxInit の呼び出しで事前に初期化されている必要があります。\c AesEax コンテキスト構造体の使用が完了したら、\ref wc_AesEaxFree を使用して必ず解放してください。 + + \return 0 成功した場合 + \return error code 失敗した場合のエラーコード + + \param eax AEAD操作のコンテキストを保持するAES EAX構造体 + \param authTag[out] 計算された認証タグを保持するバッファ + \param authTagSz \c authTag のサイズ(バイト単位) + + _Example_ + \code + AesEax eax; + key[] = { 16、24、または32バイト長のキー }; + nonce[] = { 任意の長さのnonce }; + authIn[] = { 認証ストリームに追加するデータ }; + plainText[] = {暗号化する平文データ}; + cipherText[sizeof(plainText)]; // cipherTextを保持するバッファ + authTag[length, up to AES_BLOCK_SIZE]; // 計算された認証データを保持するバッファ + + AesEax eax; + + if ((ret = wc_AesEaxInit(eax, + key, keySz, + nonce, nonceSz, + authIn, authInSz)) != 0) { + goto cleanup; + } + + // さらに認証データを追加したい場合は、この時点で提供できます + // そうでない場合は、authInパラメータにNULLを使用し、authInSzは0です + if ((ret = wc_AesEaxEncryptUpdate(eax, + cipherText, plainText, sizeof(plainText), + NULL, 0)) != 0) { + goto cleanup; + } + + if ((ret = wc_AesEaxEncryptFinal(eax, authTag, sizeof(authTag))) != 0) { + goto cleanup; + } + + cleanup: + wc_AesEaxFree(eax); + \endcode + + \sa wc_AesEaxInit + \sa wc_AesEaxEncryptUpdate + \sa wc_AesEaxDecryptUpdate + \sa wc_AesEaxAuthDataUpdate + \sa wc_AesEaxDecryptFinal + \sa wc_AesEaxFree + +*/ +WOLFSSL_API int wc_AesEaxEncryptFinal(AesEax* eax, + byte* authTag, word32 authTagSz); + +/*! + \ingroup AES + \brief この関数は、復号AEAD操作を完了し、認証タグの計算を完了して、ユーザが提供したタグに対してその有効性をチェックします。\c eax は、\ref wc_AesEaxInit の呼び出しで事前に初期化されている必要があります。\c AesEax コンテキスト構造体の使用が完了したら、\ref wc_AesEaxFree を使用して必ず解放してください。 + + \return 0 データが正常に認証された場合 + \return AES_EAX_AUTH_E 認証タグが提供された認証コードベクトル \c authIn と一致しない場合 + \return other error code 失敗した場合のその他のエラーコード + + \param eax AEAD操作のコンテキストを保持するAES EAX構造体 + \param authIn 計算された認証タグと照合するための入力認証タグ + \param authInSz \c authIn のサイズ(バイト単位) + + _Example_ + \code + AesEax eax; + key[] = { 16、24、または32バイト長のキー }; + nonce[] = { 任意の長さのnonce }; + authIn[] = { 認証ストリームに追加するデータ }; + cipherText[] = {暗号化されたデータ}; + + plainText[sizeof(cipherText)]; // 復号されたデータを保持するバッファ + // 認証タグは、暗号化AEAD操作によって別の場所で生成されます + authTag[length, up to AES_BLOCK_SIZE] = { 認証タグ }; + + AesEax eax; + + if ((ret = wc_AesEaxInit(eax, + key, keySz, + nonce, nonceSz, + authIn, authInSz)) != 0) { + goto cleanup; + } + + // さらに認証データを追加したい場合は、この時点で提供できます + // そうでない場合は、authInパラメータにNULLを使用し、authInSzは0です + if ((ret = wc_AesEaxDecryptUpdate(eax, + plainText, cipherText, sizeof(cipherText), + NULL, 0)) != 0) { + goto cleanup; + } + + if ((ret = wc_AesEaxDecryptFinal(eax, authTag, sizeof(authTag))) != 0) { + goto cleanup; + } + + cleanup: + wc_AesEaxFree(eax); + \endcode + + \sa wc_AesEaxInit + \sa wc_AesEaxEncryptUpdate + \sa wc_AesEaxDecryptUpdate + \sa wc_AesEaxAuthDataUpdate + \sa wc_AesEaxEncryptFinal + \sa wc_AesEaxFree + +*/ +WOLFSSL_API int wc_AesEaxDecryptFinal(AesEax* eax, + const byte* authIn, word32 authInSz); +/*! + \ingroup AES + + \brief この関数は、AesEaxラッパー構造体内のAesインスタンスによって使用されるリソース、特にキーを解放します。wc_AesEaxInitで初期化された後、すべての必要なEAX操作が完了した時点でAesEax構造体に対して呼び出す必要があります。 + + \return 0 成功 + + \param eax 解放するAES EAXインスタンス + + _Example_ + \code + AesEax eax; + + if(wc_AesEaxInit(eax, key, keySz, nonce, nonceSz, authIn, authInSz) != 0) { + // エラーを処理し、その後解放 + wc_AesEaxFree(&eax); + } + \endcode + + \sa wc_AesEaxInit + \sa wc_AesEaxEncryptUpdate + \sa wc_AesEaxDecryptUpdate + \sa wc_AesEaxAuthDataUpdate + \sa wc_AesEaxEncryptFinal + \sa wc_AesEaxDecryptFinal +*/ +WOLFSSL_API int wc_AesEaxFree(AesEax* eax); + +/*! + \ingroup AES + \brief この関数は、CTSモードを使用してAES暗号化を実行します。これは、すべての操作を1回の呼び出しで処理するワンショットAPIです。 + + \return 0 暗号化に成功した場合。 + \return BAD_FUNC_ARG 入力引数が無効な場合。 + \return other negative error codes 暗号化失敗のためのその他の負のエラーコード。 + + \param key 暗号化に使用されるAESキーへのポインタ。 + \param keySz AESキーのサイズ(バイト単位)(16、24、または32バイト)。 + \param[out] out 暗号化された暗号文を保持するバッファ。少なくとも入力と同じサイズである必要があります。 + \param in 暗号化する平文入力データへのポインタ。 + \param inSz 平文入力データのサイズ(バイト単位)。 + \param iv 暗号化に使用される初期化ベクトル(IV)へのポインタ。16バイトである必要があります。 + + _Example_ + \code + byte key[16] = { 0 }; + byte iv[16] = { 0 }; + byte plaintext[] = { 0x01, 0x02, 0x03, 0x04, 0x05 }; + byte ciphertext[sizeof(plaintext)]; + + int ret = wc_AesCtsEncrypt(key, sizeof(key), ciphertext, plaintext, + sizeof(plaintext), iv); + if (ret != 0) { + // 暗号化エラーを処理 + } + \endcode + + \sa wc_AesCtsDecrypt +*/ +int wc_AesCtsEncrypt(const byte* key, word32 keySz, byte* out, + const byte* in, word32 inSz, + const byte* iv); + +/*! + \ingroup AES + \brief この関数は、CTSモードを使用してAES暗号化を実行します。これは、すべての操作を1回の呼び出しで処理するワンショットAPIです。 + + \return 0 暗号化に成功した場合。 + \return BAD_FUNC_ARG 入力引数が無効な場合。 + \return other negative error codes 暗号化失敗のためのその他の負のエラーコード。 + + \param key 暗号化に使用されるAESキーへのポインタ。 + \param keySz AESキーのサイズ(バイト単位)(16、24、または32バイト)。 + \param[out] out 暗号化された暗号文を保持するバッファ。少なくとも入力平文と同じサイズである必要があります。 + \param in 暗号化する平文入力データへのポインタ。 + \param inSz 平文入力データのサイズ(バイト単位)。 + \param iv 暗号化に使用される初期化ベクトル(IV)へのポインタ。16バイトである必要があります。 + _Example_ + \code + byte key[16] = { 0 }; + byte iv[16] = { 0 }; + byte plaintext[] = { 0x01, 0x02, 0x03, 0x04, 0x05 }; + byte ciphertext[sizeof(plaintext)]; + int ret = wc_AesCtsEncrypt(key, sizeof(key), ciphertext, plaintext, + sizeof(plaintext), iv); + if (ret != 0) { + // 暗号化エラーを処理 + } + \endcode + \sa wc_AesCtsDecrypt +*/ +int wc_AesCtsEncrypt(const byte* key, word32 keySz, byte* out, + const byte* in, word32 inSz, + const byte* iv); + +/*! + \ingroup AES + \brief この関数は、CTSモードを使用してAES復号を実行します。これは、すべての操作を1回の呼び出しで処理するワンショットAPIです。 + \return 0 復号に成功した場合。 + \return BAD_FUNC_ARG 入力引数が無効な場合。 + \return other negative error codes 復号失敗のためのその他の負のエラーコード。 + \param key 復号に使用されるAESキーへのポインタ。 + \param keySz AESキーのサイズ(バイト単位)(16、24、または32バイト)。 + \param[out] out 復号された平文を保持するバッファ。少なくとも入力暗号文と同じサイズである必要があります。 + \param in 復号する暗号文入力データへのポインタ。 + \param inSz 暗号文入力データのサイズ(バイト単位)。 + \param iv 復号に使用される初期化ベクトル(IV)へのポインタ。16バイトである必要があります。 + _Example_ + \code + byte key[16] = { 0 }; + byte iv[16] = { 0 }; + byte ciphertext[] = { 0x01, 0x02, 0x03, 0x04, 0x05 }; + byte plaintext[sizeof(ciphertext)]; + int ret = wc_AesCtsDecrypt(key, sizeof(key), plaintext, ciphertext, + sizeof(ciphertext), iv); + if (ret != 0) { + // 復号エラーを処理 + } + \endcode + \sa wc_AesCtsEncrypt +*/ +int wc_AesCtsDecrypt(const byte* key, word32 keySz, byte* out, + const byte* in, word32 inSz, + const byte* iv); + +/*! + \ingroup AES + \brief この関数は、AES CTS暗号化の更新ステップを実行します。平文のチャンクを処理し、中間データを保存します。 + \return 0 処理に成功した場合。 + \return BAD_FUNC_ARG 入力引数が無効な場合。 + \param aes 操作のコンテキストを保持するAes構造体へのポインタ。 + \param[out] out 暗号化された暗号文を保持するバッファ。この更新ステップからの出力を保存するのに十分な大きさである必要があります。 + \param[out] outSz \c out バッファに書き込まれた出力データのサイズ(バイト単位)。入力時には、\c out バッファに書き込むことができる最大バイト数を含める必要があります。 + \param in 暗号化する平文入力データへのポインタ。 + \param inSz 平文入力データのサイズ(バイト単位)。 + _Example_ + \code + Aes aes; + wc_AesInit(&aes, NULL, INVALID_DEVID); + byte key[16] = { 0 }; + byte iv[16] = { 0 }; + byte plaintext[] = { ... }; + byte ciphertext[sizeof(plaintext)]; + word32 outSz = sizeof(ciphertext); + wc_AesSetKey(&aes, key, sizeof(key), iv, AES_ENCRYPTION); + int ret = wc_AesCtsEncryptUpdate(&aes, ciphertext, &outSz, plaintext, sizeof(plaintext)); + if (ret != 0) { + // エラーを処理 + } + wc_AesFree(&aes); + \endcode + \sa wc_AesCtsDecryptUpdate +*/ +int wc_AesCtsEncryptUpdate(Aes* aes, byte* out, word32* outSz, + const byte* in, word32 inSz); + +/*! + \ingroup AES + \brief この関数は、AES CTS暗号化操作を完了します。残りの平文を処理し、暗号化を完了します。 + \return 0 暗号化の完了に成功した場合。 + \return BAD_FUNC_ARG 入力引数が無効な場合。 + \param aes 操作のコンテキストを保持するAes構造体へのポインタ。 + \param[out] out 最終的な暗号化された暗号文を保持するバッファ。この最終ステップから残りの暗号文を保存するのに十分な大きさである必要があります。 + \param[out] outSz \c out バッファに書き込まれた出力データのサイズ(バイト単位)。入力時には、\c out バッファに書き込むことができる最大バイト数を含める必要があります。 + _Example_ + \code + Aes aes; + wc_AesInit(&aes, NULL, INVALID_DEVID); + byte key[16] = { 0 }; + byte iv[16] = { 0 }; + byte plaintext[] = { ... }; + byte ciphertext[sizeof(plaintext)]; + word32 outSz = sizeof(ciphertext); + wc_AesSetKey(&aes, key, sizeof(key), iv, AES_ENCRYPTION); + // wc_AesCtsEncryptUpdateを使用して必要な更新ステップを実行 + int ret = wc_AesCtsEncryptFinal(&aes, ciphertext, &outSz); + if (ret != 0) { + // エラーを処理 + } + wc_AesFree(&aes); + \endcode + \sa wc_AesCtsDecryptFinal +*/ +int wc_AesCtsEncryptFinal(Aes* aes, byte* out, word32* outSz); + +/*! + \ingroup AES + \brief この関数は、AES CTS復号の更新ステップを実行します。暗号文のチャンクを処理し、中間データを保存します。 + \return 0 処理に成功した場合。 + \return BAD_FUNC_ARG 入力引数が無効な場合。 + \param aes 操作のコンテキストを保持するAes構造体へのポインタ。 + \param[out] out 復号された平文を保持するバッファ。この更新ステップからの出力を保存するのに十分な大きさである必要があります。 + \param[out] outSz \c out バッファに書き込まれた出力データのサイズ(バイト単位)。入力時には、\c out バッファに書き込むことができる最大バイト数を含める必要があります。 + \param in 復号する暗号文入力データへのポインタ。 + \param inSz 暗号文入力データのサイズ(バイト単位)。 + _Example_ + \code + Aes aes; + wc_AesInit(&aes, NULL, INVALID_DEVID); + byte key[16] = { 0 }; + byte iv[16] = { 0 }; + byte ciphertext[] = { ... }; + byte plaintext[sizeof(ciphertext)]; + word32 outSz = sizeof(plaintext); + wc_AesSetKey(&aes, key, sizeof(key), iv, AES_DECRYPTION); + int ret = wc_AesCtsDecryptUpdate(&aes, plaintext, &outSz, ciphertext, sizeof(ciphertext)); + if (ret != 0) { + // エラーを処理 + } + wc_AesFree(&aes); + \endcode + \sa wc_AesCtsEncryptUpdate +*/ +int wc_AesCtsDecryptUpdate(Aes* aes, byte* out, word32* outSz, + const byte* in, word32 inSz); + +/*! + \ingroup AES + \brief この関数は、AES CTS復号操作を完了します。残りの暗号文を処理し、復号を完了します。 + \return 0 復号の完了に成功した場合。 + \return BAD_FUNC_ARG 入力引数が無効な場合。 + \param aes 操作のコンテキストを保持するAes構造体へのポインタ。 + \param[out] out 最終的な復号された平文を保持するバッファ。この最終ステップから残りの平文を保存するのに十分な大きさである必要があります。 + \param[out] outSz \c out バッファに書き込まれた出力データのサイズ(バイト単位)。入力時には、\c out バッファに書き込むことができる最大バイト数を含める必要があります。 + _Example_ + \code + Aes aes; + wc_AesInit(&aes, NULL, INVALID_DEVID); + byte key[16] = { 0 }; + byte iv[16] = { 0 }; + byte ciphertext[] = { ... }; + byte plaintext[sizeof(ciphertext)]; + word32 outSz = sizeof(plaintext); + wc_AesSetKey(&aes, key, sizeof(key), iv, AES_DECRYPTION); + // wc_AesCtsDecryptUpdateを使用して必要な更新ステップを実行 + int ret = wc_AesCtsDecryptFinal(&aes, plaintext, &outSz); + if (ret != 0) { + // エラーを処理 + } + wc_AesFree(&aes); + \endcode + \sa wc_AesCtsEncryptFinal +*/ +int wc_AesCtsDecryptFinal(Aes* aes, byte* out, word32* outSz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/arc4.h b/doc/dox_comments/header_files-ja/arc4.h index 4c1e6ee91e..ead2a6fcd0 100644 --- a/doc/dox_comments/header_files-ja/arc4.h +++ b/doc/dox_comments/header_files-ja/arc4.h @@ -1,40 +1,51 @@ /*! \ingroup ARC4 - \brief この関数は、バッファ内の入力メッセージを暗号化し、出力バッファーに暗号文を配置するか、またはバッファーから暗号文を復号化したり、ARC4暗号化を使用して、出力バッファーOUTを出力したりします。この関数は暗号化と復号化の両方に使用されます。この方法が呼び出される可能性がある場合は、まずWC_ARC4SETKEYを使用してARC4構造を初期化する必要があります。 + \brief この関数は、バッファinから入力メッセージを暗号化し、暗号文を出力バッファoutに格納するか、またはバッファinから暗号文を復号し、平文を出力バッファoutに格納します。ARC4暗号化を使用します。この関数は暗号化と復号の両方に使用されます。このメソッドを呼び出す前に、wc_Arc4SetKeyを使用してARC4構造体を初期化する必要があります。 + \return none - \param arc4 メッセージの処理に使用されるARC4構造へのポインタ - \param out 処理されたメッセージを保存する出力バッファへのポインタ - \param in プロセスするメッセージを含む入力バッファへのポインタ + + \param arc4 メッセージを処理するために使用されるARC4構造体へのポインタ + \param out 処理されたメッセージを格納する出力バッファへのポインタ + \param in 処理するメッセージを含む入力バッファへのポインタ + \param length 処理するメッセージの長さ + _Example_ \code Arc4 enc; - byte key[] = { key to use for encryption }; + byte key[] = { 暗号化に使用するキー }; wc_Arc4SetKey(&enc, key, sizeof(key)); - byte plain[] = { plain text to encode }; + byte plain[] = { エンコードする平文 }; byte cipher[sizeof(plain)]; byte decrypted[sizeof(plain)]; - // encrypt the plain into cipher + // plainをcipherに暗号化 wc_Arc4Process(&enc, cipher, plain, sizeof(plain)); - // decrypt the cipher + // cipherを復号 wc_Arc4Process(&enc, decrypted, cipher, sizeof(cipher)); \endcode + \sa wc_Arc4SetKey */ int wc_Arc4Process(Arc4* arc4, byte* out, const byte* in, word32 length); /*! \ingroup ARC4 - \brief この関数はARC4オブジェクトのキーを設定し、それを暗号として使用するために初期化します。WC_ARC4PROCESSを使用した暗号化に使用する前に呼び出される必要があります。 + + \brief この関数は、ARC4オブジェクトのキーを設定し、暗号として使用するために初期化します。wc_Arc4Processで暗号化に使用する前に呼び出す必要があります。 + \return none - \param arc4 暗号化に使用されるARC4構造へのポインタ - \param key ARC4構造を初期化するためのキー + + \param arc4 暗号化に使用されるarc4構造体へのポインタ + \param key arc4構造体を初期化するために使用するキー + \param length arc4構造体を初期化するために使用するキーの長さ + _Example_ \code Arc4 enc; - byte key[] = { initialize with key to use for encryption }; + byte key[] = { 暗号化に使用するキーで初期化 }; wc_Arc4SetKey(&enc, key, sizeof(key)); \endcode + \sa wc_Arc4Process */ -int wc_Arc4SetKey(Arc4* arc4, const byte* key, word32 length); +int wc_Arc4SetKey(Arc4* arc4, const byte* key, word32 length); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/ascon.h b/doc/dox_comments/header_files-ja/ascon.h new file mode 100644 index 0000000000..5745f6888d --- /dev/null +++ b/doc/dox_comments/header_files-ja/ascon.h @@ -0,0 +1,452 @@ +/*! + \ingroup ASCON + \brief この関数は、ハッシュ化のためにASCONコンテキストを初期化します。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストポインタがNULLの場合。 + + \param a 初期化するASCONコンテキストへのポインタ。 + + _Example_ + \code + wc_AsconHash256 a; + byte data[] = {0x01, 0x02, 0x03}; + byte hash[ASCON_HASH256_SZ]; + + if (wc_AsconHash256_Init(&a) != 0) + // エラーを処理 + if (wc_AsconHash256_Update(&ctx, data, sizeof(data)) != 0) + // エラーを処理 + if (wc_AsconHash256_Final(&ctx, hash, sizeof(hash)) != 0) + // エラーを処理 + // hashに最終ハッシュが含まれます + \endcode + + \sa wc_AsconHash256_Update + \sa wc_AsconHash256_Final + */ +int wc_AsconHash256_Init(wc_AsconHash256* a); + +/*! + \ingroup ASCON + \brief この関数は、入力データでASCONハッシュを更新します。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストまたは入力ポインタがNULLの場合。 + + \param ctx ASCONコンテキストへのポインタ。 + \param in 入力データへのポインタ。 + \param inSz 入力データのサイズ。 + + _Example_ + \code + wc_AsconHash256 a; + byte data[] = {0x01, 0x02, 0x03}; + byte hash[ASCON_HASH256_SZ]; + + if (wc_AsconHash256_Init(&a) != 0) + // エラーを処理 + if (wc_AsconHash256_Update(&ctx, data, sizeof(data)) != 0) + // エラーを処理 + if (wc_AsconHash256_Final(&ctx, hash, sizeof(hash)) != 0) + // エラーを処理 + // hashに最終ハッシュが含まれます + \endcode + + \sa wc_AsconHash256_Init + \sa wc_AsconHash256_Final + */ +int wc_AsconHash256_Update(wc_AsconHash256* a, const byte* data, word32 dataSz); + +/*! + \ingroup ASCON + \brief この関数は、ASCONハッシュを完了し、出力を生成します。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストまたは出力ポインタがNULLの場合。 + + \param ctx ASCONコンテキストへのポインタ。 + \param out 出力バッファへのポインタ。 + \param outSz 出力バッファのサイズ、少なくともASCON_HASH256_SZである必要があります。 + + _Example_ + \code + wc_AsconHash256 a; + byte data[] = {0x01, 0x02, 0x03}; + byte hash[ASCON_HASH256_SZ]; + + if (wc_AsconHash256_Init(&a) != 0) + // エラーを処理 + if (wc_AsconHash256_Update(&ctx, data, sizeof(data)) != 0) + // エラーを処理 + if (wc_AsconHash256_Final(&ctx, hash, sizeof(hash)) != 0) + // エラーを処理 + // hashに最終ハッシュが含まれます + \endcode + + \sa wc_AsconHash256_Init + \sa wc_AsconHash256_Update + */ +int wc_AsconHash256_Final(wc_AsconHash256* a, byte* hash); + +/*! + \ingroup ASCON + \brief この関数は、新しいAscon AEADコンテキストを割り当てて初期化します。 + + \return pointer 新しく割り当てられたAscon AEADコンテキストへのポインタ + \return NULL 失敗時。 + + _Example_ + \code + wc_AsconAEAD128* a = wc_AsconAEAD128_New(); + if (a == NULL) { + // 割り当てエラーを処理 + } + wc_AsconAEAD128_Free(a); + \endcode + + \sa wc_AsconAEAD128_Free +*/ +wc_AsconAEAD128* wc_AsconAEAD128_New(void); + +/*! + \ingroup ASCON + \brief この関数は、Ascon AEADコンテキストに関連付けられたリソースを解放します。 + + \param a 解放するAscon AEADコンテキストへのポインタ。 + + _Example_ + \code + wc_AsconAEAD128* a = wc_AsconAEAD128_New(); + if (a == NULL) { + // 割り当てエラーを処理 + } + // コンテキストを使用 + wc_AsconAEAD128_Free(a); + \endcode + + \sa wc_AsconAEAD128_New +*/ +void wc_AsconAEAD128_Free(wc_AsconAEAD128 *a); + + +/*! + \ingroup ASCON + \brief この関数は、Ascon AEADコンテキストを初期化します。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストまたは出力ポインタがNULLの場合。 + + \param a 初期化するAscon AEADコンテキストへのポインタ。 + + _Example_ + \code + AsconAead a; + + if (wc_AsconAEAD128_Init(&a) != 0) + // エラーを処理 + \endcode + + \sa wc_AsconAeadEncrypt + \sa wc_AsconAeadDecrypt + */ +int wc_AsconAEAD128_Init(wc_AsconAEAD128* a); + +/*! + \ingroup ASCON + \brief この関数は、Ascon AEADコンテキストを非初期化します。コンテキストは解放しません。 + + \param a 非初期化するAscon AEADコンテキストへのポインタ。 + + _Example_ + \code + AsconAead a; + + if (wc_AsconAEAD128_Init(&a) != 0) + // エラーを処理 + wc_AsconAEAD128_Clear(&a); + \endcode + + \sa wc_AsconAeadEncrypt + \sa wc_AsconAeadDecrypt + */ +void wc_AsconAEAD128_Clear(wc_AsconAEAD128 *a); + +/*! + \ingroup ASCON + \brief この関数は、Ascon AEADコンテキストの鍵を設定します。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストまたは鍵ポインタがNULLの場合。 + \return BAD_STATE_E 鍵が既に設定されている場合。 + + \param a 初期化されたAscon AEADコンテキストへのポインタ。 + \param key ASCON_AEAD128_KEY_SZの長さの鍵バッファへのポインタ。 + + _Example_ + \code + wc_AsconAEAD128 a; + byte key[ASCON_AEAD128_KEY_SZ] = { ... }; + + if (wc_AsconAEAD128_Init(&a) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetKey(&a, key) != 0) + // エラーを処理 + \endcode + + \sa wc_AsconAEAD128_Init + \sa wc_AsconAEAD128_SetNonce + \sa wc_AsconAEAD128_SetAD +*/ +int wc_AsconAEAD128_SetKey(wc_AsconAEAD128* a, const byte* key); + +/*! + \ingroup ASCON + \brief この関数は、Ascon AEADコンテキストのnonceを設定します。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストまたはnonceポインタがNULLの場合。 + \return BAD_STATE_E nonceが既に設定されている場合。 + + \param a 初期化されたAscon AEADコンテキストへのポインタ。 + \param nonce ASCON_AEAD128_NONCE_SZの長さのnonceバッファへのポインタ。 + + _Example_ + \code + wc_AsconAEAD128 a; + byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... }; + + if (wc_AsconAEAD128_Init(&a) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0) + // エラーを処理 + \endcode + + \sa wc_AsconAEAD128_Init + \sa wc_AsconAEAD128_SetKey + \sa wc_AsconAEAD128_SetAD +*/ +int wc_AsconAEAD128_SetNonce(wc_AsconAEAD128* a, const byte* nonce); + +/*! + \ingroup ASCON + \brief この関数は、Ascon AEADコンテキストの関連データを設定します。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストまたは関連データポインタがNULLの場合。 + \return BAD_STATE_E 鍵またはnonceが設定されていない場合。 + + \param a 初期化されたAscon AEADコンテキストへのポインタ。 + \param ad 関連データバッファへのポインタ。 + \param adSz 関連データバッファのサイズ。 + + _Example_ + \code + wc_AsconAEAD128 a; + byte key[ASCON_AEAD128_KEY_SZ] = { ... }; + byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... }; + byte ad[] = { ... }; + + if (wc_AsconAEAD128_Init(&a) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetKey(&a, key) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetAD(&a, ad, sizeof(ad)) != 0) + // エラーを処理 + \endcode + + \sa wc_AsconAEAD128_Init + \sa wc_AsconAEAD128_SetKey + \sa wc_AsconAEAD128_SetNonce +*/ +int wc_AsconAEAD128_SetAD(wc_AsconAEAD128* a, const byte* ad, word32 adSz); + +/*! + \ingroup ASCON + \brief この関数は、Ascon AEADを使用して平文メッセージを暗号化します。出力はoutバッファに格納されます。出力の長さは入力の長さと等しくなります。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストまたは出力ポインタがNULLの場合、または入力サイズが0より大きいのに入力がNULLの場合。 + \return BAD_STATE_E 鍵、nonce、または追加データが設定されていない場合、またはコンテキストが以前に復号に使用された場合。 + + \param a 初期化されたAscon AEADコンテキストへのポインタ。 + \param out 暗号文を格納する出力バッファへのポインタ。 + \param in 平文メッセージを含む入力バッファへのポインタ。 + \param inSz 入力バッファの長さ。 + + _Example_ + \code + wc_AsconAEAD128 a; + byte key[ASCON_AEAD128_KEY_SZ] = { ... }; + byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... }; + byte plaintext[PLAIN_TEXT_SIZE] = { ... }; + byte ciphertext[CIPHER_TEXT_SIZE]; + byte tag[ASCON_AEAD128_TAG_SZ] = { ... }; + + if (wc_AsconAeadInit(&a) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetKey(&a, key) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetAD(&a, ad, sizeof(ad)) != 0) + // エラーを処理 + if (wc_AsconAEAD128_EncryptUpdate(&a, ciphertext, plaintext, + sizeof(plaintext)) != 0) + // エラーを処理 + if (wc_AsconAEAD128_EncryptFinal(&a, tag) != 0) + // エラーを処理 + \endcode + + \sa wc_AsconAeadInit + \sa wc_AsconAEAD128_Clear + \sa wc_AsconAEAD128_SetKey + \sa wc_AsconAEAD128_SetNonce + \sa wc_AsconAEAD128_SetAD + \sa wc_AsconAEAD128_EncryptFinal + \sa wc_AsconAEAD128_DecryptUpdate + \sa wc_AsconAEAD128_DecryptFinal + */ +int wc_AsconAEAD128_EncryptUpdate(wc_AsconAEAD128* a, byte* out, const byte* in, + word32 inSz); + +/*! + \ingroup ASCON + \brief この関数は、Ascon AEADを使用した暗号化プロセスを完了し、認証タグを生成します。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストまたは出力ポインタがNULLの場合、または入力サイズが0より大きいのに入力がNULLの場合。 + \return BAD_STATE_E 鍵、nonce、または追加データが設定されていない場合、またはコンテキストが以前に復号に使用された場合。 + + \param a 初期化されたAscon AEADコンテキストへのポインタ。 + \param tag 認証タグを格納する出力バッファへのポインタ。 + + _Example_ + \code + wc_AsconAEAD128 a; + byte key[ASCON_AEAD128_KEY_SZ] = { ... }; + byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... }; + byte plaintext[PLAIN_TEXT_SIZE] = { ... }; + byte ciphertext[CIPHER_TEXT_SIZE]; + byte tag[ASCON_AEAD128_TAG_SZ] = { ... }; + + if (wc_AsconAeadInit(&a) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetKey(&a, key) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetAD(&a, ad, sizeof(ad)) != 0) + // エラーを処理 + if (wc_AsconAEAD128_EncryptUpdate(&a, ciphertext, plaintext, + sizeof(plaintext)) != 0) + // エラーを処理 + if (wc_AsconAEAD128_EncryptFinal(&a, tag) != 0) + // エラーを処理 + \endcode + + \sa wc_AsconAEAD128_Init + \sa wc_AsconAEAD128_SetKey + \sa wc_AsconAEAD128_SetNonce + \sa wc_AsconAEAD128_SetAD + \sa wc_AsconAEAD128_EncryptUpdate + \sa wc_AsconAEAD128_DecryptUpdate + \sa wc_AsconAEAD128_DecryptFinal + */ +int wc_AsconAEAD128_EncryptFinal(wc_AsconAEAD128* a, byte* tag); + +/*! + \ingroup ASCON + \brief この関数は、Ascon AEADを使用した復号プロセスを更新します。出力はoutバッファに格納されます。出力の長さは入力の長さと等しくなります。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストまたは出力ポインタがNULLの場合、または入力サイズが0より大きいのに入力がNULLの場合。 + \return BAD_STATE_E 鍵、nonce、または追加データが設定されていない場合、またはコンテキストが以前に暗号化に使用された場合。 + + \param a 初期化されたAscon AEADコンテキストへのポインタ。 + \param out 平文を格納する出力バッファへのポインタ。 + \param in 暗号文メッセージを含む入力バッファへのポインタ。 + \param inSz 入力バッファの長さ。 + + _Example_ + \code + wc_AsconAEAD128 a; + byte key[ASCON_AEAD128_KEY_SZ] = { ... }; + byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... }; + byte ciphertext[CIPHER_TEXT_SIZE] = { ... }; + byte plaintext[PLAIN_TEXT_SIZE]; + byte tag[ASCON_AEAD128_TAG_SZ] = { ... }; + + if (wc_AsconAeadInit(&a) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetKey(&a, key) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetAD(&a, ad, sizeof(ad)) != 0) + // エラーを処理 + if (wc_AsconAEAD128_DecryptUpdate(&a, plaintext, ciphertext, + sizeof(ciphertext)) != 0) + // エラーを処理 + if (wc_AsconAEAD128_DecryptFinal(&a, tag) != 0) + // エラーを処理 + \endcode + + \sa wc_AsconAEAD128_Init + \sa wc_AsconAEAD128_SetKey + \sa wc_AsconAEAD128_SetNonce + \sa wc_AsconAEAD128_SetAD + \sa wc_AsconAEAD128_EncryptUpdate + \sa wc_AsconAEAD128_EncryptFinal + \sa wc_AsconAEAD128_DecryptFinal + */ +int wc_AsconAEAD128_DecryptUpdate(wc_AsconAEAD128* a, byte* out, const byte* in, + word32 inSz); + +/*! + \ingroup ASCON + \brief この関数は、Ascon AEADを使用した復号プロセスを完了し、認証タグを検証します。 + + \return 0 成功時。 + \return BAD_FUNC_ARG コンテキストまたはタグポインタがNULLの場合。 + \return BAD_STATE_E 鍵、nonce、または追加データが設定されていない場合、またはコンテキストが以前に暗号化に使用された場合。 + \return ASCON_AUTH_E 認証タグが一致しない場合。 + + \param a 初期化されたAscon AEADコンテキストへのポインタ。 + \param tag 検証する認証タグを含むバッファへのポインタ + + _Example_ + \code + wc_AsconAEAD128 a; + byte key[ASCON_AEAD128_KEY_SZ] = { ... }; + byte nonce[ASCON_AEAD128_NONCE_SZ] = { ... }; + byte ciphertext[CIPHER_TEXT_SIZE] = { ... }; + byte plaintext[PLAIN_TEXT_SIZE]; + byte tag[ASCON_AEAD128_TAG_SZ] = { ... }; + + if (wc_AsconAeadInit(&a) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetKey(&a, key) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetNonce(&a, nonce) != 0) + // エラーを処理 + if (wc_AsconAEAD128_SetAD(&a, ad, sizeof(ad)) != 0) + // エラーを処理 + if (wc_AsconAEAD128_DecryptUpdate(&a, plaintext, ciphertext, + sizeof(ciphertext)) != 0) + // エラーを処理 + if (wc_AsconAEAD128_DecryptFinal(&a, tag) != 0) + // エラーを処理 + \endcode + + \sa wc_AsconAEAD128_Init + \sa wc_AsconAEAD128_SetKey + \sa wc_AsconAEAD128_SetNonce + \sa wc_AsconAEAD128_SetAD + \sa wc_AsconAEAD128_DecryptUpdate + \sa wc_AsconAEAD128_EncryptUpdate + \sa wc_AsconAEAD128_EncryptFinal + */ +int wc_AsconAEAD128_DecryptFinal(wc_AsconAEAD128* a, const byte* tag); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/asn_public.h b/doc/dox_comments/header_files-ja/asn_public.h index 0cade01b46..a28d7af689 100644 --- a/doc/dox_comments/header_files-ja/asn_public.h +++ b/doc/dox_comments/header_files-ja/asn_public.h @@ -1,13 +1,21 @@ /*! \ingroup ASN - \brief この関数はCert構造体をデフォルトの値で初期化します。デフォルトのオプション:version = 3(0x2)、sigtype = sha_with_rsa、issuer =空白、dayValid = 500、selfsigned = 1(true)発行者としての件名=空白 - \return 成功した場合0を返します。 + + \brief この関数は、デフォルトのオプションでデフォルトの証明書を初期化します: + version = 3(0x2)、serial = 0、sigType = SHA_WITH_RSA、issuer = 空白、 + daysValid = 500、selfSigned = 1(true)発行者としてsubjectを使用、 + subject = 空白 + + \return none 返り値なし。 + + \param cert 初期化する未初期化のcert構造体へのポインタ _Example_ \code Cert myCert; wc_InitCert(&myCert); \endcode + \sa wc_MakeCert \sa wc_MakeCertReq */ @@ -16,14 +24,12 @@ int wc_InitCert(Cert*); /*! \ingroup ASN - \brief この関数は証明書操作の為に新たなCert構造体を割り当てます。 - 割り当てたCert構造体はこの関数内で初期化されるので、wc_InitCert()を呼び出す必要はありません。 - アプリケーションがこのCert構造体の使用を終了する際にはwc_CertFree()を呼び出す必要があります。 + \brief この関数は、証明書操作中に使用するための新しいCert構造体を割り当てます。アプリケーションが構造体自体を割り当てる必要はありません。Cert構造体もこの関数によって初期化されるため、wc_InitCert()を呼び出す必要がなくなります。アプリケーションが割り当てられたCert構造体の使用を終了したら、wc_CertFree()を呼び出す必要があります。 - \return 処理が成功した際には新に割り当てられたCert構造体へのポインタを返します。 - \return メモリ確保に失敗した場合にはNULLを返します。 + \return pointer 成功した場合、呼び出しは新しく割り当てられ初期化されたCertへのポインタを返します。 + \return NULL メモリ割り当て失敗時。 - \param メモリの動的確保で使用されるヒープへのポインタ。NULLの指定も可。 + \param A 動的割り当てに使用されるヒープへのポインタ。NULLでも可。 _Example_ \code @@ -31,7 +37,7 @@ int wc_InitCert(Cert*); myCert = wc_CertNew(NULL); if (myCert == NULL) { - // Cert creation failure + // Cert作成失敗 } \endcode @@ -42,13 +48,14 @@ int wc_InitCert(Cert*); */ Cert* wc_CertNew(void* heap); - /*! \ingroup ASN - \brief この関数はwc_CertNew()で確保されたCert構造体を解放します。 - \return 無し - \param 解放すべきCert構造体へのポインタ + \brief この関数は、wc_CertNew()への以前の呼び出しによってcert構造体に割り当てられたメモリを解放します。 + + \return None. + + \param A 解放するcert構造体へのポインタ。 _Example_ \code @@ -56,7 +63,7 @@ Cert* wc_CertNew(void* heap); myCert = wc_CertNew(NULL); - // Perform cert operations. + // 証明書操作を実行。 wc_CertFree(myCert); \endcode @@ -70,34 +77,34 @@ void wc_CertFree(Cert* cert); /*! \ingroup ASN - \brief CA署名付き証明書を作成するために使用されます。 - サブジェクト情報を入力した後に呼び出す必要があります。 - この関数は、証明書入力からX.509v3 RSAまたはECC証明書を作成しderBufferに書き込みます。 - 証明書を生成するためのRsaKeyまたはEccKeyのいずれかを引数として取ります。 - この関数が呼び出される前に、証明書をwc_InitCertで初期化する必要があります。 - - \return 指定された入力証明書からX509証明書が正常に生成された場合、生成された証明書のサイズを返します。 - \return MEMORY_E xmallocでのメモリ割り当でエラーが発生した場合に返ります。 - \return BUFFER_E 提供されたderBufferが生成された証明書を保存するには小さすぎる場合に返されます - \return Others 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。 - \param cert 初期化されたCert構造体へのポインタ - \param derBuffer 生成された証明書を保持するバッファへのポインタ - \param derSz 証明書を保存するバッファのサイズ - \param rsaKey 証明書の生成に使用されるRSA鍵を含むRsaKey構造体へのポインタ - \param eccKey 証明書の生成に使用されるECC鍵を含むEccKey構造体へのポインタ + + \brief CA署名付き証明書を作成するために使用されます。subject情報が入力された後に呼び出されます。この関数は、cert入力からx509証明書v3 RSAまたはECCを作成します。次に、この証明書をderBufferに書き込みます。証明書を生成するために、rsaKeyまたはeccKeyのいずれかを受け取ります。このメソッドを呼び出す前に、証明書をwc_InitCertで初期化する必要があります。 + + \return Success 指定された入力certからx509証明書を正常に作成すると、生成された証明書のサイズを返します。 + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return BUFFER_E 提供されたderBufferが生成された証明書を格納するには小さすぎる場合に返されます + \return Others 証明書の生成が成功しない場合、追加のエラーメッセージが返される可能性があります。 + + \param cert 初期化されたcert構造体へのポインタ + \param derBuffer 生成された証明書を保持するバッファへのポインタ + \param derSz 証明書を格納するバッファのサイズ + \param rsaKey 証明書の生成に使用されるrsaキーを含むRsaKey構造体へのポインタ + \param eccKey 証明書の生成に使用されるeccキーを含むEccKey構造体へのポインタ + \param rng 証明書を作成するために使用される乱数生成器へのポインタ _Example_ \code Cert myCert; wc_InitCert(&myCert); WC_RNG rng; - //initialize rng; + // rngを初期化; RsaKey key; - //initialize key; + // keyを初期化; byte * derCert = malloc(FOURK_BUF); word32 certSz; certSz = wc_MakeCert(&myCert, derCert, FOURK_BUF, &key, NULL, &rng); \endcode + \sa wc_InitCert \sa wc_MakeCertReq */ @@ -106,31 +113,32 @@ int wc_MakeCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* rsaKey, /*! \ingroup ASN - \brief この関数は、入力されたCert構造体を使用して証明書署名要求を作成しderBufferに書き込みます。 - 証明書要求の生成にはRsaKeyまたはEccKeyのいずれかの鍵を受け取り使用します。 - この関数の後に、署名するためにwc_SignCert()を呼び出す必要があります。 - この関数の使用例については、wolfCryptテストアプリケーション(./wolfcrypt/test/test.c)を参照してください。 - \return 証明書署名要求が正常に生成されると、生成された証明書署名要求のサイズを返します。 - \return MEMORY_E xmallocでのメモリ割り当てでエラーが発生した場合 - \return BUFFER_E 提供されたderBufferが生成された証明書を保存するには小さすぎる場合 - \return Other 証明書署名要求の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。 - \param cert 初期化されたCert構造体へのポインタ - \param derBuffer 生成された証明書署名要求を保持するバッファへのポインタ - \param derSz 証明書署名要求を保存するバッファのサイズ - \param rsaKey 証明書署名要求を生成するために使用されるRSA鍵を含むRsaKey構造体へのポインタ - \param eccKey 証明書署名要求を生成するために使用されるRECC鍵を含むEccKey構造体へのポインタ + + \brief この関数は、入力証明書を使用して証明書署名要求を作成し、出力をderBufferに書き込みます。証明書要求を生成するために、rsaKeyまたはeccKeyのいずれかを受け取ります。証明書署名要求に署名するには、この関数の後にwc_SignCert()を呼び出す必要があります。この関数の使用例については、wolfCryptテストアプリケーション(./wolfcrypt/test/test.c)を参照してください。 + + \return Success 指定された入力certからX.509証明書要求を正常に作成すると、生成された証明書要求のサイズを返します。 + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return BUFFER_E 提供されたderBufferが生成された証明書を格納するには小さすぎる場合に返されます + \return Other 証明書要求の生成が成功しない場合、追加のエラーメッセージが返される可能性があります。 + + \param cert 初期化されたcert構造体へのポインタ + \param derBuffer 生成された証明書要求を保持するバッファへのポインタ + \param derSz 証明書要求を格納するバッファのサイズ + \param rsaKey 証明書要求の生成に使用されるrsaキーを含むRsaKey構造体へのポインタ + \param eccKey 証明書要求の生成に使用されるeccキーを含むEccKey構造体へのポインタ _Example_ \code Cert myCert; - // initialize myCert + // myCertを初期化 EccKey key; - //initialize key; + // keyを初期化; byte* derCert = (byte*)malloc(FOURK_BUF); word32 certSz; certSz = wc_MakeCertReq(&myCert, derCert, FOURK_BUF, NULL, &key); \endcode + \sa wc_InitCert \sa wc_MakeCert */ @@ -139,34 +147,38 @@ int wc_MakeCertReq(Cert* cert, byte* derBuffer, word32 derSz, /*! \ingroup ASN - \brief この関数はバッファーの内容に署名し、署名をバッファの最後に追加します。署名の種類を取ります。 - CA署名付き証明書を作成する場合は、wc_MakeCert()またはwc_MakeCertReq()の後に呼び出す必要があります。 - \return 証明書への署名に成功した場合は、証明書の新しいサイズ(署名を含む)を返します。 - \return MEMORY_E xmallocでのメモリを割り当てでエラーがある場合 - \return BUFFER_E 提供された証明書を保存するには提供されたバッファが小さすぎる場合に返されます。 - \return Other 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。 - \param requestSz 署名対象の証明書本文のサイズ - \param sigType 作成する署名の種類。有効なオプションは次のとおりです:CTC_MD5WRSA、CTC_SHAWRSA、CTC_SHAWECDSA、CTC_SHA256WECDSA、ANDCTC_SHA256WRSA - \param derBuffer 署名対象の証明書を含むバッファへのポインタ。関数の処理成功時には署名が付加された証明書を保持します。 - \param derSz 新たに署名された証明書を保存するバッファの(合計)サイズ - \param rsaKey 証明書に署名するために使用されるRSA鍵を含むRsaKey構造体へのポインタ - \param eccKey 証明書に署名するために使用されるECC鍵を含むEccKey構造体へのポインタ - \param rng 署名に使用する乱数生成器(WC_RNG構造体)へのポインタ + + \brief この関数はbufferに署名し、署名をbufferの末尾に追加します。署名タイプを受け取ります。CA署名付き証明書を作成する場合は、wc_MakeCert()またはwc_MakeCertReq()の後に呼び出す必要があります。 + + \return Success 証明書の署名に成功すると、証明書の新しいサイズ(署名を含む)を返します。 + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return BUFFER_E 提供されたバッファが生成された証明書を格納するには小さすぎる場合に返されます + \return Other 証明書の生成が成功しない場合、追加のエラーメッセージが返される可能性があります。 + + \param requestSz 署名を要求している証明書本文のサイズ + \param sType 作成する署名のタイプ。有効なオプションは:CTC_MD5wRSA、CTC_SHAwRSA、CTC_SHAwECDSA、CTC_SHA256wECDSA、およびCTC_SHA256wRSA + \param buffer 署名される証明書を含むバッファへのポインタ。成功時:新しく署名された証明書を保持します + \param buffSz 新しく署名された証明書を格納するバッファの(合計)サイズ + \param rsaKey 証明書に署名するために使用されるrsaキーを含むRsaKey構造体へのポインタ + \param eccKey 証明書に署名するために使用されるeccキーを含むEccKey構造体へのポインタ + \param rng 証明書に署名するために使用される乱数生成器へのポインタ _Example_ \code Cert myCert; byte* derCert = (byte*)malloc(FOURK_BUF); - // initialize myCert, derCert + // myCert、derCertを初期化 RsaKey key; - // initialize key; + // keyを初期化; WC_RNG rng; - // initialize rng + // rngを初期化 word32 certSz; - certSz = wc_SignCert(myCert.bodySz, myCert.sigType, derCert, FOURK_BUF, - &key, NULL, &rng); + certSz = wc_SignCert(myCert.bodySz, myCert.sigType,derCert,FOURK_BUF, + &key, NULL, + &rng); \endcode + \sa wc_InitCert \sa wc_MakeCert */ @@ -175,31 +187,34 @@ int wc_SignCert(int requestSz, int sigType, byte* derBuffer, /*! \ingroup ASN - \brief この関数は、以前の2つの関数、wc_MakeCert、および自己署名のためのwc_SignCertの組み合わせです(前の関数はCA要求に使用される場合があります)。 - 証明書を作成してから、それに署名し、自己署名証明書を生成します。 - \return 証明書への署名が成功した場合は、証明書の新しいサイズを返します。 - \return MEMORY_E xmallocでのメモリを割り当てでエラーがある場合 - \return BUFFER_E 提供された証明書を保存するには提供されたバッファが小さすぎる場合に返されます。 - \return Other 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。 - \param cert 署名する対象のCert構造体へのポインタ - \param derBuffer 署名付き証明書を保持するためのバッファへのポインタ - \param derSz 署名付き証明書を保存するバッファのサイズ - \param key 証明書に署名するために使用されるRSA鍵を含むRsaKey構造体へのポインタ - \param rng 署名に使用する乱数生成器(WC_RNG構造体)へのポインタ + + \brief この関数は、自己署名用の前の2つの関数、wc_MakeCertとwc_SignCertの組み合わせです(前の関数はCA要求に使用できます)。証明書を作成してから署名し、自己署名証明書を生成します。 + + \return Success 証明書の署名に成功すると、証明書の新しいサイズを返します。 + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return BUFFER_E 提供されたバッファが生成された証明書を格納するには小さすぎる場合に返されます + \return Other 証明書の生成が成功しない場合、追加のエラーメッセージが返される可能性があります。 + + \param cert 作成して署名する証明書へのポインタ + \param buffer 署名された証明書を保持するバッファへのポインタ + \param buffSz 署名された証明書を格納するバッファのサイズ + \param key 証明書に署名するために使用されるrsaキーを含むRsaKey構造体へのポインタ + \param rng 証明書の生成と署名に使用される乱数生成器へのポインタ _Example_ \code Cert myCert; byte* derCert = (byte*)malloc(FOURK_BUF); - // initialize myCert, derCert + // myCert、derCertを初期化 RsaKey key; - // initialize key; + // keyを初期化; WC_RNG rng; - // initialize rng + // rngを初期化 word32 certSz; certSz = wc_MakeSelfCert(&myCert, derCert, FOURK_BUF, &key, NULL, &rng); \endcode + \sa wc_InitCert \sa wc_MakeCert \sa wc_SignCert @@ -210,38 +225,35 @@ int wc_MakeSelfCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* key, /*! \ingroup ASN - \brief この関数はPEM形式のissureFileで与えられた発行者を証明書の発行者として設定します。 - また、その際に、証明書の自己署名プロパティをfalseに変更します。 - 発行者は証明書の発行者として設定される前に検証されます。 - この関数は証明書への署名に先立ち呼び出される必要があります。 - - \return 0 証明書の発行者の設定に成功した場合に返されます。 - \return MEMORY_E XMALLOCでメモリの確保に失敗した際に返されます。 - \return ASN_PARSE_E 証明書のヘッダーファイルの解析に失敗した際に返されます。 - \return ASN_OBJECT_ID_E 証明書の暗号タイプの解析でエラーが発生した際に返されます。 - \return ASN_EXPECT_0_E 証明書の暗号化仕様にフォーマットエラーが検出された際に返されます。 - \return ASN_BEFORE_DATE_E 証明書の使用開始日より前であった場合に返されます。 - \return ASN_AFTER_DATE_E 証明書の有効期限日より後であった場合に返されます。 - \return ASN_BITSTR_E 証明書のビットストリング要素の解析でエラーが発生した際に返されます。 - \return ECC_CURVE_OID_E 証明書のECC鍵の解析でエラーが発生した際に返されます。 - \return ASN_UNKNOWN_OID_E 証明書が未知のオブジェクトIDを使用していた際に返されます。 - \return ASN_VERSION_E ALLOW_V1_EXTENSIONSマクロが定義されていないのに証明書がV1あるいはV2形式であった場合に返されます。 - \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 - \return ASN_CRIT_EXT_E 証明書の解析中に未知のクリティカル拡張に遭遇した際に返されます。 - \return ASN_SIG_OID_E 署名暗号化タイプが引数で渡された証明書のタイプと異なる場合に返されます。 - \return ASN_SIG_CONFIRM_E 証明書の署名の検証に失敗した際に返されます。 - \return ASN_NAME_INVALID_E 証明書の名前がCAの名前に関数制限によって許されていない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の発行者を検証することができない場合に返されます。 - - \param cert 発行者を設定する対象のCert構造体へのポインタ - \param issuerFile PEM形式の証明書ファイルへのファイルパス + \brief この関数は、証明書の発行者を、提供されたpem issuerFileの発行者に設定します。また、証明書の自己署名属性をfalseに変更します。issuerFileで指定された発行者は、cert発行者を設定する前に検証されます。このメソッドは、署名前にフィールドを設定するために使用されます。 + + \return 0 証明書の発行者を正常に設定した場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_PARSE_E 証明書ヘッダーファイルの解析エラーがある場合に返されます + \return ASN_OBJECT_ID_E 証明書から暗号化タイプを解析する際にエラーがある場合に返されます + \return ASN_EXPECT_0_E 証明書ファイルの暗号化仕様にフォーマットエラーがある場合に返されます + \return ASN_BEFORE_DATE_E 日付が証明書の開始日より前の場合に返されます + \return ASN_AFTER_DATE_E 日付が証明書の有効期限より後の場合に返されます + \return ASN_BITSTR_E 証明書からビット文字列を解析する際にエラーがある場合に返されます + \return ECC_CURVE_OID_E 証明書からECCキーを解析する際にエラーがある場合に返されます + \return ASN_UNKNOWN_OID_E 証明書が不明なキーオブジェクトIDを使用している場合に返されます + \return ASN_VERSION_E ALLOW_V1_EXTENSIONSオプションが定義されておらず、証明書がV1またはV2証明書の場合に返されます + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます + \return ASN_CRIT_EXT_E 証明書の処理中に見慣れない重要な拡張に遭遇した場合に返されます + \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます + \return ASN_SIG_CONFIRM_E 証明書署名の確認が失敗した場合に返されます + \return ASN_NAME_INVALID_E 証明書の名前がCA名前制約で許可されていない場合に返されます + \return ASN_NO_SIGNER_E 証明書の真正性を検証するCA署名者がいない場合に返されます + + \param cert 発行者を設定する証明書へのポインタ + \param issuerFile pem形式の証明書を含むファイルのパス _Example_ \code Cert myCert; - // initialize myCert - if(wc_SetIssuer(&myCert, ”./path/to/ca-cert.pem”) != 0) { - // error setting issuer + // myCertを初期化 + if(wc_SetIssuer(&myCert, "./path/to/ca-cert.pem") != 0) { + // 発行者設定エラー } \endcode @@ -254,36 +266,35 @@ int wc_SetIssuer(Cert* cert, const char* issuerFile); /*! \ingroup ASN - \brief この関数はPEM形式のsubjectFileで与えられた主体者を証明書の主体者として設定します。 - この関数は証明書への署名に先立ち呼び出される必要があります。 - - \return 0 証明書の主体者の設定に成功した場合に返されます。 - \return MEMORY_E XMALLOCでメモリの確保に失敗した際に返されます。 - \return ASN_PARSE_E 証明書のヘッダーファイルの解析に失敗した際に返されます。 - \return ASN_OBJECT_ID_E 証明書の暗号タイプの解析でエラーが発生した際に返されます。 - \return ASN_EXPECT_0_E 証明書の暗号化仕様にフォーマットエラーが検出された際に返されます。 - \return ASN_BEFORE_DATE_E 証明書の使用開始日より前であった場合に返されます。 - \return ASN_AFTER_DATE_E 証明書の有効期限日より後であった場合に返されます。 - \return ASN_BITSTR_E 証明書のビットストリング要素の解析でエラーが発生した際に返されます。 - \return ECC_CURVE_OID_E 証明書のECC鍵の解析でエラーが発生した際に返されます。 - \return ASN_UNKNOWN_OID_E 証明書が未知のオブジェクトIDを使用していた際に返されます。 - \return ASN_VERSION_E ALLOW_V1_EXTENSIONSマクロが定義されていないのに証明書がV1あるいはV2形式であった場合に返されます。 - \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 - \return ASN_CRIT_EXT_E 証明書の解析中に未知のクリティカル拡張に遭遇した際に返されます。 - \return ASN_SIG_OID_E 署名暗号化タイプが引数で渡された証明書のタイプと異なる場合に返されます。 - \return ASN_SIG_CONFIRM_E 証明書の署名の検証に失敗した際に返されます。 - \return ASN_NAME_INVALID_E 証明書の名前がCAの名前に関数制限によって許されていない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - - \param 主体者を設定する対象のCert構造体へのポインタ - \param subjectFile PEM形式の証明書ファイルへのファイルパス + \brief この関数は、証明書のsubjectを、提供されたpem subjectFileのsubjectに設定します。このメソッドは、署名前にフィールドを設定するために使用されます。 + + \return 0 証明書の発行者を正常に設定した場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_PARSE_E 証明書ヘッダーファイルの解析エラーがある場合に返されます + \return ASN_OBJECT_ID_E 証明書から暗号化タイプを解析する際にエラーがある場合に返されます + \return ASN_EXPECT_0_E 証明書ファイルの暗号化仕様にフォーマットエラーがある場合に返されます + \return ASN_BEFORE_DATE_E 日付が証明書の開始日より前の場合に返されます + \return ASN_AFTER_DATE_E 日付が証明書の有効期限より後の場合に返されます + \return ASN_BITSTR_E 証明書からビット文字列を解析する際にエラーがある場合に返されます + \return ECC_CURVE_OID_E 証明書からECCキーを解析する際にエラーがある場合に返されます + \return ASN_UNKNOWN_OID_E 証明書が不明なキーオブジェクトIDを使用している場合に返されます + \return ASN_VERSION_E ALLOW_V1_EXTENSIONSオプションが定義されておらず、証明書がV1またはV2証明書の場合に返されます + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます + \return ASN_CRIT_EXT_E 証明書の処理中に見慣れない重要な拡張に遭遇した場合に返されます + \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます + \return ASN_SIG_CONFIRM_E 証明書署名の確認が失敗した場合に返されます + \return ASN_NAME_INVALID_E 証明書の名前がCA名前制約で許可されていない場合に返されます + \return ASN_NO_SIGNER_E 証明書の真正性を検証するCA署名者がいない場合に返されます + + \param cert 発行者を設定する証明書へのポインタ + \param subjectFile pem形式の証明書を含むファイルのパス _Example_ \code Cert myCert; - // initialize myCert - if(wc_SetSubject(&myCert, ”./path/to/ca-cert.pem”) != 0) { - // error setting subject + // myCertを初期化 + if(wc_SetSubject(&myCert, "./path/to/ca-cert.pem") != 0) { + // subject設定エラー } \endcode @@ -296,41 +307,38 @@ int wc_SetSubject(Cert* cert, const char* subjectFile); /*! \ingroup ASN - \brief この関数はDER形式でバッファに格納されているRaw-Subject情報を証明書のRaw-Subject情報として設定します。 - この関数は証明書への署名に先立ち呼び出される必要があります。 - - \return 0 証明書のRaw-Subject情報の設定に成功した場合に返されます。 - \return MEMORY_E XMALLOCでメモリの確保に失敗した際に返されます。 - \return ASN_PARSE_E 証明書のヘッダーファイルの解析に失敗した際に返されます。 - \return ASN_OBJECT_ID_E 証明書の暗号タイプの解析でエラーが発生した際に返されます。 - \return ASN_EXPECT_0_E 証明書の暗号化仕様にフォーマットエラーが検出された際に返されます。 - \return ASN_BEFORE_DATE_E 証明書の使用開始日より前であった場合に返されます。 - \return ASN_AFTER_DATE_E 証明書の有効期限日より後であった場合に返されます。 - \return ASN_BITSTR_E 証明書のビットストリング要素の解析でエラーが発生した際に返されます。 - \return ECC_CURVE_OID_E 証明書のECC鍵の解析でエラーが発生した際に返されます。 - \return ASN_UNKNOWN_OID_E 証明書が未知のオブジェクトIDを使用していた際に返されます。 - \return ASN_VERSION_E ALLOW_V1_EXTENSIONSマクロが定義されていないのに証明書がV1あるいはV2形式であった場合に返されます。 - \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 - \return ASN_CRIT_EXT_E 証明書の解析中に未知のクリティカル拡張に遭遇した際に返されます。 - \return ASN_SIG_OID_E 署名暗号化タイプが引数で渡された証明書のタイプと異なる場合に返されます。 - \return ASN_SIG_CONFIRM_E 証明書の署名の検証に失敗した際に返されます。 - \return ASN_NAME_INVALID_E 証明書の名前がCAの名前に関数制限によって許されていない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - - \param cert Raw-Subject情報を設定する対象のCert構造体へのポインタ - \param der DER形式の証明書を格納しているバッファへのポインタ。この証明書のRaw-Subject情報が取り出されてcertに設定されます。 - \param derSz DER形式の証明書を格納しているバッファのサイズ + \brief この関数は、提供されたderバッファのsubjectから証明書の生のsubjectを設定します。このメソッドは、署名前に生のsubjectフィールドを設定するために使用されます。 + \return 0 証明書のsubjectを正常に設定した場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_PARSE_E 証明書ヘッダーファイルの解析エラーがある場合に返されます + \return ASN_OBJECT_ID_E 証明書から暗号化タイプを解析する際にエラーがある場合に返されます + \return ASN_EXPECT_0_E 証明書ファイルの暗号化仕様にフォーマットエラーがある場合に返されます + \return ASN_BEFORE_DATE_E 日付が証明書の開始日より前の場合に返されます + \return ASN_AFTER_DATE_E 日付が証明書の有効期限より後の場合に返されます + \return ASN_BITSTR_E 証明書からビット文字列を解析する際にエラーがある場合に返されます + \return ECC_CURVE_OID_E 証明書からECCキーを解析する際にエラーがある場合に返されます + \return ASN_UNKNOWN_OID_E 証明書が不明なキーオブジェクトIDを使用している場合に返されます + \return ASN_VERSION_E ALLOW_V1_EXTENSIONSオプションが定義されておらず、証明書がV1またはV2証明書の場合に返されます + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます + \return ASN_CRIT_EXT_E 証明書の処理中に見慣れない重要な拡張に遭遇した場合に返されます + \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます + \return ASN_SIG_CONFIRM_E 証明書署名の確認が失敗した場合に返されます + \return ASN_NAME_INVALID_E 証明書の名前がCA名前制約で許可されていない場合に返されます + \return ASN_NO_SIGNER_E 証明書の真正性を検証するCA署名者がいない場合に返されます + + \param cert 生のsubjectを設定する証明書へのポインタ + \param der subjectを取得するder形式の証明書を含むバッファへのポインタ + \param derSz subjectを取得するder形式の証明書を含むバッファのサイズ _Example_ \code Cert myCert; - // initialize myCert + // myCertを初期化 byte* der; der = (byte*)malloc(FOURK_BUF); - // initialize der + // derを初期化 if(wc_SetSubjectRaw(&myCert, der, FOURK_BUF) != 0) { - // error setting subject + // subject設定エラー } \endcode @@ -342,22 +350,22 @@ int wc_SetSubjectRaw(Cert* cert, const byte* der, int derSz); /*! \ingroup ASN - \brief この関数はCert構造体からRaw-Subject情報を取り出します。 + \brief この関数は、証明書構造体から生のsubjectを取得します。 - \return 0 証明書のRaw-Subject情報の取得に成功した場合に返されます。 - \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 + \return 0 証明書からsubjectを正常に取得した場合に返されます + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます - \param subjectRaw 処理が成功した際に返されるRaw-Subject情報を格納するバッファへのポインタのポインタ - \param cert Raw-Subject情報を保持するCert構造体へのポインタ + \param subjectRaw 正常に返された場合の生のsubjectへのポインタのポインタ + \param cert 生のsubjectを取得する証明書へのポインタ _Example_ \code Cert myCert; byte *subjRaw; - // initialize myCert + // myCertを初期化 if(wc_GetSubjectRaw(&subjRaw, &myCert) != 0) { - // error setting subject + // subject設定エラー } \endcode @@ -369,38 +377,35 @@ int wc_GetSubjectRaw(byte **subjectRaw, Cert *cert); /*! \ingroup ASN - \brief この関数は引数で与えられたPEM形式の証明書の主体者の別名をCert構造体に設定します。 - 複数のドメインで同一の証明書を使用する際には主体者の別名を付与する機能は有用です。 - この関数は証明書への署名に先立ち呼び出される必要があります。 - - \return 0 証明書の主体者の設定に成功した場合に返されます。 - \return MEMORY_E XMALLOCでメモリの確保に失敗した際に返されます。 - \return ASN_PARSE_E 証明書のヘッダーファイルの解析に失敗した際に返されます。 - \return ASN_OBJECT_ID_E 証明書の暗号タイプの解析でエラーが発生した際に返されます。 - \return ASN_EXPECT_0_E 証明書の暗号化仕様にフォーマットエラーが検出された際に返されます。 - \return ASN_BEFORE_DATE_E 証明書の使用開始日より前であった場合に返されます。 - \return ASN_AFTER_DATE_E 証明書の有効期限日より後であった場合に返されます。 - \return ASN_BITSTR_E 証明書のビットストリング要素の解析でエラーが発生した際に返されます。 - \return ECC_CURVE_OID_E 証明書のECC鍵の解析でエラーが発生した際に返されます。 - \return ASN_UNKNOWN_OID_E 証明書が未知のオブジェクトIDを使用していた際に返されます。 - \return ASN_VERSION_E ALLOW_V1_EXTENSIONSマクロが定義されていないのに証明書がV1あるいはV2形式であった場合に返されます。 - \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 - \return ASN_CRIT_EXT_E 証明書の解析中に未知のクリティカル拡張に遭遇した際に返されます。 - \return ASN_SIG_OID_E 署名暗号化タイプが引数で渡された証明書のタイプと異なる場合に返されます。 - \return ASN_SIG_CONFIRM_E 証明書の署名の検証に失敗した際に返されます。 - \return ASN_NAME_INVALID_E 証明書の名前がCAの名前に関数制限によって許されていない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - - \param cert 主体者の別名を設定する対象のCert構造体へのポインタ - \param file PEM形式の証明書のファイルパス + \brief この関数は、証明書の代替名を、提供されたpemファイル内の代替名に設定します。これは、同じ証明書で複数のドメインを保護したい場合に便利です。このメソッドは、署名前にフィールドを設定するために使用されます。 + + \return 0 証明書の代替名を正常に設定した場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_PARSE_E 証明書ヘッダーファイルの解析エラーがある場合に返されます + \return ASN_OBJECT_ID_E 証明書から暗号化タイプを解析する際にエラーがある場合に返されます + \return ASN_EXPECT_0_E 証明書ファイルの暗号化仕様にフォーマットエラーがある場合に返されます + \return ASN_BEFORE_DATE_E 日付が証明書の開始日より前の場合に返されます + \return ASN_AFTER_DATE_E 日付が証明書の有効期限より後の場合に返されます + \return ASN_BITSTR_E 証明書からビット文字列を解析する際にエラーがある場合に返されます + \return ECC_CURVE_OID_E 証明書からECCキーを解析する際にエラーがある場合に返されます + \return ASN_UNKNOWN_OID_E 証明書が不明なキーオブジェクトIDを使用している場合に返されます + \return ASN_VERSION_E ALLOW_V1_EXTENSIONSオプションが定義されておらず、証明書がV1またはV2証明書の場合に返されます + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます + \return ASN_CRIT_EXT_E 証明書の処理中に見慣れない重要な拡張に遭遇した場合に返されます + \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます + \return ASN_SIG_CONFIRM_E 証明書署名の確認が失敗した場合に返されます + \return ASN_NAME_INVALID_E 証明書の名前がCA名前制約で許可されていない場合に返されます + \return ASN_NO_SIGNER_E 証明書の真正性を検証するCA署名者がいない場合に返されます + + \param cert 代替名を設定する証明書へのポインタ + \param file pem形式の証明書を含むファイルのパス _Example_ \code Cert myCert; - // initialize myCert - if(wc_SetSubject(&myCert, ”./path/to/ca-cert.pem”) != 0) { - // error setting alt names + // myCertを初期化 + if(wc_SetSubject(&myCert, "./path/to/ca-cert.pem") != 0) { + // 代替名設定エラー } \endcode @@ -412,42 +417,39 @@ int wc_SetAltNames(Cert* cert, const char* file); /*! \ingroup ASN - \brief この関数はDER形式でバッファに格納されている発行者を証明書の発行者として設定します。 - 加えて、証明書の事故署名プロパティをfalseに設定します。 - この関数は証明書への署名に先立ち呼び出される必要があります。 - - \return 0 証明書の発行者の設定に成功した場合に返されます。 - \return MEMORY_E XMALLOCでメモリの確保に失敗した際に返されます。 - \return ASN_PARSE_E 証明書のヘッダーファイルの解析に失敗した際に返されます。 - \return ASN_OBJECT_ID_E 証明書の暗号タイプの解析でエラーが発生した際に返されます。 - \return ASN_EXPECT_0_E 証明書の暗号化仕様にフォーマットエラーが検出された際に返されます。 - \return ASN_BEFORE_DATE_E 証明書の使用開始日より前であった場合に返されます。 - \return ASN_AFTER_DATE_E 証明書の有効期限日より後であった場合に返されます。 - \return ASN_BITSTR_E 証明書のビットストリング要素の解析でエラーが発生した際に返されます。 - \return ECC_CURVE_OID_E 証明書のECC鍵の解析でエラーが発生した際に返されます。 - \return ASN_UNKNOWN_OID_E 証明書が未知のオブジェクトIDを使用していた際に返されます。 - \return ASN_VERSION_E ALLOW_V1_EXTENSIONSマクロが定義されていないのに証明書がV1あるいはV2形式であった場合に返されます。 - \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 - \return ASN_CRIT_EXT_E 証明書の解析中に未知のクリティカル拡張に遭遇した際に返されます。 - \return ASN_SIG_OID_E 署名暗号化タイプが引数で渡された証明書のタイプと異なる場合に返されます。 - \return ASN_SIG_CONFIRM_E 証明書の署名の検証に失敗した際に返されます。 - \return ASN_NAME_INVALID_E 証明書の名前がCAの名前に関数制限によって許されていない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - - \param cert 発行者を設定する対象のCert構造体へのポインタ - \param der DER形式の証明書を格納しているバッファへのポインタ。この証明書の発行者情報が取り出されてcertに設定されます。 - \param derSz DER形式の証明書を格納しているバッファのサイズ + \brief この関数は、提供されたderバッファの発行者から証明書の発行者を設定します。また、証明書の自己署名属性をfalseに変更します。このメソッドは、署名前にフィールドを設定するために使用されます。 + + \return 0 証明書の発行者を正常に設定した場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_PARSE_E 証明書ヘッダーファイルの解析エラーがある場合に返されます + \return ASN_OBJECT_ID_E 証明書から暗号化タイプを解析する際にエラーがある場合に返されます + \return ASN_EXPECT_0_E 証明書ファイルの暗号化仕様にフォーマットエラーがある場合に返されます + \return ASN_BEFORE_DATE_E 日付が証明書の開始日より前の場合に返されます + \return ASN_AFTER_DATE_E 日付が証明書の有効期限より後の場合に返されます + \return ASN_BITSTR_E 証明書からビット文字列を解析する際にエラーがある場合に返されます + \return ECC_CURVE_OID_E 証明書からECCキーを解析する際にエラーがある場合に返されます + \return ASN_UNKNOWN_OID_E 証明書が不明なキーオブジェクトIDを使用している場合に返されます + \return ASN_VERSION_E ALLOW_V1_EXTENSIONSオプションが定義されておらず、証明書がV1またはV2証明書の場合に返されます + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます + \return ASN_CRIT_EXT_E 証明書の処理中に見慣れない重要な拡張に遭遇した場合に返されます + \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます + \return ASN_SIG_CONFIRM_E 証明書署名の確認が失敗した場合に返されます + \return ASN_NAME_INVALID_E 証明書の名前がCA名前制約で許可されていない場合に返されます + \return ASN_NO_SIGNER_E 証明書の真正性を検証するCA署名者がいない場合に返されます + + \param cert 発行者を設定する証明書へのポインタ + \param der 発行者を取得するder形式の証明書を含むバッファへのポインタ + \param derSz 発行者を取得するder形式の証明書を含むバッファのサイズ _Example_ \code Cert myCert; - // initialize myCert + // myCertを初期化 byte* der; der = (byte*)malloc(FOURK_BUF); - // initialize der + // derを初期化 if(wc_SetIssuerBuffer(&myCert, der, FOURK_BUF) != 0) { - // error setting issuer + // issuer設定エラー } \endcode @@ -459,42 +461,39 @@ int wc_SetIssuerBuffer(Cert* cert, const byte* der, int derSz); /*! \ingroup ASN - \brief この関数はDER形式でバッファに格納されているRaw-Issuer情報を証明書のRaw-Issuer情報として設定します。 - この関数は証明書への署名に先立ち呼び出される必要があります。 - - \return 0 証明書のRaw-Issuer情報の設定に成功した場合に返されます。 - \return MEMORY_E XMALLOCでメモリの確保に失敗した際に返されます。 - \return ASN_PARSE_E 証明書のヘッダーファイルの解析に失敗した際に返されます。 - \return ASN_OBJECT_ID_E 証明書の暗号タイプの解析でエラーが発生した際に返されます。 - \return ASN_EXPECT_0_E 証明書の暗号化仕様にフォーマットエラーが検出された際に返されます。 - \return ASN_BEFORE_DATE_E 証明書の使用開始日より前であった場合に返されます。 - \return ASN_AFTER_DATE_E 証明書の有効期限日より後であった場合に返されます。 - \return ASN_BITSTR_E 証明書のビットストリング要素の解析でエラーが発生した際に返されます。 - \return ECC_CURVE_OID_E 証明書のECC鍵の解析でエラーが発生した際に返されます。 - \return ASN_UNKNOWN_OID_E 証明書が未知のオブジェクトIDを使用していた際に返されます。 - \return ASN_VERSION_E ALLOW_V1_EXTENSIONSマクロが定義されていないのに証明書がV1あるいはV2形式であった場合に返されます。 - \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 - \return ASN_CRIT_EXT_E 証明書の解析中に未知のクリティカル拡張に遭遇した際に返されます。 - \return ASN_SIG_OID_E 署名暗号化タイプが引数で渡された証明書のタイプと異なる場合に返されます。 - \return ASN_SIG_CONFIRM_E 証明書の署名の検証に失敗した際に返されます。 - \return ASN_NAME_INVALID_E 証明書の名前がCAの名前に関数制限によって許されていない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - - - \param cert Raw-Issuer情報を設定する対象のCert構造体へのポインタ - \param der DER形式の証明書を格納しているバッファへのポインタ。この証明書のRaw-Issuer情報が取り出されてcertに設定されます。 - \param derSz DER形式の証明書を格納しているバッファのサイズ + \brief この関数は、提供されたderバッファの発行者から証明書の生の発行者を設定します。このメソッドは、署名前に生の発行者フィールドを設定するために使用されます。 + + \return 0 証明書の発行者を正常に設定した場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_PARSE_E 証明書ヘッダーファイルの解析エラーがある場合に返されます + \return ASN_OBJECT_ID_E 証明書から暗号化タイプを解析する際にエラーがある場合に返されます + \return ASN_EXPECT_0_E 証明書ファイルの暗号化仕様にフォーマットエラーがある場合に返されます + \return ASN_BEFORE_DATE_E 日付が証明書の開始日より前の場合に返されます + \return ASN_AFTER_DATE_E 日付が証明書の有効期限より後の場合に返されます + \return ASN_BITSTR_E 証明書からビット文字列を解析する際にエラーがある場合に返されます + \return ECC_CURVE_OID_E 証明書からECCキーを解析する際にエラーがある場合に返されます + \return ASN_UNKNOWN_OID_E 証明書が不明なキーオブジェクトIDを使用している場合に返されます + \return ASN_VERSION_E ALLOW_V1_EXTENSIONSオプションが定義されておらず、証明書がV1またはV2証明書の場合に返されます + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます + \return ASN_CRIT_EXT_E 証明書の処理中に見慣れない重要な拡張に遭遇した場合に返されます + \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます + \return ASN_SIG_CONFIRM_E 証明書署名の確認が失敗した場合に返されます + \return ASN_NAME_INVALID_E 証明書の名前がCA名前制約で許可されていない場合に返されます + \return ASN_NO_SIGNER_E 証明書の真正性を検証するCA署名者がいない場合に返されます + + \param cert 生の発行者を設定する証明書へのポインタ + \param der subjectを取得するder形式の証明書を含むバッファへのポインタ + \param derSz subjectを取得するder形式の証明書を含むバッファのサイズ _Example_ \code Cert myCert; - // initialize myCert + // myCertを初期化 byte* der; der = (byte*)malloc(FOURK_BUF); - // initialize der + // derを初期化 if(wc_SetIssuerRaw(&myCert, der, FOURK_BUF) != 0) { - // error setting subject + // subject設定エラー } \endcode @@ -506,41 +505,39 @@ int wc_SetIssuerRaw(Cert* cert, const byte* der, int derSz); /*! \ingroup ASN - \brief この関数はDER形式でバッファに格納されている主体者を証明書の主体者として設定します。 - この関数は証明書への署名に先立ち呼び出される必要があります。 - - \return 0 証明書の主体者の設定に成功した場合に返されます。 - \return MEMORY_E XMALLOCでメモリの確保に失敗した際に返されます。 - \return ASN_PARSE_E 証明書のヘッダーファイルの解析に失敗した際に返されます。 - \return ASN_OBJECT_ID_E 証明書の暗号タイプの解析でエラーが発生した際に返されます。 - \return ASN_EXPECT_0_E 証明書の暗号化仕様にフォーマットエラーが検出された際に返されます。 - \return ASN_BEFORE_DATE_E 証明書の使用開始日より前であった場合に返されます。 - \return ASN_AFTER_DATE_E 証明書の有効期限日より後であった場合に返されます。 - \return ASN_BITSTR_E 証明書のビットストリング要素の解析でエラーが発生した際に返されます。 - \return ECC_CURVE_OID_E 証明書のECC鍵の解析でエラーが発生した際に返されます。 - \return ASN_UNKNOWN_OID_E 証明書が未知のオブジェクトIDを使用していた際に返されます。 - \return ASN_VERSION_E ALLOW_V1_EXTENSIONSマクロが定義されていないのに証明書がV1あるいはV2形式であった場合に返されます。 - \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 - \return ASN_CRIT_EXT_E 証明書の解析中に未知のクリティカル拡張に遭遇した際に返されます。 - \return ASN_SIG_OID_E 署名暗号化タイプが引数で渡された証明書のタイプと異なる場合に返されます。 - \return ASN_SIG_CONFIRM_E 証明書の署名の検証に失敗した際に返されます。 - \return ASN_NAME_INVALID_E 証明書の名前がCAの名前に関数制限によって許されていない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - - \param cert 主体者を設定する対象のCert構造体へのポインタ - \param der DER形式の証明書を格納しているバッファへのポインタ。この証明書の主体者が取り出されてcertに設定されます。 - \param derSz DER形式の証明書を格納しているバッファのサイズ + \brief この関数は、提供されたderバッファのsubjectから証明書のsubjectを設定します。このメソッドは、署名前にフィールドを設定するために使用されます。 + + \return 0 証明書のsubjectを正常に設定した場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_PARSE_E 証明書ヘッダーファイルの解析エラーがある場合に返されます + \return ASN_OBJECT_ID_E 証明書から暗号化タイプを解析する際にエラーがある場合に返されます + \return ASN_EXPECT_0_E 証明書ファイルの暗号化仕様にフォーマットエラーがある場合に返されます + \return ASN_BEFORE_DATE_E 日付が証明書の開始日より前の場合に返されます + \return ASN_AFTER_DATE_E 日付が証明書の有効期限より後の場合に返されます + \return ASN_BITSTR_E 証明書からビット文字列を解析する際にエラーがある場合に返されます + \return ECC_CURVE_OID_E 証明書からECCキーを解析する際にエラーがある場合に返されます + \return ASN_UNKNOWN_OID_E 証明書が不明なキーオブジェクトIDを使用している場合に返されます + \return ASN_VERSION_E ALLOW_V1_EXTENSIONSオプションが定義されておらず、証明書がV1またはV2証明書の場合に返されます + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます + \return ASN_CRIT_EXT_E 証明書の処理中に見慣れない重要な拡張に遭遇した場合に返されます + \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます + \return ASN_SIG_CONFIRM_E 証明書署名の確認が失敗した場合に返されます + \return ASN_NAME_INVALID_E 証明書の名前がCA名前制約で許可されていない場合に返されます + \return ASN_NO_SIGNER_E 証明書の真正性を検証するCA署名者がいない場合に返されます + + \param cert subjectを設定する証明書へのポインタ + \param der subjectを取得するder形式の証明書を含むバッファへのポインタ + \param derSz subjectを取得するder形式の証明書を含むバッファのサイズ _Example_ \code Cert myCert; - // initialize myCert + // myCertを初期化 byte* der; der = (byte*)malloc(FOURK_BUF); - // initialize der + // derを初期化 if(wc_SetSubjectBuffer(&myCert, der, FOURK_BUF) != 0) { - // error setting subject + // subject設定エラー } \endcode @@ -552,42 +549,39 @@ int wc_SetSubjectBuffer(Cert* cert, const byte* der, int derSz); /*! \ingroup ASN - \brief この関数はDER形式でバッファに格納されている「別名情報」を証明書の「別名情報」として設定します。 - この機能は複数ドメインを一つの証明書を使ってセキュアにする際に有用です。 - この関数は証明書への署名に先立ち呼び出される必要があります。 - - \return 0 証明書の別名情報の設定に成功した場合に返されます。 - \return MEMORY_E XMALLOCでメモリの確保に失敗した際に返されます。 - \return ASN_PARSE_E 証明書のヘッダーファイルの解析に失敗した際に返されます。 - \return ASN_OBJECT_ID_E 証明書の暗号タイプの解析でエラーが発生した際に返されます。 - \return ASN_EXPECT_0_E 証明書の暗号化仕様にフォーマットエラーが検出された際に返されます。 - \return ASN_BEFORE_DATE_E 証明書の使用開始日より前であった場合に返されます。 - \return ASN_AFTER_DATE_E 証明書の有効期限日より後であった場合に返されます。 - \return ASN_BITSTR_E 証明書のビットストリング要素の解析でエラーが発生した際に返されます。 - \return ECC_CURVE_OID_E 証明書のECC鍵の解析でエラーが発生した際に返されます。 - \return ASN_UNKNOWN_OID_E 証明書が未知のオブジェクトIDを使用していた際に返されます。 - \return ASN_VERSION_E ALLOW_V1_EXTENSIONSマクロが定義されていないのに証明書がV1あるいはV2形式であった場合に返されます。 - \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 - \return ASN_CRIT_EXT_E 証明書の解析中に未知のクリティカル拡張に遭遇した際に返されます。 - \return ASN_SIG_OID_E 署名暗号化タイプが引数で渡された証明書のタイプと異なる場合に返されます。 - \return ASN_SIG_CONFIRM_E 証明書の署名の検証に失敗した際に返されます。 - \return ASN_NAME_INVALID_E 証明書の名前がCAの名前に関数制限によって許されていない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - - \param cert 別名情報を設定する対象のCert構造体へのポインタ - \param der DER形式の証明書を格納しているバッファへのポインタ。この証明書の別名情報が取り出されてcertに設定されます。 - \param derSz DER形式の証明書を格納しているバッファのサイズ + \brief この関数は、提供されたderバッファの代替名から証明書の代替名を設定します。これは、同じ証明書で複数のドメインを保護したい場合に便利です。このメソッドは、署名前にフィールドを設定するために使用されます。 + + \return 0 証明書の代替名を正常に設定した場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_PARSE_E 証明書ヘッダーファイルの解析エラーがある場合に返されます + \return ASN_OBJECT_ID_E 証明書から暗号化タイプを解析する際にエラーがある場合に返されます + \return ASN_EXPECT_0_E 証明書ファイルの暗号化仕様にフォーマットエラーがある場合に返されます + \return ASN_BEFORE_DATE_E 日付が証明書の開始日より前の場合に返されます + \return ASN_AFTER_DATE_E 日付が証明書の有効期限より後の場合に返されます + \return ASN_BITSTR_E 証明書からビット文字列を解析する際にエラーがある場合に返されます + \return ECC_CURVE_OID_E 証明書からECCキーを解析する際にエラーがある場合に返されます + \return ASN_UNKNOWN_OID_E 証明書が不明なキーオブジェクトIDを使用している場合に返されます + \return ASN_VERSION_E ALLOW_V1_EXTENSIONSオプションが定義されておらず、証明書がV1またはV2証明書の場合に返されます + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます + \return ASN_CRIT_EXT_E 証明書の処理中に見慣れない重要な拡張に遭遇した場合に返されます + \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます + \return ASN_SIG_CONFIRM_E 証明書署名の確認が失敗した場合に返されます + \return ASN_NAME_INVALID_E 証明書の名前がCA名前制約で許可されていない場合に返されます + \return ASN_NO_SIGNER_E 証明書の真正性を検証するCA署名者がいない場合に返されます + + \param cert 代替名を設定する証明書へのポインタ + \param der 代替名を取得するder形式の証明書を含むバッファへのポインタ + \param derSz 代替名を取得するder形式の証明書を含むバッファのサイズ _Example_ \code Cert myCert; - // initialize myCert + // myCertを初期化 byte* der; der = (byte*)malloc(FOURK_BUF); - // initialize der + // derを初期化 if(wc_SetAltNamesBuffer(&myCert, der, FOURK_BUF) != 0) { - // error setting subject + // subject設定エラー } \endcode @@ -599,41 +593,39 @@ int wc_SetAltNamesBuffer(Cert* cert, const byte* der, int derSz); /*! \ingroup ASN - \brief この関数はDER形式でバッファに格納されている「有効期間」情報を証明書の「有効期間」情報として設定します。 - この関数は証明書への署名に先立ち呼び出される必要があります。 - - \return 0 証明書の有効期間情報の設定に成功した場合に返されます。 - \return MEMORY_E XMALLOCでメモリの確保に失敗した際に返されます。 - \return ASN_PARSE_E 証明書のヘッダーファイルの解析に失敗した際に返されます。 - \return ASN_OBJECT_ID_E 証明書の暗号タイプの解析でエラーが発生した際に返されます。 - \return ASN_EXPECT_0_E 証明書の暗号化仕様にフォーマットエラーが検出された際に返されます。 - \return ASN_BEFORE_DATE_E 証明書の使用開始日より前であった場合に返されます。 - \return ASN_AFTER_DATE_E 証明書の有効期限日より後であった場合に返されます。 - \return ASN_BITSTR_E 証明書のビットストリング要素の解析でエラーが発生した際に返されます。 - \return ECC_CURVE_OID_E 証明書のECC鍵の解析でエラーが発生した際に返されます。 - \return ASN_UNKNOWN_OID_E 証明書が未知のオブジェクトIDを使用していた際に返されます。 - \return ASN_VERSION_E ALLOW_V1_EXTENSIONSマクロが定義されていないのに証明書がV1あるいはV2形式であった場合に返されます。 - \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 - \return ASN_CRIT_EXT_E 証明書の解析中に未知のクリティカル拡張に遭遇した際に返されます。 - \return ASN_SIG_OID_E 署名暗号化タイプが引数で渡された証明書のタイプと異なる場合に返されます。 - \return ASN_SIG_CONFIRM_E 証明書の署名の検証に失敗した際に返されます。 - \return ASN_NAME_INVALID_E 証明書の名前がCAの名前に関数制限によって許されていない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - \return ASN_NO_SIGNER_E CA証明書の主体者を検証することができない場合に返されます。 - - \param cert 有効期間情報を設定する対象のCert構造体へのポインタ - \param der DER形式の証明書を格納しているバッファへのポインタ。この証明書の有効期間情報が取り出されてcertに設定されます。 - \param derSz DER形式の証明書を格納しているバッファのサイズ + \brief この関数は、提供されたderバッファの日付範囲から証明書の日付を設定します。このメソッドは、署名前にフィールドを設定するために使用されます。 + + \return 0 証明書の日付を正常に設定した場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_PARSE_E 証明書ヘッダーファイルの解析エラーがある場合に返されます + \return ASN_OBJECT_ID_E 証明書から暗号化タイプを解析する際にエラーがある場合に返されます + \return ASN_EXPECT_0_E 証明書ファイルの暗号化仕様にフォーマットエラーがある場合に返されます + \return ASN_BEFORE_DATE_E 日付が証明書の開始日より前の場合に返されます + \return ASN_AFTER_DATE_E 日付が証明書の有効期限より後の場合に返されます + \return ASN_BITSTR_E 証明書からビット文字列を解析する際にエラーがある場合に返されます + \return ECC_CURVE_OID_E 証明書からECCキーを解析する際にエラーがある場合に返されます + \return ASN_UNKNOWN_OID_E 証明書が不明なキーオブジェクトIDを使用している場合に返されます + \return ASN_VERSION_E ALLOW_V1_EXTENSIONSオプションが定義されておらず、証明書がV1またはV2証明書の場合に返されます + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます + \return ASN_CRIT_EXT_E 証明書の処理中に見慣れない重要な拡張に遭遇した場合に返されます + \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます + \return ASN_SIG_CONFIRM_E 証明書署名の確認が失敗した場合に返されます + \return ASN_NAME_INVALID_E 証明書の名前がCA名前制約で許可されていない場合に返されます + \return ASN_NO_SIGNER_E 証明書の真正性を検証するCA署名者がいない場合に返されます + + \param cert 日付を設定する証明書へのポインタ + \param der 日付範囲を取得するder形式の証明書を含むバッファへのポインタ + \param derSz 日付範囲を取得するder形式の証明書を含むバッファのサイズ _Example_ \code Cert myCert; - // initialize myCert + // myCertを初期化 byte* der; der = (byte*)malloc(FOURK_BUF); - // initialize der + // derを初期化 if(wc_SetDatesBuffer(&myCert, der, FOURK_BUF) != 0) { - // error setting subject + // subject設定エラー } \endcode @@ -644,16 +636,16 @@ int wc_SetDatesBuffer(Cert* cert, const byte* der, int derSz); /*! \ingroup ASN - \brief この関数は指定されたRSAあるいはECC公開鍵の一方から得たAKID(認証者鍵ID)を証明書のAKIDとして設定します。 + \brief RSAまたはECC公開鍵からAKIDを設定します。注:rsakeyまたはeckeyのいずれか一方のみを設定し、両方は設定しないでください。 - \return 0 証明書のAKIDの設定に成功した場合に返されます。 - \return BAD_FUNC_ARG Cert構造体へのポインタ(cert)がNULLかRsaKey構造体へのポインタ(rsakey)とecc_key構造体へのポインタ(eckey)の両方がNULLである場合に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 - \return PUBLIC_KEY_E 公開鍵の取得に失敗した際に返されます。 + \return 0 成功 + \return BAD_FUNC_ARG certがnullまたはrsakeyとeckeyの両方がnullの場合。 + \return MEMORY_E メモリの割り当てエラー。 + \return PUBLIC_KEY_E キーへの書き込みエラー。 - \param cert AKIDを設定する対象のCert構造体へのポインタ - \param rsakey RsaKey構造体へのポインタ - \param eckey ecc_key構造体へのポインタ + \param cert SKIDを設定する証明書へのポインタ。 + \param rsakey 読み取り元のRsaKey構造体へのポインタ。 + \param eckey 読み取り元のecc_keyへのポインタ。 _Example_ \code @@ -664,7 +656,7 @@ int wc_SetDatesBuffer(Cert* cert, const byte* der, int derSz); if (wc_SetAuthKeyIdFromPublicKey(&myCert, &keypub, NULL) != 0) { - // Handle error + // エラーを処理 } \endcode @@ -678,25 +670,25 @@ int wc_SetAuthKeyIdFromPublicKey(Cert *cert, RsaKey *rsakey, /*! \ingroup ASN - \brief この関数はDER形式でバッファに格納された証明書から得たAKID(認証者鍵ID)を証明書のAKIDとして設定します。 + \brief DERエンコードされた証明書からAKIDを設定します。 - \return 0 証明書のAKIDの設定に成功した場合に返されます。 - \return BAD_FUNC_ARG 引数のいずれかがNULL,あるいはderSzが0より小さい場合に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 - \return ASN_NO_SKID 認証者鍵IDが見つからない場合に返されます。 + \return 0 成功 + \return BAD_FUNC_ARG いずれかの引数がnullまたはderSzが0未満の場合のエラー。 + \return MEMORY_E メモリの割り当てに問題がある場合のエラー。 + \return ASN_NO_SKID サブジェクトキーIDが見つかりません。 - \param cert AKIDを設定する対象のCert構造体へのポインタ。 - \param der DER形式の証明書を格納しているバッファへのポインタ。 - \param derSz DER形式の証明書を格納しているバッファのサイズ。 + \param cert 書き込み先のCert構造体。 + \param der DERエンコードされた証明書バッファ。 + \param derSz derのサイズ(バイト単位)。 _Example_ \code Cert some_cert; - byte some_der[] = { // Initialize a DER buffer }; + byte some_der[] = { // DERバッファを初期化 }; wc_InitCert(&some_cert); if(wc_SetAuthKeyIdFromCert(&some_cert, some_der, sizeof(some_der) != 0) { - // Handle error + // エラーを処理 } \endcode @@ -708,14 +700,14 @@ int wc_SetAuthKeyIdFromCert(Cert *cert, const byte *der, int derSz); /*! \ingroup ASN - \brief この関数はPEM形式の証明書から得たAKID(認証者鍵ID)を証明書のAKIDとして設定します。 + \brief PEM形式の証明書ファイルからAKIDを設定します。 - \return 0 証明書のAKIDの設定に成功した場合に返されます。 - \return BAD_FUNC_ARG 引数のいずれかがNULLの場合に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 + \return 0 成功 + \return BAD_FUNC_ARG certまたはfileがnullの場合のエラー。 + \return MEMORY_E メモリの割り当てに問題がある場合のエラー。 - \param cert AKIDを設定する対象のCert構造体へのポインタ。 - \param file PEM形式の証明書ファイルへのファイルパス + \param cert AKIDを設定したいCert構造体。 + \param file PEM証明書ファイルを含むバッファ。 _Example_ \code @@ -725,7 +717,7 @@ int wc_SetAuthKeyIdFromCert(Cert *cert, const byte *der, int derSz); if(wc_SetAuthKeyId(&some_cert, file_name) != 0) { - // Handle Error + // エラーを処理 } \endcode @@ -737,14 +729,14 @@ int wc_SetAuthKeyId(Cert *cert, const char* file); /*! \ingroup ASN - \brief この関数は指定されたRSAあるいはECC公開鍵の一方から得たSKID(主体者鍵ID)を証明書のSKIDとして設定します。 + \brief RSAまたはECC公開鍵からSKIDを設定します。 - \return 0 証明書のSKIDの設定に成功した場合に返されます。 - \return BAD_FUNC_ARG Cert構造体へのポインタ(cert)がNULLかRsaKey構造体へのポインタ(rsakey)とecc_key構造体へのポインタ(eckey)の両方がNULLである場合に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 - \return PUBLIC_KEY_E 公開鍵の取得に失敗した際に返されます。 + \return 0 成功 + \return BAD_FUNC_ARG certまたはrsakeyとeckeyがnullの場合に返されます。 + \return MEMORY_E メモリの割り当てエラーがある場合に返されます。 + \return PUBLIC_KEY_E 公開鍵の取得エラーがある場合に返されます。 - \param cert SKIDを設定する対象のCert構造体へのポインタ + \param cert 使用するCert構造体へのポインタ。 \param rsakey RsaKey構造体へのポインタ \param eckey ecc_key構造体へのポインタ @@ -757,7 +749,7 @@ int wc_SetAuthKeyId(Cert *cert, const char* file); if(wc_SetSubjectKeyIdFromPublicKey(&some_cert,&some_key, NULL) != 0) { - // Handle Error + // エラーを処理 } \endcode @@ -769,16 +761,15 @@ int wc_SetSubjectKeyIdFromPublicKey(Cert *cert, RsaKey *rsakey, /*! \ingroup ASN - \brief この関数はPEM形式の証明書から得たSKID(主体者鍵ID)を証明書のSKIDとして設定します。 - 引数は両方が与えられることが必要です。 + \brief PEM形式の公開鍵ファイルからSKIDを設定します。両方の引数が必要です。 - \return 0 証明書のSKIDの設定に成功した場合に返されます。 - \return BAD_FUNC_ARG 引数のいずれかがNULLの場合に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 - \return PUBLIC_KEY_E 公開鍵のデコードに失敗した際に返されます。 + \return 0 成功 + \return BAD_FUNC_ARG certまたはfileがnullの場合に返されます。 + \return MEMORY_E キー用のメモリ割り当てに問題がある場合に返されます。 + \return PUBLIC_KEY_E 公開鍵のデコードエラーがある場合に返されます。 - \param cert SKIDを設定する対象のCert構造体へのポインタ。 - \param file PEM形式の証明書ファイルへのファイルパス + \param cert SKIDを設定するCert構造体。 + \param file PEMエンコードされたファイルを含む。 _Example_ \code @@ -788,7 +779,7 @@ int wc_SetSubjectKeyIdFromPublicKey(Cert *cert, RsaKey *rsakey, if(wc_SetSubjectKeyId(&some_cert, file_name) != 0) { - // Handle Error + // エラーを処理 } \endcode @@ -799,19 +790,15 @@ int wc_SetSubjectKeyId(Cert *cert, const char* file); /*! \ingroup RSA - \brief この関数は鍵の用途を設定します。設定値の指定はコンマ区切りトークンを使用できます。 - 受け付けられるトークンは:digitalSignature, nonRepudiation, contentCommitment, keyCertSign, cRLSign, dataEncipherment, - keyAgreement, keyEncipherment, encipherOnly, decipherOnly です。 - 指定例:"digitalSignature,nonRepudiation"。 - nonRepudiation と contentCommitment は同じ用途を意味します。 + \brief この関数を使用すると、カンマ区切りのトークン文字列を使用してキー使用法を設定できます。受け入れられるトークンは:digitalSignature、nonRepudiation、contentCommitment、keyCertSign、cRLSign、dataEncipherment、keyAgreement、keyEncipherment、encipherOnly、decipherOnlyです。例:"digitalSignature,nonRepudiation" nonRepudiationとcontentCommitmentは同じ用途です。 - \return 0 証明書の用途の設定に成功した場合に返されます。 - \return BAD_FUNC_ARG 引数のいずれかがNULLの場合に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 - \return KEYUSAGE_E 未知のトークンが検出された際に返されます。 + \return 0 成功 + \return BAD_FUNC_ARG いずれかの引数がnullの場合に返されます。 + \return MEMORY_E メモリの割り当てエラーがある場合に返されます。 + \return KEYUSAGE_E 認識されないトークンが入力された場合に返されます。 - \param cert 鍵の用途を設定する対象の初期化済みCert構造体へのポインタ。 - \param value 鍵の用途を意味するコンマ区切りトークン文字列へのポインタ + \param cert 初期化されたCert構造体へのポインタ。 + \param value 使用法を設定するトークンのカンマ区切り文字列。 _Example_ \code @@ -820,7 +807,7 @@ int wc_SetSubjectKeyId(Cert *cert, const char* file); if(wc_SetKeyUsage(&cert, "cRLSign,keyCertSign") != 0) { - // Handle error + // エラーを処理 } \endcode @@ -832,17 +819,17 @@ int wc_SetKeyUsage(Cert *cert, const char *value); /*! \ingroup ASN - \brief PEM形式の鍵ファイルをロードしDER形式に変換してバッファに出力します。 + \brief ファイルからPEMキーを読み込み、DERエンコードされたバッファに変換します。 - \return 0 処理成功時に返されます。 - \return <0 エラー発生時に返されます。 - \return SSL_BAD_FILE ファイルのオープンに問題が生じた際に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 - \return BUFFER_E 与えられた出力バッファderBufが結果を保持するのに十分な大きさがない場合に返されます。 + \return 0 成功 + \return <0 エラー + \return SSL_BAD_FILE ファイルを開く際に問題があります。 + \return MEMORY_E ファイルバッファ用のメモリ割り当てエラーがあります。 + \return BUFFER_E derBufが変換されたキーを保持するのに十分な大きさではありません。 - \param fileName PEM形式のファイルパス - \param derBuf DER形式鍵を出力する先のバッファ - \param derSz 出力先バッファのサイズ + \param fileName ロードするファイルの名前。 + \param derBuf DERエンコードされたキー用のバッファ。 + \param derSz DERバッファのサイズ。 _Example_ \code @@ -851,7 +838,7 @@ int wc_SetKeyUsage(Cert *cert, const char *value); if(wc_PemPubKeyToDer(some_file, der, sizeof(der)) != 0) { - //Handle Error + // エラーを処理 } \endcode @@ -863,26 +850,26 @@ int wc_PemPubKeyToDer(const char* fileName, /*! \ingroup ASN - \brief PEM形式の鍵データをDER形式に変換してバッファに出力し、出力バイト数あるいは負のエラー値を返します。 + \brief PEMエンコードされた公開鍵をDERに変換します。バッファに書き込まれたバイト数、またはエラーの場合は負の値を返します。 - \return >0 処理成功時には出力したバイト数が返されます。 - \return BAD_FUNC_ARG 引数のpem, buff, あるいは buffSz のいずれかばNULLの場合に返されます。 - \return <0 エラーが発生した際に返されます。 + \return >0 成功、書き込まれたバイト数。 + \return BAD_FUNC_ARG pem、buff、またはbuffSzがnullの場合に返されます + \return <0 関数内でエラーが発生しました。 - \param pem PEM形式の鍵を含んだバッファへのポインタ - \param pemSz PEM形式の鍵を含んだバッファのサイズ - \param buff 出力先バッファへのポインタ - \param buffSz 出力先バッファのサイズ + \param pem PEMエンコードされたキー + \param pemSz pemのサイズ + \param buff 出力用バッファへのポインタ。 + \param buffSz バッファのサイズ。 _Example_ \code - byte some_pem[] = { Initialize with PEM key } - unsigned char out_buffer[1024]; // Ensure buffer is large enough to fit DER + byte some_pem[] = { PEMキーで初期化 } + unsigned char out_buffer[1024]; // バッファがDERを格納するのに十分な大きさであることを確認 if(wc_PubKeyPemToDer(some_pem, sizeof(some_pem), out_buffer, sizeof(out_buffer)) < 0) { - // Handle error + // エラーを処理 } \endcode @@ -894,29 +881,29 @@ int wc_PubKeyPemToDer(const unsigned char* pem, int pemSz, /*! \ingroup ASN - \brief この関数はPEM形式の証明書をDER形式に変換し、与えられたバッファに出力します。 + \brief この関数は、pem証明書をder証明書に変換し、結果の証明書を提供されたderBufバッファに配置します。 - \return 処理成功時には出力したバイト数が返されます。 - \return BUFFER_E 与えられた出力バッファderBufが結果を保持するのに十分な大きさがない場合に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 + \return Success 成功時に生成されたderBufのサイズを返します + \return BUFFER_E derBufのサイズが生成された証明書を保持するには小さすぎる場合に返されます + \return MEMORY_E XMALLOCの呼び出しが失敗した場合に返されます - \param fileName PEM形式のファイルパス - \param derBuf DER形式証明書を出力する先のバッファへのポインタ - \param derSz DER形式証明書を出力する先のバッファのサイズ + \param fileName der証明書に変換するpem証明書を含むファイルへのパス + \param derBuf 変換された証明書を格納するcharバッファへのポインタ + \param derSz 変換された証明書を格納するcharバッファのサイズ _Example_ \code - char * file = “./certs/client-cert.pem”; + char * file = "./certs/client-cert.pem"; int derSz; byte* der = (byte*)XMALLOC((8*1024), NULL, DYNAMIC_TYPE_CERT); derSz = wc_PemCertToDer(file, der, (8*1024)); if (derSz <= 0) { - //PemCertToDer error + // PemCertToDerエラー } \endcode - \sa none + \sa なし */ int wc_PemCertToDer(const char* fileName, unsigned char* derBuf, int derSz); @@ -924,25 +911,24 @@ int wc_PemCertToDer(const char* fileName, unsigned char* derBuf, int derSz); /*! \ingroup ASN - \brief この関数はバッファで与えられたDER形式の証明書をPEM形式に変換し、与えられた出力用バッファに出力します。 - この関数は入力バッファと出力バッファを共用することはできません。両バッファは必ず別のものを用意してください。 + \brief この関数は、derバッファに含まれるder形式の入力証明書を、outputバッファに含まれるpem形式の出力証明書に変換します。これはインプレース変換ではなく、pem形式の出力を格納するために別のバッファを使用する必要があることに注意してください。 - \return 処理成功時には変換後のPEM形式データのサイズを返します。 - \return BAD_FUNC_ARG DER形式証明書データの解析中にエラーが発生した際、あるいはPEM形式に変換の際にエラーが発生した際に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 - \return ASN_INPUT_E Base64エンコーディングエラーが検出された際に返されます。 - \return BUFFER_E 与えられた出力バッファが結果を保持するのに十分な大きさがない場合に返されます。 + \return Success 入力der証明書から正常にpem証明書を作成すると、生成されたpem証明書のサイズを返します。 + \return BAD_FUNC_ARG derファイルを解析してpemファイルとして格納する際にエラーがある場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_INPUT_E base64エンコードエラーの場合に返されます + \return BUFFER_E 出力バッファがpem形式の証明書を格納するには小さすぎる場合に返される可能性があります - \param der DER形式証明書データを保持するバッファへのポインタ - \param derSz DER形式証明書データのサイズ - \param output PEM形式証明書データを出力する先のバッファへのポインタ - \param outSz PEM形式証明書データを出力する先のバッファのサイズ - \param type 変換する証明書のタイプ。次のタイプが指定可: CERT_TYPE, PRIVATEKEY_TYPE, ECC_PRIVATEKEY_TYPE, and CERTREQ_TYPE. + \param der 変換する証明書のバッファへのポインタ + \param derSz 変換する証明書のサイズ + \param output pem形式の証明書を格納するバッファへのポインタ + \param outSz pem形式の証明書を格納するバッファのサイズ + \param type 生成する証明書のタイプ。有効なタイプは:CERT_TYPE、PRIVATEKEY_TYPE、ECC_PRIVATEKEY_TYPE、およびCERTREQ_TYPE。 _Example_ \code byte* der; - // initialize der with certificate + // 証明書でderを初期化 byte* pemFormatted[FOURK_BUF]; word32 pemSz; @@ -952,57 +938,56 @@ int wc_PemCertToDer(const char* fileName, unsigned char* derBuf, int derSz); \sa wc_PemCertToDer */ int wc_DerToPem(const byte* der, word32 derSz, byte* output, - word32 outputSz, int type); + word32 outSz, int type); /*! \ingroup ASN - \brief この関数はDER形式証明書を入力バッファから読み出し、PEM形式に変換して出力バッファに出力します。 - この関数は入力バッファと出力バッファを共用することはできません。両バッファは必ず別のものを用意してください。 - 追加の暗号情報を指定することができます。 + \brief この関数は、der形式の入力証明書を変換します、 + derバッファに含まれる、pem形式の出力証明書に変換し、outputバッファに格納します。これはインプレース変換ではなく、pem形式の出力を格納するために別のバッファを使用する必要があることに注意してください。暗号情報の設定を許可します。 - \return 処理成功時には変換後のPEM形式データのサイズを返します。 - \return BAD_FUNC_ARG Returned DER形式証明書データの解析中にエラーが発生した際、あるいはPEM形式に変換の際にエラーが発生した際に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 - \return ASN_INPUT_E Base64エンコーディングエラーが検出された際に返されます。 - \return BUFFER_E 与えられた出力バッファが結果を保持するのに十分な大きさがない場合に返されます。 + \return Success 入力der証明書から正常にpem証明書を作成すると、生成されたpem証明書のサイズを返します。 + \return BAD_FUNC_ARG derファイルを解析してpemファイルとして格納する際にエラーがある場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return ASN_INPUT_E base64エンコードエラーの場合に返されます + \return BUFFER_E 出力バッファがpem形式の証明書を格納するには小さすぎる場合に返される可能性があります - \param der DER形式証明書データを保持するバッファへのポインタ - \param derSz DER形式証明書データのサイズ - \param output PEM形式証明書データを出力する先のバッファへのポインタ - \param outSz PEM形式証明書データを出力する先のバッファのサイズ - \param cipher_inf 追加の暗号情報 - \param type 生成する証明書タイプ。指定可能なタイプ: CERT_TYPE, PRIVATEKEY_TYPE, ECC_PRIVATEKEY_TYPE と CERTREQ_TYPE + \param der 変換する証明書のバッファへのポインタ + \param derSz 変換する証明書のサイズ + \param output pem形式の証明書を格納するバッファへのポインタ + \param outSz pem形式の証明書を格納するバッファのサイズ + \param cipher_info 追加の暗号情報。 + \param type 生成する証明書のタイプ。有効なタイプは:CERT_TYPE、PRIVATEKEY_TYPE、ECC_PRIVATEKEY_TYPE、およびCERTREQ_TYPE。 _Example_ \code byte* der; - // initialize der with certificate + // 証明書でderを初期化 byte* pemFormatted[FOURK_BUF]; word32 pemSz; - byte* cipher_info[] { Additional cipher info. } + byte* cipher_info[] { 追加の暗号情報。 } pemSz = wc_DerToPemEx(der, derSz, pemFormatted, FOURK_BUF, cipher_info, CERT_TYPE); \endcode \sa wc_PemCertToDer */ int wc_DerToPemEx(const byte* der, word32 derSz, byte* output, - word32 outputSz, byte *cipherIno, int type); + word32 outSz, byte *cipher_info, int type); /*! \ingroup CertsKeys - \brief PEM形式の鍵をDER形式に変換します。 + \brief PEM形式のキーをDER形式に変換します。 - \return 変換に成功した際には出力バッファに書き込んだデータサイズを返します。 - \return エラー発生時には負の整数値を返します。 + \return int 関数は正常実行時にバッファに書き込まれたバイト数を返します。 + \return int エラーを示す負の整数が返されます。 - \param pem PEM形式の証明書データへのポインタ - \param pemSz PEM形式の証明書データのサイズ - \param buff DerBuffer構造体のbufferメンバーのコピーへのポインタ - \param buffSz DerBuffer構造体のbufferメンバーへ確保されたバッファのサイズ - \param pass パスワード + \param pem PEMエンコードされた証明書へのポインタ。 + \param pemSz PEMバッファ(pem)のサイズ + \param buff DerBuffer構造体のbufferメンバーのコピーへのポインタ。 + \param buffSz DerBuffer構造体に割り当てられたバッファスペースのサイズ。 + \param pass 関数に渡されるパスワード。 _Example_ \code @@ -1017,7 +1002,7 @@ int wc_DerToPemEx(const byte* der, word32 derSz, byte* output, (int)fileSz, password); if(saveBufSz > 0){ - // Bytes were written to the buffer. + // バイトがバッファに書き込まれました。 } \endcode @@ -1029,15 +1014,15 @@ int wc_KeyPemToDer(const unsigned char* pem, int pemSz, /*! \ingroup CertsKeys - \brief この関数はPEM形式の証明書をDER形式に変換します。内部ではOpenSSL互換APIのPemToDerを呼び出します。 + \brief この関数は、PEM形式の証明書をDER形式に変換します。OpenSSL関数PemToDerを呼び出します。 - \return バッファに出力したサイズを返します。 + \return buffer バッファに書き込まれたバイトを返します。 - \param pem PEM形式の証明書を含むバッファへのポインタ - \param pemSz PEM形式の証明書を含むバッファのサイズ - \param buff DER形式に変換した証明書データの出力先バッファへのポインタ - \param buffSz 出力先バッファのサイズ - \param type 証明書のタイプ。asn_public.h で定義のenum CertTypeの値。 + \param pem PEM形式の証明書へのポインタ。 + \param pemSz 証明書のサイズ。 + \param buff DER形式にコピーされるバッファ。 + \param buffSz バッファのサイズ。 + \param type asn_public.h enum CertTypeにある証明書ファイルタイプ。 _Example_ \code @@ -1048,7 +1033,7 @@ int wc_KeyPemToDer(const unsigned char* pem, int pemSz, int type; ... if(wc_CertPemToDer(pem, pemSz, buff, buffSz, type) <= 0) { - // There were bytes written to buffer + // バッファにバイトが書き込まれました } \endcode @@ -1060,18 +1045,13 @@ int wc_CertPemToDer(const unsigned char* pem, int pemSz, /*! \ingroup CertsKeys - \brief この関数は公開鍵をDER形式でDecodedCert構造体から取り出します。 - wc_InitDecodedCert()とwc_ParseCert()を事前に呼び出しておく必要があります。 - wc_InitDecodedCert()はDER/ASN.1エンコードされた証明書を受け付けます。 - PEM形式の鍵をDER形式で取得する場合には、wc_InitDecodedCert()より先にwc_CertPemToDer()を呼び出してください。 + \brief この関数は、入力されたDecodedCert構造体からDER形式の公開鍵を取得します。このAPIを呼び出す前に、ユーザーはwc_InitDecodedCert()とwc_ParseCert()を呼び出す必要があります。wc_InitDecodedCert()はDER/ASN.1エンコードされた証明書を受け入れます。PEM証明書をDERに変換するには、wc_InitDecodedCert()を呼び出す前にまずwc_CertPemToDer()を使用してください。 - \return 成功時に0を返します。エラー発生時には負の整数を返します。 - \return LENGTH_ONLY_E derKeyがNULLの際に返されます。 + \return 0 成功時、エラー時は負の値。derKeyがNULLで長さのみを返す場合はLENGTH_ONLY_E。 - \param cert X.509証明書を保持したDecodedCert構造体へのポインタ - \param derKey DER形式の公開鍵を出力する先のバッファへのポインタ - \param derKeySz [IN/OUT] 入力時にはderKeyで与えられるバッファのサイズ,出力時には公開鍵のサイズを保持します。 - もし、derKeyがNULLで渡された場合には, derKeySzには必要なバッファサイズが格納され、LENGTH_ONLY_Eが戻り値として返されます。 + \param cert X.509証明書を保持する入力されたDecodedCert構造体 + \param derKey DERエンコードされた公開鍵を配置する出力バッファ + \param derKeySz [IN/OUT] 入力時のderKeyバッファのサイズ、返却時の公開鍵のサイズ。derKeyがNULLとして渡された場合、derKeySzは公開鍵に必要なバッファサイズに設定され、関数からLENGTH_ONLY_Eが返されます。 \sa wc_GetPubKeyDerFromCert */ @@ -1081,41 +1061,41 @@ int wc_GetPubKeyDerFromCert(struct DecodedCert* cert, /*! \ingroup ASN - \brief この関数はECC秘密鍵を入力バッファから読み込み、解析の後ecc_key構造体を作成してそこに鍵を格納します。 - - \return 0 秘密鍵のデコードと結果のecc_key構造体への格納成功時に返されます。 - \return ASN_PARSE_E 入力バッファの解析あるいは結果の格納時にエラーが発生した場合に返されます。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 - \return BUFFER_E 入力された証明書が最大証明書サイズより大きかった場合に返されます。 - \return ASN_OBJECT_ID_E 証明書が無効なオブジェクトIDを含んでいる場合に返されます。 - \return ECC_CURVE_OID_E 与えられた秘密鍵のECC曲線がサポートされていない場合に返されます。 - \return ECC_BAD_ARG_E ECC秘密鍵のフォーマットにエラーがある場合に返されます。 - \return NOT_COMPILED_IN 秘密鍵が圧縮されていて圧縮鍵が提供されていない場合に返されます。 - \return MP_MEM 秘密鍵の解析で使用される数学ライブラリがエラーを検出した場合に返されます。 - \return MP_VAL 秘密鍵の解析で使用される数学ライブラリがエラーを検出した場合に返されます。 - \return MP_RANGE 秘密鍵の解析で使用される数学ライブラリがエラーを検出した場合に返されます。 - - \param input 入力となる秘密鍵データを含んでいるバッファへのポインタ - \param inOutIdx word32型変数で内容として入力バッファの処理開始位置を先頭からのインデクス値として保持している。 - \param key デコードされた秘密鍵が格納される初期化済みのecc_key構造体へのポインタ - \param inSz 秘密鍵を含んでいる入力バッファのサイズ + \brief この関数は、入力バッファinputからECC秘密鍵を読み取り、秘密鍵を解析し、それを使用してecc_keyオブジェクトを生成し、keyに格納します。 + + \return 0 秘密鍵のデコードに成功し、結果をecc_key構造体に格納した場合 + \return ASN_PARSE_E derファイルを解析してpemファイルとして格納する際にエラーがある場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return BUFFER_E 変換する証明書が指定された最大証明書サイズより大きい場合に返されます + \return ASN_OBJECT_ID_E 証明書エンコーディングに無効なオブジェクトIDがある場合に返されます + \return ECC_CURVE_OID_E 提供されたキーのECC曲線がサポートされていない場合に返されます + \return ECC_BAD_ARG_E ECCキー形式にエラーがある場合に返されます + \return NOT_COMPILED_IN 秘密鍵が圧縮されており、圧縮キーが提供されていない場合に返されます + \return MP_MEM 秘密鍵の解析中に使用される数学ライブラリにエラーがある場合に返されます + \return MP_VAL 秘密鍵の解析中に使用される数学ライブラリにエラーがある場合に返されます + \return MP_RANGE 秘密鍵の解析中に使用される数学ライブラリにエラーがある場合に返されます + + \param input 入力秘密鍵を含むバッファへのポインタ + \param inOutIdx バッファ内で開始するインデックスを含むword32オブジェクトへのポインタ + \param key デコードされた秘密鍵を格納する初期化されたeccオブジェクトへのポインタ + \param inSz 秘密鍵を含む入力バッファのサイズ _Example_ \code int ret, idx=0; - ecc_key key; // to store key in + ecc_key key; // キーを格納 - byte* tmp; // tmp buffer to read key from + byte* tmp; // キーを読み取るための一時バッファ tmp = (byte*) malloc(FOURK_BUF); int inSz; inSz = fread(tmp, 1, FOURK_BUF, privateKeyFile); - // read key into tmp buffer + // tmpバッファにキーを読み取る - wc_ecc_init(&key); // initialize key + wc_ecc_init(&key); // キーを初期化 ret = wc_EccPrivateKeyDecode(tmp, &idx, &key, (word32)inSz); if(ret < 0) { - // error decoding ecc key + // eccキーのデコードエラー } \endcode @@ -1127,32 +1107,32 @@ int wc_EccPrivateKeyDecode(const byte* input, word32* inOutIdx, /*! \ingroup ASN - \brief この関数はECC秘密鍵をDER形式でバッファに出力します。 + \brief この関数は、秘密ECCキーをder形式に書き込みます。 - \return ECC秘密鍵をDER形式での出力に成功した場合にはバッファへ出力したサイズを返します。 - \return BAD_FUNC_ARG 出力バッファoutputがNULLあるいはinLenがゼロの場合に返します。 - \return MEMORY_E メモリの確保に失敗した際に返されます。 - \return BUFFER_E 出力バッファが必要量より小さい - \return ASN_UNKNOWN_OID_E ECC秘密鍵が未知のタイプの場合に返します。 - \return MP_MEM 秘密鍵の解析で使用される数学ライブラリがエラーを検出した場合に返されます。 - \return MP_VAL 秘密鍵の解析で使用される数学ライブラリがエラーを検出した場合に返されます。 - \return MP_RANGE 秘密鍵の解析で使用される数学ライブラリがエラーを検出した場合に返されます。 + \return Success ECCキーのder形式への書き込みに成功すると、バッファに書き込まれた長さを返します + \return BAD_FUNC_ARG keyまたはoutputがnull、またはinLenがゼロの場合に返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return BUFFER_E 変換された証明書が出力バッファに格納するには大きすぎる場合に返されます + \return ASN_UNKNOWN_OID_E 使用されているECCキーが不明なタイプの場合に返されます + \return MP_MEM 秘密鍵の解析中に使用される数学ライブラリにエラーがある場合に返されます + \return MP_VAL 秘密鍵の解析中に使用される数学ライブラリにエラーがある場合に返されます + \return MP_RANGE 秘密鍵の解析中に使用される数学ライブラリにエラーがある場合に返されます - \param key 入力となるECC秘密鍵データを含んでいるバッファへのポインタ - \param output DER形式のECC秘密鍵を出力する先のバッファへのポインタ - \param inLen DER形式のECC秘密鍵を出力する先のバッファのサイズ + \param key 入力eccキーを含むバッファへのポインタ + \param output der形式のキーを格納するバッファへのポインタ + \param inLen der形式のキーを格納するバッファの長さ _Example_ \code int derSz; ecc_key key; - // initialize and make key + // キーを初期化して作成 byte der[FOURK_BUF]; - // store der formatted key here + // ここにder形式のキーを格納 derSz = wc_EccKeyToDer(&key, der, FOURK_BUF); if(derSz < 0) { - // error converting ecc key to der buffer + // eccキーをderバッファに変換する際のエラー } \endcode @@ -1163,29 +1143,28 @@ int wc_EccKeyToDer(ecc_key* key, byte* output, word32 inLen); /*! \ingroup ASN - \brief この関数は入力バッファのECC公開鍵をASNシーケンスをデコードして取り出します。 + \brief 入力バッファからECC公開鍵をデコードします。ECCキーを取得するためにASNシーケンスを解析します。 - \return 0 処理成功時に返します。 - \return BAD_FUNC_ARG Returns いずれかの引数がNULLの場合に返します。 - \return ASN_PARSE_E 解析中にエラーが発生した場合に返します。 - \return ASN_ECC_KEY_E 鍵のインポートでエラーが発生した場合に返します。 - 発生理由についてはwc_ecc_import_x963()を参照のこと。 + \return 0 成功 + \return BAD_FUNC_ARG いずれかの引数がnullの場合に返されます。 + \return ASN_PARSE_E 解析エラーがある場合に返されます + \return ASN_ECC_KEY_E キーのインポートエラーがある場合に返されます。 + 考えられる理由についてはwc_ecc_import_x963を参照してください。 - \param input DER形式の公開鍵を含んだバッファへのポインタ - \param inOutIdx バッファの読み出し位置インデクス値を保持している変数へのポインタ(入力時)。 - 出力時にはこの変数に解析済みのバッファのインデクス値が格納されます。 - \param key ecc_key構造体へのポインタ - \param inSz 入力バッファのサイズ + \param input デコードするDERエンコードされたキーを含むバッファ。 + \param inOutIdx 入力バッファの読み取り開始位置のインデックス。出力時、インデックスは入力バッファの最後に解析された位置に設定されます。 + \param key 公開鍵を格納するecc_key構造体へのポインタ。 + \param inSz 入力バッファのサイズ。 _Example_ \code int ret; word32 idx = 0; - byte buff[] = { // initialize with key }; + byte buff[] = { // キーで初期化 }; ecc_key pubKey; wc_ecc_init(&pubKey); if ( wc_EccPublicKeyDecode(buff, &idx, &pubKey, sizeof(buff)) != 0) { - // error decoding key + // キーのデコードエラー } \endcode @@ -1197,19 +1176,17 @@ int wc_EccPublicKeyDecode(const byte* input, word32* inOutIdx, /*! \ingroup ASN - \brief この関数はECC公開鍵をDER形式に変換します。 - 処理したバッファのサイズを返します。変換して得られるDER形式のECC公開鍵は出力バッファに格納されます。 - AlgCurveフラグの指定により、アルゴリズムと曲線情報をヘッダーに含めることができます。 + \brief この関数は、ECC公開鍵をDER形式に変換します。使用されたバッファのサイズを返します。DER形式のECC公開鍵は出力バッファに格納されます。with_AlgCurveフラグは、アルゴリズムと曲線情報を持つヘッダーを含めます - \return 成功時には処理したバッファのサイズを返します。 - \return BAD_FUNC_ARG 出力バッファoutputあるいはecc_key構造体keyがNULLの場合に返します。 - \return LENGTH_ONLY_E ECC公開鍵のサイズ取得に失敗した場合に返します。 - \return BUFFER_E 出力バッファが必要量より小さい場合に返します。 + \return >0 成功、使用されたバッファのサイズ + \return BAD_FUNC_ARG outputまたはkeyがnullの場合に返されます。 + \return LENGTH_ONLY_E ECC公開鍵のサイズ取得エラー。 + \return BUFFER_E 出力バッファが小さすぎる場合に返されます。 - \param key ecc_key構造体へのポインタ - \param output 出力バッファへのポインタ - \param inLen 出力バッファのサイズ - \param with_AlgCurve アルゴリズムと曲線情報をヘッダーに含める際には1を指定 + \param key ECCキーへのポインタ + \param output 書き込み先の出力バッファへのポインタ。 + \param inLen バッファのサイズ。 + \param with_AlgCurve アルゴリズムと曲線情報を持つヘッダーを含めるタイミングのフラグ。 _Example_ \code @@ -1218,12 +1195,12 @@ int wc_EccPublicKeyDecode(const byte* input, word32* inOutIdx, WC_RNG rng; wc_InitRng(&rng); wc_ecc_make_key(&rng, 32, &key); - int derSz = // Some appropriate size for der; + int derSz = // der用の適切なサイズ; byte der[derSz]; if(wc_EccPublicKeyToDer(&key, der, derSz, 1) < 0) { - // Error converting ECC public key to der + // ECC公開鍵のder変換エラー } \endcode @@ -1236,21 +1213,18 @@ int wc_EccPublicKeyToDer(ecc_key* key, byte* output, /*! \ingroup ASN - \brief この関数はECC公開鍵をDER形式に変換します。 - 処理したバッファサイズを返します。変換されたDER形式のECC公開鍵は出力バッファに格納されます。 - AlgCurveフラグの指定により、アルゴリズムと曲線情報をヘッダーに含めることができます。 - compパラメータは公開鍵を圧縮して出力するか否かを指定します。 + \brief この関数は、ECC公開鍵をDER形式に変換します。使用されたバッファのサイズを返します。DER形式のECC公開鍵は出力バッファに格納されます。with_AlgCurveフラグは、アルゴリズムと曲線情報を持つヘッダーを含めます。compパラメータは、公開鍵を圧縮形式でエクスポートするかどうかを決定します。 - \return >0 成功時には処理したバッファのサイズを返します。 - \return BAD_FUNC_ARG 出力バッファoutputあるいはecc_key構造体keyがNULLの場合に返します。 - \return LENGTH_ONLY_E ECC公開鍵のサイズ取得に失敗した場合に返します。 - \return BUFFER_E 出力バッファが必要量より小さい場合に返します。 + \return >0 成功、使用されたバッファのサイズ + \return BAD_FUNC_ARG outputまたはkeyがnullの場合に返されます。 + \return LENGTH_ONLY_E ECC公開鍵のサイズ取得エラー。 + \return BUFFER_E 出力バッファが小さすぎる場合に返されます。 - \param key ecc_key構造体へのポインタ - \param output 出力バッファへのポインタ - \param inLen 出力バッファのサイズ - \param with_AlgCurve アルゴリズムと曲線情報をヘッダーに含める際には1を指定 - \param comp 非ゼロ値の指定時にはECC公開鍵は圧縮形式で出力されます。ゼロが指定された場合には非圧縮で出力されます。 + \param key ECCキーへのポインタ + \param output 書き込み先の出力バッファへのポインタ。 + \param inLen バッファのサイズ。 + \param with_AlgCurve アルゴリズムと曲線情報を持つヘッダーを含めるタイミングのフラグ。 + \param comp 1(ゼロ以外)の場合、ECC公開鍵は圧縮形式で書き込まれます。0の場合、非圧縮形式で書き込まれます。 _Example_ \code @@ -1259,13 +1233,13 @@ int wc_EccPublicKeyToDer(ecc_key* key, byte* output, WC_RNG rng; wc_InitRng(&rng); wc_ecc_make_key(&rng, 32, &key); - int derSz = // Some appropriate size for der; + int derSz = // der用の適切なサイズ; byte der[derSz]; - // Write out a compressed ECC key + // 圧縮されたECCキーを書き出す if(wc_EccPublicKeyToDer_ex(&key, der, derSz, 1, 1) < 0) { - // Error converting ECC public key to der + // ECC公開鍵のder変換エラー } \endcode @@ -1275,33 +1249,225 @@ int wc_EccPublicKeyToDer(ecc_key* key, byte* output, int wc_EccPublicKeyToDer_ex(ecc_key* key, byte* output, word32 inLen, int with_AlgCurve, int comp); + +/*! + \ingroup ASN + + \brief この関数は、DERエンコードされたバッファからCurve25519秘密鍵(のみ)をデコードします + + \return 0 成功 + \return BAD_FUNC_ARG input、inOutIdxまたはkeyがnullの場合に返されます + \return ASN_PARSE_E DERエンコードされたデータの解析エラーがある場合に返されます + \return ECC_BAD_ARG_E キー長がCURVE25519_KEYSIZEでない場合、またはDERキーが適切にフォーマットされているにもかかわらず他の問題を含む場合に返されます。 + \return BUFFER_E 入力バッファが有効なDERエンコードされたキーを含むには小さすぎる場合に返されます。 + + \param input DERエンコードされた秘密鍵を含むバッファへのポインタ + \param inOutIdx 入力バッファの読み取り開始位置のインデックス。出力時、インデックスは入力バッファの最後に解析された位置に設定されます。 + \param key デコードされたキーを格納するcurve25519_key構造体へのポインタ + \param inSz 入力DERバッファのサイズ + + \sa wc_Curve25519KeyDecode + \sa wc_Curve25519PublicKeyDecode + + _Example_ + \code + byte der[] = { // DERエンコードされたキー }; + word32 idx = 0; + curve25519_key key; + wc_curve25519_init(&key); + + if (wc_Curve25519PrivateKeyDecode(der, &idx, &key, sizeof(der)) != 0) { + // 秘密鍵のデコードエラー + } + \endcode +*/ +int wc_Curve25519PrivateKeyDecode(const byte* input, word32* inOutIdx, + curve25519_key* key, word32 inSz); + +/*! + \ingroup ASN + + \brief この関数は、DERエンコードされたバッファからCurve25519公開鍵(のみ)をデコードします。 + + \return 0 成功 + \return BAD_FUNC_ARG input、inOutIdxまたはkeyがnullの場合に返されます + \return ASN_PARSE_E DERエンコードされたデータの解析エラーがある場合に返されます + \return ECC_BAD_ARG_E キー長がCURVE25519_KEYSIZEでない場合、またはDERキーが適切にフォーマットされているにもかかわらず他の問題を含む場合に返されます。 + \return BUFFER_E 入力バッファが有効なDERエンコードされたキーを含むには小さすぎる場合に返されます。 + + \param input DERエンコードされた公開鍵を含むバッファへのポインタ + \param inOutIdx 入力バッファの読み取り開始位置のインデックス。出力時、インデックスは入力バッファの最後に解析された位置に設定されます。 + \param key デコードされたキーを格納するcurve25519_key構造体へのポインタ + \param inSz 入力DERバッファのサイズ + + \sa wc_Curve25519KeyDecode + \sa wc_Curve25519PrivateKeyDecode + + _Example_ + \code + byte der[] = { // DERエンコードされたキー }; + word32 idx = 0; + curve25519_key key; + wc_curve25519_init(&key); + if (wc_Curve25519PublicKeyDecode(der, &idx, &key, sizeof(der)) != 0) { + // 公開鍵のデコードエラー + } + \endcode +*/ +int wc_Curve25519PublicKeyDecode(const byte* input, word32* inOutIdx, + curve25519_key* key, word32 inSz); + +/*! + \ingroup ASN + + \brief この関数は、DERエンコードされたバッファからCurve25519キーをデコードします。秘密鍵、公開鍵、または両方をデコードできます。 + + \return 0 成功 + \return BAD_FUNC_ARG input、inOutIdxまたはkeyがnullの場合に返されます + \return ASN_PARSE_E DERエンコードされたデータの解析エラーがある場合に返されます + \return ECC_BAD_ARG_E キー長がCURVE25519_KEYSIZEでない場合、またはDERキーが適切にフォーマットされているにもかかわらず他の問題を含む場合に返されます。 + \return BUFFER_E 入力バッファが有効なDERエンコードされたキーを含むには小さすぎる場合に返されます。 + + \param input DERエンコードされたキーを含むバッファへのポインタ + \param inOutIdx 入力バッファの読み取り開始位置のインデックス。出力時、インデックスは入力バッファの最後に解析された位置に設定されます。 + \param key デコードされたキーを格納するcurve25519_key構造体へのポインタ + \param inSz 入力DERバッファのサイズ + + \sa wc_Curve25519PrivateKeyDecode + \sa wc_Curve25519PublicKeyDecode + + _Example_ + \code + byte der[] = { // DERエンコードされたキー }; + word32 idx = 0; + curve25519_key key; + wc_curve25519_init(&key); + if (wc_Curve25519KeyDecode(der, &idx, &key, sizeof(der)) != 0) { + // キーのデコードエラー + } + \endcode +*/ +int wc_Curve25519KeyDecode(const byte* input, word32* inOutIdx, + curve25519_key* key, word32 inSz); + /*! \ingroup ASN - \brief この関数はデジタル署名をエンコードして出力バッファに出力し、生成された署名のサイズを返します。 + \brief この関数は、Curve25519秘密鍵をDER形式にエンコードします。入力キー構造体に公開鍵が含まれている場合、それは無視されます。 - \return 成功時には署名を出力バッファに出力し、出力したサイズを返します。 + \return >0 成功、DERエンコーディングの長さ + \return BAD_FUNC_ARG keyまたはoutputがnullの場合に返されます + \return MEMORY_E 割り当て失敗がある場合に返されます + \return BUFFER_E 出力バッファが小さすぎる場合に返されます - \param out エンコードした署名データを出力する先のバッファへのポインタ - \param digest 署名データのエンコードに使用するダイジェストへのポインタ - \param digSz ダイジェストを含んでいるバッファのサイズ - \param hashOID ハッシュタイプを示すオブジェクトID。有効な値は: SHAh, SHA256h, SHA384h, SHA512h, MD2h, MD5h, DESb, DES3b, CTC_MD5wRSA, - CTC_SHAwRSA, CTC_SHA256wRSA, CTC_SHA384wRSA, CTC_SHA512wRSA, CTC_SHAwECDSA, CTC_SHA256wECDSA, CTC_SHA384wECDSA, と CTC_SHA512wECDSA。 + \param key エンコードする秘密鍵を含むcurve25519_key構造体へのポインタ + \param output DERエンコーディングを保持するバッファ + \param inLen 出力バッファのサイズ + + \sa wc_Curve25519KeyToDer + \sa wc_Curve25519PublicKeyToDer + + _Example_ + \code + curve25519_key key; + wc_curve25519_init(&key); + ... + int derSz = 128; // 出力DER用の適切なサイズ + byte der[derSz]; + wc_Curve25519PrivateKeyToDer(&key, der, derSz); + \endcode +*/ +int wc_Curve25519PrivateKeyToDer(curve25519_key* key, byte* output, + word32 inLen); + +/*! + \ingroup ASN + + \brief この関数は、Curve25519公開鍵をDER形式にエンコードします。入力キー構造体に秘密鍵が含まれている場合、それは無視されます。 + + \return >0 成功、DERエンコーディングの長さ + \return BAD_FUNC_ARG keyまたはoutputがnullの場合に返されます + \return MEMORY_E 割り当て失敗がある場合に返されます + \return BUFFER_E 出力バッファが小さすぎる場合に返されます + + \param key エンコードする公開鍵を含むcurve25519_key構造体へのポインタ + \param output DERエンコーディングを保持するバッファ + \param inLen 出力バッファのサイズ + \param withAlg DERエンコーディングにアルゴリズム識別子を含めるかどうか + + \sa wc_Curve25519KeyToDer + \sa wc_Curve25519PrivateKeyToDer + + _Example_ + \code + curve25519_key key; + wc_curve25519_init(&key); + ... + int derSz = 128; // 出力DER用の適切なサイズ + byte der[derSz]; + wc_Curve25519PublicKeyToDer(&key, der, derSz, 1); + \endcode +*/ +int wc_Curve25519PublicKeyToDer(curve25519_key* key, byte* output, word32 inLen, + int withAlg); + +/*! + \ingroup ASN + + \brief この関数は、Curve25519キーをDER形式にエンコードします。秘密鍵、公開鍵、または両方をエンコードできます。 + + \return >0 成功、DERエンコーディングの長さ + \return BAD_FUNC_ARG keyまたはoutputがnullの場合に返されます + \return MEMORY_E 割り当て失敗がある場合に返されます + \return BUFFER_E 出力バッファが小さすぎる場合に返されます + + \param key エンコードするキーを含むcurve25519_key構造体へのポインタ + \param output DERエンコーディングを保持するバッファ + \param inLen 出力バッファのサイズ + \param withAlg DERエンコーディングにアルゴリズム識別子を含めるかどうか + + \sa wc_Curve25519PrivateKeyToDer + \sa wc_Curve25519PublicKeyToDer + + _Example_ + \code + curve25519_key key; + wc_curve25519_init(&key); + ... + int derSz = 128; // 出力DER用の適切なサイズ + byte der[derSz]; + wc_Curve25519KeyToDer(&key, der, derSz, 1); + \endcode +*/ +int wc_Curve25519KeyToDer(curve25519_key* key, byte* output, word32 inLen, + int withAlg); + +/*! + \ingroup ASN + + \brief この関数は、デジタル署名を出力バッファにエンコードし、作成されたエンコードされた署名のサイズを返します。 + + \return Success エンコードされた署名をoutputに正常に書き込むと、バッファに書き込まれた長さを返します + + \param out エンコードされた署名が書き込まれるバッファへのポインタ + \param digest 署名のエンコードに使用するダイジェストへのポインタ + \param digSz ダイジェストを含むバッファの長さ + \param hashOID 署名の生成に使用されるハッシュタイプを識別するOID。ビルド構成に応じた有効なオプションは:SHAh、SHA256h、SHA384h、SHA512h、MD2h、MD5h、DESb、DES3b、CTC_MD5wRSA、CTC_SHAwRSA、CTC_SHA256wRSA、CTC_SHA384wRSA、CTC_SHA512wRSA、CTC_SHAwECDSA、CTC_SHA256wECDSA、CTC_SHA384wECDSA、およびCTC_SHA512wECDSA。 \endcode \code int signSz; byte encodedSig[MAX_ENCODED_SIG_SZ]; Sha256 sha256; - // initialize sha256 for hashing + // ハッシュ化のためにsha256を初期化 byte* dig = = (byte*)malloc(WC_SHA256_DIGEST_SIZE); - // perform hashing and hash updating so dig stores SHA-256 hash - // (see wc_InitSha256, wc_Sha256Update and wc_Sha256Final) + // ハッシュ化とハッシュ更新を実行してdigにSHA-256ハッシュを格納 + // (wc_InitSha256、wc_Sha256Update、wc_Sha256Finalを参照) signSz = wc_EncodeSignature(encodedSig, dig, WC_SHA256_DIGEST_SIZE, SHA256h); \endcode - \sa none + \sa なし */ word32 wc_EncodeSignature(byte* out, const byte* digest, word32 digSz, int hashOID); @@ -1309,13 +1475,12 @@ word32 wc_EncodeSignature(byte* out, const byte* digest, /*! \ingroup ASN - \brief この関数はハッシュタイプに対応したハッシュOIDを返します。 - 例えば、ハッシュタイプが"WC_SHA512"の場合、この関数は"SHA512h"を対応するハッシュOIDとして返します。 + \brief この関数は、ハッシュタイプに対応するハッシュOIDを返します。例えば、WC_SHA512タイプが与えられた場合、この関数はSHA512ハッシュに対応する識別子SHA512hを返します。 - \return 成功時には指定されたハッシュタイプと対応するハッシュOIDを返します。 - \return 0 認識できないハッシュタイプが引数として指定された場合に返します。 + \return Success 成功時に、その暗号化タイプで使用する適切なハッシュに対応するOIDを返します。 + \return 0 認識されないハッシュタイプが引数として渡された場合に返されます。 - \param type ハッシュタイプ。指定可能なタイプ: WC_MD5, WC_SHA, WC_SHA256, WC_SHA384, WC_SHA512, WC_SHA3_224, WC_SHA3_256, WC_SHA3_384, WC_SHA3_512 + \param type OIDを見つけるハッシュタイプ。ビルド構成に応じた有効なオプションには:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512 _Example_ \code @@ -1323,28 +1488,27 @@ word32 wc_EncodeSignature(byte* out, const byte* digest, hashOID = wc_GetCTC_HashOID(WC_SHA512); if (hashOID == 0) { - // WOLFSSL_SHA512 not defined + // WOLFSSL_SHA512が定義されていません } \endcode - \sa none + \sa なし */ int wc_GetCTC_HashOID(int type); /*! \ingroup ASN - \brief この関数はキャッシュされていたCert構造体で使用されたメモリとリソースをクリーンアップします。 - WOLFSSL_CERT_GEN_CACHEが定義されている場合にはDecodedCert構造体がCert構造体内部にキャッシュされ、後続するset系関数の呼び出しの都度DecodedCert構造体がパースされることを防ぎます。 + \brief この関数は、証明書構造体のデコードされた証明書キャッシュによって使用されるメモリとリソースをクリーンアップします。WOLFSSL_CERT_GEN_CACHEが定義されている場合、デコードされた証明書構造体は証明書構造体にキャッシュされます。これにより、証明書設定関数への後続の呼び出しで、各呼び出しでデコードされた証明書を解析することを回避できます。 - \return 0 成功時に返されます。 - \return BAD_FUNC_ARG 引数として無効な値が渡された場合に返されます。 + \return 0 成功時。 + \return BAD_FUNC_ARG 無効なポインタが引数として渡された場合に返されます。 - \param cert 未初期化のCert構造体へのポインタ + \param cert 初期化されていない証明書情報構造体へのポインタ。 _Example_ \code - Cert cert; // Initialized certificate structure + Cert cert; // 初期化された証明書構造体 wc_SetCert_Free(&cert); \endcode @@ -1362,23 +1526,23 @@ void wc_SetCert_Free(Cert* cert); /*! \ingroup ASN - \brief この関数はPKCS#8の暗号化されていないバッファ内部の従来の秘密鍵の開始位置を検出して返します。 + \brief この関数は、PKCS#8暗号化されていないバッファ内の従来の秘密鍵の先頭を見つけます。 - \return 成功時には従来の秘密鍵の長さを返します。 - \return エラー時には負の整数値を返します。 + \return Length 成功時に従来の秘密鍵の長さ。 + \return Negative 失敗時に負の値。 - \param input PKCS#8の暗号化されていない秘密鍵を保持するバッファへのポインタ - \param inOutIdx バッファのインデクス位置を保持する変数へのポインタ。入力時にはこの変数の内容はバッファ内部のPKCS#8の開始位置を示します。出力時には、秘密鍵の先頭位置を保持します。 - \param sz 入力バッファのサイズ + \param input 暗号化されていないPKCS#8秘密鍵を含むバッファ。 + \param inOutIdx 入力バッファへのインデックス。入力時、PKCS#8バッファの先頭へのバイトオフセットである必要があります。出力時、入力バッファ内の従来の秘密鍵へのバイトオフセットになります。 + \param sz 入力バッファのバイト数。 _Example_ \code - byte* pkcs8Buf; // Buffer containing PKCS#8 key. + byte* pkcs8Buf; // PKCS#8キーを含むバッファ。 word32 idx = 0; - word32 sz; // Size of pkcs8Buf. + word32 sz; // pkcs8Bufのサイズ。 ... ret = wc_GetPkcs8TraditionalOffset(pkcs8Buf, &idx, sz); - // pkcs8Buf + idx is now the beginning of the traditional private key bytes. + // pkcs8Buf + idxは従来の秘密鍵バイトの先頭になります。 \endcode \sa wc_CreatePKCS8Key @@ -1392,30 +1556,29 @@ int wc_GetPkcs8TraditionalOffset(byte* input, /*! \ingroup ASN - \brief この関数はDER形式の秘密鍵を入力とし、RKCS#8形式に変換します。 - また、PKCS#12のシュロ―ディットキーバッグの作成にも使用できます。RFC5208を参照のこと。 + \brief この関数は、DER秘密鍵を受け取り、PKCS#8形式に変換します。PKCS#12縮小キーバッグの作成にも使用されます。RFC 5208を参照してください。 - \return 成功時には出力されたPKCS#8 鍵のサイズを返します。 - \return LENGTH_ONLY_E 出力先バッファoutがNULLとして渡された場合にはこのエラーコードが返され、outSzに必要な出力バッファのサイズが格納されます。 - \return エラー時には負の整数値が返されます。 + \return The 成功時にoutに配置されたPKCS#8キーのサイズ。 + \return LENGTH_ONLY_E outがNULLの場合、outSzに必要な出力バッファサイズが返されます。 + \return Other 失敗時に負の値。 - \param out 結果の出力先バッファへのポインタ。NULLの場合には必要な出力先バッファのサイズがoutSzに格納されます。 - \param outSz 出力先バッファのサイズ - \param key 従来のDER形式の秘密鍵を含むバッファへのポインタ - \param keySz 秘密鍵を含むバッファのサイズ - \param algoID アルゴリズムID (RSAk等の) - \param curveOID ECC曲線OID。RSA鍵を使用する場合にはNULLにすること。 - \param oidSz ECC曲線OIDのサイズ。curveOIDがNULLの場合には0にすること。 + \param out 結果を配置するバッファ。NULLの場合、outSzに必要な出力バッファサイズが返されます。 + \param outSz outバッファのサイズ。 + \param key 従来のDERキーを持つバッファ。 + \param keySz keyバッファのサイズ。 + \param algoID アルゴリズムID(例:RSAk)。 + \param curveOID 使用される場合のECC曲線OID。RSAキーの場合はNULLである必要があります。 + \param oidSz 曲線OIDのサイズ。curveOIDがNULLの場合は0に設定されます。 _Example_ \code - ecc_key eccKey; // wolfSSL ECC key object. - byte* der; // DER-encoded ECC key. - word32 derSize; // Size of der. - const byte* curveOid = NULL; // OID of curve used by eccKey. - word32 curveOidSz = 0; // Size of curve OID. - byte* pkcs8; // Output buffer for PKCS#8 key. - word32 pkcs8Sz; // Size of output buffer. + ecc_key eccKey; // wolfSSL ECCキーオブジェクト。 + byte* der; // DERエンコードされたECCキー。 + word32 derSize; // derのサイズ。 + const byte* curveOid = NULL; // eccKeyで使用される曲線のOID。 + word32 curveOidSz = 0; // 曲線OIDのサイズ。 + byte* pkcs8; // PKCS#8キー用の出力バッファ。 + word32 pkcs8Sz; // 出力バッファのサイズ。 derSize = wc_EccKeyDerSize(&eccKey, 1); ... @@ -1424,7 +1587,7 @@ int wc_GetPkcs8TraditionalOffset(byte* input, ret = wc_ecc_get_oid(eccKey.dp->oidSum, &curveOid, &curveOidSz); ... ret = wc_CreatePKCS8Key(NULL, &pkcs8Sz, der, - derSize, ECDSAk, curveOid, curveOidSz); // Get size needed in pkcs8Sz. + derSize, ECDSAk, curveOid, curveOidSz); // pkcs8Szに必要なサイズを取得。 ... ret = wc_CreatePKCS8Key(pkcs8, &pkcs8Sz, der, derSize, ECDSAk, curveOid, curveOidSz); @@ -1442,42 +1605,40 @@ int wc_CreatePKCS8Key(byte* out, word32* outSz, /*! \ingroup ASN - \brief この関数は暗号化されていないPKCS#8のDER形式の鍵(例えばwc_CreatePKCS8Keyで生成された鍵)を受け取り、PKCS#8 暗号化形式に変換します。 - 結果として得られた暗号化鍵はwc_DecryptPKCS8Keyを使って復号できます。RFC5208を参照してください。 - - \return 成功時には出力先バッファに出力された暗号化鍵のサイズを返します。 - \return LENGTH_ONLY_E 出力先バッファoutがNULLとして渡された場合にはこのエラーコードが返され、outSzに必要な出力バッファのサイズが格納されます。 - \return エラー時には負の整数値が返されます。 - - \param key 従来のDER形式の鍵を含んだバッファへのポインタ - \param keySz 鍵を含んだバッファのサイズ - \param out 出力結果を格納する先のバッファへのポインタ。NULLの場合には必要な出力先バッファのサイズがoutSzに格納されます。 - \param outSz 出力先バッファのサイズ - \param password パスワードベース暗号化アルゴリズムに使用されるパスワード - \param passwordSz パスワードのサイズ(NULL終端文字は含まない) - \param vPKCS 使用するPKCSのバージョン番号。1 はPKCS12 かPKCS5。 - \param pbeOid パスワードベース暗号化スキームのOID(PBES2 あるいはRFC2898 A.3にあるOIDの一つ) - \param encAlgId 暗号化アルゴリズムID(例えばAES256CBCb)。 - \param salt ソルト。NULLの場合はランダムに選定したソルトが使用されます。 - \param saltSz ソルトサイズ。saltにNULLを渡した場合には0を指定できます。 - \param itt 鍵導出のための繰り返し回数 - \param rng 初期化済みのWC_RNG構造体へのポインタ - \param heap 動的メモリ確保のためのヒープ。NULL指定も可。 + \brief この関数は、暗号化されていないPKCS#8 DERキー(例:wc_CreatePKCS8Keyによって作成されたもの)を受け取り、PKCS#8暗号化形式に変換します。結果の暗号化されたキーは、wc_DecryptPKCS8Keyを使用して復号できます。RFC 5208を参照してください。 + + \return The 成功時にoutに配置された暗号化されたキーのサイズ。 + \return LENGTH_ONLY_E outがNULLの場合、outSzに必要な出力バッファサイズが返されます。 + \return Other 失敗時に負の値。 + + \param key 従来のDERキーを持つバッファ。 + \param keySz keyバッファのサイズ。 + \param out 結果を配置するバッファ。NULLの場合、outSzに必要な出力バッファサイズが返されます。 + \param outSz outバッファのサイズ。 + \param password パスワードベースの暗号化アルゴリズムに使用するパスワード。 + \param passwordSz パスワードの長さ(NULLターミネータを含まない)。 + \param vPKCS 使用するPKCSバージョン。PKCS12またはPKCS5の場合は1。 + \param pbeOid 使用するPBEスキームのOID(例:PBES2またはRFC 2898 A.3のPBES1のOIDの1つ)。 + \param encAlgId 使用する暗号化アルゴリズムID(例:AES256CBCb)。 + \param salt 使用するソルトバッファ。NULLの場合、ランダムなソルトが使用されます。 + \param saltSz ソルトバッファの長さ。saltにNULLを渡す場合は0。 + \param itt KDFに使用する反復回数。 + \param rng 初期化されたWC_RNGオブジェクトへのポインタ。 + \param heap 動的割り当てに使用されるヒープへのポインタ。NULLでも可。 _Example_ \code - byte* pkcs8; // Unencrypted PKCS#8 key. - word32 pkcs8Sz; // Size of pkcs8. - byte* pkcs8Enc; // Encrypted PKCS#8 key. - word32 pkcs8EncSz; // Size of pkcs8Enc. - const char* password; // Password to use for encryption. - int passwordSz; // Length of password (not including NULL terminator). + byte* pkcs8; // 暗号化されていないPKCS#8キー。 + word32 pkcs8Sz; // pkcs8のサイズ。 + byte* pkcs8Enc; // 暗号化されたPKCS#8キー。 + word32 pkcs8EncSz; // pkcs8Encのサイズ。 + const char* password; // 暗号化に使用するパスワード。 + int passwordSz; // パスワードの長さ(NULLターミネータを含まない)。 WC_RNG rng; - // The following produces an encrypted version of pkcs8 in pkcs8Enc. The - // encryption uses password-based encryption scheme 2 (PBE2) from PKCS#5 and - // the AES cipher in CBC mode with a 256-bit key. See RFC 8018 for more on - // PKCS#5. + // 以下は、pkcs8Encにpkcs8の暗号化されたバージョンを生成します。暗号化は + // PKCS#5のパスワードベース暗号化スキーム2(PBE2)とCBCモードの256ビット + // キーを持つAES暗号を使用します。PKCS#5の詳細についてはRFC 8018を参照してください。 ret = wc_EncryptPKCS8Key(pkcs8, pkcs8Sz, pkcs8Enc, &pkcs8EncSz, password, passwordSz, PKCS5, PBES2, AES256CBCb, NULL, 0, WC_PKCS12_ITT_DEFAULT, &rng, NULL); @@ -1496,24 +1657,22 @@ int wc_EncryptPKCS8Key(byte* key, word32 keySz, byte* out, /*! \ingroup ASN - \brief この関数は暗号化されたPKCS#8のDER形式の鍵を受け取り、復号してPKCS#8 DER形式に変換します。 - wc_EncryptPKCS8Keyによって行われた暗号化を元に戻します。RFC5208を参照してください。 - 入力データは復号データによって上書きされます。 + \brief この関数は、暗号化されたPKCS#8 DERキーを受け取り、PKCS#8暗号化されていないDERに復号します。wc_EncryptPKCS8Keyによって行われた暗号化を元に戻します。RFC5208を参照してください。入力バッファは復号されたデータで上書きされます。 - \return 成功時には復号データの長さを返します。 - \return エラー発生時には負の整数値を返します。 + \return The 成功時に復号されたバッファの長さ。 + \return Negative 失敗時に負の値。 - \param input 入力時には暗号化されたPKCS#8鍵データを含みます。出力時には復号されたPKCS#8鍵データを含みます。 - \param sz 入力バッファのサイズ - \param password 鍵を暗号化する際のパスワード - \param passwordSz パスワードのサイズ(NULL終端文字は含まない) + \param input 入力時、暗号化されたPKCS#8キーを含むバッファ。出力が成功すると、復号されたキーを含みます。 + \param sz 入力バッファのサイズ。 + \param password キーの暗号化に使用されたパスワード。 + \param passwordSz パスワードの長さ(NULLターミネータを含まない)。 _Example_ \code - byte* pkcs8Enc; // Encrypted PKCS#8 key made with wc_EncryptPKCS8Key. - word32 pkcs8EncSz; // Size of pkcs8Enc. - const char* password; // Password to use for decryption. - int passwordSz; // Length of password (not including NULL terminator). + byte* pkcs8Enc; // wc_EncryptPKCS8Keyで作成された暗号化されたPKCS#8キー。 + word32 pkcs8EncSz; // pkcs8Encのサイズ。 + const char* password; // 復号に使用するパスワード。 + int passwordSz; // パスワードの長さ(NULLターミネータを含まない)。 ret = wc_DecryptPKCS8Key(pkcs8Enc, pkcs8EncSz, password, passwordSz); \endcode @@ -1529,42 +1688,41 @@ int wc_DecryptPKCS8Key(byte* input, word32 sz, const char* password, /*! \ingroup ASN - \brief この関数は従来のDER形式の鍵をPKCS#8フォーマットに変換し、暗号化を行います。 - この処理にはwc_CreatePKCS8Keyとwc_EncryptPKCS8Keyを使用します。 - - \return 成功時には出力した暗号化鍵のサイズを返します。 - \return LENGTH_ONLY_E もし出力用バッファoutにNULLが渡された場合に返されます。その際にはoutSz変数に必要な出力用バッファサイズを格納します。 - \return エラー発生時には負の整数値を返します。 - - \param key 従来のDER形式の鍵を含んだバッファへのポインタ - \param keySz 鍵を含んだバッファのサイズ - \param out 結果を出力する先のバッファへのポインタ。NULLが指定された場合には、必要なバッファサイズがoutSzに格納されます。 - \param outSz 結果を出力する先のバッファのサイズ - \param password パスワードベース暗号アルゴリズムに使用されるパスワード - \param passwordSz パスワードのサイズ(NULL終端文字は含まない) - \param vPKCS 使用するPKCSのバージョン番号。1 はPKCS12 かPKCS5。 - \param pbeOid パスワードベース暗号化スキームのOID(PBES2 あるいはRFC2898 A.3にあるOIDの一つ) - \param encAlgId 暗号化アルゴリズムID(例えばAES256CBCb)。 - \param salt ソルト。NULLの場合はランダムに選定したソルトが使用されます。 - \param saltSz ソルトサイズ。saltにNULLを渡した場合には0を指定できます。 - \param itt 鍵導出のための繰り返し回数 - \param rng 初期化済みのWC_RNG構造体へのポインタ - \param heap 動的メモリ確保のためのヒープ。NULL指定も可。 + \brief この関数は、従来のDERキーを受け取り、PKCS#8形式に変換し、暗号化します。これを行うためにwc_CreatePKCS8Keyとwc_EncryptPKCS8Keyを使用します。 + + \return The 成功時にoutに配置された暗号化されたキーのサイズ。 + \return LENGTH_ONLY_E outがNULLの場合、outSzに必要な出力バッファサイズが返されます。 + \return Other 失敗時に負の値。 + + \param key 従来のDERキーを持つバッファ。 + \param keySz keyバッファのサイズ。 + \param out 結果を配置するバッファ。NULLの場合、outSzに必要な出力バッファサイズが返されます。 + \param outSz outバッファのサイズ。 + \param password パスワードベースの暗号化アルゴリズムに使用するパスワード。 + \param passwordSz パスワードの長さ(NULLターミネータを含まない)。 + \param vPKCS 使用するPKCSバージョン。PKCS12またはPKCS5の場合は1。 + \param pbeOid 使用するPBEスキームのOID(例:PBES2またはRFC 2898 A.3のPBES1のOIDの1つ)。 + \param encAlgId 使用する暗号化アルゴリズムID(例:AES256CBCb)。 + \param salt 使用するソルトバッファ。NULLの場合、ランダムなソルトが使用されます。 + \param saltSz ソルトバッファの長さ。saltにNULLを渡す場合は0。 + \param itt KDFに使用する反復回数。 + \param rng 初期化されたWC_RNGオブジェクトへのポインタ。 + \param heap 動的割り当てに使用されるヒープへのポインタ。NULLでも可。 _Example_ \code - byte* key; // Traditional private key (DER formatted). - word32 keySz; // Size of key. - byte* pkcs8Enc; // Encrypted PKCS#8 key. - word32 pkcs8EncSz; // Size of pkcs8Enc. - const char* password; // Password to use for encryption. - int passwordSz; // Length of password (not including NULL terminator). + byte* key; // 従来の秘密鍵(DER形式)。 + word32 keySz; // keyのサイズ。 + byte* pkcs8Enc; // 暗号化されたPKCS#8キー。 + word32 pkcs8EncSz; // pkcs8Encのサイズ。 + const char* password; // 暗号化に使用するパスワード。 + int passwordSz; // パスワードの長さ(NULLターミネータを含まない)。 WC_RNG rng; - // The following produces an encrypted, PKCS#8 version of key in pkcs8Enc. - // The encryption uses password-based encryption scheme 2 (PBE2) from PKCS#5 - // and the AES cipher in CBC mode with a 256-bit key. See RFC 8018 for more - // on PKCS#5. + // 以下は、pkcs8Encにkeyの暗号化されたPKCS#8バージョンを生成します。 + // 暗号化はPKCS#5のパスワードベース暗号化スキーム2(PBE2)とCBCモードの + // 256ビットキーを持つAES暗号を使用します。PKCS#5の詳細については + // RFC 8018を参照してください。 ret = wc_CreateEncryptedPKCS8Key(key, keySz, pkcs8Enc, &pkcs8EncSz, password, passwordSz, PKCS5, PBES2, AES256CBCb, NULL, 0, WC_PKCS12_ITT_DEFAULT, &rng, NULL); @@ -1583,20 +1741,18 @@ int wc_CreateEncryptedPKCS8Key(byte* key, word32 keySz, byte* out, /*! \ingroup ASN - \brief この関数はcert引数で与えられたDecodedCert構造体を初期化します。 - DER形式の証明書を含んでいるsource引数の指すポインタから証明書サイズinSzの長さを内部に保存します。 - この関数の後に呼び出されるwc_ParseCertによって証明書が解析されます。 + \brief この関数は、"cert"パラメータが指すDecodedCertを初期化します。長さ"inSz"のDERエンコードされた証明書への"source"ポインタを保存します。この証明書は、wc_ParseCertへの後続の呼び出しによって解析できます。 - \param cert DecodedCert構造体へのポインタ - \param source DER形式の証明書データへのポインタ - \param inSz 証明書データのサイズ(バイト数) - \param heap 動的メモリ確保のためのヒープ。NULL指定も可。 + \param cert 割り当てられたDecodedCertオブジェクトへのポインタ。 + \param source DERエンコードされた証明書へのポインタ。 + \param inSz DERエンコードされた証明書の長さ(バイト単位)。 + \param heap 動的割り当てに使用されるヒープへのポインタ。NULLでも可。 _Example_ \code - DecodedCert decodedCert; // Decoded certificate object. - byte* certBuf; // DER-encoded certificate buffer. - word32 certBufSz; // Size of certBuf in bytes. + DecodedCert decodedCert; // デコードされた証明書オブジェクト。 + byte* certBuf; // DERエンコードされた証明書バッファ。 + word32 certBufSz; // certBufのサイズ(バイト単位)。 wc_InitDecodedCert(&decodedCert, certBuf, certBufSz, NULL); \endcode @@ -1610,25 +1766,22 @@ void wc_InitDecodedCert(struct DecodedCert* cert, /*! \ingroup ASN - \brief この関数はDecodedCert構造体に保存されているDER形式の証明書を解析し、その構造体に各種フィールドを設定します。 - DecodedCert構造体はwc_InitDecodedCertを呼び出して初期化しておく必要があります。 - この関数はオプションでCertificateManager構造体へのポインタを受け取り、CAが証明書マネジャーで検索できた場合には、 - そのCAに関する情報もDecodedCert構造体に追加設定します。 + \brief この関数は、DecodedCertオブジェクトに保存されたDERエンコードされた証明書を解析し、そのオブジェクトのフィールドを設定します。DecodedCertは、wc_InitDecodedCertへの事前の呼び出しで初期化されている必要があります。この関数は、CertificateManagerオブジェクトへのオプションのポインタを取り、CAがCertificateManagerで見つかった場合、DecodedCertの証明機関情報を設定するために使用されます。 - \return 0 成功時に返します。 - \return エラー発生時には負の整数値を返します。 + \return 0 成功時。 + \return Other 失敗時に負の値。 - \param cert 初期化済みのDecodedCert構造体へのポインタ。 - \param type 証明書タイプ。タイプの設定値についてはasn_public.hのCertType enum定義を参照してください。 - \param verify 呼び出し側が証明書の検証を求めていることを指示すフラグです。 - \param cm CertificateManager構造体へのポインタ。オプションで指定可。NULLでも可。 + \param cert 初期化されたDecodedCertオブジェクトへのポインタ。 + \param type 証明書のタイプ。asn_public.hのCertType列挙型を参照してください。 + \param verify 設定されている場合、ユーザーが証明書の有効性を検証したいことを示すフラグ。 + \param cm CertificateManagerへのオプションのポインタ。NULLでも可。 _Example_ \code int ret; - DecodedCert decodedCert; // Decoded certificate object. - byte* certBuf; // DER-encoded certificate buffer. - word32 certBufSz; // Size of certBuf in bytes. + DecodedCert decodedCert; // デコードされた証明書オブジェクト。 + byte* certBuf; // DERエンコードされた証明書バッファ。 + word32 certBufSz; // certBufのサイズ(バイト単位)。 wc_InitDecodedCert(&decodedCert, certBuf, certBufSz, NULL); ret = wc_ParseCert(&decodedCert, CERT_TYPE, NO_VERIFY, NULL); @@ -1645,16 +1798,16 @@ int wc_ParseCert(DecodedCert* cert, int type, int verify, void* cm); /*! \ingroup ASN - \brief この関数はwc_InitDecodedCertで初期化済みのDecodedCert構造体を解放します。 + \brief この関数は、wc_InitDecodedCertで以前に初期化されたDecodedCertを解放します。 - \param cert 初期化済みのDecodedCert構造体へのポインタ。 + \param cert 初期化されたDecodedCertオブジェクトへのポインタ。 _Example_ \code int ret; - DecodedCert decodedCert; // Decoded certificate object. - byte* certBuf; // DER-encoded certificate buffer. - word32 certBufSz; // Size of certBuf in bytes. + DecodedCert decodedCert; // デコードされた証明書オブジェクト。 + byte* certBuf; // DERエンコードされた証明書バッファ。 + word32 certBufSz; // certBufのサイズ(バイト単位)。 wc_InitDecodedCert(&decodedCert, certBuf, certBufSz, NULL); ret = wc_ParseCert(&decodedCert, CERT_TYPE, NO_VERIFY, NULL); @@ -1672,27 +1825,25 @@ void wc_FreeDecodedCert(struct DecodedCert* cert); /*! \ingroup ASN - \brief この関数はタイムコールバック関数を登録します。wolfSSLが現在時刻を必要としたタイミングでこのコールバックを呼び出します。 - このタイムコールバック関数のプロトタイプ(シグネチャ)はC標準ライブラリの"time"関数と同一です。 + \brief この関数は、wolfSSLが現在時刻を取得する必要があるときに使用される時刻コールバックを登録します。コールバックのプロトタイプは、C標準ライブラリの"time"関数と同じである必要があります。 + \return 0 成功時に返されます。 - \return 0 成功時に返します。 - - \param f タイムコールバック関数ポインタ + \param f 時刻コールバックとして登録する関数。 _Example_ \code int ret = 0; - // Time callback prototype + // 時刻コールバックのプロトタイプ time_t my_time_cb(time_t* t); - // Register it + // 登録する ret = wc_SetTimeCb(my_time_cb); if (ret != 0) { - // failed to set time callback + // 時刻コールバックの設定失敗 } time_t my_time_cb(time_t* t) { - // custom time function + // カスタム時刻関数 } \endcode @@ -1703,12 +1854,11 @@ int wc_SetTimeCb(wc_time_cb f); /*! \ingroup ASN - \brief この関数は現在時刻を取得します。デフォルトでXTIMEマクロ関数を使います。このマクロ関数はプラットフォーム依存です。 - ユーザーはこのマクロの代わりにwc_SetTimeCbでタイムコールバック関数を使うように設定することができます + \brief この関数は、現在時刻を取得します。デフォルトでは、プラットフォーム間で異なるXTIMEマクロを使用します。ユーザーは、wc_SetTimeCb関数を介して任意の関数を使用できます。 - \return 成功時には現在時刻を返します。 + \return Time 成功時に返される現在時刻。 - \param t 現在時刻を返却するオプションのtime_t型変数。 + \param t 現在時刻を設定するオプションのtime_tポインタ。 _Example_ \code @@ -1724,19 +1874,19 @@ time_t wc_Time(time_t* t); /*! \ingroup ASN - \brief この関数はX.509証明書にカスタム拡張を追加します。 - 注: この関数に渡すポインタ引数が保持する内容は証明書が生成されるまで変更されてはいけません。 - この関数ではポインタが指す先の内容は別のバッファには複製しません。 + \brief この関数は、X.509証明書にカスタム拡張を挿入します。 + 注:ポインタであるパラメータのいずれかが指すアドレスのコンテンツは、 + 証明書が生成されてder出力が得られるまで変更してはいけません。 + この関数はコンテンツを別のバッファにコピーしません。 - \return 0 成功時に返します。 - \return エラー発生時には負の整数値を返します。 + \return 0 成功時に返されます。 + \return Other 失敗時に負の値。 - \param cert 初期化済みのDecodedCert構造体へのポインタ。 - \param critical 0が指定された場合には追加する拡張はクリティカルとはマークされません。 - 0以外が指定された場合にはクリティカルとマークされます。 - \param oid ドット区切りのoid文字列。例えば、"1.2.840.10045.3.1.7" - \param der 拡張情報のDERエンコードされた内容を含むバッファへのポインタ。 - \param derSz DERエンコードされた内容を含むバッファのサイズ + \param cert 初期化されたDecodedCertオブジェクトへのポインタ。 + \param critical 0の場合、拡張は重要としてマークされません。それ以外の場合は重要としてマークされます。 + \param oid ドット区切りのoidを文字列として。例:"1.2.840.10045.3.1.7" + \param der 拡張のコンテンツのderエンコーディング。 + \param derSz derエンコーディングのサイズ(バイト単位)。 _Example_ @@ -1745,21 +1895,21 @@ time_t wc_Time(time_t* t); Cert newCert; wc_InitCert(&newCert); - // Code to setup subject, public key, issuer, and other things goes here. + // subject、公開鍵、発行者、その他のものを設定するコードがここに入ります。 ret = wc_SetCustomExtension(&newCert, 1, "1.2.3.4.5", (const byte *)"This is a critical extension", 28); if (ret < 0) { - // Failed to set the extension. + // 拡張の設定失敗。 } ret = wc_SetCustomExtension(&newCert, 0, "1.2.3.4.6", (const byte *)"This is NOT a critical extension", 32) if (ret < 0) { - // Failed to set the extension. + // 拡張の設定失敗。 } - // Code to sign the certificate and then write it out goes here. + // 証明書に署名してから書き出すコードがここに入ります。 \endcode @@ -1772,44 +1922,44 @@ int wc_SetCustomExtension(Cert *cert, int critical, const char *oid, /*! \ingroup ASN - \brief この関数はwolfSSLが証明書の解析中に未知のX.509拡張に遭遇した際に呼び出すコールバック関数を登録します。 - コールバック関数のプロトタイプは使用例を参照してください。 + \brief この関数は、wolfSSLが証明書の解析中に証明書内の不明なX.509拡張に遭遇したときに使用されるコールバックを登録します。コールバックのプロトタイプは次のようにする必要があります: - \return 0 成功時に返します。 - \return エラー発生時には負の整数値を返します。 + \return 0 成功時に返されます。 + \return Other 失敗時に負の値。 - \param cert コールバック関数を登録する対象のDecodedCert構造体へのポインタ。 - \param cb 登録されるコールバック関数ポインタ + \param cert このコールバックに関連付けられるDecodedCert構造体。 + \param cb 時刻コールバックとして登録する関数。 _Example_ \code int ret = 0; - // Unknown extension callback prototype + // 不明な拡張コールバックのプロトタイプ int myUnknownExtCallback(const word16* oid, word32 oidSz, int crit, const unsigned char* der, word32 derSz); - // Register it + // 登録する ret = wc_SetUnknownExtCallback(cert, myUnknownExtCallback); if (ret != 0) { - // failed to set the callback + // コールバックの設定失敗 } - // oid: OIDを構成するドット区切りの数を格納した配列 - // oidSz: oid内の値の数 - // crit: 拡張がクリティカルとマークされているか - // der: DERエンコードされている拡張の内容 - // derSz: 拡張の内容のサイズ + // oid: oidのドット区切り値である整数の配列。 + // oidSz: oid内の値の数。 + // crit: 拡張が重要としてマークされたかどうか。 + // der: 拡張のコンテンツのderエンコーディング。 + // derSz: derエンコーディングのサイズ(バイト単位)。 int myCustomExtCallback(const word16* oid, word32 oidSz, int crit, const unsigned char* der, word32 derSz) { - // 拡張を解析するロジックはここに記述します - - // NOTE: コールバック関数から0を返すとwolfSSLに対してこの拡張を受け入れ可能と - // 表明することになります。この拡張を処理できると判断できない場合にはエラーを - // 返してください。クリティカルとマークされている未知の拡張に遭遇した際の標準的 - // な振る舞いはASN_CRIT_EXT_Eを返すことです。 - // 簡潔にするためにこの例ではすべての拡張情報を受け入れ可としていますが、実際には実情に沿うようにロジックを追加してください。 + // 拡張を解析するロジックがここに入ります。 + // 注:0を返すことで、この拡張を受け入れ、wolfSSLに + // それが許容可能であることを通知しています。許容できない拡張が + // 見つかった場合は、エラーを返す必要があります。重要フラグが + // 設定された不明な拡張に遭遇した場合の標準的な動作は、 + // ASN_CRIT_EXT_Eを返すことです。簡潔にするため、この例では + // 常にすべての拡張を受け入れています。異なるロジックを + // 使用する必要があります。 return 0; } \endcode @@ -1822,18 +1972,18 @@ int wc_SetUnknownExtCallback(DecodedCert* cert, /*! \ingroup ASN - \brief この関数はDER形式のX.509 証明書の署名を与えられた公開鍵を使って検証します。 - 公開鍵はDER形式で全公開鍵情報を含んだものが求められます。 - - \return 0 成功時に返します。 - \return エラー発生時には負の整数値を返します。 + \brief この関数は、X.509証明書のder形式の署名を公開鍵に対して検証します。公開鍵は、der形式の完全なサブジェクト公開鍵情報であることが期待されます。 - \param cert DER形式のX.509証明書を含んだバッファへのポインタ - \param certSz 証明書を含んだバッファのサイズ - \param heap 動的メモリ確保のためのヒープ。NULL指定も可。 - \param pubKey DER形式の公開鍵を含んだバッファへのポインタ - \param pubKeySz 公開鍵を含んだバッファのサイズ - \param pubKeyOID 公開鍵のアルゴリズムを特定するOID(すなわち: ECDSAk, DSAk や RSAk) + \return 0 成功時に返されます。 + \return Other 失敗時に負の値。 + + \param cert X.509証明書のderエンコーディング。 + \param certSz certのサイズ(バイト単位)。 + \param heap 動的割り当てに使用されるヒープへのポインタ。NULLでも可。 + \param pubKey 公開鍵のderエンコーディング。 + \param pubKeySz pubKeyのサイズ(バイト単位)。 + \param pubKeyOID 公開鍵のアルゴリズムを識別するOID。 + (例:ECDSAk、DSAkまたはRSAk) */ int wc_CheckCertSigPubKey(const byte* cert, word32 certSz, void* heap, const byte* pubKey, @@ -1842,21 +1992,20 @@ int wc_CheckCertSigPubKey(const byte* cert, word32 certSz, /*! \ingroup ASN - \brief この関数はAsn1PrintOptions構造体を初期化します。 + \brief この関数は、ASN.1プリントオプションを初期化します。 - \return 0 成功時に返します。 - \return BAD_FUNC_ARG asn1がNULLの場合に返されます。 + \return 0 成功時。 + \return BAD_FUNC_ARG asn1がNULLの場合。 - \param opts プリントのためのAsn1PrintOptions構造体へのポインタ + \param opts プリント用のASN.1オプション。 _Example_ \code Asn1PrintOptions opt; - // Initialize ASN.1 print options before use. + // 使用前にASN.1プリントオプションを初期化します。 wc_Asn1PrintOptions_Init(&opt); \endcode - \sa wc_Asn1PrintOptions_Set \sa wc_Asn1_PrintAll */ @@ -1865,23 +2014,23 @@ int wc_Asn1PrintOptions_Init(Asn1PrintOptions* opts); /*! \ingroup ASN - \brief この関数はAsn1PrintOptions構造体にプリント情報を設定します。 + \brief この関数は、ASN.1プリントオプションオブジェクトにプリントオプションを設定します。 - \return 0 成功時に返します。 - \return BAD_FUNC_ARG asn1がNULLの場合に返されます。 - \return BAD_FUNC_ARG valが範囲外の場合に返されます。 + \return 0 成功時。 + \return BAD_FUNC_ARG asn1がNULLの場合。 + \return BAD_FUNC_ARG valがoptionの範囲外の場合。 - \param opts Asn1PrintOptions構造体へのポインタ - \param opt 設定する情報へのポインタ - \param val 設定値 + \param opts プリント用のASN.1オプション。 + \param opt 値を設定するオプション。 + \param val 設定する値。 _Example_ \code Asn1PrintOptions opt; - // Initialize ASN.1 print options before use. + // 使用前にASN.1プリントオプションを初期化します。 wc_Asn1PrintOptions_Init(&opt); - // Set the number of indents when printing tag name to be 1. + // タグ名をプリントする際のインデント数を1に設定します。 wc_Asn1PrintOptions_Set(&opt, ASN1_PRINT_OPT_INDENT, 1); \endcode @@ -1894,18 +2043,18 @@ int wc_Asn1PrintOptions_Set(Asn1PrintOptions* opts, enum Asn1PrintOpt opt, /*! \ingroup ASN - \brief この関数はAsn1構造体を初期化します。 + \brief この関数は、ASN.1解析オブジェクトを初期化します。 - \return 0 成功時に返します。 - \return BAD_FUNC_ARG asn1がNULLの場合に返されます。 + \return 0 成功時。 + \return BAD_FUNC_ARG asn1がNULLの場合。 - \param asn1 Asn1構造体へのポインタ + \param asn1 ASN.1解析オブジェクト。 _Example_ \code Asn1 asn1; - // Initialize ASN.1 parse object before use. + // 使用前にASN.1解析オブジェクトを初期化します。 wc_Asn1_Init(&asn1); \endcode @@ -1917,22 +2066,22 @@ int wc_Asn1_Init(Asn1* asn1); /*! \ingroup ASN - \brief この関数は出力先として使用するファイルをAsn1構造体にセットします。 + \brief この関数は、ASN.1解析オブジェクトへのプリント時に使用するファイルを設定します。 - \return 0 成功時に返します。 - \return BAD_FUNC_ARG asn1がNULLの場合に返されます。 - \return BAD_FUNC_ARG fileがXBADFILEの場合に返されます。. + \return 0 成功時。 + \return BAD_FUNC_ARG asn1がNULLの場合。 + \return BAD_FUNC_ARG fileがXBADFILEの場合。 - \param asn1 Asn1構造体へのポインタ - \param file プリント先のファイル + \param asn1 ASN.1解析オブジェクト。 + \param file プリント先のファイル。 _Example_ \code Asn1 asn1; - // Initialize ASN.1 parse object before use. + // 使用前にASN.1解析オブジェクトを初期化します。 wc_Asn1_Init(&asn1); - // Set standard out to be the file descriptor to write to. + // 標準出力を書き込み先のファイル記述子として設定します。 wc_Asn1_SetFile(&asn1, stdout); \endcode @@ -1944,35 +2093,35 @@ int wc_Asn1_SetFile(Asn1* asn1, XFILE file); /*! \ingroup ASN - \brief ASN.1アイテムをプリントします。 + \brief すべてのASN.1項目をプリントします。 - \return 0 成功時に返します。 - \return BAD_FUNC_ARG asn1かoptsがNULLの場合に返されます。 - \return ASN_LEN_E ASN.1アイテムが長すぎる場合に返されます。 - \return ASN_DEPTH_E 終了オフセットが無効の場合に返されます。 - \return ASN_PARSE_E 全のASN.1アイテムの解析が完了できなかった場合に返されます。 + \return 0 成功時。 + \return BAD_FUNC_ARG asn1またはoptsがNULLの場合。 + \return ASN_LEN_E ASN.1項目の長さが長すぎる場合。 + \return ASN_DEPTH_E 終了オフセットが無効な場合。 + \return ASN_PARSE_E ASN.1項目のすべてが解析されなかった場合。 - \param asn1 Asn1構造体へのポインタ - \param opts Asn1PrintOptions構造体へのポインタ - \param data BER/DER形式のプリント対象データへのポインタ - \param len プリント対象データのサイズ(バイト数) + \param asn1 ASN.1解析オブジェクト。 + \param opts ASN.1プリントオプション。 + \param data プリントするBER/DERデータを含むバッファ。 + \param len プリントするデータの長さ(バイト単位)。 \code Asn1PrintOptions opts; Asn1 asn1; - unsigned char data[] = { Initialize with DER/BER data }; + unsigned char data[] = { DER/BERデータで初期化 }; word32 len = sizeof(data); - // Initialize ASN.1 print options before use. + // 使用前にASN.1プリントオプションを初期化します。 wc_Asn1PrintOptions_Init(&opt); - // Set the number of indents when printing tag name to be 1. + // タグ名をプリントする際のインデント数を1に設定します。 wc_Asn1PrintOptions_Set(&opt, ASN1_PRINT_OPT_INDENT, 1); - // Initialize ASN.1 parse object before use. + // 使用前にASN.1解析オブジェクトを初期化します。 wc_Asn1_Init(&asn1); - // Set standard out to be the file descriptor to write to. + // 標準出力を書き込み先のファイル記述子として設定します。 wc_Asn1_SetFile(&asn1, stdout); - // Print all ASN.1 items in buffer with the specified print options. + // 指定されたプリントオプションでバッファ内のすべてのASN.1項目をプリントします。 wc_Asn1_PrintAll(&asn1, &opts, data, len); \endcode @@ -1980,5 +2129,4 @@ int wc_Asn1_SetFile(Asn1* asn1, XFILE file); \sa wc_Asn1_SetFile */ int wc_Asn1_PrintAll(Asn1* asn1, Asn1PrintOptions* opts, unsigned char* data, - word32 len); - + word32 len); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/blake2.h b/doc/dox_comments/header_files-ja/blake2.h index 3e5f976011..be4771d70c 100644 --- a/doc/dox_comments/header_files-ja/blake2.h +++ b/doc/dox_comments/header_files-ja/blake2.h @@ -1,39 +1,51 @@ /*! \ingroup BLAKE2 - \brief この関数はBlake2 Hash関数で使用するためのBlake2b構造を初期化します。 - \return 0 Blake2B構造の初期化に成功し、ダイジェストサイズを設定したときに返されます。 - \param b2b 初期化するためにBlake2b構造へのポインタ + + \brief この関数は、Blake2ハッシュ関数で使用するためのBlake2b構造体を初期化します。 + + \return 0 Blake2b構造体の初期化とダイジェストサイズの設定に成功した場合に返されます。 + + \param b2b 初期化するBlake2b構造体へのポインタ + \param digestSz 実装するblake 2ダイジェストの長さ + _Example_ \code Blake2b b2b; - // initialize Blake2b structure with 64 byte digest + // 64バイトダイジェストでBlake2b構造体を初期化 wc_InitBlake2b(&b2b, 64); \endcode + \sa wc_Blake2bUpdate */ int wc_InitBlake2b(Blake2b* b2b, word32 digestSz); /*! \ingroup BLAKE2 - \brief この関数は、与えられた入力データとBlake2Bハッシュを更新します。この関数は、wc_initblake2bの後に呼び出され、最後のハッシュ:wc_blake2bfinalの準備ができているまで繰り返します。 - \return 0 与えられたデータを使用してBlake2B構造を正常に更新すると返されます。 - \return -1 入力データの圧縮中に障害が発生した場合 - \param b2b 更新するBlake2b構造へのポインタ - \param data 追加するデータを含むバッファへのポインタ + + \brief この関数は、指定された入力データでBlake2bハッシュを更新します。この関数はwc_InitBlake2bの後に呼び出され、最終ハッシュ(wc_Blake2bFinal)の準備ができるまで繰り返されます。 + + \return 0 指定されたデータでBlake2b構造体の更新に成功した場合に返されます + \return -1 入力データの圧縮中に失敗した場合に返されます + + \param b2b 更新するBlake2b構造体へのポインタ + \param data 追加するデータを含むバッファへのポインタ + \param sz 追加する入力データの長さ + _Example_ \code int ret; Blake2b b2b; - // initialize Blake2b structure with 64 byte digest + // 64バイトダイジェストでBlake2b構造体を初期化 wc_InitBlake2b(&b2b, 64); - byte plain[] = { // initialize input }; + byte plain[] = { // 入力を初期化 }; ret = wc_Blake2bUpdate(&b2b, plain, sizeof(plain)); if( ret != 0) { - // error updating blake2b + // blake2bの更新エラー } \endcode + \sa wc_InitBlake2b \sa wc_Blake2bFinal */ @@ -41,26 +53,34 @@ int wc_Blake2bUpdate(Blake2b* b2b, const byte* data, word32 sz); /*! \ingroup BLAKE2 - \brief この関数は、以前に供給された入力データのBlake2bハッシュを計算します。出力ハッシュは長さREQUESTSZ、あるいは要求された場合はB2B構造のDigestSZを使用します。この関数は、wc_initblake2bの後に呼び出され、wc_blake2bupdateは必要な各入力データに対して処理されています。 - \return 0 Blake2B Hashの計算に成功したときに返されました - \return -1 blake2bハッシュを解析している間に失敗がある場合 - \param b2b 更新するBlake2b構造へのポインタ - \param final Blake2Bハッシュを保存するバッファへのポインタ。長さrequestszにする必要があります + + \brief この関数は、以前に提供された入力データのBlake2bハッシュを計算します。出力ハッシュの長さはrequestSzになります。requestSz==0の場合は、b2b構造体のdigestSzが使用されます。この関数は、wc_InitBlake2bの後、および必要な各入力データに対してwc_Blake2bUpdateが処理された後に呼び出す必要があります。 + + \return 0 Blake2bハッシュの計算に成功した場合に返されます + \return -1 Blake2bハッシュの解析中に失敗した場合に返されます + + \param b2b 更新するBlake2b構造体へのポインタ + \param final blake2bハッシュを格納するバッファへのポインタ。 + requestSzの長さである必要があります + \param requestSz 計算するダイジェストの長さ。これがゼロの場合、 + 代わりにb2b->digestSzが使用されます + _Example_ \code int ret; Blake2b b2b; byte hash[64]; - // initialize Blake2b structure with 64 byte digest + // 64バイトダイジェストでBlake2b構造体を初期化 wc_InitBlake2b(&b2b, 64); - ... // call wc_Blake2bUpdate to add data to hash + ... // wc_Blake2bUpdateを呼び出してハッシュにデータを追加 ret = wc_Blake2bFinal(&b2b, hash, 64); if( ret != 0) { - // error generating blake2b hash + // blake2bハッシュの生成エラー } \endcode + \sa wc_InitBlake2b \sa wc_Blake2bUpdate */ -int wc_Blake2bFinal(Blake2b* b2b, byte* final, word32 requestSz); +int wc_Blake2bFinal(Blake2b* b2b, byte* final, word32 requestSz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/bn.h b/doc/dox_comments/header_files-ja/bn.h index eb2749a42a..bd14c063ec 100644 --- a/doc/dox_comments/header_files-ja/bn.h +++ b/doc/dox_comments/header_files-ja/bn.h @@ -1,22 +1,28 @@ /*! \ingroup openSSL - \brief この関数は、次の数学「R =(A ^ P)%M」を実行します。 - \return SSL_SUCCESS 数学操作をうまく実行します。 - \return SSL_FAILURE エラーケースに遭遇した場合 - \param r 結果を保持するための構造。 - \param a 電力で上げられる値。 - \param p によって上げる力。 - \param m 使用率 + + \brief この関数は次の数学演算を実行します "r = (a^p) % m"。 + + \return SSL_SUCCESS 数学演算が正常に実行された場合。 + \return SSL_FAILURE エラーケースが発生した場合。 + + \param r 結果を保持する構造体。 + \param a 累乗される値。 + \param p aを累乗する指数。 + \param m 使用する剰余。 + \param ctx 現在wolfSSLでは使用されていないため、NULLにできます。 + _Example_ \code WOLFSSL_BIGNUM r,a,p,m; int ret; - // set big number values + // big number値を設定 ret = wolfSSL_BN_mod_exp(r, a, p, m, NULL); - // check ret value + // ret値を確認 \endcode + \sa wolfSSL_BN_new \sa wolfSSL_BN_free */ int wolfSSL_BN_mod_exp(WOLFSSL_BIGNUM *r, const WOLFSSL_BIGNUM *a, - const WOLFSSL_BIGNUM *p, const WOLFSSL_BIGNUM *m, WOLFSSL_BN_CTX *ctx); + const WOLFSSL_BIGNUM *p, const WOLFSSL_BIGNUM *m, WOLFSSL_BN_CTX *ctx); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/camellia.h b/doc/dox_comments/header_files-ja/camellia.h index c07af016de..0c4586149e 100644 --- a/doc/dox_comments/header_files-ja/camellia.h +++ b/doc/dox_comments/header_files-ja/camellia.h @@ -1,23 +1,29 @@ /*! \ingroup Camellia - \brief この関数は、Camelliaオブジェクトのキーと初期化ベクトルを設定し、それを暗号として使用するために初期化します。 - \return 0 キーと初期化ベクトルを正常に設定すると返されます - \return BAD_FUNC_ARG 入力引数の1つがエラー処理がある場合に返されます - \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合 - \param cam キーとIVを設定する椿構造へのポインタ - \param key 暗号化と復号化に使用する16,24、または32バイトのキーを含むバッファへのポインタ - \param len 渡されたキーの長さ + + \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]; - // initialize key + // キーを初期化 byte iv[16]; - // initialize iv + // ivを初期化 if( wc_CamelliaSetKey(&cam, key, sizeof(key), iv) != 0) { - // error initializing camellia structure + // camellia構造体の初期化エラー } \endcode + \sa wc_CamelliaEncryptDirect \sa wc_CamelliaDecryptDirect \sa wc_CamelliaCbcEncrypt @@ -28,38 +34,50 @@ int wc_CamelliaSetKey(Camellia* cam, /*! \ingroup Camellia - \brief この関数は、Camelliaオブジェクトの初期化ベクトルを設定します。 - \return 0 キーと初期化ベクトルを正常に設定すると返されます - \return BAD_FUNC_ARG 入力引数の1つがエラー処理がある場合に返されます - \param cam IVを設定する椿構造へのポインタ + + \brief この関数は、camelliaオブジェクトの初期化ベクトルを設定します。 + + \return 0 キーと初期化ベクトルの設定に成功した場合に返されます + \return BAD_FUNC_ARG 入力引数の1つの処理中にエラーが発生した場合に返されます + + \param cam ivを設定するcamellia構造体へのポインタ + \param iv このcamellia構造体で使用する16バイトの初期化ベクトルを含むバッファへのポインタ + _Example_ \code Camellia cam; byte iv[16]; - // initialize iv + // ivを初期化 if( wc_CamelliaSetIV(&cam, iv) != 0) { - // error initializing camellia structure + // camellia構造体の初期化エラー } \endcode + \sa wc_CamelliaSetKey */ int wc_CamelliaSetIV(Camellia* cam, const byte* iv); /*! \ingroup Camellia - \brief この機能は、提供されたCamelliaオブジェクトを使用して1ブロック暗号化します。それはバッファーの最初の16バイトブロックを解析し、暗号化結果をバッファアウトに格納します。この機能を使用する前に、WC_CAMELLIASETKEYを使用してCamelliaオブジェクトを初期化する必要があります。 - \return none いいえ返します。 - \param cam 暗号化に使用する椿構造へのポインタ - \param out 暗号化されたブロックを保存するバッファへのポインタ + + \brief この関数は、提供されたcamelliaオブジェクトを使用して1ブロックの暗号化を行います。バッファinから最初の16バイトブロックを解析し、暗号化された結果をバッファoutに格納します。この関数を使用する前に、wc_CamelliaSetKeyを使用してcamelliaオブジェクトを初期化する必要があります。 + + \return none 戻り値なし。 + + \param cam 暗号化に使用するcamellia構造体へのポインタ + \param out 暗号化されたブロックを格納するバッファへのポインタ + \param in 暗号化する平文ブロックを含むバッファへのポインタ + _Example_ \code Camellia cam; - // initialize cam structure with key and iv - byte plain[] = { // initialize with message to encrypt }; + // キーとivでcam構造体を初期化 + byte plain[] = { // 暗号化するメッセージで初期化 }; byte cipher[16]; wc_CamelliaEncryptDirect(&ca, cipher, plain); \endcode + \sa wc_CamelliaDecryptDirect */ int wc_CamelliaEncryptDirect(Camellia* cam, byte* out, @@ -67,19 +85,25 @@ int wc_CamelliaEncryptDirect(Camellia* cam, byte* out, /*! \ingroup Camellia - \brief この機能は、提供されたCamelliaオブジェクトを使用して1ブロック復号化します。それはバッファ内の最初の16バイトブロックを解析し、それを復号化し、結果をバッファアウトに格納します。この機能を使用する前に、WC_CAMELLIASETKEYを使用してCamelliaオブジェクトを初期化する必要があります。 - \return none いいえ返します。 - \param cam 暗号化に使用する椿構造へのポインタ - \param out 復号化された平文ブロックを保存するバッファへのポインタ + + \brief この関数は、提供されたcamelliaオブジェクトを使用して1ブロックの復号を行います。バッファinから最初の16バイトブロックを解析し、復号して、結果をバッファoutに格納します。この関数を使用する前に、wc_CamelliaSetKeyを使用してcamelliaオブジェクトを初期化する必要があります。 + + \return none 戻り値なし。 + + \param cam 暗号化に使用するcamellia構造体へのポインタ + \param out 復号された平文ブロックを格納するバッファへのポインタ + \param in 復号する暗号文ブロックを含むバッファへのポインタ + _Example_ \code Camellia cam; - // initialize cam structure with key and iv - byte cipher[] = { // initialize with encrypted message to decrypt }; + // キーとivでcam構造体を初期化 + byte cipher[] = { // 復号する暗号化されたメッセージで初期化 }; byte decrypted[16]; wc_CamelliaDecryptDirect(&cam, decrypted, cipher); \endcode + \sa wc_CamelliaEncryptDirect */ int wc_CamelliaDecryptDirect(Camellia* cam, byte* out, @@ -87,20 +111,26 @@ int wc_CamelliaDecryptDirect(Camellia* cam, byte* out, /*! \ingroup Camellia - \brief この関数は、バッファーの平文を暗号化し、その出力をバッファOUTに格納します。暗号ブロックチェーン(CBC)を使用してCamelliaを使用してこの暗号化を実行します。 - \return none いいえ返します。 - \param cam 暗号化に使用する椿構造へのポインタ - \param out 暗号化された暗号文を保存するバッファへのポインタ - \param in 暗号化する平文を含むバッファへのポインタ + + \brief この関数は、バッファinから平文を暗号化し、出力をバッファoutに格納します。暗号ブロック連鎖(CBC)モードのCamelliaを使用してこの暗号化を実行します。 + + \return none 戻り値なし。 + + \param cam 暗号化に使用するcamellia構造体へのポインタ + \param out 暗号化された暗号文を格納するバッファへのポインタ + \param in 暗号化する平文を含むバッファへのポインタ + \param sz 暗号化するメッセージのサイズ + _Example_ \code Camellia cam; - // initialize cam structure with key and iv - byte plain[] = { // initialize with encrypted message to decrypt }; + // キーとivでcam構造体を初期化 + byte plain[] = { // 復号する暗号化されたメッセージで初期化 }; byte cipher[sizeof(plain)]; wc_CamelliaCbcEncrypt(&cam, cipher, plain, sizeof(plain)); \endcode + \sa wc_CamelliaCbcDecrypt */ int wc_CamelliaCbcEncrypt(Camellia* cam, @@ -108,21 +138,27 @@ int wc_CamelliaCbcEncrypt(Camellia* cam, /*! \ingroup Camellia - \brief この関数は、バッファ内の暗号文を復号化し、その出力をバッファOUTに格納します。暗号ブロックチェーン(CBC)を搭載したCamelliaを使用してこの復号化を実行します。 - \return none いいえ返します。 - \param cam 暗号化に使用する椿構造へのポインタ - \param out 復号化されたメッセージを保存するバッファへのポインタ - \param in 暗号化された暗号文を含むバッファへのポインタ + + \brief この関数は、バッファinから暗号文を復号し、出力をバッファoutに格納します。暗号ブロック連鎖(CBC)モードのCamelliaを使用してこの復号を実行します。 + + \return none 戻り値なし。 + + \param cam 暗号化に使用するcamellia構造体へのポインタ + \param out 復号されたメッセージを格納するバッファへのポインタ + \param in 暗号化された暗号文を含むバッファへのポインタ + \param sz 暗号化するメッセージのサイズ + _Example_ \code Camellia cam; - // initialize cam structure with key and iv - byte cipher[] = { // initialize with encrypted message to decrypt }; + // キーとivでcam構造体を初期化 + byte cipher[] = { // 復号する暗号化されたメッセージで初期化 }; byte decrypted[sizeof(cipher)]; wc_CamelliaCbcDecrypt(&cam, decrypted, cipher, sizeof(cipher)); \endcode + \sa wc_CamelliaCbcEncrypt */ int wc_CamelliaCbcDecrypt(Camellia* cam, - byte* out, const byte* in, word32 sz); + byte* out, const byte* in, word32 sz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/chacha.h b/doc/dox_comments/header_files-ja/chacha.h index dea2a6cc55..aa9aa451a7 100644 --- a/doc/dox_comments/header_files-ja/chacha.h +++ b/doc/dox_comments/header_files-ja/chacha.h @@ -1,20 +1,26 @@ /*! \ingroup ChaCha - \brief この関数はChachaオブジェクトの初期化ベクトル(nonce)を設定し、暗号として使用するために初期化します。WC_CHACHA_SETKEYを使用して、キーが設定された後に呼び出されるべきです。暗号化の各ラウンドに差し違いを使用する必要があります。 - \return 0 初期化ベクトルを正常に設定すると返されます - \return BAD_FUNC_ARG CTX入力引数の処理中にエラーが発生した場合 - \param ctx IVを設定するChacha構造へのポインタ - \param inIv Chacha構造を初期化するための12バイトの初期化ベクトルを含むバッファへのポインタ + + \brief この関数は、ChaChaオブジェクトの初期化ベクトル(nonce)を設定し、暗号として使用するために初期化します。wc_Chacha_SetKeyを使用してキーが設定された後に呼び出す必要があります。暗号化のラウンドごとに異なるnonceを使用する必要があります。 + + \return 0 初期化ベクトルの設定に成功した場合に返されます + \return BAD_FUNC_ARG ctx入力引数の処理中にエラーが発生した場合に返されます + + \param ctx ivを設定するChaCha構造体へのポインタ + \param inIv ChaCha構造体を初期化するための12バイトの初期化ベクトルを含むバッファへのポインタ + \param counter ブロックカウンタが開始すべき値--通常はゼロ。 + _Example_ \code ChaCha enc; - // initialize enc with wc_Chacha_SetKey + // wc_Chacha_SetKeyでencを初期化 byte iv[12]; - // initialize iv + // ivを初期化 if( wc_Chacha_SetIV(&enc, iv, 0) != 0) { - // error initializing ChaCha structure + // ChaCha構造体の初期化エラー } \endcode + \sa wc_Chacha_SetKey \sa wc_Chacha_Process */ @@ -22,23 +28,29 @@ int wc_Chacha_SetIV(ChaCha* ctx, const byte* inIv, word32 counter); /*! \ingroup ChaCha - \brief この関数は、バッファ入力からテキストを処理し、暗号化または復号化し、結果をバッファ出力に格納します。 - \return 0 入力の暗号化または復号化に成功したときに返されます - \return BAD_FUNC_ARG CTX入力引数の処理中にエラーが発生した場合 - \param ctx IVを設定するChacha構造へのポインタ - \param output 出力暗号文または復号化された平文を保存するバッファへのポインタ - \param input 暗号化する入力平文を含むバッファへのポインタまたは復号化する入力暗号文 + + \brief この関数は、バッファinputからテキストを処理し、暗号化または復号して、結果をバッファoutputに格納します。 + + \return 0 入力の暗号化または復号に成功した場合に返されます + \return BAD_FUNC_ARG ctx入力引数の処理中にエラーが発生した場合に返されます + + \param ctx ivを設定するChaCha構造体へのポインタ + \param output 出力暗号文または復号された平文を格納するバッファへのポインタ + \param input 暗号化する入力平文または復号する入力暗号文を含むバッファへのポインタ + \param msglen 暗号化するメッセージまたは復号する暗号文の長さ + _Example_ \code ChaCha enc; - // initialize enc with wc_Chacha_SetKey and wc_Chacha_SetIV + // wc_Chacha_SetKeyとwc_Chacha_SetIVでencを初期化 - byte plain[] = { // initialize plaintext }; + byte plain[] = { // 平文を初期化 }; byte cipher[sizeof(plain)]; if( wc_Chacha_Process(&enc, cipher, plain, sizeof(plain)) != 0) { - // error processing ChaCha cipher + // ChaCha暗号の処理エラー } \endcode + \sa wc_Chacha_SetKey \sa wc_Chacha_Process */ @@ -47,21 +59,27 @@ int wc_Chacha_Process(ChaCha* ctx, byte* cipher, const byte* plain, /*! \ingroup ChaCha - \brief この関数はChachaオブジェクトのキーを設定し、それを暗号として使用するために初期化します。NONCEをWC_CHACHA_SETIVで設定する前に、WC_CHACHA_PROCESSを使用した暗号化に使用する前に呼び出す必要があります。 - \return 0 キーの設定に成功したときに返されます - \return BAD_FUNC_ARG CTX入力引数の処理中にエラーが発生した場合、またはキーが16または32バイトの長さがある場合 - \param ctx キーを設定するChacha構造へのポインタ - \param key Chacha構造を初期化するための16または32バイトのキーを含むバッファへのポインタ + + \brief この関数は、ChaChaオブジェクトのキーを設定し、暗号として使用するために初期化します。wc_Chacha_SetIVでnonceを設定する前、およびwc_Chacha_Processで暗号化に使用する前に呼び出す必要があります。 + + \return 0 キーの設定に成功した場合に返されます + \return BAD_FUNC_ARG ctx入力引数の処理中にエラーが発生した場合、またはキーが16バイトまたは32バイトでない場合に返されます + + \param ctx キーを設定するChaCha構造体へのポインタ + \param key ChaCha構造体を初期化するための16バイトまたは32バイトのキーを含むバッファへのポインタ + \param keySz 渡されるキーの長さ + _Example_ \code ChaCha enc; - byte key[] = { // initialize key }; + byte key[] = { // キーを初期化 }; if( wc_Chacha_SetKey(&enc, key, sizeof(key)) != 0) { - // error initializing ChaCha structure + // ChaCha構造体の初期化エラー } \endcode + \sa wc_Chacha_SetIV \sa wc_Chacha_Process */ -int wc_Chacha_SetKey(ChaCha* ctx, const byte* key, word32 keySz); +int wc_Chacha_SetKey(ChaCha* ctx, const byte* key, word32 keySz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/chacha20_poly1305.h b/doc/dox_comments/header_files-ja/chacha20_poly1305.h index 2b4f9483f1..ff4938e3ef 100644 --- a/doc/dox_comments/header_files-ja/chacha20_poly1305.h +++ b/doc/dox_comments/header_files-ja/chacha20_poly1305.h @@ -1,23 +1,27 @@ /*! \ingroup ChaCha20Poly1305 - \brief この関数は、Chacha20 Stream暗号を使用して、Output BufferTextに入力メッセージ、InPleaintextを暗号化します。 - また、Poly-1305認証(暗号テキスト)を実行し、生成した認証タグを出力バッファOutauthTagに格納します。 - \return 0 メッセージの暗号化に成功したら返されます - \return BAD_FUNC_ARG 暗号化プロセス中にエラーがある場合 - \param inKey 暗号化に使用する32バイトの鍵を含むバッファへのポインタ - \param inIv 暗号化に使用する12バイトのIVを含むバッファへのポインタ - \param inAAD 任意の長さの追加認証データ(AAD)を含むバッファへのポインタ - \param inAADLen 入力AADの長さ - \param inPlaintext 暗号化する平文を含むバッファへのポインタ - \param inPlaintextLen 暗号化するプレーンテキストの長さ - \param outCiphertext 暗号文を保存するバッファーへのポインタ + + \brief この関数は、入力メッセージinPlaintextをChaCha20ストリーム暗号を使用して暗号化し、出力バッファoutCiphertextに格納します。また、Poly-1305認証(暗号文に対して)を実行し、生成された認証タグを出力バッファoutAuthTagに格納します。 + + \return 0 メッセージの暗号化に成功した場合に返されます + \return BAD_FUNC_ARG 暗号化プロセス中にエラーが発生した場合に返されます + + \param inKey 暗号化に使用する32バイトのキーを含むバッファへのポインタ + \param inIv 暗号化に使用する12バイトのivを含むバッファへのポインタ + \param inAAD 任意の長さの追加認証データ(AAD)を含むバッファへのポインタ + \param inAADLen 入力AADの長さ + \param inPlaintext 暗号化する平文を含むバッファへのポインタ + \param inPlaintextLen 暗号化する平文の長さ + \param outCiphertext 暗号文を格納するバッファへのポインタ + \param outAuthTag 認証タグを格納する16バイト幅のバッファへのポインタ + _Example_ \code - byte key[] = { // initialize 32 byte key }; - byte iv[] = { // initialize 12 byte key }; - byte inAAD[] = { // initialize AAD }; + byte key[] = { // 32バイトのキーを初期化 }; + byte iv[] = { // 12バイトのキーを初期化 }; + byte inAAD[] = { // AADを初期化 }; - byte plain[] = { // initialize message to encrypt }; + byte plain[] = { // 暗号化するメッセージを初期化 }; byte cipher[sizeof(plain)]; byte authTag[16]; @@ -25,9 +29,10 @@ plain, sizeof(plain), cipher, authTag); if(ret != 0) { - // error running encrypt + // 暗号化実行エラー } \endcode + \sa wc_ChaCha20Poly1305_Decrypt \sa wc_ChaCha_* \sa wc_Poly1305* @@ -43,27 +48,32 @@ int wc_ChaCha20Poly1305_Encrypt( /*! \ingroup ChaCha20Poly1305 - \brief この関数は、Chacha20 Stream暗号を使用して、出力バッファOutpleAntextに復号したデータを出力します。 - また、Poly-1305認証を実行し、指定されたinAuthTagをinAADで生成された認証(任意の長さの追加認証データ)と比較します。 - 注:生成された認証タグが提供された認証タグと一致しない場合、テキストは復号されません。 - \return 0 メッセージの復号に成功したときに返されました - \return BAD_FUNC_ARG 関数引数のいずれかが予想されるものと一致しない場合に返されます - \return MAC_CMP_FAILED_E 生成された認証タグが提供されているinAuthTagと一致しない場合に返されます。 - \param inKey 復号に使用する32バイトの鍵を含むバッファへのポインタ - \param inIv 復号に使用する12バイトのIVを含むバッファへのポインタ - \param inAAD 任意の長さの追加認証データ(AAD)を含むバッファへのポインタ - \param inAADLen 入力AADの長さ - \param inCiphertext 復号する暗号文を含むバッファへのポインタ - \param outCiphertextLen 復号する暗号文の長さ - \param inAuthTag 認証のための16バイトのダイジェストを含むバッファへのポインタ + + \brief この関数は、入力暗号文inCiphertextをChaCha20ストリーム暗号を使用して復号し、出力バッファoutPlaintextに格納します。また、Poly-1305認証を実行し、指定されたinAuthTagとinAAD(任意の長さの追加認証データ)で生成された認証を比較します。ゼロ以外のエラーコードが返された場合、出力データoutPlaintextは未定義です。ただし、呼び出し元は平文データの漏洩を防ぐために、無条件に出力バッファをゼロ化する必要があります。 + + \return 0 メッセージの復号と認証に成功した場合に返されます + \return BAD_FUNC_ARG 関数の引数が期待される内容と一致しない場合に返されます + \return MAC_CMP_FAILED_E 生成された認証タグが提供されたinAuthTagと一致しない場合に返されます + \return MEMORY_E 内部バッファの割り当てに失敗した場合に返されます + \return CHACHA_POLY_OVERFLOW 入力が破損している場合に返される可能性があります + + \param inKey 復号に使用する32バイトのキーを含むバッファへのポインタ + \param inIv 復号に使用する12バイトのivを含むバッファへのポインタ + \param inAAD 任意の長さの追加認証データ(AAD)を含むバッファへのポインタ + \param inAADLen 入力AADの長さ + \param inCiphertext 復号する暗号文を含むバッファへのポインタ + \param outCiphertextLen 復号する暗号文の長さ + \param inAuthTag 認証用の16バイトのダイジェストを含むバッファへのポインタ + \param outPlaintext 平文を格納するバッファへのポインタ + _Example_ \code - byte key[] = { // initialize 32 byte key }; - byte iv[] = { // initialize 12 byte key }; - byte inAAD[] = { // initialize AAD }; + byte key[] = { // 32バイトのキーを初期化 }; + byte iv[] = { // 12バイトのキーを初期化 }; + byte inAAD[] = { // AADを初期化 }; - byte cipher[] = { // initialize with received ciphertext }; - byte authTag[16] = { // initialize with received authentication tag }; + byte cipher[] = { // 受信した暗号文で初期化 }; + byte authTag[16] = { // 受信した認証タグで初期化 }; byte plain[sizeof(cipher)]; @@ -71,11 +81,12 @@ int wc_ChaCha20Poly1305_Encrypt( cipher, sizeof(cipher), authTag, plain); if(ret == MAC_CMP_FAILED_E) { - // error during authentication + // 認証中のエラー } else if( ret != 0) { - // error with function arguments + // 関数引数のエラー } \endcode + \sa wc_ChaCha20Poly1305_Encrypt \sa wc_ChaCha_* \sa wc_Poly1305* @@ -87,4 +98,4 @@ int wc_ChaCha20Poly1305_Decrypt( const byte* inAAD, const word32 inAADLen, const byte* inCiphertext, const word32 inCiphertextLen, const byte inAuthTag[CHACHA20_POLY1305_AEAD_AUTHTAG_SIZE], - byte* outPlaintext); + byte* outPlaintext); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/cmac.h b/doc/dox_comments/header_files-ja/cmac.h index 401949a03f..397c92ef83 100644 --- a/doc/dox_comments/header_files-ja/cmac.h +++ b/doc/dox_comments/header_files-ja/cmac.h @@ -1,97 +1,98 @@ /*! - \ingroup CMAC - \brief Cmac構造体をデフォルト値で初期化します - \return 成功したら0を返します - \param cmac Cmac構造体へのポインタ - \param key 鍵データへのポインタ - \param keySz 鍵データのサイズ(16、24、または 32) - \param type 常にWC_CMAC_AES(=1) - \param unused 使用されていません。互換性に関する将来の潜在的な使用のために存在します - - _例_ - \code - Cmac cmac[1]; - ret = wc_InitCmac(cmac、key、keySz、WC_CMAC_AES、NULL); - if (ret == 0) { - ret = wc_CmacUpdate(cmac、in、inSz); - } - if (ret == 0) { - ret = wc_CmacFinal(cmac, out, outSz); - } - \endcode - - \sa wc_InitCmac_ex - \sa wc_CmacUpdate - \sa wc_CmacFinal - \sa wc_CmacFinalNoFree - \sa wc_CmacFree + \ingroup CMAC + \brief Cmac構造体をデフォルト値で初期化します + \return 0 成功時 + \param cmac Cmac構造体へのポインタ + \param key キーポインタ + \param keySz キーポインタのサイズ(16、24、または32) + \param type 常にWC_CMAC_AES = 1 + \param unused 使用されません。互換性に関する将来の使用の可能性のために存在します + + _Example_ + \code + Cmac cmac[1]; + ret = wc_InitCmac(cmac, key, keySz, WC_CMAC_AES, NULL); + if (ret == 0) { + ret = wc_CmacUpdate(cmac, in, inSz); + } + if (ret == 0) { + ret = wc_CmacFinal(cmac, out, outSz); + } + \endcode + + \sa wc_InitCmac_ex + \sa wc_CmacUpdate + \sa wc_CmacFinal + \sa wc_CmacFinalNoFree + \sa wc_CmacFree */ int wc_InitCmac(Cmac* cmac, - const byte* key、word32 keySz、 - int type、void* unused); + const byte* key, word32 keySz, + int type, void* unused); /*! - \ingroup CMAC - \brief Cmac構造体をデフォルト値で初期化します - \return 成功したら0を返します - \param cmac Cmac構造体へのポインタ - \param key 鍵データへのポインタ - \param keySz 鍵データのサイズ(16、24、または 32) - \param type 常にWC_CMAC_AES(=1) - \param unused 使用されていません。互換性に関する将来の潜在的な使用のために存在します - \param heap 動的割り当てに使用されるヒープヒントへのポインタ。 通常、スタティックメモリオプションで使用されます。 NULLにすることができます。 - \param devId 非同期ハードウェアで使用するID。非同期ハードウェアを使用していない場合は、INVALID_DEVIDに設定します。 - - _例_ - \code - Cmac cmac[1]; - ret = wc_InitCmac_ex(cmac, key, keySz, WC_CMAC_AES, NULL, NULL, INVALID_DEVID); - if (ret == 0) { - ret = wc_CmacUpdate(cmac, in, inSz); - } - if (ret == 0) { - ret = wc_CmacFinal(cmac, out, &outSz); - } - \endcode - - \sa wc_InitCmac_ex - \sa wc_CmacUpdate - \sa wc_CmacFinal - \sa wc_CmacFinalNoFree - \sa wc_CmacFree + \ingroup CMAC + \brief Cmac構造体をデフォルト値で初期化します + \return 0 成功時 + \param cmac Cmac構造体へのポインタ + \param key キーポインタ + \param keySz キーポインタのサイズ(16、24、または32) + \param type 常にWC_CMAC_AES = 1 + \param unused 使用されません。互換性に関する将来の使用の可能性のために存在します + \param heap 動的割り当てに使用されるヒープヒントへのポインタ。通常、静的メモリオプションで使用されます。NULLにできます。 + \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定します + + _Example_ + \code + Cmac cmac[1]; + ret = wc_InitCmac_ex(cmac, key, keySz, WC_CMAC_AES, NULL, NULL, INVALID_DEVID); + if (ret == 0) { + ret = wc_CmacUpdate(cmac, in, inSz); + } + if (ret == 0) { + ret = wc_CmacFinal(cmac, out, &outSz); + } + \endcode + + \sa wc_InitCmac_ex + \sa wc_CmacUpdate + \sa wc_CmacFinal + \sa wc_CmacFinalNoFree + \sa wc_CmacFree */ int wc_InitCmac_ex(Cmac* cmac, - const byte* key, word32 keySz, - int type, void* unused、void* heap, int devId); + const byte* key, word32 keySz, + int type, void* unused, void* heap, int devId); /*! - \ingroup CMAC - \brief 暗号ベースのメッセージ認証コード入力データを追加 - \return 成功したら0を返します - \param cmac Cmac構造体へのポインタ - \param in 処理する入力データへのポインタ - \param inSz 入力データのサイズ - - _例_ - \code - ret = wc_CmacUpdate(cmac、in、inSz); - \endcode - - \sa wc_InitCmac - \sa wc_CmacFinal - \sa wc_CmacFinalNoFree - \sa wc_CmacFree + \ingroup CMAC + \brief 暗号ベースメッセージ認証コード入力データを追加します + \return 0 成功時 + \param cmac Cmac構造体へのポインタ + \param in 処理する入力データ + \param inSz 入力データのサイズ + + _Example_ + \code + ret = wc_CmacUpdate(cmac, in, inSz); + \endcode + + \sa wc_InitCmac + \sa wc_CmacFinal + \sa wc_CmacFinalNoFree + \sa wc_CmacFree */ int wc_CmacUpdate(Cmac* cmac, - const byte* in, word32 inSz); + const byte* in, word32 inSz); + /*! \ingroup CMAC - \brief 暗号ベースのメッセージ認証コードの最終結果を生成します。ただし、使用したコンテキストのクリーンアップは行いません。 - \return 成功したら0を返します + \brief 暗号ベースメッセージ認証コードを使用して最終結果を生成し、コンテキストのクリーンアップを延期します。 + \return 0 成功時 \param cmac Cmac構造体へのポインタ - \param out 結果を格納するバッファへのポインタ - \param outSz 結果出力先バッファのサイズ + \param out 結果を返すポインタ + \param outSz 出力のポインタサイズ(入出力) _Example_ \code @@ -106,31 +107,32 @@ int wc_CmacUpdate(Cmac* cmac, */ int wc_CmacFinalNoFree(Cmac* cmac, byte* out, word32* outSz); + /*! - \ingroup CMAC - \brief 暗号ベースのメッセージ認証コードを使用して最終結果を生成します。加えて、内部でwc_CmacFreeを呼び出してコンテキスとをクリーンアップします。 - \return 成功したら0を返します - \param cmac Cmac構造体へのポインタ - \param out 結果を格納するバッファへのポインタ - \param outSz 結果出力先バッファのサイズ - - _例_ - \code - ret = wc_CmacFinal(cmac, out, &outSz); - \endcode - - \sa wc_InitCmac - \sa wc_CmacFinal - \sa wc_CmacFinalNoFree - \sa wc_CmacFree + \ingroup CMAC + \brief 暗号ベースメッセージ認証コードを使用して最終結果を生成し、wc_CmacFree()でコンテキストをクリーンアップします。 + \return 0 成功時 + \param cmac Cmac構造体へのポインタ + \param out 結果を返すポインタ + \param outSz 出力のポインタサイズ(入出力) + + _Example_ + \code + ret = wc_CmacFinal(cmac, out, &outSz); + \endcode + + \sa wc_InitCmac + \sa wc_CmacFinalNoFree + \sa wc_CmacFinalNoFree + \sa wc_CmacFree */ int wc_CmacFinal(Cmac* cmac, - byte* out, word32* outSz); + byte* out, word32* outSz); /*! \ingroup CMAC - \brief CMAC処理中にCmac構造体内に確保されたオブジェクトを開放します。 - \return 成功したら0を返します + \brief CMACコンテキスト内の割り当てをクリーンアップします。 + \return 0 成功時 \param cmac Cmac構造体へのポインタ _Example_ @@ -147,61 +149,60 @@ int wc_CmacFinal(Cmac* cmac, int wc_CmacFree(Cmac* cmac); /*! - \ingroup CMAC - \brief CMACを生成するためのシングルショット関数 - \return 成功したら0を返します - \param out 結果の出力先バッファへのポインタ - \param outSz 出力のポインタサイズ (in/out) - \param in 処理する入力データのポインタ - \param inSz 入力データのサイズ - \param key 鍵データへのポインタ - \param keySz 鍵データのサイズ (16、24、または 32) - - _例_ - \code - ret = wc_AesCmacGenerate(mac, &macSz, msg, msgSz, key, keySz); - \endcode - - \sa wc_AesCmacVerify + \ingroup CMAC + \brief CMACを生成するためのシングルショット関数 + \return 0 成功時 + \param out 結果を返すポインタ + \param outSz 出力のポインタサイズ(入出力) + \param in 処理する入力データ + \param inSz 入力データのサイズ + \param key キーポインタ + \param keySz キーポインタのサイズ(16、24、または32) + + _Example_ + \code + ret = wc_AesCmacGenerate(mac, &macSz, msg, msgSz, key, keySz); + \endcode + + \sa wc_AesCmacVerify */ int wc_AesCmacGenerate(byte* out, word32* outSz, - const byte* in、word32 inSz、 - const byte* key, word32 keySz); + const byte* in, word32 inSz, + const byte* key, word32 keySz); /*! - \ingroup CMAC - \brief CMACを検証するためのシングルショット関数 - \return 成功したら0を返します - \param check 検証対象となるCMAC処理結果データへのポインタ - \param checkSz CMAC処理結果データのサイズ - \param in 処理する入力データのポインタ - \param inSz 入力データのサイズ - \param key 鍵データへのポインタ - \param keySz 鍵データのサイズ (16、24、または 32) - - _例_ - \code - ret = wc_AesCmacVerify(mac, macSz, msg, msgSz, key, keySz); - \endcode - - \sa wc_AesCmacGenerate + \ingroup CMAC + \brief CMACを検証するためのシングルショット関数 + \return 0 成功時 + \param check 検証するCMAC値 + \param checkSz checkバッファのサイズ + \param in 処理する入力データ + \param inSz 入力データのサイズ + \param key キーポインタ + \param keySz キーポインタのサイズ(16、24、または32) + + _Example_ + \code + ret = wc_AesCmacVerify(mac, macSz, msg, msgSz, key, keySz); + \endcode + + \sa wc_AesCmacGenerate */ int wc_AesCmacVerify(const byte* check, word32 checkSz, - const byte* in、word32 inSz、 - const byte* key, word32 keySz); + const byte* in, word32 inSz, + const byte* key, word32 keySz); /*! - \ingroup CMAC - \brief WOLFSSL_HASH_KEEPマクロ定義時のみ使用可能。ハードウェアがシングルショットを必要とし、更新をメモリにキャッシュする必要がある場合に使用します。 - \return 成功したら0を返します - \param cmac Cmac構造体へのポインタ - \param in 処理する入力データへのポインタ - \param inSz 入力データのサイズ - - _例_ - \code - ret = wc_CMAC_Grow(cmac、in、inSz) - \endcode + \ingroup CMAC + \brief ハードウェアがシングルショットを必要とし、更新をメモリにキャッシュする必要がある場合にWOLFSSL_HASH_KEEPでのみ使用されます + \return 0 成功時 + \param in 処理する入力データ + \param inSz 入力データのサイズ + + _Example_ + \code + ret = wc_CMAC_Grow(cmac, in, inSz) + \endcode */ -int wc_CMAC_Grow(Cmac* cmac, const byte* in, int inSz); +int wc_CMAC_Grow(Cmac* cmac, const byte* in, int inSz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/coding.h b/doc/dox_comments/header_files-ja/coding.h index 2abcf32488..ccbd6602c8 100644 --- a/doc/dox_comments/header_files-ja/coding.h +++ b/doc/dox_comments/header_files-ja/coding.h @@ -1,24 +1,30 @@ /*! \ingroup Base_Encoding - \brief この機能は、与えられたBASS64符号化入力、IN、および出力バッファを出力バッファOUTに格納します。また、変数outlen内の出力バッファに書き込まれたサイズも設定します。 - \return 0 Base64エンコード入力の復号化に成功したときに返されます - \return BAD_FUNC_ARG 復号化された入力を保存するには、出力バッファが小さすぎる場合は返されます。 - \return ASN_INPUT_E 入力バッファ内の文字がBASE64範囲([A-ZA-Z0-9 + / =])の外側にある場合、またはBASE64エンコード入力に無効な行が終了した場合 - \param in デコードする入力バッファへのポインタ - \param inLen デコードする入力バッファの長さ - \param out デコードされたメッセージを保存する出力バッファへのポインタ + + \brief この関数は、指定されたBase64エンコードされた入力inを復号し、結果を出力バッファoutに格納します。また、変数outLenに出力バッファに書き込まれたサイズを設定します。 + + \return 0 Base64エンコードされた入力の復号に成功した場合に返されます + \return BAD_FUNC_ARG 出力バッファが復号された入力を格納するには小さすぎる場合に返されます + \return ASN_INPUT_E 入力バッファ内の文字がBase64の範囲([A-Za-z0-9+/=])外にある場合、またはBase64エンコードされた入力に無効な行末がある場合に返されます + + \param in 復号する入力バッファへのポインタ + \param inLen 復号する入力バッファの長さ + \param out 復号されたメッセージを格納する出力バッファへのポインタ + \param outLen 出力バッファの長さへのポインタ。関数呼び出しの最後に書き込まれたバイト数で更新されます + _Example_ \code - byte encoded[] = { // initialize text to decode }; + byte encoded[] = { // 復号するテキストを初期化 }; byte decoded[sizeof(encoded)]; - // requires at least (sizeof(encoded) * 3 + 3) / 4 room + // 少なくとも(sizeof(encoded) * 3 + 3) / 4のスペースが必要 int outLen = sizeof(decoded); if( Base64_Decode(encoded,sizeof(encoded), decoded, &outLen) != 0 ) { - // error decoding input buffer + // 入力バッファの復号エラー } \endcode + \sa Base64_Encode \sa Base16_Decode */ @@ -27,24 +33,30 @@ int Base64_Decode(const byte* in, word32 inLen, byte* out, /*! \ingroup Base_Encoding - \brief この機能は与えられた入力を符号化し、符号化結果を出力バッファOUTに格納します。エスケープ%0A行末の代わりに、従来の '\ N'行の終わりを持つデータを書き込みます。正常に完了すると、この機能はまた、出力バッファに書き込まれたバイト数に統一されます。 - \return 0 Base64エンコード入力の復号化に成功したときに返されます - \return BAD_FUNC_ARG 出力バッファが小さすぎてエンコードされた入力を保存する場合は返されます。 - \return BUFFER_E 出力バッファがエンコード中に部屋の外に実行された場合に返されます。 - \param in エンコードする入力バッファへのポインタ - \param inLen エンコードする入力バッファの長さ - \param out エンコードされたメッセージを保存する出力バッファへのポインタ + + \brief この関数は、指定された入力inをエンコードし、Base64エンコードされた結果を出力バッファoutに格納します。エスケープされた%0A行末の代わりに、従来の'\n'行末でデータを書き込みます。正常に完了すると、この関数はoutLenを出力バッファに書き込まれたバイト数に設定します。 + + \return 0 Base64エンコードされた入力の復号に成功した場合に返されます + \return BAD_FUNC_ARG 出力バッファがエンコードされた入力を格納するには小さすぎる場合に返されます + \return BUFFER_E エンコード中に出力バッファのスペースが不足した場合に返されます + + \param in エンコードする入力バッファへのポインタ + \param inLen エンコードする入力バッファの長さ + \param out エンコードされたメッセージを格納する出力バッファへのポインタ + \param outLen エンコードされたメッセージを格納する出力バッファの長さへのポインタ + _Example_ \code - byte plain[] = { // initialize text to encode }; + byte plain[] = { // エンコードするテキストを初期化 }; byte encoded[MAX_BUFFER_SIZE]; int outLen = sizeof(encoded); if( Base64_Encode(plain, sizeof(plain), encoded, &outLen) != 0 ) { - // error encoding input buffer + // 入力バッファのエンコードエラー } \endcode + \sa Base64_EncodeEsc \sa Base64_Decode */ @@ -54,25 +66,31 @@ int Base64_Encode(const byte* in, word32 inLen, byte* out, /*! \ingroup Base_Encoding - \brief この機能は与えられた入力を符号化し、符号化結果を出力バッファOUTに格納します。それは '\ n "行の終わりではなく、%0aエスケープ行の終わりを持つデータを書き込みます。正常に完了すると、この機能はまた、出力バッファに書き込まれたバイト数に統一されます。 - \return 0 Base64エンコード入力の復号化に成功したときに返されます - \return BAD_FUNC_ARG 出力バッファが小さすぎてエンコードされた入力を保存する場合は返されます。 - \return BUFFER_E 出力バッファがエンコード中に部屋の外に実行された場合に返されます。 - \return ASN_INPUT_E 入力メッセージのデコードの処理中にエラーが発生した場合 - \param in エンコードする入力バッファへのポインタ - \param inLen エンコードする入力バッファの長さ - \param out エンコードされたメッセージを保存する出力バッファへのポインタ + + \brief この関数は、指定された入力inをエンコードし、Base64エンコードされた結果を出力バッファoutに格納します。'\n'行末の代わりに%0Aエスケープされた行末でデータを書き込みます。正常に完了すると、この関数はoutLenを出力バッファに書き込まれたバイト数に設定します。 + + \return 0 Base64エンコードされた入力の復号に成功した場合に返されます + \return BAD_FUNC_ARG 出力バッファがエンコードされた入力を格納するには小さすぎる場合に返されます + \return BUFFER_E エンコード中に出力バッファのスペースが不足した場合に返されます + \return ASN_INPUT_E 入力メッセージの復号処理中にエラーが発生した場合に返されます + + \param in エンコードする入力バッファへのポインタ + \param inLen エンコードする入力バッファの長さ + \param out エンコードされたメッセージを格納する出力バッファへのポインタ + \param outLen エンコードされたメッセージを格納する出力バッファの長さへのポインタ + _Example_ \code - byte plain[] = { // initialize text to encode }; + byte plain[] = { // エンコードするテキストを初期化 }; byte encoded[MAX_BUFFER_SIZE]; int outLen = sizeof(encoded); if( Base64_EncodeEsc(plain, sizeof(plain), encoded, &outLen) != 0 ) { - // error encoding input buffer + // 入力バッファのエンコードエラー } \endcode + \sa Base64_Encode \sa Base64_Decode */ @@ -81,23 +99,29 @@ int Base64_EncodeEsc(const byte* in, word32 inLen, byte* out, /*! \ingroup Base_Encoding - \brief この機能は与えられた入力を符号化し、符号化結果を出力バッファOUTに格納します。それは新しい行なしでデータを書き込みます。正常に完了すると、この関数はまた、出力バッファに書き込まれたバイト数に統一されたものを設定します - \return 0 Base64エンコード入力の復号化に成功したときに返されます - \return BAD_FUNC_ARG 出力バッファが小さすぎてエンコードされた入力を保存する場合は返されます。 - \return BUFFER_E 出力バッファがエンコード中に部屋の外に実行された場合に返されます。 - \return ASN_INPUT_E 入力メッセージのデコードの処理中にエラーが発生した場合 - \param in エンコードする入力バッファへのポインタ - \param inLen エンコードする入力バッファの長さ - \param out エンコードされたメッセージを保存する出力バッファへのポインタ + + \brief この関数は、指定された入力inをエンコードし、Base64エンコードされた結果を出力バッファoutに格納します。改行なしでデータを書き込みます。正常に完了すると、この関数はoutLenを出力バッファに書き込まれたバイト数に設定します。 + + \return 0 Base64エンコードされた入力の復号に成功した場合に返されます + \return BAD_FUNC_ARG 出力バッファがエンコードされた入力を格納するには小さすぎる場合に返されます + \return BUFFER_E エンコード中に出力バッファのスペースが不足した場合に返されます + \return ASN_INPUT_E 入力メッセージの復号処理中にエラーが発生した場合に返されます + + \param in エンコードする入力バッファへのポインタ + \param inLen エンコードする入力バッファの長さ + \param out エンコードされたメッセージを格納する出力バッファへのポインタ + \param outLen エンコードされたメッセージを格納する出力バッファの長さへのポインタ + _Example_ \code - byte plain[] = { // initialize text to encode }; + byte plain[] = { // エンコードするテキストを初期化 }; byte encoded[MAX_BUFFER_SIZE]; int outLen = sizeof(encoded); if( Base64_Encode_NoNl(plain, sizeof(plain), encoded, &outLen) != 0 ) { - // error encoding input buffer + // 入力バッファのエンコードエラー } \endcode + \sa Base64_Encode \sa Base64_Decode */ @@ -107,23 +131,29 @@ int Base64_Encode_NoNl(const byte* in, word32 inLen, byte* out, /*! \ingroup Base_Encoding - \brief この機能は、与えられたBASE16符号化入力、IN、および出力バッファへの結果を記憶する。また、変数outlen内の出力バッファに書き込まれたサイズも設定します。 - \return 0 Base16エンコード入力の復号にうまく復号化したときに返されます - \return BAD_FUNC_ARG 出力バッファが復号化された入力を保存するにも小さすぎる場合、または入力長が2つの倍数でない場合に返されます。 - \return ASN_INPUT_E 入力バッファ内の文字がBASE16の範囲外にある場合は返されます([0-9a-f]) - \param in デコードする入力バッファへのポインタ - \param inLen デコードする入力バッファの長さ - \param out デコードされたメッセージを保存する出力バッファへのポインタ + + \brief この関数は、指定されたBase16エンコードされた入力inを復号し、結果を出力バッファoutに格納します。また、変数outLenに出力バッファに書き込まれたサイズを設定します。 + + \return 0 Base16エンコードされた入力の復号に成功した場合に返されます + \return BAD_FUNC_ARG 出力バッファが復号された入力を格納するには小さすぎる場合、または入力長が2の倍数でない場合に返されます + \return ASN_INPUT_E 入力バッファ内の文字がBase16の範囲([0-9A-F])外にある場合に返されます + + \param in 復号する入力バッファへのポインタ + \param inLen 復号する入力バッファの長さ + \param out 復号されたメッセージを格納する出力バッファへのポインタ + \param outLen 出力バッファの長さへのポインタ。関数呼び出しの最後に書き込まれたバイト数で更新されます + _Example_ \code - byte encoded[] = { // initialize text to decode }; + byte encoded[] = { // 復号するテキストを初期化 }; byte decoded[sizeof(encoded)]; int outLen = sizeof(decoded); if( Base16_Decode(encoded,sizeof(encoded), decoded, &outLen) != 0 ) { - // error decoding input buffer + // 入力バッファの復号エラー } \endcode + \sa Base64_Encode \sa Base64_Decode \sa Base16_Encode @@ -133,26 +163,32 @@ int Base16_Decode(const byte* in, word32 inLen, byte* out, word32* outLen); /*! \ingroup Base_Encoding - \brief BASE16出力へのエンコード入力。 - \return 0 成功 - \return BAD_FUNC_ARG IN、OUT、またはoutlenがNULLの場合、またはoutlenがInlen Plus 1を超えている場合は返します。 - \param in エンコードされる入力バッファへのポインタ。 - \param inLen 入力バッファの長さ - \param out 出力バッファへのポインタ。 + + \brief 入力をbase16出力にエンコードします。 + + \return 0 成功 + \return BAD_FUNC_ARG in、out、またはoutLenがnullの場合、またはoutLenがinLenの2倍プラス1未満の場合に返されます。 + + \param in エンコードする入力バッファへのポインタ。 + \param inLen 入力バッファの長さ。 + \param out 出力バッファへのポインタ。 + \param outLen 出力バッファの長さ。エンコードされた出力の長さに設定されます。 + _Example_ \code - byte in[] = { // Contents of something to be encoded }; + byte in[] = { // エンコードする何かの内容 }; byte out[NECESSARY_OUTPUT_SIZE]; word32 outSz = sizeof(out); if(Base16_Encode(in, sizeof(in), out, &outSz) != 0) { - // Handle encode error + // エンコードエラーを処理 } \endcode + \sa Base64_Encode \sa Base64_Decode \sa Base16_Decode */ -int Base16_Encode(const byte* in, word32 inLen, byte* out, word32* outLen); +int Base16_Encode(const byte* in, word32 inLen, byte* out, word32* outLen); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/compress.h b/doc/dox_comments/header_files-ja/compress.h index a522652033..06f2f6fd72 100644 --- a/doc/dox_comments/header_files-ja/compress.h +++ b/doc/dox_comments/header_files-ja/compress.h @@ -1,47 +1,59 @@ /*! \ingroup Compression - \brief この関数は、ハフマン符号化を用いて与えられた入力データを圧縮し、出力をOUTに格納する。出力バッファは、圧縮が可能でないことが存在するため、出力バッファが入力バッファよりも大きいはずです。これはまだルックアップテーブルを必要とします。出力バッファに対してSRCSZ + 0.1%+ 12を割り当てることをお勧めします。 - \return On 入力データの圧縮に成功し、出力バッファに格納されているバイト数を返します。 - \return COMPRESS_INIT_E 圧縮のためにストリームの初期化中にエラーがある場合 - \return COMPRESS_E 圧縮中にエラーが発生した場合は返されます - \param out 圧縮データを格納する出力バッファへのポインタ - \param outSz 出力バッファで保存されているサイズ - \param in 圧縮するメッセージを含むバッファへのポインタ - \param inSz 圧縮する入力メッセージのサイズ + + \brief この関数は、ハフマン符号化を使用して指定された入力データを圧縮し、出力をoutに格納します。出力バッファは入力バッファよりも大きくする必要があることに注意してください。圧縮が不可能な特定の入力が存在する場合でも、ルックアップテーブルが必要になるためです。出力バッファにはsrcSz + 0.1% + 12を割り当てることが推奨されます。 + + \return 入力データの圧縮に成功した場合、出力バッファに格納されたバイト数を返します + \return COMPRESS_INIT_E 圧縮用のストリームの初期化中にエラーが発生した場合に返されます + \return COMPRESS_E 圧縮中にエラーが発生した場合に返されます + + \param out 圧縮されたデータを格納する出力バッファへのポインタ + \param outSz 格納に使用できる出力バッファのサイズ + \param in 圧縮するメッセージを含むバッファへのポインタ + \param inSz 圧縮する入力メッセージのサイズ + \param flags 圧縮の動作を制御するフラグ。通常の解凍には0を使用します + _Example_ \code - byte message[] = { // initialize text to compress }; + byte message[] = { // 圧縮するテキストを初期化 }; byte compressed[(sizeof(message) + sizeof(message) * .001 + 12 )]; - // Recommends at least srcSz + .1% + 12 + // 少なくともsrcSz + .1% + 12を推奨 if( wc_Compress(compressed, sizeof(compressed), message, sizeof(message), 0) != 0){ - // error compressing data + // データの圧縮エラー } \endcode + \sa wc_DeCompress */ int wc_Compress(byte* out, word32 outSz, const byte* in, word32 inSz, word32 flags); /*! \ingroup Compression - \brief この関数は、ハフマン符号化を用いて所定の圧縮データを解凍し、出力をOUTに格納する。 - \return Success 入力データの解凍に成功した場合は、出力バッファに格納されているバイト数を返します。 - \return COMPRESS_INIT_E: 圧縮のためにストリームの初期化中にエラーがある場合 - \return COMPRESS_E: 圧縮中にエラーが発生した場合は返されます - \param out 解凍されたデータを格納する出力バッファへのポインタ - \param outSz 出力バッファで保存されているサイズ - \param in 解凍するメッセージを含むバッファへのポインタ + + \brief この関数は、ハフマン符号化を使用して指定された圧縮データを解凍し、出力をoutに格納します。 + + \return Success 入力データの解凍に成功した場合、出力バッファに格納されたバイト数を返します + \return COMPRESS_INIT_E: 圧縮用のストリームの初期化中にエラーが発生した場合に返されます + \return COMPRESS_E: 圧縮中にエラーが発生した場合に返されます + + \param out 解凍されたデータを格納する出力バッファへのポインタ + \param outSz 格納に使用できる出力バッファのサイズ + \param in 解凍するメッセージを含むバッファへのポインタ + \param inSz 解凍する入力メッセージのサイズ + _Example_ \code - byte compressed[] = { // initialize compressed message }; + byte compressed[] = { // 圧縮されたメッセージを初期化 }; byte decompressed[MAX_MESSAGE_SIZE]; if( wc_DeCompress(decompressed, sizeof(decompressed), compressed, sizeof(compressed)) != 0 ) { - // error decompressing data + // データの解凍エラー } \endcode + \sa wc_Compress */ -int wc_DeCompress(byte* out, word32 outSz, const byte* in, word32 inSz); +int wc_DeCompress(byte* out, word32 outSz, const byte* in, word32 inSz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/cryptocb.h b/doc/dox_comments/header_files-ja/cryptocb.h index 3b8e3dbd93..180f6f547b 100644 --- a/doc/dox_comments/header_files-ja/cryptocb.h +++ b/doc/dox_comments/header_files-ja/cryptocb.h @@ -1,10 +1,20 @@ /*! \ingroup CryptoCb - \brief この関数は、Crypto Operationsをキーストア、Secure Element、HSM、PKCS11またはTPMなどの外部ハードウェアにオフロードするための固有のデバイス識別子(DEVID)とコールバック関数を登録します。CryptoコールバックのSTSAFEの場合は、wolfcrypt / src / port / st / stsafe.cとwolfssl_stsafe_cryptodevcb関数を参照してください。TPMベースのCryptoコールバックの例では、wolftpm src / tpm2_wrap.cのwolftpm2_cryptodevcb関数を参照してください。 - \return CRYPTOCB_UNAVAILABLE ソフトウェア暗号を使用するためにフォールバックする - \return 0 成功のために - \return negative 失敗の値 - \param devId -2(invalid_devid)ではなく、一意の値ではありません。 + + \brief この関数は、Key Store、Secure Element、HSM、PKCS11、TPMなどの外部ハードウェアへの暗号操作のオフロードのために、一意のデバイス識別子(devID)とコールバック関数を登録します。 + + Crypto Callbacksを使用したSTSAFEの例については、wolfcrypt/src/port/st/stsafe.cとwolfSSL_STSAFE_CryptoDevCb関数を参照してください。 + + TPMベースの暗号コールバックの例については、wolfTPM src/tpm2_wrap.cのwolfTPM2_CryptoDevCb関数を参照してください。 + + \return CRYPTOCB_UNAVAILABLE ソフトウェア暗号の使用にフォールバックする場合 + \return 0 成功時 + \return 負の値 失敗時 + + \param devId -2(INVALID_DEVID)以外の任意の一意の値 + \param cb 次のプロトタイプを持つコールバック関数: + typedef int (*CryptoDevCallbackFunc)(int devId, wc_CryptoInfo* info, void* ctx); + _Example_ \code #include @@ -19,7 +29,7 @@ switch (info->pk.rsa.type) { case RSA_PUBLIC_ENCRYPT: case RSA_PUBLIC_DECRYPT: - // RSA public op + // RSA公開鍵操作 ret = wc_RsaFunction( info->pk.rsa.in, info->pk.rsa.inLen, info->pk.rsa.out, info->pk.rsa.outLen, @@ -28,7 +38,7 @@ break; case RSA_PRIVATE_ENCRYPT: case RSA_PRIVATE_DECRYPT: - // RSA private op + // RSA秘密鍵操作 ret = wc_RsaFunction( info->pk.rsa.in, info->pk.rsa.inLen, info->pk.rsa.out, info->pk.rsa.outLen, @@ -49,7 +59,7 @@ #endif #ifdef HAVE_ED25519 if (info->pk.type == WC_PK_TYPE_ED25519_SIGN) { - // ED25519 sign + // ED25519署名 ret = wc_ed25519_sign_msg_ex( info->pk.ed25519sign.in, info->pk.ed25519sign.inLen, info->pk.ed25519sign.out, info->pk.ed25519sign.outLen, @@ -66,6 +76,7 @@ wc_CryptoCb_RegisterDevice(devId, myCryptoCb_Func, &myCtx); wolfSSL_CTX_SetDevId(ctx, devId); \endcode + \sa wc_CryptoCb_UnRegisterDevice \sa wolfSSL_SetDevId \sa wolfSSL_CTX_SetDevId @@ -74,16 +85,22 @@ int wc_CryptoCb_RegisterDevice(int devId, CryptoDevCallbackFunc cb, void* ctx); /*! \ingroup CryptoCb - \brief この関数は、固有のデバイス識別子(devid)コールバック関数を除外します。 - \return none いいえ返します。 + + \brief この関数は、一意のデバイス識別子(devID)のコールバック関数の登録を解除します。 + + \return none 戻り値なし。 + + \param devId -2(INVALID_DEVID)以外の任意の一意の値 + _Example_ \code wc_CryptoCb_UnRegisterDevice(devId); devId = INVALID_DEVID; wolfSSL_CTX_SetDevId(ctx, devId); \endcode + \sa wc_CryptoCb_RegisterDevice \sa wolfSSL_SetDevId \sa wolfSSL_CTX_SetDevId */ -void wc_CryptoCb_UnRegisterDevice(int devId); +void wc_CryptoCb_UnRegisterDevice(int devId); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/curve25519.h b/doc/dox_comments/header_files-ja/curve25519.h index 7f7150327c..a0e4190d0d 100644 --- a/doc/dox_comments/header_files-ja/curve25519.h +++ b/doc/dox_comments/header_files-ja/curve25519.h @@ -1,26 +1,32 @@ /*! \ingroup Curve25519 - \brief この関数は、与えられたサイズ(Keysize)の指定された乱数発生器RNGを使用してCurve25519キーを生成し、それを指定されたCurve25519_Key構造体に格納します。キー構造がWC_CURVE25519_INIT()を介して初期化された後に呼び出されるべきです。 - \return 0 キーの生成に成功し、それを指定されたCurve25519_Key構造体に格納します。 - \return ECC_BAD_ARG_E 入力キーサイズがCurve25519キー(32バイト)のキーシェイズに対応していない場合は返されます。 - \return RNG_FAILURE_E RNGの内部ステータスがDRBG_OKでない場合、またはRNGを使用して次のランダムブロックを生成する場合に返されます。 - \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] RNG ECCキーの生成に使用されるRNGオブジェクトへのポインタ。 - \param [in] キーサイズ生成キーのサイズ。Curve25519の32バイトでなければなりません。 + + \brief この関数は、与えられた乱数生成器rngを使用して、与えられたサイズ(keysize)のCurve25519鍵を生成し、与えられたcurve25519_key構造体に格納します。wc_curve25519_init()を通じて鍵構造体が初期化された後に呼び出す必要があります。 + + \return 0 鍵の生成に成功し、与えられたcurve25519_key構造体に格納された場合に返されます。 + \return ECC_BAD_ARG_E 入力keysizeがcurve25519鍵のkeysizeに対応していない場合(32バイト)に返されます。 + \return RNG_FAILURE_E rng内部ステータスがDRBG_OKでない場合、またはrngで次のランダムブロックを生成する際にエラーがある場合に返されます。 + \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] rng ecc鍵を生成するために使用されるRNGオブジェクトへのポインタ。 + \param [in] keysize 生成する鍵のサイズ。curve25519では32バイトである必要があります。 + \param [in,out] key 生成された鍵を格納するcurve25519_key構造体へのポインタ。 + _Example_ \code int ret; curve25519_key key; - wc_curve25519_init(&key); // initialize key + wc_curve25519_init(&key); // 鍵を初期化 WC_RNG rng; - wc_InitRng(&rng); // initialize random number generator + wc_InitRng(&rng); // 乱数生成器を初期化 ret = wc_curve25519_make_key(&rng, 32, &key); if (ret != 0) { - // error making Curve25519 key + // Curve25519鍵作成エラー } \endcode + \sa wc_curve25519_init */ @@ -28,13 +34,18 @@ int wc_curve25519_make_key(WC_RNG* rng, int keysize, curve25519_key* key); /*! \ingroup Curve25519 - \brief この関数は、秘密の秘密鍵と受信した公開鍵を考えると、共有秘密鍵を計算します。生成された秘密鍵をバッファアウトに保存し、ounlentの秘密鍵の変数を割り当てます。ビッグエンディアンのみをサポートします。 - \return 0 共有秘密鍵を正常に計算したときに返されました。 - \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 - \return ECC_BAD_ARG_E 公開鍵の最初のビットが設定されている場合は、実装の指紋を避けるために返されます。 - \param [in] Private_Key Curve25519_Key構造体の秘密鍵で初期化されました。 - \param [in] public_key受信した公開鍵を含むCurve25519_Key構造体へのポインタ。 - \param [out] 32バイト計算された秘密鍵を格納するバッファへのポインタ。 + + \brief この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンのみをサポートします。 + + \return 0 共有秘密鍵の計算に成功した場合に返されます。 + \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 + \return ECC_BAD_ARG_E 実装フィンガープリントを回避するために、公開鍵の最初のビットが設定されている場合に返されます。 + + \param [in] private_key ユーザーの秘密鍵で初期化されたcurve25519_key構造体へのポインタ。 + \param [in] public_key 受信した公開鍵を含むcurve25519_key構造体へのポインタ。 + \param [out] out 32バイトの計算された秘密鍵を格納するバッファへのポインタ。 + \param [in,out] outlen 出力バッファに書き込まれた長さを格納するポインタ。 + _Example_ \code int ret; @@ -42,13 +53,14 @@ int wc_curve25519_make_key(WC_RNG* rng, int keysize, curve25519_key* key); byte sharedKey[32]; word32 keySz; curve25519_key privKey, pubKey; - // initialize both keys + // 両方の鍵を初期化 ret = wc_curve25519_shared_secret(&privKey, &pubKey, sharedKey, &keySz); if (ret != 0) { - // error generating shared key + // 共有鍵生成エラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_make_key \sa wc_curve25519_shared_secret_ex @@ -60,14 +72,19 @@ int wc_curve25519_shared_secret(curve25519_key* private_key, /*! \ingroup Curve25519 - \brief この関数は、秘密の秘密鍵と受信した公開鍵を考えると、共有秘密鍵を計算します。生成された秘密鍵をバッファアウトに保存し、ounlentの秘密鍵の変数を割り当てます。ビッグ・リトルエンディアンの両方をサポートします。 - \return 0 共有秘密鍵を正常に計算したときに返されました。 - \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 - \return ECC_BAD_ARG_E 公開鍵の最初のビットが設定されている場合は、実装の指紋を避けるために返されます。 - \param [in] Private_Key Curve25519_Key構造体の秘密鍵で初期化されました。 - \param [in] public_key受信した公開鍵を含むCurve25519_Key構造体へのポインタ。 - \param [out] 32バイト計算された秘密鍵を格納するバッファへのポインタ。 - \param pin,out] 出力バッファに書き込まれた長さを記憶するポインタの概要。 + + \brief この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンとリトルエンディアンの両方をサポートします。 + + \return 0 共有秘密鍵の計算に成功した場合に返されます。 + \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 + \return ECC_BAD_ARG_E 実装フィンガープリントを回避するために、公開鍵の最初のビットが設定されている場合に返されます。 + + \param [in] private_key ユーザーの秘密鍵で初期化されたcurve25519_key構造体へのポインタ。 + \param [in] public_key 受信した公開鍵を含むcurve25519_key構造体へのポインタ。 + \param [out] out 32バイトの計算された秘密鍵を格納するバッファへのポインタ。 + \param [in,out] outlen 出力バッファに書き込まれた長さを格納するポインタ。 + \param [in] endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。 + _Example_ \code int ret; @@ -76,14 +93,15 @@ int wc_curve25519_shared_secret(curve25519_key* private_key, word32 keySz; curve25519_key privKey, pubKey; - // initialize both keys + // 両方の鍵を初期化 ret = wc_curve25519_shared_secret_ex(&privKey, &pubKey, sharedKey, &keySz, EC25519_BIG_ENDIAN); if (ret != 0) { - // error generating shared key + // 共有鍵生成エラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_make_key \sa wc_curve25519_shared_secret @@ -95,15 +113,21 @@ int wc_curve25519_shared_secret_ex(curve25519_key* private_key, /*! \ingroup Curve25519 - \brief この関数はCurve25519キーを初期化します。構造のキーを生成する前に呼び出されるべきです。 - \return 0 Curve25519_Key構造体の初期化に成功しました。 - \return BAD_FUNC_ARG キーがNULLのときに返されます。 + + \brief この関数はCurve25519鍵を初期化します。構造体の鍵を生成する前に呼び出す必要があります。 + + \return 0 curve25519_key構造体の初期化に成功した場合に返されます。 + \return BAD_FUNC_ARG keyがNULLの場合に返されます。 + + \param [in,out] key 初期化するcurve25519_key構造体へのポインタ。 + _Example_ \code curve25519_key key; - wc_curve25519_init(&key); // initialize key - // make key and proceed to encryption + wc_curve25519_init(&key); // 鍵を初期化 + // 鍵を作成し、暗号化に進む \endcode + \sa wc_curve25519_make_key */ @@ -111,13 +135,18 @@ int wc_curve25519_init(curve25519_key* key); /*! \ingroup Curve25519 - \brief この関数はCurve25519オブジェクトを解放します。 + + \brief この関数はCurve25519オブジェクトを解放します。 + + \param [in,out] key 解放する鍵オブジェクトへのポインタ。 + _Example_ \code curve25519_key privKey; - // initialize key, use it to generate shared secret key + // 鍵を初期化し、共有秘密鍵の生成に使用 wc_curve25519_free(&privKey); \endcode + \sa wc_curve25519_init \sa wc_curve25519_make_key */ @@ -126,25 +155,31 @@ void wc_curve25519_free(curve25519_key* key); /*! \ingroup Curve25519 - \brief この関数はCurve25519秘密鍵のみをインポートします。(ビッグエンディアン)。 - \return 0 秘密鍵のインポートに成功しました。 - \return BAD_FUNC_ARG キーまたはPRIVがNULLの場合は返します。 - \return ECC_BAD_ARG_E PRIVSZがcurve25519_KEY_SIZEと等しくない場合は返します。 - \param [in] インポートする秘密鍵を含むバッファへのポイント。 - \param [in] インポートする秘密鍵のPrivsz長。 + + \brief この関数はcurve25519秘密鍵のみをインポートします。(ビッグエンディアン) + + \return 0 秘密鍵のインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG keyまたはprivがnullの場合に返されます。 + \return ECC_BAD_ARG_E privSzがCURVE25519_KEY_SIZEと等しくない場合に返されます。 + + \param [in] priv インポートする秘密鍵を含むバッファへのポインタ。 + \param [in] privSz インポートする秘密鍵の長さ。 + \param [in,out] key インポートされた鍵を格納する構造体へのポインタ。 + _Example_ \code int ret; - byte priv[] = { Contents of private key }; + byte priv[] = { // 秘密鍵の内容 }; curve25519_key key; wc_curve25519_init(&key); ret = wc_curve25519_import_private(priv, sizeof(priv), &key); if (ret != 0) { - // error importing keys + // 鍵のインポートエラー } \endcode + \sa wc_curve25519_import_private_ex \sa wc_curve25519_size */ @@ -154,28 +189,34 @@ int wc_curve25519_import_private(const byte* priv, word32 privSz, /*! \ingroup Curve25519 - \brief CURVE25519秘密鍵のインポートのみ。(大きなエンディアン)。 - \return 0 秘密鍵のインポートに成功しました。 - \return BAD_FUNC_ARG キーまたはPRIVがNULLの場合は返します。 - \return ECC_BAD_ARG_E PRIVSZがcurve25519_KEY_SIZEと等しくない場合は返します。 - \param [in] インポートする秘密鍵を含むバッファへのポイント。 - \param [in] インポートする秘密鍵のPrivsz長。 - \param [in,out] インポートされたキーを保存する構造へのキーポインタ。 + + \brief curve25519秘密鍵のみのインポート。(ビッグエンディアンまたはリトルエンディアン) + + \return 0 秘密鍵のインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG keyまたはprivがnullの場合に返されます。 + \return ECC_BAD_ARG_E privSzがCURVE25519_KEY_SIZEと等しくない場合に返されます。 + + \param [in] priv インポートする秘密鍵を含むバッファへのポインタ。 + \param [in] privSz インポートする秘密鍵の長さ。 + \param [in,out] key インポートされた鍵を格納する構造体へのポインタ。 + \param [in] endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。 + _Example_ \code int ret; - byte priv[] = { // Contents of private key }; + byte priv[] = { // 秘密鍵の内容 }; curve25519_key key; wc_curve25519_init(&key); ret = wc_curve25519_import_private_ex(priv, sizeof(priv), &key, EC25519_BIG_ENDIAN); if (ret != 0) { - // error importing keys + // 鍵のインポートエラー } \endcode + \sa wc_curve25519_import_private \sa wc_curve25519_size */ @@ -185,32 +226,38 @@ int wc_curve25519_import_private_ex(const byte* priv, word32 privSz, /*! \ingroup Curve25519 - \brief この関数は、パブリック秘密鍵ペアをCurve25519_Key構造体にインポートします。ビッグエンディアンのみ。 - \return 0 Curve25519_Key構造体へのインポートに返されます - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返します。 - \return ECC_BAD_ARG_E 入力キーのキーサイズがPublicキーサイズまたは秘密鍵サイズと一致しない場合に返されます。 - \param [in] インポートする秘密鍵を含むバッファへのポイント。 - \param [in] インポートする秘密鍵のPrivsz長。 - \param [in] パブリックキーをインポートするバッファへのPub。 - \param [in] インポートする公開鍵のPubsz長さ。 + + \brief この関数は、公開鍵-秘密鍵ペアをcurve25519_key構造体にインポートします。ビッグエンディアンのみ。 + + \return 0 curve25519_key構造体へのインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがnullの場合に返されます。 + \return ECC_BAD_ARG_E 入力鍵の鍵サイズが公開鍵または秘密鍵のサイズと一致しない場合に返されます。 + + \param [in] priv インポートする秘密鍵を含むバッファへのポインタ。 + \param [in] privSz インポートする秘密鍵の長さ。 + \param [in] pub インポートする公開鍵を含むバッファへのポインタ。 + \param [in] pubSz インポートする公開鍵の長さ。 + \param [in,out] key インポートされた鍵を格納する構造体へのポインタ。 + _Example_ \code int ret; byte priv[32]; byte pub[32]; - // initialize with public and private keys + // 公開鍵と秘密鍵で初期化 curve25519_key key; wc_curve25519_init(&key); - // initialize key + // 鍵を初期化 ret = wc_curve25519_import_private_raw(&priv, sizeof(priv), pub, sizeof(pub), &key); if (ret != 0) { - // error importing keys + // 鍵のインポートエラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_make_key \sa wc_curve25519_import_public @@ -222,32 +269,38 @@ int wc_curve25519_import_private_raw(const byte* priv, word32 privSz, /*! \ingroup Curve25519 - \brief この関数は、パブリック秘密鍵ペアをCurve25519_Key構造体にインポートします。ビッグ・リトルエンディアンの両方をサポートします。 - \return 0 Curve25519_Key構造体へのインポートに返されます - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返します。 - \return ECC_BAD_ARG_E 戻されたIFまたは入力キーのキーサイズがパブリックキーサイズまたは秘密鍵サイズと一致しない場合 - \param [in] インポートする秘密鍵を含むバッファへのポイント。 - \param [in] インポートする秘密鍵のPrivsz長。 - \param [in] パブリックキーをインポートするバッファへのPub。 - \param [in] インポートする公開鍵のPubsz長さ。 - \param [in,out] インポートされたキーを保存する構造へのキーポインタ。 + + \brief この関数は、公開鍵-秘密鍵ペアをcurve25519_key構造体にインポートします。ビッグエンディアンとリトルエンディアンの両方をサポートします。 + + \return 0 curve25519_key構造体へのインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがnullの場合に返されます。 + \return ECC_BAD_ARG_E 入力鍵の鍵サイズが公開鍵または秘密鍵のサイズと一致しない場合に返されます。 + + \param [in] priv インポートする秘密鍵を含むバッファへのポインタ。 + \param [in] privSz インポートする秘密鍵の長さ。 + \param [in] pub インポートする公開鍵を含むバッファへのポインタ。 + \param [in] pubSz インポートする公開鍵の長さ。 + \param [in,out] key インポートされた鍵を格納する構造体へのポインタ。 + \param [in] endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。 + _Example_ \code int ret; byte priv[32]; byte pub[32]; - // initialize with public and private keys + // 公開鍵と秘密鍵で初期化 curve25519_key key; wc_curve25519_init(&key); - // initialize key + // 鍵を初期化 ret = wc_curve25519_import_private_raw_ex(&priv, sizeof(priv), pub, sizeof(pub), &key, EC25519_BIG_ENDIAN); if (ret != 0) { - // error importing keys + // 鍵のインポートエラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_make_key \sa wc_curve25519_import_public @@ -259,14 +312,21 @@ int wc_curve25519_import_private_raw_ex(const byte* priv, word32 privSz, const byte* pub, word32 pubSz, curve25519_key* key, int endian); + /*! \ingroup Curve25519 - \brief この関数はCurve25519_Key構造体から秘密鍵をエクスポートし、それを指定されたアウトバッファに格納します。また、エクスポートされたキーのサイズになるように概要を設定します。ビッグエンディアンのみ。 - \return 0 Curve25519_Key構造体から秘密鍵を正常にエクスポートしました。 - \return BAD_FUNC_ARG 入力パラメータがNULLの場合に返されます。 - \return ECC_BAD_ARG_E WC_CURVE25519_SIZE()がキーと等しくない場合に返されます。 - \param [in] キーをエクスポートする構造へのキーポインタ。 - \param [out] エクスポートされたキーを保存するバッファへのポインタ。 + + \brief この関数は、curve25519_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンのみ。 + + \return 0 curve25519_key構造体から秘密鍵のエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + \return ECC_BAD_ARG_E wc_curve25519_size()がkeyと等しくない場合に返されます。 + + \param [in] key 鍵をエクスポートする構造体へのポインタ。 + \param [out] out エクスポートされた鍵を格納するバッファへのポインタ。 + \param [in,out] outLen 入力時は、outのバイト単位のサイズ。 + 出力時は、出力バッファに書き込まれたバイト数を格納します。 + _Example_ \code int ret; @@ -274,13 +334,14 @@ int wc_curve25519_import_private_raw_ex(const byte* priv, word32 privSz, int privSz; curve25519_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve25519_export_private_raw(&key, priv, &privSz); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_make_key \sa wc_curve25519_import_private_raw @@ -292,13 +353,19 @@ int wc_curve25519_export_private_raw(curve25519_key* key, byte* out, /*! \ingroup Curve25519 - \brief この関数はCurve25519_Key構造体から秘密鍵をエクスポートし、それを指定されたアウトバッファに格納します。また、エクスポートされたキーのサイズになるように概要を設定します。それがビッグ・リトルエンディアンかを指定できます。 - \return 0 Curve25519_Key構造体から秘密鍵を正常にエクスポートしました。 - \return BAD_FUNC_ARG 入力パラメータがNULLの場合に返されます。 - \return ECC_BAD_ARG_E WC_CURVE25519_SIZE()がキーと等しくない場合に返されます。 - \param [in] キーをエクスポートする構造へのキーポインタ。 - \param [out] エクスポートされたキーを保存するバッファへのポインタ。 - \param [in,out] INに照会は、バイト数のサイズです。ON OUTでは、出力バッファに書き込まれたバイトを保存します。 + + \brief この関数は、curve25519_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンまたはリトルエンディアンを指定できます。 + + \return 0 curve25519_key構造体から秘密鍵のエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + \return ECC_BAD_ARG_E wc_curve25519_size()がkeyと等しくない場合に返されます。 + + \param [in] key 鍵をエクスポートする構造体へのポインタ。 + \param [out] out エクスポートされた鍵を格納するバッファへのポインタ。 + \param [in,out] outLen 入力時は、outのバイト単位のサイズ。 + 出力時は、出力バッファに書き込まれたバイト数を格納します。 + \param [in] endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。 + _Example_ \code int ret; @@ -306,13 +373,14 @@ int wc_curve25519_export_private_raw(curve25519_key* key, byte* out, byte priv[32]; int privSz; curve25519_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve25519_export_private_raw_ex(&key, priv, &privSz, EC25519_BIG_ENDIAN); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_make_key \sa wc_curve25519_import_private_raw @@ -325,27 +393,33 @@ int wc_curve25519_export_private_raw_ex(curve25519_key* key, byte* out, /*! \ingroup Curve25519 - \brief この関数は、指定されたバッファから公開鍵をインポートし、それをCurve25519_Key構造体に格納します。 - \return 0 公開鍵をCurve25519_Key構造体に正常にインポートしました。 - \return ECC_BAD_ARG_E InLenパラメータがキー構造のキーサイズと一致しない場合に返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] インポートする公開鍵を含むバッファへのポインタ。 - \param [in] インポートする公開鍵のインレル長。 + + \brief この関数は、与えられたinバッファから公開鍵をインポートし、curve25519_key構造体に格納します。 + + \return 0 curve25519_key構造体への公開鍵のインポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E inLenパラメータが鍵構造体の鍵サイズと一致しない場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] in インポートする公開鍵を含むバッファへのポインタ。 + \param [in] inLen インポートする公開鍵の長さ。 + \param [in,out] key 鍵を格納するcurve25519_key構造体へのポインタ。 + _Example_ \code int ret; byte pub[32]; - // initialize pub with public key + // pubを公開鍵で初期化 curve25519_key key; - // initialize key + // 鍵を初期化 ret = wc_curve25519_import_public(pub,sizeof(pub), &key); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_export_public \sa wc_curve25519_import_private_raw @@ -359,28 +433,34 @@ int wc_curve25519_import_public(const byte* in, word32 inLen, /*! \ingroup Curve25519 - \brief この関数は、指定されたバッファから公開鍵をインポートし、それをCurve25519_Key構造体に格納します。 - \return 0 公開鍵をCurve25519_Key構造体に正常にインポートしました。 - \return ECC_BAD_ARG_E InLenパラメータがキー構造のキーサイズと一致しない場合に返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] インポートする公開鍵を含むバッファへのポインタ。 - \param [in] インポートする公開鍵のインレル長。 - \param [in,out] キーを保存するカーブ25519キー構造へのキーポインタ。 + + \brief この関数は、与えられたinバッファから公開鍵をインポートし、curve25519_key構造体に格納します。 + + \return 0 curve25519_key構造体への公開鍵のインポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E inLenパラメータが鍵構造体の鍵サイズと一致しない場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] in インポートする公開鍵を含むバッファへのポインタ。 + \param [in] inLen インポートする公開鍵の長さ。 + \param [in,out] key 鍵を格納するcurve25519_key構造体へのポインタ。 + \param [in] endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。 + _Example_ \code int ret; byte pub[32]; - // initialize pub with public key + // pubを公開鍵で初期化 curve25519_key key; - // initialize key + // 鍵を初期化 ret = wc_curve25519_import_public_ex(pub, sizeof(pub), &key, EC25519_BIG_ENDIAN); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_export_public \sa wc_curve25519_import_private_raw @@ -394,23 +474,29 @@ int wc_curve25519_import_public_ex(const byte* in, word32 inLen, /*! \ingroup Curve25519 - \brief この関数は、公開鍵バッファが指定されたエンディアンに対して有効なCurve2519キー値を保持していることを確認します。 - \return 0 公開鍵の値が有効なときに返されます。 - \return ECC_BAD_ARG_E 公開鍵の値が無効な場合は返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] チェックするための公開鍵を含むバッファへのPubポインタ。 - \param [in] チェックするための公開鍵の長さを掲載します。 + + \brief この関数は、エンディアン順序を考慮して、公開鍵バッファが有効なCurve25519鍵値を保持しているかどうかをチェックします。 + + \return 0 公開鍵の値が有効な場合に返されます。 + \return ECC_BAD_ARG_E 公開鍵の値が有効でない場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] pub チェックする公開鍵を含むバッファへのポインタ。 + \param [in] pubLen チェックする公開鍵の長さ。 + \param [in] endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。 + _Example_ \code int ret; - byte pub[] = { Contents of public key }; + byte pub[] = { // 公開鍵の内容 }; ret = wc_curve25519_check_public_ex(pub, sizeof(pub), EC25519_BIG_ENDIAN); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_import_public \sa wc_curve25519_import_public_ex @@ -421,12 +507,18 @@ int wc_curve25519_check_public(const byte* pub, word32 pubSz, int endian); /*! \ingroup Curve25519 - \brief この関数は指定されたキー構造から公開鍵をエクスポートし、結果をアウトバッファに格納します。ビッグエンディアンのみ。 - \return 0 Curve25519_Key構造体から公開鍵を正常にエクスポートする上で返されます。 - \return ECC_BAD_ARG_E outlenがcurve25519_pub_key_sizeより小さい場合に返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] キーをエクスポートするCurve25519_Key構造体へのキーポインタ。 - \param [out] 公開鍵を保存するバッファへのポインタ。 + + \brief この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンのみ。 + + \return 0 curve25519_key構造体から公開鍵のエクスポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E outLenがCURVE25519_PUB_KEY_SIZEより小さい場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] key 鍵をエクスポートするcurve25519_key構造体へのポインタ。 + \param [out] out 公開鍵を格納するバッファへのポインタ。 + \param [in,out] outLen 入力時は、outのバイト単位のサイズ。 + 出力時は、出力バッファに書き込まれたバイト数を格納します。 + _Example_ \code int ret; @@ -435,12 +527,13 @@ int wc_curve25519_check_public(const byte* pub, word32 pubSz, int endian); int pubSz; curve25519_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve25519_export_public(&key, pub, &pubSz); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_export_private_raw \sa wc_curve25519_import_public @@ -450,13 +543,19 @@ int wc_curve25519_export_public(curve25519_key* key, byte* out, word32* outLen); /*! \ingroup Curve25519 - \brief この関数は指定されたキー構造から公開鍵をエクスポートし、結果をアウトバッファに格納します。ビッグ・リトルエンディアンの両方をサポートします。 - \return 0 Curve25519_Key構造体から公開鍵を正常にエクスポートする上で返されます。 - \return ECC_BAD_ARG_E outlenがcurve25519_pub_key_sizeより小さい場合に返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] キーをエクスポートするCurve25519_Key構造体へのキーポインタ。 - \param [out] 公開鍵を保存するバッファへのポインタ。 - \param [in,out] INに照会は、バイト数のサイズです。ON OUTでは、出力バッファに書き込まれたバイトを保存します。 + + \brief この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンとリトルエンディアンの両方をサポートします。 + + \return 0 curve25519_key構造体から公開鍵のエクスポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E outLenがCURVE25519_PUB_KEY_SIZEより小さい場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] key 鍵をエクスポートするcurve25519_key構造体へのポインタ。 + \param [out] out 公開鍵を格納するバッファへのポインタ。 + \param [in,out] outLen 入力時は、outのバイト単位のサイズ。 + 出力時は、出力バッファに書き込まれたバイト数を格納します。 + \param [in] endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。 + _Example_ \code int ret; @@ -465,13 +564,14 @@ int wc_curve25519_export_public(curve25519_key* key, byte* out, word32* outLen); int pubSz; curve25519_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve25519_export_public_ex(&key, pub, &pubSz, EC25519_BIG_ENDIAN); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve25519_init \sa wc_curve25519_export_private_raw \sa wc_curve25519_import_public @@ -482,14 +582,21 @@ int wc_curve25519_export_public_ex(curve25519_key* key, byte* out, /*! \ingroup Curve25519 - \brief Export Curve25519キーペア。ビッグエンディアンのみ。 - \return 0 Curve25519_Key構造体からキーペアのエクスポートに成功しました。 - \return BAD_FUNC_ARG 入力パラメータがNULLの場合に返されます。 - \return ECC_BAD_ARG_E PRIVSZがCURUV25519_SEY_SIZEまたはPUBSZよりも小さい場合は、PUBSZがCURUG25519_PUB_KEY_SIZEよりも小さい場合に返されます。 - \param [in] キーペアをエクスポートするCURUN448_KEY構造体へのキーポインタ。 - \param [out] 秘密鍵を保存するバッファへのPRIVポインタ。 - \param [in,out] PRIVSZ ON INは、PRIVバッファのサイズをバイト単位で)です。ON OUTは、PRIVバッファに書き込まれたバイトを保存します。 - \param [out] パブリックキーを保存するバッファへのPub。 + + \brief Curve25519鍵ペアをエクスポートします。ビッグエンディアンのみ。 + + \return 0 curve25519_key構造体から鍵ペアのエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + \return ECC_BAD_ARG_E privSzがCURVE25519_KEY_SIZEより小さい、またはpubSzがCURVE25519_PUB_KEY_SIZEより小さい場合に返されます。 + + \param [in] key 鍵ペアをエクスポートするcurve448_key構造体へのポインタ。 + \param [out] priv 秘密鍵を格納するバッファへのポインタ。 + \param [in,out] privSz 入力時は、privバッファのバイト単位のサイズ。 + 出力時は、privバッファに書き込まれたバイト数を格納します。 + \param [out] pub 公開鍵を格納するバッファへのポインタ。 + \param [in,out] pubSz 入力時は、pubバッファのバイト単位のサイズ。 + 出力時は、pubバッファに書き込まれたバイト数を格納します。 + _Example_ \code int ret; @@ -500,13 +607,14 @@ int wc_curve25519_export_public_ex(curve25519_key* key, byte* out, int privSz; curve25519_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve25519_export_key_raw(&key, priv, &privSz, pub, &pubSz); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve25519_export_key_raw_ex \sa wc_curve25519_export_private_raw */ @@ -517,15 +625,22 @@ int wc_curve25519_export_key_raw(curve25519_key* key, /*! \ingroup Curve25519 - \brief Export Curve25519キーペア。ビッグ・リトルエンディアン。 - \return 0 Curve25519_Key構造体からキーペアのエクスポートに成功しました。 - \return BAD_FUNC_ARG 入力パラメータがNULLの場合に返されます。 - \return ECC_BAD_ARG_E PRIVSZがCURUV25519_SEY_SIZEまたはPUBSZよりも小さい場合は、PUBSZがCURUG25519_PUB_KEY_SIZEよりも小さい場合に返されます。 - \param [in] キーペアをエクスポートするCURUN448_KEY構造体へのキーポインタ。 - \param [out] 秘密鍵を保存するバッファへのPRIVポインタ。 - \param [in,out] PRIVSZ ON INは、PRIVバッファのサイズをバイト単位で)です。ON OUTは、PRIVバッファに書き込まれたバイトを保存します。 - \param [out] パブリックキーを保存するバッファへのPub。 - \param [in,out] PUBSZ ON INは、パブバッファのサイズをバイト単位で)です。ON OUTでは、PUBバッファに書き込まれたバイトを保存します。 + + \brief curve25519鍵ペアをエクスポートします。ビッグエンディアンまたはリトルエンディアン。 + + \return 0 curve25519_key構造体から鍵ペアのエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + \return ECC_BAD_ARG_E privSzがCURVE25519_KEY_SIZEより小さい、またはpubSzがCURVE25519_PUB_KEY_SIZEより小さい場合に返されます。 + + \param [in] key 鍵ペアをエクスポートするcurve448_key構造体へのポインタ。 + \param [out] priv 秘密鍵を格納するバッファへのポインタ。 + \param [in,out] privSz 入力時は、privバッファのバイト単位のサイズ。 + 出力時は、privバッファに書き込まれたバイト数を格納します。 + \param [out] pub 公開鍵を格納するバッファへのポインタ。 + \param [in,out] pubSz 入力時は、pubバッファのバイト単位のサイズ。 + 出力時は、pubバッファに書き込まれたバイト数を格納します。 + \param [in] endian 使用する形式を設定するためのEC25519_BIG_ENDIANまたはEC25519_LITTLE_ENDIAN。 + _Example_ \code int ret; @@ -536,14 +651,15 @@ int wc_curve25519_export_key_raw(curve25519_key* key, int privSz; curve25519_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve25519_export_key_raw_ex(&key,priv, &privSz, pub, &pubSz, EC25519_BIG_ENDIAN); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve25519_export_key_raw \sa wc_curve25519_export_private_raw_ex \sa wc_curve25519_export_public_ex @@ -556,20 +672,26 @@ int wc_curve25519_export_key_raw_ex(curve25519_key* key, /*! \ingroup Curve25519 - \brief この関数は与えられたキー構造のキーサイズを返します。 - \return Success 有効な初期化されたCurve25519_Key構造体を考慮すると、キーのサイズを返します。 - \return 0 キーがNULLの場合は返されます + + \brief この関数は、与えられた鍵構造体の鍵サイズを返します。 + + \return Success 有効で初期化されたcurve25519_key構造体が与えられた場合、鍵のサイズを返します。 + \return 0 keyがNULLの場合に返されます。 + + \param [in] key 鍵サイズを決定するcurve25519_key構造体へのポインタ。 + _Example_ \code int keySz; curve25519_key key; - // initialize and make key + // 鍵を初期化して作成 keySz = wc_curve25519_size(&key); \endcode + \sa wc_curve25519_init \sa wc_curve25519_make_key */ -int wc_curve25519_size(curve25519_key* key); +int wc_curve25519_size(curve25519_key* key); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/curve448.h b/doc/dox_comments/header_files-ja/curve448.h index d6d8a307a0..b61b00fb1e 100644 --- a/doc/dox_comments/header_files-ja/curve448.h +++ b/doc/dox_comments/header_files-ja/curve448.h @@ -1,26 +1,32 @@ /*! \ingroup Curve448 - \brief この関数は、与えられたサイズ(Keysize)のサイズの指定された乱数発生器RNGを使用してCurve448キーを生成し、それを指定されたCurve448_Key構造体に格納します。キー構造がWC_CURVE448_INIT()を介して初期化された後に呼び出されるべきです。 - \return 0 キーの生成に成功し、それを指定されたCurve448_Key構造体に格納します。 - \return ECC_BAD_ARG_E 入力キーサイズがCurve448キー(56バイト)のキーシェイズに対応していない場合は返されます。 - \return RNG_FAILURE_E RNGの内部ステータスがDRBG_OKでない場合、またはRNGを使用して次のランダムブロックを生成する場合に返されます。 - \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] RNG ECCキーの生成に使用されるRNGオブジェクトへのポインタ。 - \param [in] キーサイズ生成キーのサイズ。Curve448の場合は56バイトでなければなりません。 + + \brief この関数は、与えられた乱数生成器rngを使用して、与えられたサイズ(keysize)のCurve448鍵を生成し、与えられたcurve448_key構造体に格納します。wc_curve448_init()を通じて鍵構造体が初期化された後に呼び出す必要があります。 + + \return 0 鍵の生成に成功し、与えられたcurve448_key構造体に格納された場合に返されます。 + \return ECC_BAD_ARG_E 入力keysizeがcurve448鍵のkeysizeに対応していない場合(56バイト)に返されます。 + \return RNG_FAILURE_E rng内部ステータスがDRBG_OKでない場合、またはrngで次のランダムブロックを生成する際にエラーがある場合に返されます。 + \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] rng ecc鍵を生成するために使用されるRNGオブジェクトへのポインタ。 + \param [in] keysize 生成する鍵のサイズ。curve448では56バイトである必要があります。 + \param [in,out] key 生成された鍵を格納するcurve448_key構造体へのポインタ。 + _Example_ \code int ret; curve448_key key; - wc_curve448_init(&key); // initialize key + wc_curve448_init(&key); // 鍵を初期化 WC_RNG rng; - wc_InitRng(&rng); // initialize random number generator + wc_InitRng(&rng); // 乱数生成器を初期化 ret = wc_curve448_make_key(&rng, 56, &key); if (ret != 0) { - // error making Curve448 key + // Curve448鍵作成エラー } \endcode + \sa wc_curve448_init */ @@ -28,12 +34,17 @@ int wc_curve448_make_key(WC_RNG* rng, int keysize, curve448_key* key); /*! \ingroup Curve448 - \brief この関数は、秘密の秘密鍵と受信した公開鍵を考えると、共有秘密鍵を計算します。生成された秘密鍵をバッファアウトに保存し、ounlentの秘密鍵の変数を割り当てます。ビッグエンディアンのみをサポートします。 - \return 0 共有秘密鍵を正常に計算する上で返却されました - \return BAD_FUNC_ARG 渡された入力パラメーターのいずれかがNULLの場合に返されます - \param [in] Private_Key Curve448_Key構造体へのポインタユーザーの秘密鍵で初期化されました。 - \param [in] public_key受信した公開鍵を含むCurve448_Key構造体へのポインタ。 - \param [out] 56バイトの計算された秘密鍵を保存するバッファへのポインタ。 + + \brief この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンのみをサポートします。 + + \return 0 共有秘密鍵の計算に成功した場合に返されます。 + \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] private_key ユーザーの秘密鍵で初期化されたcurve448_key構造体へのポインタ。 + \param [in] public_key 受信した公開鍵を含むcurve448_key構造体へのポインタ。 + \param [out] out 56バイトの計算された秘密鍵を格納するバッファへのポインタ。 + \param [in,out] outlen 出力バッファに書き込まれた長さを格納するポインタ。 + _Example_ \code int ret; @@ -41,13 +52,14 @@ int wc_curve448_make_key(WC_RNG* rng, int keysize, curve448_key* key); byte sharedKey[56]; word32 keySz; curve448_key privKey, pubKey; - // initialize both keys + // 両方の鍵を初期化 ret = wc_curve448_shared_secret(&privKey, &pubKey, sharedKey, &keySz); if (ret != 0) { - // error generating shared key + // 共有鍵生成エラー } \endcode + \sa wc_curve448_init \sa wc_curve448_make_key \sa wc_curve448_shared_secret_ex @@ -59,13 +71,18 @@ int wc_curve448_shared_secret(curve448_key* private_key, /*! \ingroup Curve448 - \brief この関数は、秘密の秘密鍵と受信した公開鍵を考えると、共有秘密鍵を計算します。生成された秘密鍵をバッファアウトに保存し、ounlentの秘密鍵の変数を割り当てます。ビッグ・リトルエンディアンの両方をサポートします。 - \return 0 共有秘密鍵を正常に計算したときに返されました。 - \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] Private_Key Curve448_Key構造体へのポインタユーザーの秘密鍵で初期化されました。 - \param [in] public_key受信した公開鍵を含むCurve448_Key構造体へのポインタ。 - \param [out] 56バイトの計算された秘密鍵を保存するバッファへのポインタ。 - \param [in,out] 出力バッファに書き込まれた長さを記憶するポインタの概要。 + + \brief この関数は、秘密の秘密鍵と受信した公開鍵を与えられた共有秘密鍵を計算します。生成された秘密鍵をバッファoutに格納し、秘密鍵の変数をoutlenに割り当てます。ビッグエンディアンとリトルエンディアンの両方をサポートします。 + + \return 0 共有秘密鍵の計算に成功した場合に返されます。 + \return BAD_FUNC_ARG 渡された入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] private_key ユーザーの秘密鍵で初期化されたcurve448_key構造体へのポインタ。 + \param [in] public_key 受信した公開鍵を含むcurve448_key構造体へのポインタ。 + \param [out] out 56バイトの計算された秘密鍵を格納するバッファへのポインタ。 + \param [in,out] outlen 出力バッファに書き込まれた長さを格納するポインタ。 + \param [in] endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。 + _Example_ \code int ret; @@ -74,14 +91,15 @@ int wc_curve448_shared_secret(curve448_key* private_key, word32 keySz; curve448_key privKey, pubKey; - // initialize both keys + // 両方の鍵を初期化 ret = wc_curve448_shared_secret_ex(&privKey, &pubKey, sharedKey, &keySz, EC448_BIG_ENDIAN); if (ret != 0) { - // error generating shared key + // 共有鍵生成エラー } \endcode + \sa wc_curve448_init \sa wc_curve448_make_key \sa wc_curve448_shared_secret @@ -93,15 +111,21 @@ int wc_curve448_shared_secret_ex(curve448_key* private_key, /*! \ingroup Curve448 - \brief この関数はCurve448キーを初期化します。構造のキーを生成する前に呼び出されるべきです。 - \return 0 Curve448_Key構造体の初期化に成功しました。 - \return BAD_FUNC_ARG キーがNULLのときに返されます。 + + \brief この関数はCurve448鍵を初期化します。構造体の鍵を生成する前に呼び出す必要があります。 + + \return 0 curve448_key構造体の初期化に成功した場合に返されます。 + \return BAD_FUNC_ARG keyがNULLの場合に返されます。 + + \param [in,out] key 初期化するcurve448_key構造体へのポインタ。 + _Example_ \code curve448_key key; - wc_curve448_init(&key); // initialize key - // make key and proceed to encryption + wc_curve448_init(&key); // 鍵を初期化 + // 鍵を作成し、暗号化に進む \endcode + \sa wc_curve448_make_key */ @@ -109,13 +133,18 @@ int wc_curve448_init(curve448_key* key); /*! \ingroup Curve448 - \brief この関数はCurve448オブジェクトを解放します。 + + \brief この関数はCurve448オブジェクトを解放します。 + + \param [in,out] key 解放する鍵オブジェクトへのポインタ。 + _Example_ \code curve448_key privKey; - // initialize key, use it to generate shared secret key + // 鍵を初期化し、共有秘密鍵の生成に使用 wc_curve448_free(&privKey); \endcode + \sa wc_curve448_init \sa wc_curve448_make_key */ @@ -124,25 +153,31 @@ void wc_curve448_free(curve448_key* key); /*! \ingroup Curve448 - \brief この関数はCurve448秘密鍵のみをインポートします。(ビッグエンディアン)。 - \return 0 秘密鍵のインポートに成功しました。 - \return BAD_FUNC_ARG キーまたはPRIVがNULLの場合は返します。 - \return ECC_BAD_ARG_E PRIVSZがCURUG448_KEY_SIZEと等しくない場合は返します。 - \param [in] インポートする秘密鍵を含むバッファへのポイント。 - \param [in] インポートする秘密鍵のPrivsz長。 + + \brief この関数はcurve448秘密鍵のみをインポートします。(ビッグエンディアン) + + \return 0 秘密鍵のインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG keyまたはprivがnullの場合に返されます。 + \return ECC_BAD_ARG_E privSzがCURVE448_KEY_SIZEと等しくない場合に返されます。 + + \param [in] priv インポートする秘密鍵を含むバッファへのポインタ。 + \param [in] privSz インポートする秘密鍵の長さ。 + \param [in,out] key インポートされた鍵を格納する構造体へのポインタ。 + _Example_ \code int ret; - byte priv[] = { Contents of private key }; + byte priv[] = { // 秘密鍵の内容 }; curve448_key key; wc_curve448_init(&key); ret = wc_curve448_import_private(priv, sizeof(priv), &key); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_curve448_import_private_ex \sa wc_curve448_size */ @@ -152,28 +187,34 @@ int wc_curve448_import_private(const byte* priv, word32 privSz, /*! \ingroup Curve448 - \brief CURVE448秘密鍵のインポートのみ。(ビッグエンディアン)。 - \return 0 秘密鍵のインポートに成功しました。 - \return BAD_FUNC_ARG キーまたはPRIVがNULLの場合は返します。 - \return ECC_BAD_ARG_E PRIVSZがCURUG448_KEY_SIZEと等しくない場合は返します。 - \param [in] インポートする秘密鍵を含むバッファへのポイント。 - \param [in] インポートする秘密鍵のPrivsz長。 - \param [in,out] インポートされたキーを保存する構造へのキーポインタ。 + + \brief curve448秘密鍵のみのインポート。(ビッグエンディアンまたはリトルエンディアン) + + \return 0 秘密鍵のインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG keyまたはprivがnullの場合に返されます。 + \return ECC_BAD_ARG_E privSzがCURVE448_KEY_SIZEと等しくない場合に返されます。 + + \param [in] priv インポートする秘密鍵を含むバッファへのポインタ。 + \param [in] privSz インポートする秘密鍵の長さ。 + \param [in,out] key インポートされた鍵を格納する構造体へのポインタ。 + \param [in] endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。 + _Example_ \code int ret; - byte priv[] = { // Contents of private key }; + byte priv[] = { // 秘密鍵の内容 }; curve448_key key; wc_curve448_init(&key); ret = wc_curve448_import_private_ex(priv, sizeof(priv), &key, EC448_BIG_ENDIAN); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_curve448_import_private \sa wc_curve448_size */ @@ -183,32 +224,38 @@ int wc_curve448_import_private_ex(const byte* priv, word32 privSz, /*! \ingroup Curve448 - \brief この関数は、public-秘密鍵のペアをCurve448_Key構造体にインポートします。ビッグエンディアンのみ。 - \return 0 Curve448_Key構造体へのインポート時に返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返します。 - \return ECC_BAD_ARG_E 入力キーのキーサイズがPublicキーサイズまたは秘密鍵サイズと一致しない場合に返されます。 - \param [in] インポートする秘密鍵を含むバッファへのポイント。 - \param [in] インポートする秘密鍵のPrivsz長。 - \param [in] パブリックキーをインポートするバッファへのPub。 - \param [in] インポートする公開鍵のPubsz長さ。 + + \brief この関数は、公開鍵-秘密鍵ペアをcurve448_key構造体にインポートします。ビッグエンディアンのみ。 + + \return 0 curve448_key構造体へのインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがnullの場合に返されます。 + \return ECC_BAD_ARG_E 入力鍵の鍵サイズが公開鍵または秘密鍵のサイズと一致しない場合に返されます。 + + \param [in] priv インポートする秘密鍵を含むバッファへのポインタ。 + \param [in] privSz インポートする秘密鍵の長さ。 + \param [in] pub インポートする公開鍵を含むバッファへのポインタ。 + \param [in] pubSz インポートする公開鍵の長さ。 + \param [in,out] key インポートされた鍵を格納する構造体へのポインタ。 + _Example_ \code int ret; byte priv[56]; byte pub[56]; - // initialize with public and private keys + // 公開鍵と秘密鍵で初期化 curve448_key key; wc_curve448_init(&key); - // initialize key + // 鍵を初期化 ret = wc_curve448_import_private_raw(&priv, sizeof(priv), pub, sizeof(pub), &key); if (ret != 0) { - // error importing keys + // 鍵のインポートエラー } \endcode + \sa wc_curve448_init \sa wc_curve448_make_key \sa wc_curve448_import_public @@ -220,33 +267,39 @@ int wc_curve448_import_private_raw(const byte* priv, word32 privSz, /*! \ingroup Curve448 - \brief この関数は、public-秘密鍵のペアをCurve448_Key構造体にインポートします。ビッグ・リトルエンディアンの両方をサポートします。 - \return 0 Curve448_Key構造体へのインポート時に返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返します。 - \return ECC_BAD_ARG_E 入力キーのキーサイズがPublicキーサイズまたは秘密鍵サイズと一致しない場合に返されます。 - \param [in] インポートする秘密鍵を含むバッファへのポイント。 - \param [in] インポートする秘密鍵のPrivsz長。 - \param [in] パブリックキーをインポートするバッファへのPub。 - \param [in] インポートする公開鍵のPubsz長さ。 - \param [in,out] インポートされたキーを保存する構造へのキーポインタ。 + + \brief この関数は、公開鍵-秘密鍵ペアをcurve448_key構造体にインポートします。ビッグエンディアンとリトルエンディアンの両方をサポートします。 + + \return 0 curve448_key構造体へのインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがnullの場合に返されます。 + \return ECC_BAD_ARG_E 入力鍵の鍵サイズが公開鍵または秘密鍵のサイズと一致しない場合に返されます。 + + \param [in] priv インポートする秘密鍵を含むバッファへのポインタ。 + \param [in] privSz インポートする秘密鍵の長さ。 + \param [in] pub インポートする公開鍵を含むバッファへのポインタ。 + \param [in] pubSz インポートする公開鍵の長さ。 + \param [in,out] key インポートされた鍵を格納する構造体へのポインタ。 + \param [in] endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。 + _Example_ \code int ret; byte priv[56]; byte pub[56]; - // initialize with public and private keys + // 公開鍵と秘密鍵で初期化 curve448_key key; wc_curve448_init(&key); - // initialize key + // 鍵を初期化 ret = wc_curve448_import_private_raw_ex(&priv, sizeof(priv), pub, sizeof(pub), &key, EC448_BIG_ENDIAN); if (ret != 0) { - // error importing keys + // 鍵のインポートエラー } \endcode + \sa wc_curve448_init \sa wc_curve448_make_key \sa wc_curve448_import_public @@ -260,12 +313,18 @@ int wc_curve448_import_private_raw_ex(const byte* priv, word32 privSz, /*! \ingroup Curve448 - \brief この関数はCurve448_Key構造体から秘密鍵をエクスポートし、それを指定されたバッファに格納します。また、エクスポートされたキーのサイズになるように概要を設定します。ビッグエンディアンのみ。 - \return 0 Curve448_Key構造体から秘密鍵を正常にエクスポートする上で返されました。 - \return BAD_FUNC_ARG 入力パラメータがNULLの場合に返されます。 - \return ECC_BAD_ARG_E WC_CURVE448_SIZE()がキーと等しくない場合に返されます。 - \param [in] キーをエクスポートする構造へのキーポインタ。 - \param [out] エクスポートされたキーを保存するバッファへのポインタ。 + + \brief この関数は、curve448_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンのみ。 + + \return 0 curve448_key構造体から秘密鍵のエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + \return ECC_BAD_ARG_E wc_curve448_size()がkeyと等しくない場合に返されます。 + + \param [in] key 鍵をエクスポートする構造体へのポインタ。 + \param [out] out エクスポートされた鍵を格納するバッファへのポインタ。 + \param [in,out] outLen 入力時は、outのバイト単位のサイズ。 + 出力時は、出力バッファに書き込まれたバイト数を格納します。 + _Example_ \code int ret; @@ -273,13 +332,14 @@ int wc_curve448_import_private_raw_ex(const byte* priv, word32 privSz, int privSz; curve448_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve448_export_private_raw(&key, priv, &privSz); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve448_init \sa wc_curve448_make_key \sa wc_curve448_import_private_raw @@ -291,13 +351,19 @@ int wc_curve448_export_private_raw(curve448_key* key, byte* out, /*! \ingroup Curve448 - \brief この関数はCurve448_Key構造体から秘密鍵をエクスポートし、それを指定されたバッファに格納します。また、エクスポートされたキーのサイズになるように概要を設定します。それが大きいかリトルエンディアンかを指定できます。 - \return 0 Curve448_Key構造体から秘密鍵を正常にエクスポートする上で返されました。 - \return BAD_FUNC_ARG 入力パラメータがNULLの場合に返されます。 - \return ECC_BAD_ARG_E WC_CURVE448_SIZE()がキーと等しくない場合に返されます。 - \param [in] キーをエクスポートする構造へのキーポインタ。 - \param [out] エクスポートされたキーを保存するバッファへのポインタ。 - \param [in,out] INに照会は、バイト数のサイズです。ON OUTでは、出力バッファに書き込まれたバイトを保存します。 + + \brief この関数は、curve448_key構造体から秘密鍵をエクスポートし、与えられたoutバッファに格納します。また、outLenをエクスポートされた鍵のサイズに設定します。ビッグエンディアンまたはリトルエンディアンを指定できます。 + + \return 0 curve448_key構造体から秘密鍵のエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + \return ECC_BAD_ARG_E wc_curve448_size()がkeyと等しくない場合に返されます。 + + \param [in] key 鍵をエクスポートする構造体へのポインタ。 + \param [out] out エクスポートされた鍵を格納するバッファへのポインタ。 + \param [in,out] outLen 入力時は、outのバイト単位のサイズ。 + 出力時は、出力バッファに書き込まれたバイト数を格納します。 + \param [in] endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。 + _Example_ \code int ret; @@ -305,13 +371,14 @@ int wc_curve448_export_private_raw(curve448_key* key, byte* out, byte priv[56]; int privSz; curve448_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve448_export_private_raw_ex(&key, priv, &privSz, EC448_BIG_ENDIAN); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve448_init \sa wc_curve448_make_key \sa wc_curve448_import_private_raw @@ -324,27 +391,33 @@ int wc_curve448_export_private_raw_ex(curve448_key* key, byte* out, /*! \ingroup Curve448 - \brief この関数は、指定されたバッファから公開鍵をインポートし、それをCurve448_Key構造体に格納します。 - \return 0 公開鍵をCurve448_Key構造体に正常にインポートしました。 - \return ECC_BAD_ARG_E InLenパラメータがキー構造のキーサイズと一致しない場合に返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] インポートする公開鍵を含むバッファへのポインタ。 - \param [in] インポートする公開鍵のインレル長。 + + \brief この関数は、与えられたinバッファから公開鍵をインポートし、curve448_key構造体に格納します。 + + \return 0 curve448_key構造体への公開鍵のインポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E inLenパラメータが鍵構造体の鍵サイズと一致しない場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] in インポートする公開鍵を含むバッファへのポインタ。 + \param [in] inLen インポートする公開鍵の長さ。 + \param [in,out] key 鍵を格納するcurve448_key構造体へのポインタ。 + _Example_ \code int ret; byte pub[56]; - // initialize pub with public key + // pubを公開鍵で初期化 curve448_key key; - // initialize key + // 鍵を初期化 ret = wc_curve448_import_public(pub,sizeof(pub), &key); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_curve448_init \sa wc_curve448_export_public \sa wc_curve448_import_private_raw @@ -358,28 +431,34 @@ int wc_curve448_import_public(const byte* in, word32 inLen, /*! \ingroup Curve448 - \brief この関数は、指定されたバッファから公開鍵をインポートし、それをCurve448_Key構造体に格納します。 - \return 0 公開鍵をCurve448_Key構造体に正常にインポートしました。 - \return ECC_BAD_ARG_E InLenパラメータがキー構造のキーサイズと一致しない場合に返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] インポートする公開鍵を含むバッファへのポインタ。 - \param [in] インポートする公開鍵のインレル長。 - \param [in,out] キーを保存するCurve448_Key構造体へのキーポインタ。 + + \brief この関数は、与えられたinバッファから公開鍵をインポートし、curve448_key構造体に格納します。 + + \return 0 curve448_key構造体への公開鍵のインポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E inLenパラメータが鍵構造体の鍵サイズと一致しない場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] in インポートする公開鍵を含むバッファへのポインタ。 + \param [in] inLen インポートする公開鍵の長さ。 + \param [in,out] key 鍵を格納するcurve448_key構造体へのポインタ。 + \param [in] endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。 + _Example_ \code int ret; byte pub[56]; - // initialize pub with public key + // pubを公開鍵で初期化 curve448_key key; - // initialize key + // 鍵を初期化 ret = wc_curve448_import_public_ex(pub, sizeof(pub), &key, EC448_BIG_ENDIAN); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_curve448_init \sa wc_curve448_export_public \sa wc_curve448_import_private_raw @@ -393,23 +472,29 @@ int wc_curve448_import_public_ex(const byte* in, word32 inLen, /*! \ingroup Curve448 - \brief この関数は、公開鍵バッファがエンディアン順序付けを与えられた有効なCurve448キー値を保持することを確認します。 - \return 0 公開鍵の値が有効なときに返されます。 - \return ECC_BAD_ARG_E 公開鍵の値が無効な場合は返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] チェックするための公開鍵を含むバッファへのPubポインタ。 - \param [in] チェックするための公開鍵の長さを掲載します。 + + \brief この関数は、エンディアン順序を考慮して、公開鍵バッファが有効なCurve448鍵値を保持しているかどうかをチェックします。 + + \return 0 公開鍵の値が有効な場合に返されます。 + \return ECC_BAD_ARG_E 公開鍵の値が有効でない場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] pub チェックする公開鍵を含むバッファへのポインタ。 + \param [in] pubLen チェックする公開鍵の長さ。 + \param [in] endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。 + _Example_ \code int ret; - byte pub[] = { Contents of public key }; + byte pub[] = { // 公開鍵の内容 }; ret = wc_curve448_check_public_ex(pub, sizeof(pub), EC448_BIG_ENDIAN); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_curve448_init \sa wc_curve448_import_public \sa wc_curve448_import_public_ex @@ -420,12 +505,18 @@ int wc_curve448_check_public(const byte* pub, word32 pubSz, int endian); /*! \ingroup Curve448 - \brief この関数は指定されたキー構造から公開鍵をエクスポートし、結果をアウトバッファに格納します。ビッグエンディアンのみ。 - \return 0 Curve448_Key構造体から公開鍵のエクスポートに成功しました。 - \return ECC_BAD_ARG_E outlenがcurve448_pub_key_sizeより小さい場合に返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] キーをエクスポートするCurve448_Key構造体へのキーポインタ。 - \param [out] 公開鍵を保存するバッファへのポインタ。 + + \brief この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンのみ。 + + \return 0 curve448_key構造体から公開鍵のエクスポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E outLenがCURVE448_PUB_KEY_SIZEより小さい場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] key 鍵をエクスポートするcurve448_key構造体へのポインタ。 + \param [out] out 公開鍵を格納するバッファへのポインタ。 + \param [in,out] outLen 入力時は、outのバイト単位のサイズ。 + 出力時は、出力バッファに書き込まれたバイト数を格納します。 + _Example_ \code int ret; @@ -434,13 +525,14 @@ int wc_curve448_check_public(const byte* pub, word32 pubSz, int endian); int pubSz; curve448_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve448_export_public(&key, pub, &pubSz); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve448_init \sa wc_curve448_export_private_raw \sa wc_curve448_import_public @@ -450,13 +542,19 @@ int wc_curve448_export_public(curve448_key* key, byte* out, word32* outLen); /*! \ingroup Curve448 - \brief この関数は指定されたキー構造から公開鍵をエクスポートし、結果をアウトバッファに格納します。ビッグ・リトルエンディアンの両方をサポートします。 - \return 0 Curve448_Key構造体から公開鍵のエクスポートに成功しました。 - \return ECC_BAD_ARG_E outlenがcurve448_pub_key_sizeより小さい場合に返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 - \param [in] キーをエクスポートするCurve448_Key構造体へのキーポインタ。 - \param [out] 公開鍵を保存するバッファへのポインタ。 - \param [in,out] INに照会は、バイト数のサイズです。ON OUTでは、出力バッファに書き込まれたバイトを保存します。 + + \brief この関数は、与えられた鍵構造体から公開鍵をエクスポートし、結果をoutバッファに格納します。ビッグエンディアンとリトルエンディアンの両方をサポートします。 + + \return 0 curve448_key構造体から公開鍵のエクスポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E outLenがCURVE448_PUB_KEY_SIZEより小さい場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + + \param [in] key 鍵をエクスポートするcurve448_key構造体へのポインタ。 + \param [out] out 公開鍵を格納するバッファへのポインタ。 + \param [in,out] outLen 入力時は、outのバイト単位のサイズ。 + 出力時は、出力バッファに書き込まれたバイト数を格納します。 + \param [in] endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。 + _Example_ \code int ret; @@ -465,13 +563,14 @@ int wc_curve448_export_public(curve448_key* key, byte* out, word32* outLen); int pubSz; curve448_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve448_export_public_ex(&key, pub, &pubSz, EC448_BIG_ENDIAN); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve448_init \sa wc_curve448_export_private_raw \sa wc_curve448_import_public @@ -482,14 +581,21 @@ int wc_curve448_export_public_ex(curve448_key* key, byte* out, /*! \ingroup Curve448 - \brief この関数は指定されたキー構造からキーペアをエクスポートし、結果をアウトバッファに格納します。ビッグエンディアンのみ。 - \return 0 Curve448_Key構造体からキーペアのエクスポートに成功しました。 - \return BAD_FUNC_ARG 入力パラメータがNULLの場合に返されます。 - \return ECC_BAD_ARG_E PRIVSZがCURUV448_KEY_SIZEまたはPUBSZよりも小さい場合は、Curge448_PUB_KEY_SIZEよりも小さい場合に返されます。 - \param [in] キーペアをエクスポートするCURUN448_KEY構造体へのキーポインタ。 - \param [out] 秘密鍵を保存するバッファへのPRIVポインタ。 - \param [in,out] PRIVSZ ON INは、PRIVバッファのサイズをバイト単位で)です。ON OUTは、PRIVバッファに書き込まれたバイトを保存します。 - \param [out] パブリックキーを保存するバッファへのPub。 + + \brief この関数は、与えられた鍵構造体から鍵ペアをエクスポートし、結果をoutバッファに格納します。ビッグエンディアンのみ。 + + \return 0 curve448_key構造体から鍵ペアのエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + \return ECC_BAD_ARG_E privSzがCURVE448_KEY_SIZEより小さい、またはpubSzがCURVE448_PUB_KEY_SIZEより小さい場合に返されます。 + + \param [in] key 鍵ペアをエクスポートするcurve448_key構造体へのポインタ。 + \param [out] priv 秘密鍵を格納するバッファへのポインタ。 + \param [in,out] privSz 入力時は、privバッファのバイト単位のサイズ。 + 出力時は、privバッファに書き込まれたバイト数を格納します。 + \param [out] pub 公開鍵を格納するバッファへのポインタ。 + \param [in,out] pubSz 入力時は、pubバッファのバイト単位のサイズ。 + 出力時は、pubバッファに書き込まれたバイト数を格納します。 + _Example_ \code int ret; @@ -500,13 +606,14 @@ int wc_curve448_export_public_ex(curve448_key* key, byte* out, int privSz; curve448_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve448_export_key_raw(&key, priv, &privSz, pub, &pubSz); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve448_export_key_raw_ex \sa wc_curve448_export_private_raw */ @@ -517,16 +624,23 @@ int wc_curve448_export_key_raw(curve448_key* key, /*! \ingroup Curve448 - \brief Curve448キーペアをエクスポートします。ビッグ、またはリトルエンディアン。 - \brief この関数は指定されたキー構造からキーペアをエクスポートし、結果をアウトバッファに格納します。ビッグ、またはリトルエンディアン。 - \return 0 成功 - \return BAD_FUNC_ARG 入力パラメータがNULLの場合に返されます。 - \return ECC_BAD_ARG_E PRIVSZがCURUV448_KEY_SIZEまたはPUBSZよりも小さい場合は、Curge448_PUB_KEY_SIZEよりも小さい場合に返されます。 - \param [in] キーペアをエクスポートするCURUN448_KEY構造体へのキーポインタ。 - \param [out] 秘密鍵を保存するバッファへのPRIVポインタ。 - \param [in,out] PRIVSZ ON INは、PRIVバッファのサイズをバイト単位で)です。ON OUTは、PRIVバッファに書き込まれたバイトを保存します。 - \param [out] パブリックキーを保存するバッファへのPub。 - \param [in,out] PUBSZ ON INは、パブバッファのサイズをバイト単位で)です。ON OUTでは、PUBバッファに書き込まれたバイトを保存します。 + + \brief curve448鍵ペアをエクスポートします。ビッグエンディアンまたはリトルエンディアン。 + \brief この関数は、与えられた鍵構造体から鍵ペアをエクスポートし、結果をoutバッファに格納します。ビッグエンディアンまたはリトルエンディアン。 + + \return 0 成功。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLの場合に返されます。 + \return ECC_BAD_ARG_E privSzがCURVE448_KEY_SIZEより小さい、またはpubSzがCURVE448_PUB_KEY_SIZEより小さい場合に返されます。 + + \param [in] key 鍵ペアをエクスポートするcurve448_key構造体へのポインタ。 + \param [out] priv 秘密鍵を格納するバッファへのポインタ。 + \param [in,out] privSz 入力時は、privバッファのバイト単位のサイズ。 + 出力時は、privバッファに書き込まれたバイト数を格納します。 + \param [out] pub 公開鍵を格納するバッファへのポインタ。 + \param [in,out] pubSz 入力時は、pubバッファのバイト単位のサイズ。 + 出力時は、pubバッファに書き込まれたバイト数を格納します。 + \param [in] endian 使用する形式を設定するためのEC448_BIG_ENDIANまたはEC448_LITTLE_ENDIAN。 + _Example_ \code int ret; @@ -537,14 +651,15 @@ int wc_curve448_export_key_raw(curve448_key* key, int privSz; curve448_key key; - // initialize and make key + // 鍵を初期化して作成 ret = wc_curve448_export_key_raw_ex(&key,priv, &privSz, pub, &pubSz, EC448_BIG_ENDIAN); if (ret != 0) { - // error exporting key + // 鍵のエクスポートエラー } \endcode + \sa wc_curve448_export_key_raw \sa wc_curve448_export_private_raw_ex \sa wc_curve448_export_public_ex @@ -557,20 +672,26 @@ int wc_curve448_export_key_raw_ex(curve448_key* key, /*! \ingroup Curve448 - \brief この関数は与えられたキー構造のキーサイズを返します。 - \return Success 有効な初期化されたCurve448_Key構造体を考慮すると、キーのサイズを返します。 - \return 0 キーがNULLの場合は返されます。 + + \brief この関数は、与えられた鍵構造体の鍵サイズを返します。 + + \return Success 有効で初期化されたcurve448_key構造体が与えられた場合、鍵のサイズを返します。 + \return 0 keyがNULLの場合に返されます。 + + \param [in] key 鍵サイズを決定するcurve448_key構造体へのポインタ。 + _Example_ \code int keySz; curve448_key key; - // initialize and make key + // 鍵を初期化して作成 keySz = wc_curve448_size(&key); \endcode + \sa wc_curve448_init \sa wc_curve448_make_key */ -int wc_curve448_size(curve448_key* key); +int wc_curve448_size(curve448_key* key); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/des3.h b/doc/dox_comments/header_files-ja/des3.h index a8829ef435..979d537853 100644 --- a/doc/dox_comments/header_files-ja/des3.h +++ b/doc/dox_comments/header_files-ja/des3.h @@ -1,22 +1,28 @@ /*! \ingroup 3DES - \brief この関数は、引数として与えられたDES構造体のキーと初期化ベクトル(IV)を設定します。また、これらがまだ初期化されていない場合は、暗号化と復号化に必要なバッファーのスペースを初期化して割り当てます。注:IVが指定されていない場合(i.e.iv == null)初期化ベクトルは、デフォルトのIV 0になります。 - \return 0 DES構造体のキーと初期化ベクトルを正常に設定する - \param des 初期化するDES構造へのポインタ - \param key DES構造を初期化するための8バイトのキーを含むバッファへのポインタ - \param iv DES構造を初期化するための8バイトIVを含むバッファへのポインタ。これが提供されていない場合、IVはデフォルトで0になります + + \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 structure used for encryption + Des enc; // 暗号化に使用されるDes構造体 int ret; - byte key[] = { // initialize with 8 byte key }; - byte iv[] = { // initialize with 8 byte iv }; + byte key[] = { // 8バイトの鍵で初期化 }; + byte iv[] = { // 8バイトのivで初期化 }; ret = wc_Des_SetKey(&des, key, iv, DES_ENCRYPTION); if (ret != 0) { - // error initializing des structure + // des構造体の初期化エラー } \endcode + \sa wc_Des_SetIV \sa wc_Des3_SetKey */ @@ -25,40 +31,52 @@ int wc_Des_SetKey(Des* des, const byte* key, /*! \ingroup 3DES - \brief この関数は、引数として与えられたDES構造体の初期化ベクトル(IV)を設定します。NULL IVを渡したら、初期化ベクトルを0に設定します。 - \return none いいえ返します。 - \param des IVを設定するためのDES構造へのポインタ + + \brief この関数は、引数として与えられたDes構造体の初期化ベクトル(iv)を設定します。NULLのivが渡された場合、初期化ベクトルを0に設定します。 + + \return none 戻り値なし。 + + \param des ivを設定するDes構造体へのポインタ + \param iv Des構造体を初期化するための8バイトのivを含むバッファへのポインタ。これが提供されない場合、ivはデフォルトで0になります + _Example_ \code - Des enc; // Des structure used for encryption - // initialize enc with wc_Des_SetKey - byte iv[] = { // initialize with 8 byte iv }; + 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 この関数は入力メッセージを暗号化し、結果を出力バッファーに格納します。暗号ブロックチェーンチェーン(CBC)モードでDES暗号化を使用します。 - \return 0 与えられた入力メッセージの暗号化に成功したときに返されます - \param des 暗号化に使用するDES構造へのポインタ - \param out 暗号化された暗号文を保存するバッファへのポインタ - \param in 暗号化するメッセージを含む入力バッファへのポインタ + + \brief この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。 + + \return 0 指定された入力メッセージの暗号化に成功した場合に返されます + + \param des 暗号化に使用するDes構造体へのポインタ + \param out 暗号化された暗号文を格納するバッファへのポインタ + \param in 暗号化するメッセージを含む入力バッファへのポインタ + \param sz 暗号化するメッセージの長さ + _Example_ \code - Des enc; // Des structure used for encryption - // initialize enc with wc_Des_SetKey, use mode DES_ENCRYPTION + Des enc; // 暗号化に使用されるDes構造体 + // wc_Des_SetKeyでencを初期化、モードDES_ENCRYPTIONを使用 - byte plain[] = { // initialize with message }; + byte plain[] = { // メッセージで初期化 }; byte cipher[sizeof(plain)]; if ( wc_Des_CbcEncrypt(&enc, cipher, plain, sizeof(plain)) != 0) { - // error encrypting message + // メッセージの暗号化エラー } \endcode + \sa wc_Des_SetKey \sa wc_Des_CbcDecrypt */ @@ -67,23 +85,29 @@ int wc_Des_CbcEncrypt(Des* des, byte* out, /*! \ingroup 3DES - \brief この関数は入力暗号文を復号化し、結果の平文を出力バッファーに出力します。暗号ブロックチェーンチェーン(CBC)モードでDES暗号化を使用します。 - \return 0 与えられた暗号文を正常に復号化したときに返されました - \param des 復号化に使用するDES構造へのポインタ - \param out 復号化された平文を保存するバッファへのポインタ - \param in 暗号化された暗号文を含む入力バッファへのポインタ + + \brief この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。 + + \return 0 指定された暗号文の復号に成功した場合に返されます + + \param des 復号に使用するDes構造体へのポインタ + \param out 復号された平文を格納するバッファへのポインタ + \param in 暗号化された暗号文を含む入力バッファへのポインタ + \param sz 復号する暗号文の長さ + _Example_ \code - Des dec; // Des structure used for decryption - // initialize dec with wc_Des_SetKey, use mode DES_DECRYPTION + Des dec; // 復号に使用されるDes構造体 + // wc_Des_SetKeyでdecを初期化、モードDES_DECRYPTIONを使用 - byte cipher[] = { // initialize with ciphertext }; + byte cipher[] = { // 暗号文で初期化 }; byte decoded[sizeof(cipher)]; if ( wc_Des_CbcDecrypt(&dec, decoded, cipher, sizeof(cipher)) != 0) { - // error decrypting message + // メッセージの復号エラー } \endcode + \sa wc_Des_SetKey \sa wc_Des_CbcEncrypt */ @@ -92,23 +116,29 @@ int wc_Des_CbcDecrypt(Des* des, byte* out, /*! \ingroup 3DES - \brief この関数は入力メッセージを暗号化し、結果を出力バッファーに格納します。電子コードブック(ECB)モードでDES暗号化を使用します。 - \return 0: 与えられた平文を正常に暗号化すると返されます。 - \param des 暗号化に使用するDES構造へのポインタ - \param out 暗号化されたメッセージを保存するバッファへのポインタ - \param in 暗号化する平文を含む入力バッファへのポインタ + + \brief この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。電子コードブック(ECB)モードのDes暗号化を使用します。 + + \return 0: 指定された平文の暗号化に成功した場合に返されます。 + + \param des 暗号化に使用するDes構造体へのポインタ + \param out 暗号化されたメッセージを格納するバッファへのポインタ + \param in 暗号化する平文を含む入力バッファへのポインタ + \param sz 暗号化する平文の長さ + _Example_ \code - Des enc; // Des structure used for encryption - // initialize enc with wc_Des_SetKey, use mode DES_ENCRYPTION + Des enc; // 暗号化に使用されるDes構造体 + // wc_Des_SetKeyでencを初期化、モードDES_ENCRYPTIONを使用 - byte plain[] = { // initialize with message to encrypt }; + byte plain[] = { // 暗号化するメッセージで初期化 }; byte cipher[sizeof(plain)]; if ( wc_Des_EcbEncrypt(&enc,cipher, plain, sizeof(plain)) != 0) { - // error encrypting message + // メッセージの暗号化エラー } \endcode + \sa wc_Des_SetKe */ int wc_Des_EcbEncrypt(Des* des, byte* out, @@ -116,23 +146,29 @@ int wc_Des_EcbEncrypt(Des* des, byte* out, /*! \ingroup 3DES - \brief この関数は入力メッセージを暗号化し、結果を出力バッファーに格納します。電子コードブック(ECB)モードでDES3暗号化を使用します。警告:ほぼすべてのユースケースでECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用しないでください。 - \return 0 与えられた平文を正常に暗号化すると返されます - \param des3 暗号化に使用するDES3構造へのポインタ - \param out 暗号化されたメッセージを保存するバッファへのポインタ - \param in 暗号化する平文を含む入力バッファへのポインタ + + \brief この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。電子コードブック(ECB)モードのDes3暗号化を使用します。警告: ほぼすべてのユースケースで、ECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用することは避けてください。 + + \return 0 指定された平文の暗号化に成功した場合に返されます + + \param des3 暗号化に使用するDes3構造体へのポインタ + \param out 暗号化されたメッセージを格納するバッファへのポインタ + \param in 暗号化する平文を含む入力バッファへのポインタ + \param sz 暗号化する平文の長さ + _Example_ \code - Des3 enc; // Des3 structure used for encryption - // initialize enc with wc_Des3_SetKey, use mode DES_ENCRYPTION + Des3 enc; // 暗号化に使用されるDes3構造体 + // wc_Des3_SetKeyでencを初期化、モードDES_ENCRYPTIONを使用 - byte plain[] = { // initialize with message to encrypt }; + byte plain[] = { // 暗号化するメッセージで初期化 }; byte cipher[sizeof(plain)]; if ( wc_Des3_EcbEncrypt(&enc,cipher, plain, sizeof(plain)) != 0) { - // error encrypting message + // メッセージの暗号化エラー } \endcode + \sa wc_Des3_SetKey */ int wc_Des3_EcbEncrypt(Des3* des, byte* out, @@ -140,23 +176,29 @@ int wc_Des3_EcbEncrypt(Des3* des, byte* out, /*! \ingroup 3DES - \brief この関数は、引数として与えられたDES3構造のキーと初期化ベクトル(IV)を設定します。また、これらがまだ初期化されていない場合は、暗号化と復号化に必要なバッファーのスペースを初期化して割り当てます。注:IVが指定されていない場合(i.e.iv == null)初期化ベクトルは、デフォルトのIV 0になります。 - \return 0 DES構造体のキーと初期化ベクトルを正常に設定する - \param des3 初期化するDES3構造へのポインタ - \param key DES3構造を初期化する24バイトのキーを含むバッファへのポインタ - \param iv DES3構造を初期化するための8バイトIVを含むバッファへのポインタ。これが提供されていない場合、IVはデフォルトで0になります + + \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 structure used for encryption + Des3 enc; // 暗号化に使用されるDes3構造体 int ret; - byte key[] = { // initialize with 24 byte key }; - byte iv[] = { // initialize with 8 byte iv }; + byte key[] = { // 24バイトの鍵で初期化 }; + byte iv[] = { // 8バイトのivで初期化 }; ret = wc_Des3_SetKey(&des, key, iv, DES_ENCRYPTION); if (ret != 0) { - // error initializing des structure + // des構造体の初期化エラー } \endcode + \sa wc_Des3_SetIV \sa wc_Des3_CbcEncrypt \sa wc_Des3_CbcDecrypt @@ -166,42 +208,54 @@ int wc_Des3_SetKey(Des3* des, const byte* key, /*! \ingroup 3DES - \brief この関数は、引数として与えられたDES3構造の初期化ベクトル(IV)を設定します。NULL IVを渡したら、初期化ベクトルを0に設定します。 - \return none いいえ返します。 - \param des IVを設定するためのDES3構造へのポインタ + + \brief この関数は、引数として与えられたDes3構造体の初期化ベクトル(iv)を設定します。NULLのivが渡された場合、初期化ベクトルを0に設定します。 + + \return none 戻り値なし。 + + \param des ivを設定するDes3構造体へのポインタ + \param iv Des3構造体を初期化するための8バイトのivを含むバッファへのポインタ。これが提供されない場合、ivはデフォルトで0になります + _Example_ \code - Des3 enc; // Des3 structure used for encryption - // initialize enc with wc_Des3_SetKey + Des3 enc; // 暗号化に使用されるDes3構造体 + // wc_Des3_SetKeyでencを初期化 - byte iv[] = { // initialize with 8 byte iv }; + 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 この関数は入力メッセージを暗号化し、結果を出力バッファーに格納します。暗号ブロックチェーン(CBC)モードでトリプルDES(3DES)暗号化を使用します。 - \return 0 与えられた入力メッセージの暗号化に成功したときに返されます - \param des 暗号化に使用するDES3構造へのポインタ - \param out 暗号化された暗号文を保存するバッファへのポインタ - \param in 暗号化するメッセージを含む入力バッファへのポインタ + + \brief この関数は、入力メッセージinを暗号化し、結果を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。 + + \return 0 指定された入力メッセージの暗号化に成功した場合に返されます + + \param des 暗号化に使用するDes3構造体へのポインタ + \param out 暗号化された暗号文を格納するバッファへのポインタ + \param in 暗号化するメッセージを含む入力バッファへのポインタ + \param sz 暗号化するメッセージの長さ + _Example_ \code - Des3 enc; // Des3 structure used for encryption - // initialize enc with wc_Des3_SetKey, use mode DES_ENCRYPTION + Des3 enc; // 暗号化に使用されるDes3構造体 + // wc_Des3_SetKeyでencを初期化、モードDES_ENCRYPTIONを使用 - byte plain[] = { // initialize with message }; + byte plain[] = { // メッセージで初期化 }; byte cipher[sizeof(plain)]; if ( wc_Des3_CbcEncrypt(&enc, cipher, plain, sizeof(plain)) != 0) { - // error encrypting message + // メッセージの暗号化エラー } \endcode + \sa wc_Des3_SetKey \sa wc_Des3_CbcDecrypt */ @@ -210,25 +264,31 @@ int wc_Des3_CbcEncrypt(Des3* des, byte* out, /*! \ingroup 3DES - \brief この関数は入力暗号文を復号化し、結果の平文を出力バッファーに出力します。暗号ブロックチェーン(CBC)モードでトリプルDES(3DES)暗号化を使用します。 - \return 0 与えられた暗号文を正常に復号化したときに返されました - \param des 復号化に使用するDES3構造へのポインタ - \param out 復号化された平文を保存するバッファへのポインタ - \param in 暗号化された暗号文を含む入力バッファへのポインタ + + \brief この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。 + + \return 0 指定された暗号文の復号に成功した場合に返されます + + \param des 復号に使用するDes3構造体へのポインタ + \param out 復号された平文を格納するバッファへのポインタ + \param in 暗号化された暗号文を含む入力バッファへのポインタ + \param sz 復号する暗号文の長さ + _Example_ \code - Des3 dec; // Des structure used for decryption - // initialize dec with wc_Des3_SetKey, use mode DES_DECRYPTION + Des3 dec; // 復号に使用されるDes構造体 + // wc_Des3_SetKeyでdecを初期化、モードDES_DECRYPTIONを使用 - byte cipher[] = { // initialize with ciphertext }; + byte cipher[] = { // 暗号文で初期化 }; byte decoded[sizeof(cipher)]; if ( wc_Des3_CbcDecrypt(&dec, decoded, cipher, sizeof(cipher)) != 0) { - // error decrypting message + // メッセージの復号エラー } \endcode + \sa wc_Des3_SetKey \sa wc_Des3_CbcEncrypt */ int wc_Des3_CbcDecrypt(Des3* des, byte* out, - const byte* in,word32 sz); + const byte* in,word32 sz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/dh.h b/doc/dox_comments/header_files-ja/dh.h index e8db7eae7c..3b0929d3d7 100644 --- a/doc/dox_comments/header_files-ja/dh.h +++ b/doc/dox_comments/header_files-ja/dh.h @@ -1,12 +1,18 @@ /*! \ingroup Diffie-Hellman - \brief この関数は、Diffie-Hellman Exchangeプロトコルを使用して安全な秘密鍵を交渉するのに使用するためのDiffie-Hellmanキーを初期化します。 - \return none いいえ返します。 + + \brief この関数は、Diffie-Hellman鍵交換プロトコルで安全な秘密鍵をネゴシエートするために使用するDiffie-Hellman鍵を初期化します。 + + \return none 戻り値なし。 + + \param key 安全な鍵交換で使用するために初期化するDhKey構造体へのポインタ + _Example_ \code DhKey key; - wc_InitDhKey(&key); // initialize DH key + wc_InitDhKey(&key); // DH鍵を初期化 \endcode + \sa wc_FreeDhKey \sa wc_DhGenerateKeyPair */ @@ -14,33 +20,44 @@ int wc_InitDhKey(DhKey* key); /*! \ingroup Diffie-Hellman - \brief この関数は、Diffie-Hellman Exchangeプロトコルを使用して安全な秘密鍵をネゴシエートするために使用された後にDiffie-Hellmanキーを解放します。 - \return none いいえ返します。 + + \brief この関数は、Diffie-Hellman鍵交換プロトコルで安全な秘密鍵をネゴシエートするために使用された後、Diffie-Hellman鍵を解放します。 + + \return none 戻り値なし。 + + \param key 解放するDhKey構造体へのポインタ + _Example_ \code DhKey key; - // initialize key, perform key exchange + // 鍵を初期化、鍵交換を実行 - wc_FreeDhKey(&key); // free DH key to avoid memory leaks + wc_FreeDhKey(&key); // メモリリークを避けるためにDH鍵を解放 \endcode + \sa wc_InitDhKey */ void wc_FreeDhKey(DhKey* key); /*! \ingroup Diffie-Hellman - \brief この関数はdiffie-hellmanパブリックパラメータに基づいてパブリック/秘密鍵ペアを生成し、PRIVSの秘密鍵とPubの公開鍵を格納します。初期化されたDiffie-Hellmanキーと初期化されたRNG構造を取ります。 - \return BAD_FUNC_ARG この関数への入力の1つを解析するエラーがある場合に返されます - \return RNG_FAILURE_E RNGを使用して乱数を生成するエラーが発生した場合 - \return MP_INIT_E 公開鍵の生成中に数学ライブラリにエラーがある場合は返却される可能性があります - \return MP_READ_E 公開鍵の生成中に数学ライブラリにエラーがある場合は返却される可能性があります - \return MP_EXPTMOD_E 公開鍵の生成中に数学ライブラリにエラーがある場合は返却される可能性があります - \return MP_TO_E 公開鍵の生成中に数学ライブラリにエラーがある場合は返却される可能性があります - \param key キーペアを生成するDHKEY構造体へのポインタ - \param rng キーを生成するための初期化された乱数発生器(RNG)へのポインタ - \param priv 秘密鍵を保存するバッファへのポインタ - \param privSz PRIVに書かれた秘密鍵のサイズを保存します - \param pub 公開鍵を保存するバッファへのポインタ + + \brief この関数は、Diffie-Hellman公開パラメータに基づいて公開/秘密鍵ペアを生成し、秘密鍵をprivに、公開鍵をpubに格納します。初期化されたDiffie-Hellman鍵と初期化されたrng構造体を受け取ります。 + + \return BAD_FUNC_ARG この関数への入力の1つを解析する際にエラーがある場合に返されます + \return RNG_FAILURE_E rngを使用して乱数を生成する際にエラーがある場合に返されます + \return MP_INIT_E 公開鍵を生成する際に数学ライブラリでエラーがある場合に返される可能性があります + \return MP_READ_E 公開鍵を生成する際に数学ライブラリでエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E 公開鍵を生成する際に数学ライブラリでエラーがある場合に返される可能性があります + \return MP_TO_E 公開鍵を生成する際に数学ライブラリでエラーがある場合に返される可能性があります + + \param key 鍵ペアを生成するDhKey構造体へのポインタ + \param rng 鍵を生成するために使用する初期化された乱数生成器(rng)へのポインタ + \param priv 秘密鍵を格納するバッファへのポインタ + \param privSz privに書き込まれた秘密鍵のサイズを格納します + \param pub 公開鍵を格納するバッファへのポインタ + \param pubSz pubに書き込まれた秘密鍵のサイズを格納します + _Example_ \code DhKey key; @@ -49,12 +66,13 @@ void wc_FreeDhKey(DhKey* key); byte pub[256]; word32 privSz, pubSz; - wc_InitDhKey(&key); // initialize key - // Set DH parameters using wc_DhSetKey or wc_DhKeyDecode + wc_InitDhKey(&key); // 鍵を初期化 + // wc_DhSetKeyまたはwc_DhKeyDecodeを使用してDHパラメータを設定 WC_RNG rng; - wc_InitRng(&rng); // initialize rng + wc_InitRng(&rng); // rngを初期化 ret = wc_DhGenerateKeyPair(&key, &rng, priv, &privSz, pub, &pubSz); \endcode + \sa wc_InitDhKey \sa wc_DhSetKey \sa wc_DhKeyDecode @@ -64,18 +82,23 @@ int wc_DhGenerateKeyPair(DhKey* key, WC_RNG* rng, byte* priv, /*! \ingroup Diffie-Hellman - \brief この関数は、ローカル秘密鍵と受信した公開鍵に基づいて合意された秘密鍵を生成します。交換の両側で完了した場合、この関数は対称通信のための秘密鍵の合意を生成します。共有秘密鍵の生成に成功すると、書かれた秘密鍵のサイズは仲間に保存されます。 - \return 0 合意された秘密鍵の生成に成功しました - \return MP_INIT_E 共有秘密鍵の生成中にエラーが発生した場合に返却される可能性があります - \return MP_READ_E 共有秘密鍵の生成中にエラーが発生した場合に返却される可能性があります - \return MP_EXPTMOD_E 共有秘密鍵の生成中にエラーが発生した場合に返却される可能性があります - \return MP_TO_E 共有秘密鍵の生成中にエラーが発生した場合に返却される可能性があります - \param key 共有キーを計算するために使用するDHKEY構造体へのポインタ - \param agree 秘密キーを保存するバッファへのポインタ - \param agreeSz 成功した後に秘密鍵のサイズを保持します - \param priv ローカル秘密鍵を含むバッファへのポインタ - \param privSz 地元の秘密鍵のサイズ - \param otherPub 受信した公開鍵を含むバッファへのポインタ + + \brief この関数は、ローカル秘密鍵と受信した公開鍵に基づいて合意された秘密鍵を生成します。交換の両側で完了すると、この関数は対称通信用の合意された秘密鍵を生成します。共有秘密鍵の生成に成功すると、書き込まれた秘密鍵のサイズがagreeSzに格納されます。 + + \return 0 合意された秘密鍵の生成に成功した場合に返されます + \return MP_INIT_E 共有秘密鍵の生成中にエラーがある場合に返される可能性があります + \return MP_READ_E 共有秘密鍵の生成中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E 共有秘密鍵の生成中にエラーがある場合に返される可能性があります + \return MP_TO_E 共有秘密鍵の生成中にエラーがある場合に返される可能性があります + + \param key 共有鍵を計算するために使用するDhKey構造体へのポインタ + \param agree 秘密鍵を格納するバッファへのポインタ + \param agreeSz 生成成功後に秘密鍵のサイズを保持します + \param priv ローカル秘密鍵を含むバッファへのポインタ + \param privSz ローカル秘密鍵のサイズ + \param otherPub 受信した公開鍵を含むバッファへのポインタ + \param pubSz 受信した公開鍵のサイズ + _Example_ \code DhKey key; @@ -84,15 +107,16 @@ int wc_DhGenerateKeyPair(DhKey* key, WC_RNG* rng, byte* priv, byte agree[256]; word32 agreeSz; - // initialize key, set key prime and base - // wc_DhGenerateKeyPair -- store private key in priv - byte pub[] = { // initialized with the received public key }; + // 鍵を初期化、鍵素数とベースを設定 + // wc_DhGenerateKeyPair -- 秘密鍵をprivに格納 + byte pub[] = { // 受信した公開鍵で初期化 }; ret = wc_DhAgree(&key, agree, &agreeSz, priv, sizeof(priv), pub, sizeof(pub)); if ( ret != 0 ) { - // error generating shared key + // 共有鍵生成エラー } \endcode + \sa wc_DhGenerateKeyPair */ int wc_DhAgree(DhKey* key, byte* agree, word32* agreeSz, @@ -101,27 +125,33 @@ int wc_DhAgree(DhKey* key, byte* agree, word32* agreeSz, /*! \ingroup Diffie-Hellman - \brief この機能は、DERフォーマットのキーを含む与えられた入力バッファからDiffie-Hellmanキーをデコードします。結果をDHKEY構造体に格納します。 - \return 0 入力キーの復号に成功したときに返されます - \return ASN_PARSE_E 入力のシーケンスを解析したエラーがある場合に返されます - \return ASN_DH_KEY_E 解析された入力から秘密鍵パラメータを読み取るエラーがある場合 - \param input derフォーマットされたdiffie-hellmanキーを含むバッファへのポインタ - \param inOutIdx キーをデコードしている間に解析されたインデックスを保存する整数へのポインタ - \param key 入力キーで初期化するためのDHKEY構造体へのポインタ + + \brief この関数は、DERフォーマットの鍵を含む指定された入力バッファからDiffie-Hellman鍵をデコードします。結果をDhKey構造体に格納します。 + + \return 0 入力鍵のデコードに成功した場合に返されます + \return ASN_PARSE_E 入力のシーケンスを解析する際にエラーがある場合に返されます + \return ASN_DH_KEY_E 解析された入力から秘密鍵パラメータを読み取る際にエラーがある場合に返されます + + \param input DERフォーマットのDiffie-Hellman鍵を含むバッファへのポインタ + \param inOutIdx 鍵をデコードする際に解析されたインデックスを格納する整数へのポインタ + \param key 入力鍵で初期化するDhKey構造体へのポインタ + \param inSz 入力バッファの長さ。読み取り可能な最大長を示します + _Example_ \code DhKey key; word32 idx = 0; byte keyBuff[1024]; - // initialize with DER formatted key + // DERフォーマットの鍵で初期化 wc_DhKeyInit(&key); ret = wc_DhKeyDecode(keyBuff, &idx, &key, sizeof(keyBuff)); if ( ret != 0 ) { - // error decoding key + // 鍵のデコードエラー } \endcode + \sa wc_DhSetKey */ int wc_DhKeyDecode(const byte* input, word32* inOutIdx, DhKey* key, @@ -129,28 +159,34 @@ int wc_DhKeyDecode(const byte* input, word32* inOutIdx, DhKey* key, /*! \ingroup Diffie-Hellman - \brief この関数は、入力秘密鍵パラメータを使用してDHKEY構造体のキーを設定します。WC_DHKEYDECODEとは異なり、この関数は入力キーがDERフォーマットでフォーマットされ、代わりにPARSED入力パラメータP(Prime)とG(Base)を受け入れる必要はありません。 - \return 0 鍵の設定に成功しました - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLに評価された場合に返されます。 - \return MP_INIT_E ストレージのキーパラメータの初期化中にエラーがある場合に返されます。 - \return ASN_DH_KEY_E DHキーパラメータPおよびGでエラーの読み取りがある場合は返されます - \param key キーを設定するDHKEY構造体へのポインタ - \param p キーで使用するためのプライムを含むバッファへのポインタ - \param pSz 入力プライムの長さ - \param g キーで使用するためのベースを含むバッファへのポインタ + + \brief この関数は、入力秘密鍵パラメータを使用してDhKey構造体の鍵を設定します。wc_DhKeyDecodeとは異なり、この関数は入力鍵がDERフォーマットでフォーマットされている必要はなく、代わりに単純に解析された入力パラメータp(素数)とg(ベース)を受け入れます。 + + \return 0 鍵の設定に成功した場合に返されます + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価される場合に返されます + \return MP_INIT_E 格納用の鍵パラメータを初期化する際にエラーがある場合に返されます + \return ASN_DH_KEY_E DH鍵パラメータpとgを読み取る際にエラーがある場合に返されます + + \param key 鍵を設定するDhKey構造体へのポインタ + \param p 鍵で使用する素数を含むバッファへのポインタ + \param pSz 入力素数の長さ + \param g 鍵で使用するベースを含むバッファへのポインタ + \param gSz 入力ベースの長さ + _Example_ \code DhKey key; - byte p[] = { // initialize with prime }; - byte g[] = { // initialize with base }; + byte p[] = { // 素数で初期化 }; + byte g[] = { // ベースで初期化 }; wc_DhKeyInit(&key); ret = wc_DhSetKey(key, p, sizeof(p), g, sizeof(g)); if ( ret != 0 ) { - // error setting key + // 鍵設定エラー } \endcode + \sa wc_DhKeyDecode */ int wc_DhSetKey(DhKey* key, const byte* p, word32 pSz, const byte* g, @@ -158,18 +194,23 @@ int wc_DhSetKey(DhKey* key, const byte* p, word32 pSz, const byte* g, /*! \ingroup Diffie-Hellman - \brief この関数は、与えられた入力バッファからDiffie-HellmanパラメータP(Prime)とG(ベース)をフォーマットされています。 - \return 0 DHパラメータの抽出に成功しました - \return ASN_PARSE_E DERフォーマットのDH証明書の解析中にエラーが発生した場合に返されます。 - \return BUFFER_E 解析されたパラメータを格納するためにPまたはGに不適切なスペースがある場合 - \param input 解析するDERフォーマットされたDifie-Hellman証明書を含むバッファへのポインタ - \param inSz 入力バッファのサイズ - \param p 解析されたプライムを保存するバッファへのポインタ - \param pInOutSz Pバッファ内の使用可能なサイズを含むWord32オブジェクトへのポインタ。関数呼び出しを完了した後にバッファに書き込まれたバイト数で上書きされます。 - \param g 解析されたベースを保存するバッファへのポインタ + + \brief この関数は、指定された入力バッファからDERフォーマットのDiffie-Hellmanパラメータp(素数)とg(ベース)をロードします。 + + \return 0 DHパラメータの抽出に成功した場合に返されます + \return ASN_PARSE_E DERフォーマットのDH証明書を解析する際にエラーが発生した場合に返されます + \return BUFFER_E pまたはgに解析されたパラメータを格納する十分なスペースがない場合に返されます + + \param input 解析するDERフォーマットのDiffie-Hellman証明書を含むバッファへのポインタ + \param inSz 入力バッファのサイズ + \param p 解析された素数を格納するバッファへのポインタ + \param pInOutSz pバッファで利用可能なサイズを含むword32オブジェクトへのポインタ。関数呼び出しの完了後、バッファに書き込まれたバイト数で上書きされます + \param g 解析されたベースを格納するバッファへのポインタ + \param gInOutSz gバッファで利用可能なサイズを含むword32オブジェクトへのポインタ。関数呼び出しの完了後、バッファに書き込まれたバイト数で上書きされます + _Example_ \code - byte dhCert[] = { initialize with DER formatted certificate }; + byte dhCert[] = { DERフォーマットの証明書で初期化 }; byte p[MAX_DH_SIZE]; byte g[MAX_DH_SIZE]; word32 pSz = MAX_DH_SIZE; @@ -177,9 +218,10 @@ int wc_DhSetKey(DhKey* key, const byte* p, word32 pSz, const byte* g, ret = wc_DhParamsLoad(dhCert, sizeof(dhCert), p, &pSz, g, &gSz); if ( ret != 0 ) { - // error parsing inputs + // 入力の解析エラー } \endcode + \sa wc_DhSetKey \sa wc_DhKeyDecode */ @@ -188,6 +230,9 @@ int wc_DhParamsLoad(const byte* input, word32 inSz, byte* p, /*! \ingroup Diffie-Hellman + + \brief この関数は...を返し、HAVE_FFDHE_2048が定義されている必要があります。 + \sa wc_Dh_ffdhe3072_Get \sa wc_Dh_ffdhe4096_Get \sa wc_Dh_ffdhe6144_Get @@ -197,6 +242,9 @@ const DhParams* wc_Dh_ffdhe2048_Get(void); /*! \ingroup Diffie-Hellman + + \brief この関数は...を返し、HAVE_FFDHE_3072が定義されている必要があります。 + \sa wc_Dh_ffdhe2048_Get \sa wc_Dh_ffdhe4096_Get \sa wc_Dh_ffdhe6144_Get @@ -206,6 +254,9 @@ const DhParams* wc_Dh_ffdhe3072_Get(void); /*! \ingroup Diffie-Hellman + + \brief この関数は...を返し、HAVE_FFDHE_4096が定義されている必要があります。 + \sa wc_Dh_ffdhe2048_Get \sa wc_Dh_ffdhe3072_Get \sa wc_Dh_ffdhe6144_Get @@ -215,6 +266,9 @@ const DhParams* wc_Dh_ffdhe4096_Get(void); /*! \ingroup Diffie-Hellman + + \brief この関数は...を返し、HAVE_FFDHE_6144が定義されている必要があります。 + \sa wc_Dh_ffdhe2048_Get \sa wc_Dh_ffdhe3072_Get \sa wc_Dh_ffdhe4096_Get @@ -224,6 +278,9 @@ const DhParams* wc_Dh_ffdhe6144_Get(void); /*! \ingroup Diffie-Hellman + + \brief この関数は...を返し、HAVE_FFDHE_8192が定義されている必要があります。 + \sa wc_Dh_ffdhe2048_Get \sa wc_Dh_ffdhe3072_Get \sa wc_Dh_ffdhe4096_Get @@ -233,49 +290,61 @@ const DhParams* wc_Dh_ffdhe8192_Get(void); /*! \ingroup Diffie-Hellman + + \brief FFCのSP 800-56Ar3、セクション5.6.2.1.4、メソッド(b)のプロセスに従って、DH鍵のペアワイズ整合性をチェックします。 */ int wc_DhCheckKeyPair(DhKey* key, const byte* pub, word32 pubSz, const byte* priv, word32 privSz); /*! \ingroup Diffie-Hellman + + \brief 無効な数値についてDH秘密鍵をチェックします */ int wc_DhCheckPrivKey(DhKey* key, const byte* priv, word32 pubSz); /*! + \ingroup Diffie-Hellman */ int wc_DhCheckPrivKey_ex(DhKey* key, const byte* priv, word32 pubSz, const byte* prime, word32 primeSz); /*! + \ingroup Diffie-Hellman */ int wc_DhCheckPubKey(DhKey* key, const byte* pub, word32 pubSz); /*! + \ingroup Diffie-Hellman */ int wc_DhCheckPubKey_ex(DhKey* key, const byte* pub, word32 pubSz, const byte* prime, word32 primeSz); /*! + \ingroup Diffie-Hellman */ int wc_DhExportParamsRaw(DhKey* dh, byte* p, word32* pSz, byte* q, word32* qSz, byte* g, word32* gSz); /*! + \ingroup Diffie-Hellman */ int wc_DhGenerateParams(WC_RNG *rng, int modSz, DhKey *dh); /*! + \ingroup Diffie-Hellman */ int wc_DhSetCheckKey(DhKey* key, const byte* p, word32 pSz, const byte* g, word32 gSz, const byte* q, word32 qSz, int trusted, WC_RNG* rng); /*! + \ingroup Diffie-Hellman */ int wc_DhSetKey_ex(DhKey* key, const byte* p, word32 pSz, const byte* g, word32 gSz, const byte* q, word32 qSz); /*! + \ingroup Diffie-Hellman */ -int wc_FreeDhKey(DhKey* key); +int wc_FreeDhKey(DhKey* key); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/doxygen_groups.h b/doc/dox_comments/header_files-ja/doxygen_groups.h index 41c8495a94..4beb05e920 100644 --- a/doc/dox_comments/header_files-ja/doxygen_groups.h +++ b/doc/dox_comments/header_files-ja/doxygen_groups.h @@ -1,244 +1,244 @@ /*! - \defgroup 3DES Algorithms - 3DES - \defgroup AES Algorithms - AES - \defgroup ARC4 Algorithms - ARC4 - \defgroup BLAKE2 Algorithms - BLAKE2 - \defgroup Camellia Algorithms - Camellia - \defgroup ChaCha Algorithms - ChaCha - \defgroup ChaCha20Poly1305 Algorithms - ChaCha20_Poly1305 -  \defgroup CMAC Algorithm - CMAC - \defgroup Crypto Callbacks - CryptoCb - \defgroup Curve25519 Algorithms - Curve25519 - \defgroup Curve448 Algorithms - Curve448 - \defgroup DSA Algorithms - DSA - \defgroup Diffie-Hellman Algorithms - Diffie-Hellman - \defgroup ECC Algorithms - ECC - \defgroup ED25519 Algorithms - ED25519 - \defgroup ED448 Algorithms - ED448 - \defgroup ECCSI_Overview Overview of ECCSI - ECCSI (Elliptic Curve-Based Certificateless Signatures for Identity-Based Encryption) is specified in RFC 6507 (https://tools.ietf.org/html/rfc6507). - - In Identity-Based cryptography, there is a Key Management Service that generates keys based on an identity for a client. - The private key (SSK) and public key (PVT) are delivered to the signer and the public key (PVT) only delivered to the verifier on request.\n\n - wolfCrypt offers the ability to: - -# Create KMS keys, - -# Generate signing key pairs, - -# Validate signing key pairs, - -# Sign messages and - -# Verify messages. + \defgroup 3DES アルゴリズム - 3DES + \defgroup AES アルゴリズム - AES + \defgroup ARC4 アルゴリズム - ARC4 + \defgroup BLAKE2 アルゴリズム - BLAKE2 + \defgroup Camellia アルゴリズム - Camellia + \defgroup ChaCha アルゴリズム - ChaCha + \defgroup ChaCha20Poly1305 アルゴリズム - ChaCha20_Poly1305 + \defgroup CMAC アルゴリズム - CMAC + \defgroup Crypto Callbacksコールバック - CryptoCb + \defgroup Curve25519 アルゴリズム - Curve25519 + \defgroup Curve448 アルゴリズム - Curve448 + \defgroup DSA アルゴリズム - DSA + \defgroup Diffie-Hellman アルゴリズム - Diffie-Hellman + \defgroup ECC アルゴリズム - ECC + \defgroup ED25519 アルゴリズム - ED25519 + \defgroup ED448 アルゴリズム - ED448 + \defgroup ECCSI_Overview ECC​​SIの概要 + ECCSI(楕円曲線ベースの証明書レス署名によるアイデンティティベース暗号化)は、RFC 6507(https://tools.ietf.org/html/rfc6507)で規定されています。 + + アイデンティティベース暗号化では、クライアントのアイデンティティに基づいてキーを生成する鍵管理サービスがあります。 + 秘密鍵(SSK)と公開鍵(PVT)は署名者に配信され、公開鍵(PVT)のみがリクエストに応じて検証者に配信されます。\n\n + wolfCryptは次の機能を提供します: + -# KMS鍵の作成 + -# 署名鍵ペアの生成 + -# 署名鍵ペアの検証 + -# メッセージの署名 + -# メッセージの検証 KMS: - -# Initialize ECCSI Key: wc_InitEccsiKey() - -# Make and save or load ECCSI Key: - -# wc_MakeEccsiKey(), wc_ExportEccsiKey(), wc_ExportEccsiPublicKey() or + -# ECCSI鍵の初期化: wc_InitEccsiKey() + -# ECCSI鍵の作成と保存またはロード: + -# wc_MakeEccsiKey(), wc_ExportEccsiKey(), wc_ExportEccsiPublicKey() または -# wc_ImportEccsiKey() - -# Wait for request: - -# Receive signing ID from client. - -# Generate signing key pair from ID: wc_MakeEccsiPair() - -# Encode result: - -# For signer, signing key pair: wc_EncodeEccsiPair() - -# Send KPAK and result - -# Free ECCSI Key: wc_FreeEccsiKey() - - Client, signer: - -# Initialize ECCSI Key: wc_InitEccsiKey() - -# (When signing pair not cached) Request KPAK and signing pair from KMS - -# Send signing ID to KMS. - -# Receive signing key pair from KMS. - -# Load KMS Public Key: wc_ImportEccsiPublicKey() - -# Decode signing key pair: wc_DecodeEccsiPair() - -# Validate the key pair: wc_ValidateEccsiPair() - -# (If not done above) Load KMS Public Key: wc_ImportEccsiPublicKey() - -# (If not cached) Calculate hash of the ID and PVT: wc_HashEccsiId() - -# For each message: - -# Set Hash of Identity: wc_SetEccsiHash() - -# Sign message: wc_SignEccsiHash() - -# Send hash ID, message and signature to peer. - -# Free ECCSI Key: wc_FreeEccsiKey() - - Client, verifier: - -# Receive hash ID, message and signature from signer. - -# Request KPAK (if not cached) and PVT (if not cached) for hash ID from KMS. - -# Receive KPAK (if not cached) and PVT (if not cached) for hash ID from KMS. - -# Initialize ECCSI Key: wc_InitEccsiKey() - -# Load KMS Public Key: wc_ImportEccsiPublicKey() - -# Decode PVT: wc_DecodeEccsiPvtFromSig() - -# Calculate hash of the ID and PVT: wc_HashEccsiId() - -# Set ECCSI key pair: wc_SetEccsiPair() - -# Verify signature of message: wc_VerifyEccsiHash() - -# Free ECCSI Key: wc_FreeEccsiKey() - - \defgroup ECCSI_Setup Setup ECCSI Key - Operations for establinshing an ECCSI key. - - Initialize ECCSI Key before use (wc_InitEccsiKey()).\n - Initialize ECCSI Key before use (wc_InitEccsiKey_ex()) for use with a curve other than P256.\n - Either make a new key (wc_MakeEccsiKey()), import an existing key (wc_ImportEccsiKey()) or import existing private key (wc_ImportEccsiPrivateKey()) and public key (wc_ImportEccsiPublicKey()).\n - Export the key (wc_ExportEccsiKey()) after making a new key for future use.\n - Export the private key (wc_ExportEccsiPrivateKey()) after making a new key for future use.\n - Export the public key (wc_ExportEccsiPublicKey()) from KMS to pass to client.\n - Import the public key (wc_ImportEccsiPublicKey()) into client.\n - Free the ECCSI Key (wc_FreeEccsiKey()) when finished. - - \defgroup ECCSI_Operations Operations for Signing and Verifying with ECCSI Key - These operations are for signing and verifying with ECCSI keys. - - Make an ECCSI key pair (wc_MakeEccsiPair()) with the signer's ID for use when signing.\n - Validate the ECCSI key pair (wc_ValidateEccsiPair()) with the signer's ID.\n - Validate the ECCSI Public Validation Token (PVT) (wc_ValidateEccsiPvt()).\n - Encode the ECCSI key pair (wc_EncodeEccsiPair()) for transfer to client.\n - Encode the ECCSI SSK (wc_EncodeEccsiSsk()) for transfer to client.\n - Encode the ECCSI PVT (wc_EncodeEccsiPvt()) for transfer to verifier.\n - Decode the ECCSI key pair (wc_DecodeEccsiPair()) on client for signing.\n - Decode the ECCSI SSK (wc_DecodeEccsiSsk()) on client for signing.\n - Decode the ECCSI PVT (wc_DecodeEccsiPvt()) on client for signing.\n - Decode the ECCSI PVT from the signature (wc_DecodeEccsiPvtFromSig()) on client for verifying.\n - Calculate hash of the ID (wc_HashEccsiId()) for signing/verifying using ID and Public Validation Token (PVT).\n - Sign (wc_SignEccsiHash()) a message with the hash of the ID and the Secret Signing Key (SSK) and Public Validation Token (PVT).\n - Verify (wc_VerifyEccsiHash()) a message with the hash of the signer's ID. - - \defgroup SAKKE_Overview Overview of SAKKE Key - SAKKE (Sakai-Kasahara Key Encryption) is specified in RFC 6508 (https://tools.ietf.org/html/rfc6508). - - SAKKE is used to transfer a secret to a peer using Identity Based cryptography.\n - The Key Management Service (KMS) is responsible for issuing Receiver Secret %Keys (RSKs). - Data up to (2^hashlen)^hashlen bytes of data can be transferred.\n - The sender must know the identity of the receiver and the KMS Public Key.\n - The receiver must have obtained a Receiver Secret Key (RSK) for the identity from a KMS in order to derive the secret. + -# リクエストを待機: + -# クライアントから署名IDを受信 + -# IDから署名鍵ペアを生成: wc_MakeEccsiPair() + -# 結果をエンコード: + -# 署名者用に署名鍵ペア: wc_EncodeEccsiPair() + -# KPAKと結果を送信 + -# ECCSI鍵の解放: wc_FreeEccsiKey() + + クライアント、署名者: + -# ECCSI鍵の初期化: wc_InitEccsiKey() + -# (署名ペアがキャッシュされていない場合)KMSにKPAKと署名ペアをリクエスト + -# KMSに署名IDを送信 + -# KMSから署名鍵ペアを受信 + -# KMS公開鍵をロード: wc_ImportEccsiPublicKey() + -# 署名鍵ペアをデコード: wc_DecodeEccsiPair() + -# 鍵ペアを検証: wc_ValidateEccsiPair() + -# (上記で実行していない場合)KMS公開鍵をロード: wc_ImportEccsiPublicKey() + -# (キャッシュされていない場合)IDとPVTのハッシュを計算: wc_HashEccsiId() + -# 各メッセージに対して: + -# アイデンティティのハッシュを設定: wc_SetEccsiHash() + -# メッセージに署名: wc_SignEccsiHash() + -# ハッシュID、メッセージ、署名をピアに送信 + -# ECCSI鍵の解放: wc_FreeEccsiKey() + + クライアント、検証者: + -# 署名者からハッシュID、メッセージ、署名を受信 + -# KMSにKPAK(キャッシュされていない場合)とハッシュIDのPVT(キャッシュされていない場合)をリクエスト + -# KMSからKPAK(キャッシュされていない場合)とハッシュIDのPVT(キャッシュされていない場合)を受信 + -# ECCSI鍵の初期化: wc_InitEccsiKey() + -# KMS公開鍵をロード: wc_ImportEccsiPublicKey() + -# PVTをデコード: wc_DecodeEccsiPvtFromSig() + -# IDとPVTのハッシュを計算: wc_HashEccsiId() + -# ECCSI鍵ペアを設定: wc_SetEccsiPair() + -# メッセージの署名を検証: wc_VerifyEccsiHash() + -# ECCSI鍵の解放: wc_FreeEccsiKey() + + \defgroup ECCSI_Setup ECCSI鍵のセットアップ + ECCSI鍵を確立するための操作。 + + 使用前にECCSI鍵を初期化(wc_InitEccsiKey())。\n + P256以外の曲線を使用する場合は、使用前にECCSI鍵を初期化(wc_InitEccsiKey_ex())。\n + 新しい鍵を作成(wc_MakeEccsiKey())、既存の鍵をインポート(wc_ImportEccsiKey())、または既存の秘密鍵(wc_ImportEccsiPrivateKey())と公開鍵(wc_ImportEccsiPublicKey())をインポート。\n + 新しい鍵を作成した後、将来の使用のために鍵をエクスポート(wc_ExportEccsiKey())。\n + 新しい鍵を作成した後、将来の使用のために秘密鍵をエクスポート(wc_ExportEccsiPrivateKey())。\n + KMSからクライアントに渡すために公開鍵をエクスポート(wc_ExportEccsiPublicKey())。\n + クライアントに公開鍵をインポート(wc_ImportEccsiPublicKey())。\n + 終了時にECCSI鍵を解放(wc_FreeEccsiKey())。 + + \defgroup ECCSI_Operations ECCSI鍵での署名と検証のための操作 + これらは、ECCSI鍵を使用した署名と検証のための操作です。 + + 署名時に使用する署名者のIDでECCSI鍵ペアを作成(wc_MakeEccsiPair())。\n + 署名者のIDでECCSI鍵ペアを検証(wc_ValidateEccsiPair())。\n + ECCSI公開検証トークン(PVT)を検証(wc_ValidateEccsiPvt())。\n + クライアントへの転送のためにECCSI鍵ペアをエンコード(wc_EncodeEccsiPair())。\n + クライアントへの転送のためにECCSI SSKをエンコード(wc_EncodeEccsiSsk())。\n + 検証者への転送のためにECCSI PVTをエンコード(wc_EncodeEccsiPvt())。\n + 署名のためにクライアントでECCSI鍵ペアをデコード(wc_DecodeEccsiPair())。\n + 署名のためにクライアントでECCSI SSKをデコード(wc_DecodeEccsiSsk())。\n + 署名のためにクライアントでECCSI PVTをデコード(wc_DecodeEccsiPvt())。\n + 検証のためにクライアントで署名からECCSI PVTをデコード(wc_DecodeEccsiPvtFromSig())。\n + IDと公開検証トークン(PVT)を使用した署名/検証のためにIDのハッシュを計算(wc_HashEccsiId())。\n + IDのハッシュと秘密署名鍵(SSK)および公開検証トークン(PVT)でメッセージに署名(wc_SignEccsiHash())。\n + 署名者のIDのハッシュでメッセージを検証(wc_VerifyEccsiHash())。 + + \defgroup SAKKE_Overview SAKKE鍵の概要 + SAKKE(酒井-笠原鍵暗号化)は、RFC 6508(https://tools.ietf.org/html/rfc6508)で規定されています。 + + SAKKEは、アイデンティティベース暗号化を使用してピアに秘密を転送するために使用されます。\n + 鍵管理サービス(KMS)は、受信者秘密%鍵(RSK)の発行を担当します。 + 最大(2^hashlen)^hashlenバイトのデータを転送できます。\n + 送信者は受信者のアイデンティティとKMS公開鍵を知っている必要があります。\n + 受信者は、秘密を導出するために、KMSからアイデンティティの受信者秘密鍵(RSK)を取得している必要があります。 KMS: - -# Initialize SAKKE Key: wc_InitSakkeKey() - -# Make and save or load SAKKE Key: - -# wc_MakeSakkeKey(), wc_ExportSakkeKey(), wc_ExportSakkePublicKey() or + -# SAKKE鍵の初期化: wc_InitSakkeKey() + -# SAKKE鍵の作成と保存またはロード: + -# wc_MakeSakkeKey(), wc_ExportSakkeKey(), wc_ExportSakkePublicKey() または -# wc_ImportSakkeKey() - -# Wait for request: - -# Make an RSK base on ID for the client: wc_MakeSakkeRsk() - -# Encode RSK for transfer to client: wc_EncodeSakkeRsk() - -# Free SAKKE Key: wc_FreeSakkeKey() - - Key Exchange, Peer A: - -# Initialize SAKKE Key: wc_InitSakkeKey() - -# Load KMS Public Key: wc_ImportSakkePublicKey() - -# Generate a random SSV: wc_GenerateSakkeSSV() - -# Set the identity of Peer B: wc_SetSakkeIdentity() - -# Make an encapsulated SSV and auth data: wc_MakeSakkeEncapsulatedSSV() - -# Send encapsulated data to Peer B - -# Free SAKKE Key: wc_FreeSakkeKey() - - Key Exchange, Peer B: - -# Receive encapsulated data. - -# Initialize SAKKE Key: wc_InitSakkeKey() - -# Load KMS Public Key: wc_ImportSakkePublicKey() - -# Decode RSK transferred from KMS or stored locally: wc_DecodeSakkeRsk() - -# [Optional] Validate RSK before first use: wc_ValidateSakkeRsk() - -# Set the identity: wc_SetSakkeIdentity() - -# Set the RSK and, optionally precomputation table: wc_SetSakkeRsk() - -# Derive SSV with auth data: wc_DeriveSakkeSSV() - -# Free SAKKE Key: wc_FreeSakkeKey() - - Transfer secret, Peer A: - -# Initialize SAKKE Key: wc_InitSakkeKey() - -# Load KMS Public Key: wc_ImportSakkePublicKey() - -# Set the identity of Peer B: wc_SetSakkeIdentity() - -# Make an encapsulation of the SSV and auth data: wc_MakeSakkeEncapsulatedSSV() - -# Send encapsulated data to Peer B - -# Free SAKKE Key: wc_FreeSakkeKey() - - Transfer secret, Peer B: - -# Initialize SAKKE Key: wc_InitSakkeKey() - -# Load KMS Public Key: wc_ImportSakkePublicKey() - -# Decode RSK transferred from KMS or stored locally: wc_DecodeSakkeRsk() - -# [Optional] Validate RSK before first use: wc_ValidateSakkeRsk() - -# Receive encapsulated data. - -# Set the identity: wc_SetSakkeIdentity() - -# Set the RSK and, optionally precomputation table: wc_SetSakkeRsk() - -# Derive SSV and auth data: wc_DeriveSakkeSSV() - -# Free SAKKE Key: wc_FreeSakkeKey() - - \defgroup SAKKE_Setup Setup SAKKE Key - Operations for establishing a SAKKE key. - - Initialization SAKKE Key before use (wc_InitSakkeKey() or wc_InitSakkeKey_ex()).\n - Either make a new key (wc_MakeSakkeKey()) or import an existing key (wc_ImportSakkeKey()).\n - Export the key (wc_ExportSakkeKey()) after making a new key for future use.\n - If only the private part of the KMS SAKKE Key is available, make the public key (wc_MakeSakkePublicKey()).\n - Export the private key (wc_ExportSakkePrivateKey()) from KMS from storage.\n - Import the private key (wc_ImportSakkePrivateKey()) into KMS from storage.\n - Export the public key (wc_ExportSakkePublicKey()) from KMS to pass to client.\n - Import the public key (wc_ImportSakkePublicKey()) into client.\n - Set the identity to use (wc_SetSakkeIdentity()) into client.\n - Free the SAKKE Key (wc_FreeSakkeKey()) when finished. - - \defgroup SAKKE_RSK Operations on/with SAKKE RSK - These operations make, validate, encode and decode a Receiver Secret Key (RSK). - - An RSK is required to derive an SSV (see wc_DeriveSakkeSSV()).\n - On the KMS, make an RSK (wc_MakeSakkeRsk()) from the client's ID.\n - On the client, validate the RSK (wc_ValidateSakkeRsk()) with the ID.\n - Encode the RSK (wc_EncodeSakkeRsk()) to pass to client or for storage.\n - Decode the RSK (wc_DecodeSakkeRsk()) on the client when needed.\n - Import the RSK (wc_ImportSakkeRsk()) on the client when needed.\n - Set the RSK and, optionally, a pre-computation table (wc_SetSakkeRsk()) on the client when needed. - - \defgroup SAKKE_Operations Operations using SAKKE Key - These operations transfer a Shared Secret Value (SSV) from one client to another. The SSV may be randomly generated. - - Calculate the size of the authentication data (wc_GetSakkeAuthSize()) to determine where the SSV starts in a buffer.\n - Make the intermediate point I (wc_MakeSakkePointI()) to speed making an encapsulated and deriving SSV.\n - Get intermediate point I (wc_GetSakkePointI()) for storage.\n - Set intermediate point I (wc_SetSakkePointI()) from storage.\n - Generate a pre-computation table for intermediate point I (wc_GenerateSakkePointITable()) to further enhance performance. Store as necessary.\n - Set the pre-computation table for intermediate point I (wc_SetSakkePointITable()) to further enhance performance.\n - Clear the pre-computation table for intermediate point I (wc_ClearSakkePointITable()) to remove reference to external table pointer.\n - Make an encapsulated SSV (wc_MakeSakkeEncapsulatedSSV()) to share with another client. Data in SSV is modified.\n - Generate a random SSV (wc_GenerateSakkeSSV()) for key exchange.\n - Derive the SSV, (wc_DeriveSakkeSSV()) on the recipient from the encapsulated SSV. - - \defgroup HMAC Algorithms - HMAC - \defgroup MD2 Algorithms - MD2 - \defgroup MD4 Algorithms - MD4 - \defgroup MD5 Algorithms - MD5 - \defgroup PKCS7 Algorithms - PKCS7 - \defgroup PKCS11 Algorithms - PKCS11 - \defgroup Password Algorithms - Password Based - \defgroup Poly1305 Algorithms - Poly1305 - \defgroup RIPEMD Algorithms - RIPEMD - \defgroup RSA Algorithms - RSA - \defgroup SHA Algorithms - SHA 128/224/256/384/512 - \defgroup SipHash Algorithm - SipHash - \defgroup SRP Algorithms - SRP + -# リクエストを待機: + -# クライアントのIDに基づいてRSKを作成: wc_MakeSakkeRsk() + -# クライアントへの転送のためにRSKをエンコード: wc_EncodeSakkeRsk() + -# SAKKE鍵の解放: wc_FreeSakkeKey() + + 鍵交換、ピアA: + -# SAKKE鍵の初期化: wc_InitSakkeKey() + -# KMS公開鍵をロード: wc_ImportSakkePublicKey() + -# ランダムなSSVを生成: wc_GenerateSakkeSSV() + -# ピアBのアイデンティティを設定: wc_SetSakkeIdentity() + -# カプセル化されたSSVと認証データを作成: wc_MakeSakkeEncapsulatedSSV() + -# カプセル化されたデータをピアBに送信 + -# SAKKE鍵の解放: wc_FreeSakkeKey() + + 鍵交換、ピアB: + -# カプセル化されたデータを受信 + -# SAKKE鍵の初期化: wc_InitSakkeKey() + -# KMS公開鍵をロード: wc_ImportSakkePublicKey() + -# KMSから転送されたまたはローカルに保存されたRSKをデコード: wc_DecodeSakkeRsk() + -# [オプション]最初の使用前にRSKを検証: wc_ValidateSakkeRsk() + -# アイデンティティを設定: wc_SetSakkeIdentity() + -# RSKと、オプションで事前計算テーブルを設定: wc_SetSakkeRsk() + -# 認証データでSSVを導出: wc_DeriveSakkeSSV() + -# SAKKE鍵の解放: wc_FreeSakkeKey() + + 秘密の転送、ピアA: + -# SAKKE鍵の初期化: wc_InitSakkeKey() + -# KMS公開鍵をロード: wc_ImportSakkePublicKey() + -# ピアBのアイデンティティを設定: wc_SetSakkeIdentity() + -# SSVと認証データのカプセル化を作成: wc_MakeSakkeEncapsulatedSSV() + -# カプセル化されたデータをピアBに送信 + -# SAKKE鍵の解放: wc_FreeSakkeKey() + + 秘密の転送、ピアB: + -# SAKKE鍵の初期化: wc_InitSakkeKey() + -# KMS公開鍵をロード: wc_ImportSakkePublicKey() + -# KMSから転送されたまたはローカルに保存されたRSKをデコード: wc_DecodeSakkeRsk() + -# [オプション]最初の使用前にRSKを検証: wc_ValidateSakkeRsk() + -# カプセル化されたデータを受信 + -# アイデンティティを設定: wc_SetSakkeIdentity() + -# RSKと、オプションで事前計算テーブルを設定: wc_SetSakkeRsk() + -# SSVと認証データを導出: wc_DeriveSakkeSSV() + -# SAKKE鍵の解放: wc_FreeSakkeKey() + + \defgroup SAKKE_Setup SAKKE鍵のセットアップ + SAKKE鍵を確立するための操作。 + + 使用前にSAKKE鍵を初期化(wc_InitSakkeKey()またはwc_InitSakkeKey_ex())。\n + 新しい鍵を作成(wc_MakeSakkeKey())または既存の鍵をインポート(wc_ImportSakkeKey())。\n + 新しい鍵を作成した後、将来の使用のために鍵をエクスポート(wc_ExportSakkeKey())。\n + KMS SAKKE鍵の秘密部分のみが利用可能な場合、公開鍵を作成(wc_MakeSakkePublicKey())。\n + ストレージからKMSから秘密鍵をエクスポート(wc_ExportSakkePrivateKey())。\n + ストレージからKMSに秘密鍵をインポート(wc_ImportSakkePrivateKey())。\n + KMSからクライアントに渡すために公開鍵をエクスポート(wc_ExportSakkePublicKey())。\n + クライアントに公開鍵をインポート(wc_ImportSakkePublicKey())。\n + クライアントに使用するアイデンティティを設定(wc_SetSakkeIdentity())。\n + 終了時にSAKKE鍵を解放(wc_FreeSakkeKey())。 + + \defgroup SAKKE_RSK SAKKE RSKに関する/を使用した操作 + これらの操作は、受信者秘密鍵(RSK)を作成、検証、エンコード、デコードします。 + + RSKは、SSVを導出するために必要です(wc_DeriveSakkeSSV()を参照)。\n + KMSで、クライアントのIDからRSKを作成(wc_MakeSakkeRsk())。\n + クライアントで、IDでRSKを検証(wc_ValidateSakkeRsk())。\n + クライアントへの転送またはストレージのためにRSKをエンコード(wc_EncodeSakkeRsk())。\n + 必要に応じてクライアントでRSKをデコード(wc_DecodeSakkeRsk())。\n + 必要に応じてクライアントでRSKをインポート(wc_ImportSakkeRsk())。\n + 必要に応じてクライアントでRSKと、オプションで事前計算テーブルを設定(wc_SetSakkeRsk())。 + + \defgroup SAKKE_Operations SAKKE鍵を使用した操作 + これらの操作は、共有秘密値(SSV)を1つのクライアントから別のクライアントに転送します。SSVはランダムに生成できます。 + + 認証データのサイズを計算(wc_GetSakkeAuthSize())して、バッファ内のSSVの開始位置を決定。\n + 中間点Iを作成(wc_MakeSakkePointI())して、カプセル化の作成とSSVの導出を高速化。\n + ストレージのために中間点Iを取得(wc_GetSakkePointI())。\n + ストレージから中間点Iを設定(wc_SetSakkePointI())。\n + 中間点Iの事前計算テーブルを生成(wc_GenerateSakkePointITable())してパフォーマンスをさらに向上。必要に応じて保存。\n + 中間点Iの事前計算テーブルを設定(wc_SetSakkePointITable())してパフォーマンスをさらに向上。\n + 中間点Iの事前計算テーブルをクリア(wc_ClearSakkePointITable())して外部テーブルポインタへの参照を削除。\n + 別のクライアントと共有するためにカプセル化されたSSVを作成(wc_MakeSakkeEncapsulatedSSV())。SSV内のデータが変更されます。\n + 鍵交換のためにランダムなSSVを生成(wc_GenerateSakkeSSV())。\n + カプセル化されたSSVから受信者でSSVを導出(wc_DeriveSakkeSSV())。 + + \defgroup HMAC アルゴリズム - HMAC + \defgroup MD2 アルゴリズム - MD2 + \defgroup MD4 アルゴリズム - MD4 + \defgroup MD5 アルゴリズム - MD5 + \defgroup PKCS7 アルゴリズム - PKCS7 + \defgroup PKCS11 アルゴリズム - PKCS11 + \defgroup Password アルゴリズム - パスワードベース + \defgroup Poly1305 アルゴリズム - Poly1305 + \defgroup RIPEMD アルゴリズム - RIPEMD + \defgroup RSA アルゴリズム - RSA + \defgroup SHA アルゴリズム - SHA 128/224/256/384/512 + \defgroup SipHash アルゴリズム - SipHash + \defgroup SrtpKdf アルゴリズム - SRTP KDF + \defgroup SRP アルゴリズム - SRP \defgroup ASN ASN.1 - \defgroup Base_Encoding Base Encoding - \defgroup CertManager CertManager API - \defgroup Compression Compression - \defgroup Error Error Reporting - \defgroup IoTSafe IoT-Safe Module - IoT-Safe (IoT-SIM Applet For Secure End-2-End Communication) is a technology that leverage the SIM as robust, - scalable and standardized hardware Root of Trust to protect data communication. - - IoT-Safe SSL sessions use the SIM as Hardware Security Module, offloading all the crypto public - key operations and reducing the attack surface by restricting access to certificate and keys - to the SIM. - - IoT-Safe support can be enabled on an existing WOLFSSL_CTX context, using wolfSSL_CTX_iotsafe_enable().\n - Session created within the context can set the parameters for IoT-Safe key and files usage, and enable - the public keys callback, with wolfSSL_iotsafe_on(). - - If compiled in, the module supports IoT-Safe random number generator as source of entropy for wolfCrypt. - - \defgroup PSA Platform Security Architecture (PSA) API - \defgroup Keys Key and Cert Conversion - \defgroup Logging Logging - \defgroup Math Math API - \defgroup Memory Memory Handling - \defgroup Random Random Number Generation - \defgroup Signature Signature API + \defgroup Base_Encoding ベースエンコーディング + \defgroup CertManager 証明書マネージャーAPI + \defgroup Compression 圧縮 + \defgroup Error エラー報告 + \defgroup IoTSafe IoT-Safeモジュール + IoT-Safe(IoT-SIM Applet For Secure End-2-End Communication)は、SIMを堅牢で + スケーラブルかつ標準化されたハードウェアRoot of Trustとして活用し、データ通信を保護する技術です。 + + IoT-Safe SSLセッションは、SIMをハードウェアセキュリティモジュールとして使用し、すべての暗号公開 + 鍵操作をオフロードし、証明書と鍵へのアクセスをSIMに制限することで攻撃対象領域を削減します。 + + IoT-Safeサポートは、wolfSSL_CTX_iotsafe_enable()を使用して既存のWOLFSSL_CTXコンテキストで有効にできます。\n + コンテキスト内で作成されたセッションは、IoT-Safe鍵とファイル使用のパラメータを設定し、 + wolfSSL_iotsafe_on()で公開鍵コールバックを有効にできます。 + + コンパイルされている場合、モジュールはwolfCryptのエントロピーソースとしてIoT-Safe乱数生成器をサポートします。 + + \defgroup PSA プラットフォームセキュリティアーキテクチャ(PSA)API + \defgroup Keys 鍵と証明書の変換 + \defgroup Logging ロギング + \defgroup Math 整数演算API + \defgroup Memory メモリ処理 + \defgroup Random 乱数生成 + \defgroup Signature 署名API \defgroup openSSL OpenSSL API - \defgroup wolfCrypt wolfCrypt Init and Cleanup - \defgroup TLS wolfSSL Initialization/Shutdown - \defgroup CertsKeys wolfSSL Certificates and Keys - \defgroup Setup wolfSSL Context and Session Set Up - \defgroup IO wolfSSL Connection, Session, and I/O - \defgroup Debug wolfSSL Error Handling and Reporting -*/ + \defgroup wolfCrypt wolfCryptの初期化とクリーンアップ + \defgroup TLS wolfSSLの初期化/シャットダウン + \defgroup CertsKeys wolfSSL証明書と鍵 + \defgroup Setup wolfSSLコンテキストとセッションのセットアップ + \defgroup IO wolfSSL接続、セッション、I/O + \defgroup Debug wolfSSLエラー処理と報告 +*/ \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/dsa.h b/doc/dox_comments/header_files-ja/dsa.h index 066a0a2e56..5fb67f8649 100644 --- a/doc/dox_comments/header_files-ja/dsa.h +++ b/doc/dox_comments/header_files-ja/dsa.h @@ -1,66 +1,84 @@ /*! \ingroup DSA - \brief この関数は、デジタル署名アルゴリズム(DSA)を介した認証に使用するためにDSAKEYオブジェクトを初期化します。 - \return 0 成功に戻りました。 - \return BAD_FUNC_ARG NULLキーが渡された場合に返されます。 + + \brief この関数は、デジタル署名アルゴリズム(DSA)による認証に使用するために、DsaKeyオブジェクトを初期化します。 + + \return 0 成功時に返されます。 + \return BAD_FUNC_ARG NULLキーが渡された場合に返されます。 + + \param key 初期化するDsaKey構造体へのポインタ + _Example_ \code DsaKey key; int ret; - ret = wc_InitDsaKey(&key); // initialize DSA key + ret = wc_InitDsaKey(&key); // DSA鍵を初期化 \endcode + \sa wc_FreeDsaKey */ int wc_InitDsaKey(DsaKey* key); /*! \ingroup DSA - \brief この関数は、使用された後にdsakeyオブジェクトを解放します。 - \return none いいえ返します。 + + \brief この関数は、使用後にDsaKeyオブジェクトを解放します。 + + \return none 戻り値なし。 + + \param key 解放するDsaKey構造体へのポインタ + _Example_ \code DsaKey key; - // initialize key, use for authentication + // 鍵を初期化、認証に使用 ... - wc_FreeDsaKey(&key); // free DSA key + wc_FreeDsaKey(&key); // DSA鍵を解放 \endcode + \sa wc_FreeDsaKey */ void wc_FreeDsaKey(DsaKey* key); /*! \ingroup DSA - \brief この機能は入力ダイジェストに署名し、結果を出力バッファーに格納します。 - \return 0 入力ダイジェストに正常に署名したときに返されました - \return MP_INIT_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_READ_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_CMP_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_INVMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_EXPTMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_MOD_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_MUL_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_ADD_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_MULMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_TO_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_MEM DSA署名の処理にエラーがある場合は返される可能性があります。 - \param digest 署名するハッシュへのポインタ - \param out 署名を保存するバッファへのポインタ - \param key 署名を生成するための初期化されたDsakey構造へのポインタ + + \brief この関数は、入力ダイジェストに署名し、結果を出力バッファoutに格納します。 + + \return 0 入力ダイジェストへの署名に成功した場合に返されます + \return MP_INIT_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_READ_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_CMP_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_INVMOD_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_EXPTMOD_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_MOD_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_MUL_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_ADD_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_MULMOD_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_TO_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_MEM DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + + \param digest 署名するハッシュへのポインタ + \param out 署名を格納するバッファへのポインタ + \param key 署名を生成するために使用する初期化されたDsaKey構造体へのポインタ + \param rng 署名生成で使用する初期化されたRNGへのポインタ + _Example_ \code DsaKey key; - // initialize DSA key, load private Key + // DSA鍵を初期化、秘密鍵をロード int ret; WC_RNG rng; wc_InitRng(&rng); - byte hash[] = { // initialize with hash digest }; - byte signature[40]; // signature will be 40 bytes (320 bits) + byte hash[] = { // ハッシュダイジェストで初期化 }; + byte signature[40]; // 署名は40バイト(320ビット)になります ret = wc_DsaSign(hash, signature, &key, &rng); if (ret != 0) { - // error generating DSA signature + // DSA署名生成エラー } \endcode + \sa wc_DsaVerify */ int wc_DsaSign(const byte* digest, byte* out, @@ -68,38 +86,44 @@ int wc_DsaSign(const byte* digest, byte* out, /*! \ingroup DSA - \brief この関数は、秘密鍵を考えると、ダイジェストの署名を検証します。回答パラメータでキーが正しく検証されているかどうか、正常な検証に対応する1、および失敗した検証に対応する0が格納されます。 - \return 0 検証要求の処理に成功したときに返されます。注:これは、署名が検証されていることを意味するわけではなく、関数が成功したというだけです。 - \return MP_INIT_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_READ_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_CMP_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_INVMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_EXPTMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_MOD_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_MUL_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_ADD_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_MULMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_TO_E DSA署名の処理にエラーがある場合は返される可能性があります。 - \return MP_MEM DSA署名の処理にエラーがある場合は返される可能性があります。 - \param digest 署名の主題を含むダイジェストへのポインタ - \param sig 確認する署名を含むバッファへのポインタ - \param key 署名を検証するための初期化されたDsakey構造へのポインタ + + \brief この関数は、秘密鍵を使用してダイジェストの署名を検証します。検証が正しく行われたかどうかをanswerパラメータに格納します。1は検証成功、0は検証失敗に対応します。 + + \return 0 検証リクエストの処理に成功した場合に返されます。注意: これは署名が検証されたことを意味するのではなく、関数が成功したことのみを意味します + \return MP_INIT_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_READ_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_CMP_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_INVMOD_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_EXPTMOD_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_MOD_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_MUL_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_ADD_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_MULMOD_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_TO_E DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + \return MP_MEM DSA署名の処理中にエラーが発生した場合に返される可能性があります。 + + \param digest 署名の対象を含むダイジェストへのポインタ + \param sig 検証する署名を含むバッファへのポインタ + \param key 署名を検証するために使用する初期化されたDsaKey構造体へのポインタ + \param answer 検証が成功したかどうかを格納する整数へのポインタ + _Example_ \code DsaKey key; - // initialize DSA key, load public Key + // DSA鍵を初期化、公開鍵をロード int ret; int verified; - byte hash[] = { // initialize with hash digest }; - byte signature[] = { // initialize with signature to verify }; + byte hash[] = { // ハッシュダイジェストで初期化 }; + byte signature[] = { // 検証する署名で初期化 }; ret = wc_DsaVerify(hash, signature, &key, &verified); if (ret != 0) { - // error processing verify request + // 検証リクエストの処理エラー } else if (answer == 0) { - // invalid signature + // 無効な署名 } \endcode + \sa wc_DsaSign */ int wc_DsaVerify(const byte* digest, const byte* sig, @@ -107,25 +131,31 @@ int wc_DsaVerify(const byte* digest, const byte* sig, /*! \ingroup DSA - \brief この機能は、DSA公開鍵を含むDERフォーマットの証明書バッファを復号し、与えられたDSakey構造体にキーを格納します。また、入力読み取りの長さに応じてINOUTIDXパラメータを設定します。 - \return 0 dsakeyオブジェクトの公開鍵を正常に設定する - \return ASN_PARSE_E 証明書バッファを読みながらエンコーディングにエラーがある場合 - \return ASN_DH_KEY_E DSAパラメータの1つが誤ってフォーマットされている場合に返されます - \param input DERフォーマットDSA公開鍵を含むバッファへのポインタ - \param inOutIdx 証明書の最後のインデックスを保存する整数へのポインタ - \param key 公開鍵を保存するDsakey構造へのポインタ + + \brief この関数は、DSA公開鍵を含むDERフォーマットの証明書バッファをデコードし、与えられたDsaKey構造体に鍵を格納します。また、読み取られた入力の長さに応じてinOutIdxパラメータを設定します。 + + \return 0 DsaKeyオブジェクトの公開鍵の設定に成功した場合に返されます + \return ASN_PARSE_E 証明書バッファの読み取り中にエンコーディングエラーがある場合に返されます + \return ASN_DH_KEY_E DSAパラメータの1つが正しくフォーマットされていない場合に返されます + + \param input DERフォーマットのDSA公開鍵を含むバッファへのポインタ + \param inOutIdx 読み取られた証明書の最終インデックスを格納する整数へのポインタ + \param key 公開鍵を格納するDsaKey構造体へのポインタ + \param inSz 入力バッファのサイズ + _Example_ \code int ret, idx=0; DsaKey key; wc_InitDsaKey(&key); - byte derBuff[] = { // DSA public key}; + byte derBuff[] = { // DSA公開鍵}; ret = wc_DsaPublicKeyDecode(derBuff, &idx, &key, inSz); if (ret != 0) { - // error reading public key + // 公開鍵の読み取りエラー } \endcode + \sa wc_InitDsaKey \sa wc_DsaPrivateKeyDecode */ @@ -134,25 +164,31 @@ int wc_DsaPublicKeyDecode(const byte* input, word32* inOutIdx, /*! \ingroup DSA - \brief この機能は、DSA秘密鍵を含むDERフォーマットの証明書バッファをデコードし、指定されたDSakey構造体にキーを格納します。また、入力読み取りの長さに応じてINOUTIDXパラメータを設定します。 - \return 0 dsakeyオブジェクトの秘密鍵を正常に設定するに返されました - \return ASN_PARSE_E 証明書バッファを読みながらエンコーディングにエラーがある場合 - \return ASN_DH_KEY_E DSAパラメータの1つが誤ってフォーマットされている場合に返されます - \param input DERフォーマットDSA秘密鍵を含むバッファへのポインタ - \param inOutIdx 証明書の最後のインデックスを保存する整数へのポインタ - \param key 秘密鍵を保存するDSakey構造へのポインタ + + \brief この関数は、DSA秘密鍵を含むDERフォーマットの証明書バッファをデコードし、与えられたDsaKey構造体に鍵を格納します。また、読み取られた入力の長さに応じてinOutIdxパラメータを設定します。 + + \return 0 DsaKeyオブジェクトの秘密鍵の設定に成功した場合に返されます + \return ASN_PARSE_E 証明書バッファの読み取り中にエンコーディングエラーがある場合に返されます + \return ASN_DH_KEY_E DSAパラメータの1つが正しくフォーマットされていない場合に返されます + + \param input DERフォーマットのDSA秘密鍵を含むバッファへのポインタ + \param inOutIdx 読み取られた証明書の最終インデックスを格納する整数へのポインタ + \param key 秘密鍵を格納するDsaKey構造体へのポインタ + \param inSz 入力バッファのサイズ + _Example_ \code int ret, idx=0; DsaKey key; wc_InitDsaKey(&key); - byte derBuff[] = { // DSA private key }; + byte derBuff[] = { // DSA秘密鍵 }; ret = wc_DsaPrivateKeyDecode(derBuff, &idx, &key, inSz); if (ret != 0) { - // error reading private key + // 秘密鍵の読み取りエラー } \endcode + \sa wc_InitDsaKey \sa wc_DsaPublicKeyDecode */ @@ -161,18 +197,23 @@ int wc_DsaPrivateKeyDecode(const byte* input, word32* inOutIdx, /*! \ingroup DSA - \brief DSAKEYキーをDERフォーマット、出力への書き込み(Inlen)、書き込まれたバイトを返します。 - \return outLen 成功、書かれたバイト数 - \return BAD_FUNC_ARG キーまたは出力はNULLまたはキー - >タイプがDSA_PRIVATEではありません。 - \return MEMORY_E メモリの割り当て中にエラーが発生しました。 - \param key 変換するdsakey構造へのポインタ。 - \param output 変換キーの出力バッファへのポインタ。 + + \brief DsaKey鍵をDERフォーマットに変換し、output(inLen)に書き込み、書き込まれたバイト数を返します。 + + \return outLen 成功、書き込まれたバイト数 + \return BAD_FUNC_ARG keyまたはoutputがnullまたはkey->typeがDSA_PRIVATEでない場合。 + \return MEMORY_E メモリ割り当てエラー。 + + \param key 変換するDsaKey構造体へのポインタ。 + \param output 変換された鍵用の出力バッファへのポインタ。 + \param inLen 鍵入力の長さ。 + _Example_ \code DsaKey key; WC_RNG rng; int derSz; - int bufferSize = // Sufficient buffer size; + int bufferSize = // 十分なバッファサイズ; byte der[bufferSize]; wc_InitDsaKey(&key); @@ -180,6 +221,7 @@ int wc_DsaPrivateKeyDecode(const byte* input, word32* inOutIdx, wc_MakeDsaKey(&rng, &key); derSz = wc_DsaKeyToDer(&key, der, bufferSize); \endcode + \sa wc_InitDsaKey \sa wc_FreeDsaKey \sa wc_MakeDsaKey @@ -188,12 +230,17 @@ int wc_DsaKeyToDer(DsaKey* key, byte* output, word32 inLen); /*! \ingroup DSA - \brief DSAキーを作成します。 - \return MP_OKAY 成功 - \return BAD_FUNC_ARG RNGまたはDSAのどちらかがnullです。 - \return MEMORY_E バッファにメモリを割り当てることができませんでした。 - \return MP_INIT_E MP_INTの初期化エラー - \param rng WC_RNG構造体へのポインタ。 + + \brief DSA鍵を作成します。 + + \return MP_OKAY 成功 + \return BAD_FUNC_ARG rngまたはdsaがnullの場合。 + \return MEMORY_E バッファ用のメモリを割り当てられませんでした。 + \return MP_INIT_E mp_intの初期化エラー + + \param rng WC_RNG構造体へのポインタ。 + \param dsa DsaKey構造体へのポインタ。 + _Example_ \code WC_RNG rng; @@ -202,9 +249,10 @@ int wc_DsaKeyToDer(DsaKey* key, byte* output, word32 inLen); wc_InitDsa(&dsa); if(wc_MakeDsaKey(&rng, &dsa) != 0) { - // Error creating key + // 鍵作成エラー } \endcode + \sa wc_InitDsaKey \sa wc_FreeDsaKey \sa wc_DsaSign @@ -213,12 +261,17 @@ int wc_MakeDsaKey(WC_RNG *rng, DsaKey *dsa); /*! \ingroup DSA - \brief FIPS 186-4は、modulus_size値の有効な値を定義します(1024,160)(2048,256)(3072,256) - \return 0 成功 - \return BAD_FUNC_ARG RNGまたはDSAはNULLまたはMODULUS_SIZEが無効です。 - \return MEMORY_E メモリを割り当てようとするエラーが発生しました。 - \param rng WolfCrypt RNGへのポインタ。 - \param modulus_size 1024,2048、または3072は有効な値です。 + + \brief FIPS 186-4は、modulus_size値として(1024, 160) (2048, 256) (3072, 256)を有効と定義しています + + \return 0 成功 + \return BAD_FUNC_ARG rngまたはdsaがnullまたはmodulus_sizeが無効な場合。 + \return MEMORY_E メモリ割り当て試行エラー。 + + \param rng wolfCrypt rngへのポインタ。 + \param modulus_size 1024、2048、または3072が有効な値です。 + \param dsa DsaKey構造体へのポインタ。 + _Example_ \code DsaKey key; @@ -227,11 +280,12 @@ int wc_MakeDsaKey(WC_RNG *rng, DsaKey *dsa); wc_InitRng(&rng); if(wc_MakeDsaParameters(&rng, 1024, &genKey) != 0) { - // Handle error + // エラーを処理 } \endcode + \sa wc_MakeDsaKey \sa wc_DsaKeyToDer \sa wc_InitDsaKey */ -int wc_MakeDsaParameters(WC_RNG *rng, int modulus_size, DsaKey *dsa); +int wc_MakeDsaParameters(WC_RNG *rng, int modulus_size, DsaKey *dsa); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/ecc.h b/doc/dox_comments/header_files-ja/ecc.h index 41b8c9ec83..339447283d 100644 --- a/doc/dox_comments/header_files-ja/ecc.h +++ b/doc/dox_comments/header_files-ja/ecc.h @@ -1,31 +1,37 @@ /*! \ingroup ECC - \brief この関数は新しいECC_KEYを生成し、それをキーに格納します。 - \return 0 成功に戻りました。 - \return ECC_BAD_ARG_E RNGまたはキーがNULLに評価された場合に返されます - \return BAD_FUNC_ARG 指定されたキーサイズがサポートされているキーの正しい範囲にない場合に返されます。 - \return MEMORY_E ECCキーの計算中にメモリの割り当てエラーがある場合に返されます。 - \return MP_INIT_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_READ_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_CMP_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_INVMOD_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_EXPTMOD_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_MOD_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_MUL_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_ADD_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_MULMOD_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_TO_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_MEM ECCキーの計算中にエラーが発生した場合に返される可能性があります - \param rng キーを生成するための初期化されたRNGオブジェクトへのポインタ - \param keysize ECC_KEYの希望の長さ + + \brief この関数は新しいecc_keyを生成し、keyに格納します。 + + \return 0 成功時に返されます。 + \return ECC_BAD_ARG_E rngまたはkeyがNULLと評価された場合に返されます + \return BAD_FUNC_ARG 指定されたキーサイズがサポートされているキーの正しい範囲内にない場合に返されます + \return MEMORY_E eccキーの計算中にメモリ割り当てエラーがある場合に返されます + \return MP_INIT_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_READ_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_CMP_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_MOD_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_MUL_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_ADD_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_TO_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_MEM eccキーの計算中にエラーがある場合に返される可能性があります + + \param rng キーの生成に使用する初期化されたRNGオブジェクトへのポインタ + \param keysize ecc_keyの希望する長さ + \param key キーを生成するecc_keyへのポインタ + _Example_ \code ecc_key key; wc_ecc_init(&key); WC_RNG rng; wc_InitRng(&rng); - wc_ecc_make_key(&rng, 32, &key); // initialize 32 byte ecc key + wc_ecc_make_key(&rng, 32, &key); // 32バイトのeccキーを初期化 \endcode + \sa wc_ecc_init \sa wc_ecc_shared_secret */ @@ -34,25 +40,30 @@ int wc_ecc_make_key(WC_RNG* rng, int keysize, ecc_key* key); /*! \ingroup ECC - \brief この関数は新しいECC_KEYを生成し、それをキーに格納します。 - \return 0 成功に戻りました。 - \return ECC_BAD_ARG_E RNGまたはキーがNULLに評価された場合に返されます - \return BAD_FUNC_ARG 指定されたキーサイズがサポートされているキーの正しい範囲にない場合に返されます。 - \return MEMORY_E ECCキーの計算中にメモリの割り当てエラーがある場合に返されます。 - \return MP_INIT_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_READ_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_CMP_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_INVMOD_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_EXPTMOD_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_MOD_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_MUL_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_ADD_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_MULMOD_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_TO_E ECCキーの計算中にエラーが発生した場合に返される可能性があります - \return MP_MEM ECCキーの計算中にエラーが発生した場合に返される可能性があります - \param key 作成したキーを保存するためのポインタ。 - \param keysize CavenIDに基づいて設定されたバイト単位で作成するキーのサイズ - \param rng 鍵作成に使用されるRNG + + \brief この関数は新しいecc_keyを生成し、keyに格納します。 + + \return 0 成功時に返されます。 + \return ECC_BAD_ARG_E rngまたはkeyがNULLと評価された場合に返されます + \return BAD_FUNC_ARG 指定されたキーサイズがサポートされているキーの正しい範囲内にない場合に返されます + \return MEMORY_E eccキーの計算中にメモリ割り当てエラーがある場合に返されます + \return MP_INIT_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_READ_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_CMP_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_MOD_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_MUL_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_ADD_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_TO_E eccキーの計算中にエラーがある場合に返される可能性があります + \return MP_MEM eccキーの計算中にエラーがある場合に返される可能性があります + + \param key 作成されたキーを格納するポインタ。 + \param keysize 作成されるキーのサイズ(バイト単位)、curveIdに基づいて設定 + \param rng キー作成で使用されるRng + \param curve_id キーに使用するカーブ + _Example_ \code ecc_key key; @@ -64,10 +75,11 @@ int wc_ecc_make_key(WC_RNG* rng, int keysize, ecc_key* key); int keySize = wc_ecc_get_curve_size_from_id(curveId); ret = wc_ecc_make_key_ex(&rng, keySize, &key, curveId); if (ret != MP_OKAY) { - // error handling + // エラー処理 } \endcode + \sa wc_ecc_make_key \sa wc_ecc_get_curve_size_from_id */ @@ -76,10 +88,83 @@ int wc_ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key, int curve_id); /*! \ingroup ECC - \brief ECCキーの有効性を有効にします。 - \return MP_OKAY 成功、キーは大丈夫です。 - \return BAD_FUNC_ARG キーがNULLの場合は返します。 - \return ECC_INF_E WC_ECC_POINT_IS_AT_INFINITYが1を返す場合に返します。 + + \brief wc_ecc_make_pubは、既存の秘密成分を持つecc_keyから公開成分を計算します。pubOutが提供されている場合、計算された公開鍵はそこに格納されます。そうでない場合は、提供されたecc_keyの公開成分スロットに格納されます。 + + \return 0 成功時に返されます。 + \return ECC_BAD_ARG_E keyがNULLの場合に返されます + \return BAD_FUNC_ARG 提供されたキーが有効なecc_keyでない場合に返されます。 + \return MEMORY_E 公開鍵の計算中にメモリ割り当てエラーがある場合に返されます + \return MP_INIT_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_READ_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_CMP_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MOD_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MUL_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_ADD_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_TO_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MEM 公開鍵の計算中にエラーがある場合に返される可能性があります + \return ECC_OUT_OF_RANGE_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return ECC_PRIV_KEY_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return ECC_INF_E 公開鍵の計算中にエラーがある場合に返される可能性があります + + \param key 有効な秘密成分を含むecc_keyへのポインタ + \param pubOut 計算された公開鍵を格納するecc_point構造体へのオプションのポインタ + + \sa wc_ecc_make_pub_ex + \sa wc_ecc_make_key +*/ + +int wc_ecc_make_pub(ecc_key* key, ecc_point* pubOut); + +/*! + \ingroup ECC + + \brief wc_ecc_make_pub_exは、既存の秘密成分を持つecc_keyから公開成分を計算します。pubOutが提供されている場合、計算された公開鍵はそこに格納されます。そうでない場合は、提供されたecc_keyの公開成分スロットに格納されます。提供されたrngがnon-NULLの場合、計算で使用される秘密鍵値をブラインドするために使用されます。 + + \return 0 成功時に返されます。 + \return ECC_BAD_ARG_E keyがNULLの場合に返されます + \return BAD_FUNC_ARG 提供されたキーが有効なecc_keyでない場合に返されます。 + \return MEMORY_E 公開鍵の計算中にメモリ割り当てエラーがある場合に返されます + \return MP_INIT_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_READ_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_CMP_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MOD_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MUL_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_ADD_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_TO_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MEM 公開鍵の計算中にエラーがある場合に返される可能性があります + \return ECC_OUT_OF_RANGE_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return ECC_PRIV_KEY_E 公開鍵の計算中にエラーがある場合に返される可能性があります + \return ECC_INF_E 公開鍵の計算中にエラーがある場合に返される可能性があります + + \param key 有効な秘密成分を含むecc_keyへのポインタ + \param pubOut 計算された公開鍵を格納するecc_point構造体へのオプションのポインタ + \param rng 公開鍵の計算で使用されるRng + + \sa wc_ecc_make_pub + \sa wc_ecc_make_key + \sa wc_InitRng +*/ + +int wc_ecc_make_pub_ex(ecc_key* key, ecc_point* pubOut, WC_RNG* rng); + +/*! + \ingroup ECC + + \brief eccキーの有効性に関する健全性チェックを実行します。 + + \return MP_OKAY 成功、キーは正常です。 + \return BAD_FUNC_ARG keyがNULLの場合に返されます。 + \return ECC_INF_E wc_ecc_point_is_at_infinityが1を返す場合に返されます。 + + \param key チェックするキーへのポインタ。 + _Example_ \code ecc_key key; @@ -92,13 +177,14 @@ int wc_ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key, int curve_id); if (check_result == MP_OKAY) { - // key check succeeded + // キーチェック成功 } else { - // key check failed + // キーチェック失敗 } \endcode + \sa wc_ecc_point_is_at_infinity */ @@ -106,13 +192,19 @@ int wc_ecc_check_key(ecc_key* key); /*! \ingroup ECC - \brief この関数は、使用された後にECC_KEYキーを解放します。 + + \brief この関数は、使用後にecc_keyキーを解放します。 + + + \param key 解放するecc_key構造体へのポインタ + _Example_ \code - // initialize key and perform ECC operations + // キーを初期化してECC操作を実行 ... wc_ecc_key_free(&key); \endcode + \sa wc_ecc_key_new \sa wc_ecc_init_ex */ @@ -121,44 +213,50 @@ void wc_ecc_key_free(ecc_key* key); /*! \ingroup ECC - \brief この関数は、ローカル秘密鍵と受信した公開鍵を使用して新しい秘密鍵を生成します。この共有秘密鍵をバッファアウトに格納し、出力バッファに書き込まれたバイト数を保持するためにoutlentenを更新します。 - \return 0 共有秘密鍵の生成に成功したときに返されます - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLに評価された場合に返されます。 - \return ECC_BAD_ARG_E 引数として与えられた秘密鍵の種類がecc_privatekeyではない場合、またはパブリックキータイプ(ECC-> DPによって与えられた)が同等でない場合に返されます。 - \return MEMORY_E 新しいECCポイントを生成するエラーが発生した場合 - \return BUFFER_E 生成された共有秘密鍵が提供されたバッファーに格納するのに長すぎる場合に返されます - \return MP_INIT_E 共有キーの計算中にエラーが発生した場合は返される可能性があります - \return MP_READ_E 共有キーの計算中にエラーが発生した場合は返される可能性があります - \return MP_CMP_E 共有キーの計算中にエラーが発生した場合は返される可能性があります - \return MP_INVMOD_E 共有キーの計算中にエラーが発生した場合は返される可能性があります - \return MP_EXPTMOD_E 共有キーの計算中にエラーが発生した場合は返される可能性があります - \return MP_MOD_E 共有キーの計算中にエラーが発生した場合は返される可能性があります - \return MP_MUL_E 共有キーの計算中にエラーが発生した場合は返される可能性があります - \return MP_ADD_E 共有キーの計算中にエラーが発生した場合は返される可能性があります - \return MP_MULMOD_E 共有キーの計算中にエラーが発生した場合は返される可能性があります - \return MP_TO_E 共有キーの計算中にエラーが発生した場合は返される可能性があります - \return MP_MEM 共有キーの計算中にエラーが発生した場合は返される可能性があります - \param private_key ローカル秘密鍵を含むECC_KEY構造体へのポインタ - \param public_key 受信した公開鍵を含むECC_Key構造体へのポインタ - \param out 生成された共有秘密鍵を保存する出力バッファへのポインタ + + \brief この関数は、ローカル秘密鍵と受信した公開鍵を使用して新しい共有秘密鍵を生成します。この共有秘密鍵をバッファoutに格納し、outlenを更新して出力バッファに書き込まれたバイト数を保持します。 + + \return 0 共有秘密鍵の生成に成功した場合に返されます + \return BAD_FUNC_ARG いずれかの入力パラメータがNULLと評価された場合に返されます + \return ECC_BAD_ARG_E 引数として与えられた秘密鍵private_keyのタイプがECC_PRIVATEKEYでない場合、または公開鍵と秘密鍵のタイプ(ecc->dpで指定)が同等でない場合に返されます + \return MEMORY_E 新しいeccポイントの生成中にエラーがある場合に返されます + \return BUFFER_E 生成された共有秘密鍵が提供されたバッファに格納するには長すぎる場合に返されます + \return MP_INIT_E 共有鍵の計算中にエラーがある場合に返される可能性があります + \return MP_READ_E 共有鍵の計算中にエラーがある場合に返される可能性があります + \return MP_CMP_E 共有鍵の計算中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E 共有鍵の計算中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E 共有鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MOD_E 共有鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MUL_E 共有鍵の計算中にエラーがある場合に返される可能性があります + \return MP_ADD_E 共有鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E 共有鍵の計算中にエラーがある場合に返される可能性があります + \return MP_TO_E 共有鍵の計算中にエラーがある場合に返される可能性があります + \return MP_MEM 共有鍵の計算中にエラーがある場合に返される可能性があります + + \param private_key ローカル秘密鍵を含むecc_key構造体へのポインタ + \param public_key 受信した公開鍵を含むecc_key構造体へのポインタ + \param out 生成された共有秘密鍵を格納する出力バッファへのポインタ + \param outlen 出力バッファの長さを含むword32オブジェクトへのポインタ。共有秘密鍵の生成に成功すると、出力バッファに書き込まれた長さで上書きされます + _Example_ \code ecc_key priv, pub; WC_RNG rng; - byte secret[1024]; // can hold 1024 byte shared secret key + byte secret[1024]; // 1024バイトの共有秘密鍵を保持可能 word32 secretSz = sizeof(secret); int ret; - wc_InitRng(&rng); // initialize rng - wc_ecc_init(&priv); // initialize key - wc_ecc_make_key(&rng, 32, &priv); // make public/private key pair - // receive public key, and initialise into pub + wc_InitRng(&rng); // rngを初期化 + wc_ecc_init(&priv); // キーを初期化 + wc_ecc_make_key(&rng, 32, &priv); // 公開/秘密鍵ペアを作成 + // 公開鍵を受信し、pubに初期化 ret = wc_ecc_shared_secret(&priv, &pub, secret, &secretSz); - // generate secret key + // 共有秘密鍵を生成 if ( ret != 0 ) { - // error generating shared secret key + // 共有秘密鍵の生成エラー } \endcode + \sa wc_ecc_init \sa wc_ecc_make_key */ @@ -168,17 +266,22 @@ int wc_ecc_shared_secret(ecc_key* private_key, ecc_key* public_key, byte* out, /*! \ingroup ECC - \brief 秘密鍵とパブリックポイントの間にECC共有秘密を作成します。 - \return MP_OKAY 成功を示します。 - \return BAD_FUNC_ARG 引数がNULLのときにエラーが返されます。 - \return ECC_BAD_ARG_E private_key-> typeがecc_privatekeyまたはprivate_key-> idxが検証できない場合に返されました。 - \return BUFFER_E outlenが小さすぎるとエラーが発生します。 - \return MEMORY_E 新しいポイントを作成するためのエラー。 - \return MP_VAL 初期化失敗が発生したときに可能です。 - \return MP_MEM 初期化失敗が発生したときに可能です。 - \param private_key プライベートECCキー。 - \param point 使用するポイント(公開鍵)。 - \param out 共有秘密の出力先。ANSI X9.63からEC-DHに準拠しています。 + + \brief 秘密鍵と公開ポイント間でECC共有秘密を作成します。 + + \return MP_OKAY 成功を示します。 + \return BAD_FUNC_ARG いずれかの引数がnullの場合に返されるエラー。 + \return ECC_BAD_ARG_E private_key->typeがECC_PRIVATEKEYでない場合、またはprivate_key->idxの検証に失敗した場合に返されるエラー。 + \return BUFFER_E outlenが小さすぎる場合のエラー。 + \return MEMORY_E 新しいポイントを作成する際のエラー。 + \return MP_VAL 初期化失敗が発生した場合に返される可能性があります。 + \return MP_MEM 初期化失敗が発生した場合に返される可能性があります。 + + \param private_key 秘密ECCキー。 + \param point 使用するポイント(公開鍵)。 + \param out 共有秘密の出力先。ANSI X9.63のEC-DHに準拠。 + \param outlen 最大サイズを入力し、共有秘密の結果サイズを出力。 + _Example_ \code ecc_key key; @@ -194,9 +297,10 @@ int wc_ecc_shared_secret(ecc_key* private_key, ecc_key* public_key, byte* out, if (result != MP_OKAY) { - // Handle error + // エラーを処理 } \endcode + \sa wc_ecc_verify_hash_ex */ @@ -205,43 +309,49 @@ int wc_ecc_shared_secret_ex(ecc_key* private_key, ecc_point* point, /*! \ingroup ECC - \brief この関数は、信頼性を保証するためにECC_KEYオブジェクトを使用してメッセージダイジェストに署名します。 - \return 0 メッセージダイジェストの署名を正常に生成したときに返されました - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLに評価された場合、または出力バッファが小さすぎて生成された署名を保存する場合は返されます。 - \return ECC_BAD_ARG_E 入力キーが秘密鍵ではない場合、またはECC OIDが無効な場合 - \return RNG_FAILURE_E RNGが満足のいくキーを正常に生成できない場合に返されます。 - \return MP_INIT_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_READ_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_CMP_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_INVMOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_EXPTMOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MUL_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_ADD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MULMOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_TO_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MEM メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \param in サインするメッセージハッシュを含むバッファへのポインタ - \param inlen 署名するメッセージの長さ - \param out 生成された署名を保存するためのバッファ - \param outlen 出力バッファの最大長。メッセージ署名の生成に成功したときに書き込まれたバイトを保存します + + \brief この関数は、ecc_keyオブジェクトを使用してメッセージダイジェストに署名し、真正性を保証します。 + + \return 0 メッセージダイジェストの署名を正常に生成した場合に返されます + \return BAD_FUNC_ARG いずれかの入力パラメータがNULLと評価された場合、または出力バッファが生成された署名を格納するには小さすぎる場合に返されます + \return ECC_BAD_ARG_E 入力キーが秘密鍵でない場合、またはECC OIDが無効な場合に返されます + \return RNG_FAILURE_E rngが満足のいくキーを正常に生成できない場合に返されます + \return MP_INIT_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_READ_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_CMP_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MUL_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_ADD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_TO_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MEM メッセージ署名の計算中にエラーがある場合に返される可能性があります + + \param in 署名するメッセージハッシュを含むバッファへのポインタ + \param inlen 署名するメッセージハッシュの長さ + \param out 生成された署名を格納するバッファ + \param outlen 出力バッファの最大長。メッセージ署名の生成に成功すると、outに書き込まれたバイト数を格納します + \param key 署名を生成するために使用する秘密ECCキーへのポインタ + _Example_ \code ecc_key key; WC_RNG rng; int ret, sigSz; - byte sig[512]; // will hold generated signature + byte sig[512]; // 生成された署名を保持 sigSz = sizeof(sig); - byte digest[] = { // initialize with message hash }; - wc_InitRng(&rng); // initialize rng - wc_ecc_init(&key); // initialize key - wc_ecc_make_key(&rng, 32, &key); // make public/private key pair + byte digest[] = { // メッセージハッシュで初期化 }; + wc_InitRng(&rng); // rngを初期化 + wc_ecc_init(&key); // キーを初期化 + wc_ecc_make_key(&rng, 32, &key); // 公開/秘密鍵ペアを作成 ret = wc_ecc_sign_hash(digest, sizeof(digest), sig, &sigSz, &key); if ( ret != 0 ) { - // error generating message signature + // メッセージ署名の生成エラー } \endcode + \sa wc_ecc_verify_hash */ @@ -250,48 +360,54 @@ int wc_ecc_sign_hash(const byte* in, word32 inlen, byte* out, word32 *outlen, /*! \ingroup ECC - \brief メッセージダイジェストに署名します。 - \return MP_OKAY メッセージダイジェストの署名を正常に生成したときに返されました - \return ECC_BAD_ARG_E 入力キーが秘密鍵ではない場合、またはECC IDXが無効な場合、またはいずれかの入力パラメータがNULLに評価されている場合、または出力バッファが小さすぎて生成された署名を保存するには小さすぎる場合 - \return RNG_FAILURE_E RNGが満足のいくキーを正常に生成できない場合に返されます。 - \return MP_INIT_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_READ_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_CMP_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_INVMOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_EXPTMOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MUL_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_ADD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MULMOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_TO_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MEM メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \param in メッセージがサインにダイジェスト。 - \param inlen ダイジェストの長さ。 - \param rng WC_RNG構造体へのポインタ。 - \param key プライベートECCキー。 - \param r 署名のRコンポーネントの宛先。 + + \brief メッセージダイジェストに署名します。 + + \return MP_OKAY メッセージダイジェストの署名を正常に生成した場合に返されます + \return ECC_BAD_ARG_E 入力キーが秘密鍵でない場合、またはECC IDXが無効な場合、またはいずれかの入力パラメータがNULLと評価された場合、または出力バッファが生成された署名を格納するには小さすぎる場合に返されます + \return RNG_FAILURE_E rngが満足のいくキーを正常に生成できない場合に返されます + \return MP_INIT_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_READ_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_CMP_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MUL_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_ADD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_TO_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MEM メッセージ署名の計算中にエラーがある場合に返される可能性があります + + \param in 署名するメッセージダイジェスト。 + \param inlen ダイジェストの長さ。 + \param rng WC_RNG構造体へのポインタ。 + \param key 秘密ECCキー。 + \param r 署名のr成分の出力先。 + \param s 署名のs成分の出力先。 + _Example_ \code ecc_key key; WC_RNG rng; int ret, sigSz; - mp_int r; // destination for r component of signature. - mp_int s; // destination for s component of signature. + mp_int r; // 署名のr成分の出力先。 + mp_int s; // 署名のs成分の出力先。 - byte sig[512]; // will hold generated signature + byte sig[512]; // 生成された署名を保持 sigSz = sizeof(sig); - byte digest[] = { initialize with message hash }; - wc_InitRng(&rng); // initialize rng - wc_ecc_init(&key); // initialize key - mp_init(&r); // initialize r component - mp_init(&s); // initialize s component - wc_ecc_make_key(&rng, 32, &key); // make public/private key pair + byte digest[] = { メッセージハッシュで初期化 }; + wc_InitRng(&rng); // rngを初期化 + wc_ecc_init(&key); // キーを初期化 + mp_init(&r); // r成分を初期化 + mp_init(&s); // s成分を初期化 + wc_ecc_make_key(&rng, 32, &key); // 公開/秘密鍵ペアを作成 ret = wc_ecc_sign_hash_ex(digest, sizeof(digest), &rng, &key, &r, &s); if ( ret != MP_OKAY ) { - // error generating message signature + // メッセージ署名の生成エラー } \endcode + \sa wc_ecc_verify_hash_ex */ @@ -300,42 +416,48 @@ int wc_ecc_sign_hash_ex(const byte* in, word32 inlen, WC_RNG* rng, /*! \ingroup ECC - \brief この関数は、真正性を確保するためにハッシュのECCシグネチャを検証します。答えを介して、有効な署名に対応する1、無効な署名に対応する0で答えを返します。 - \return 0 署名検証に正常に実行されたときに返されます。注:これは署名が検証されていることを意味するわけではありません。信頼性情報は代わりにSTATで格納されます - \return BAD_FUNC_ARG 返された入力パラメータはNULLに評価されます - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \return MP_INIT_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_READ_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_CMP_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_INVMOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_EXPTMOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MUL_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_ADD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MULMOD_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_TO_E メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \return MP_MEM メッセージ署名の計算中にエラーが発生した場合に返される可能性があります。 - \param sig 確認する署名を含むバッファへのポインタ - \param siglen 検証する署名の長さ - \param hash 確認されたメッセージのハッシュを含むバッファへのポインタ - \param hashlen 認証されたメッセージのハッシュの長さ - \param stat 検証の結果へのポインタ。1メッセージが正常に認証されたことを示します + + \brief この関数は、真正性を確保するためにハッシュのECC署名を検証します。statを通じて答えを返し、1は有効な署名に対応し、0は無効な署名に対応します。 + + \return 0 署名検証の実行に成功した場合に返されます。注:これは署名が検証されたことを意味するものではありません。真正性情報は代わりにstatに格納されます + \return BAD_FUNC_ARG いずれかの入力パラメータがNULLと評価された場合に返されます + \return MEMORY_E メモリ割り当てエラーがある場合に返されます + \return MP_INIT_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_READ_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_CMP_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MUL_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_ADD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_TO_E メッセージ署名の計算中にエラーがある場合に返される可能性があります + \return MP_MEM メッセージ署名の計算中にエラーがある場合に返される可能性があります + + \param sig 検証する署名を含むバッファへのポインタ + \param siglen 検証する署名の長さ + \param hash 検証されたメッセージのハッシュを含むバッファへのポインタ + \param hashlen 検証されたメッセージのハッシュの長さ + \param stat 検証結果へのポインタ。1はメッセージが正常に検証されたことを示します + \param key 署名を検証するために使用する公開ECCキーへのポインタ + _Example_ \code ecc_key key; int ret, verified = 0; - byte sig[1024] { initialize with received signature }; - byte digest[] = { initialize with message hash }; - // initialize key with received public key + byte sig[1024] { 受信した署名で初期化 }; + byte digest[] = { メッセージハッシュで初期化 }; + // 受信した公開鍵でキーを初期化 ret = wc_ecc_verify_hash(sig, sizeof(sig), digest,sizeof(digest), &verified, &key); if ( ret != 0 ) { - // error performing verification + // 検証実行エラー } else if ( verified == 0 ) { - // the signature is invalid + // 署名が無効 } \endcode + \sa wc_ecc_sign_hash \sa wc_ecc_verify_hash_ex */ @@ -345,28 +467,34 @@ int wc_ecc_verify_hash(const byte* sig, word32 siglen, const byte* hash, /*! \ingroup ECC - \brief ECC署名を確認してください。結果はstatに書き込まれます。1が有効で、0が無効です。注:有効なテストに戻り値を使用しないでください。statのみを使用してください。 - \return MP_OKAY 成功した場合(署名が無効であっても) - \return ECC_BAD_ARG_E 引数がNULLの場合、またはkey-idxが無効な場合は返します。 - \return MEMORY_E INTまたはポイントの割り当て中にエラーが発生しました。 - \param r 検証する署名Rコンポーネント - \param s 検証するシグネチャSコンポーネント - \param hash 署名されたハッシュ(メッセージダイジェスト) - \param hashlen ハッシュの長さ(オクテット) - \param stat 署名の結果、1 ==有効、0 ==無効 + + \brief ECC署名を検証します。結果はstatに書き込まれます。1は有効、0は無効です。注:有効性のテストに戻り値を使用しないでください。statのみを使用してください。 + + \return MP_OKAY 成功した場合(署名が有効でない場合でも) + \return ECC_BAD_ARG_E 引数がnullの場合、またはkey-idxが無効な場合に返されます。 + \return MEMORY_E 整数またはポイントの割り当てエラー。 + + \param r 検証する署名のR成分 + \param s 検証する署名のS成分 + \param hash 署名されたハッシュ(メッセージダイジェスト) + \param hashlen ハッシュの長さ(オクテット) + \param stat 署名の結果、1==有効、0==無効 + \param key 対応する公開ECCキー + _Example_ \code mp_int r; mp_int s; int stat; - byte hash[] = { Some hash } + byte hash[] = { いくつかのハッシュ } ecc_key key; if(wc_ecc_verify_hash_ex(&r, &s, hash, hashlen, &stat, &key) == MP_OKAY) { - // Check stat + // statをチェック } \endcode + \sa wc_ecc_verify_hash */ @@ -375,14 +503,20 @@ int wc_ecc_verify_hash_ex(mp_int *r, mp_int *s, const byte* hash, /*! \ingroup ECC - \brief この関数は、メッセージ検証または鍵交渉で将来の使用のためにECC_KEYオブジェクトを初期化します。 - \return 0 ECC_Keyオブジェクトの初期化に成功したときに返されます - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます + + \brief この関数は、メッセージ検証または鍵交換で将来使用するためにecc_keyオブジェクトを初期化します。 + + \return 0 ecc_keyオブジェクトの初期化に成功した場合に返されます + \return MEMORY_E メモリ割り当てエラーがある場合に返されます + + \param key 初期化するecc_keyオブジェクトへのポインタ + _Example_ \code ecc_key key; wc_ecc_init(&key); \endcode + \sa wc_ecc_make_key \sa wc_ecc_free */ @@ -391,16 +525,22 @@ int wc_ecc_init(ecc_key* key); /*! \ingroup ECC - \brief この関数は、メッセージ検証または鍵交渉で将来の使用のためにECC_KEYオブジェクトを初期化します。 - \return 0 ECC_Keyオブジェクトの初期化に成功したときに返されます - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \param key 初期化するECC_Keyオブジェクトへのポインタ - \param devId 非同期ハードウェアで使用するID + + \brief この関数は、メッセージ検証または鍵交換で将来使用するためにecc_keyオブジェクトを初期化します。 + + \return 0 ecc_keyオブジェクトの初期化に成功した場合に返されます + \return MEMORY_E メモリ割り当てエラーがある場合に返されます + + \param key 初期化するecc_keyオブジェクトへのポインタ + \param heap ヒープ識別子へのポインタ + \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定 + _Example_ \code ecc_key key; wc_ecc_init_ex(&key, heap, devId); \endcode + \sa wc_ecc_make_key \sa wc_ecc_free \sa wc_ecc_init @@ -410,12 +550,18 @@ int wc_ecc_init_ex(ecc_key* key, void* heap, int devId); /*! \ingroup ECC - \brief この関数はユーザー定義ヒープを使用し、キー構造のスペースを割り当てます。 - \return 0 ECC_Keyオブジェクトの初期化に成功したときに返されます + + \brief この関数は、ユーザー定義のヒープを使用し、キー構造体用のスペースを割り当てます。 + + \return 0 ecc_keyオブジェクトの初期化に成功した場合に返されます + \return MEMORY_E メモリ割り当てエラーがある場合に返されます + + _Example_ \code wc_ecc_key_new(&heap); \endcode + \sa wc_ecc_make_key \sa wc_ecc_key_free \sa wc_ecc_init @@ -425,14 +571,20 @@ ecc_key* wc_ecc_key_new(void* heap); /*! \ingroup ECC - \brief この関数は、使用後にECC_KEYオブジェクトを解放します。 - \return int integerがWolfSSLエラーまたは成功状況を示すことを返しました。 + + \brief この関数は、使用後にecc_keyオブジェクトを解放します。 + + \return int wolfSSLのエラーまたは成功ステータスを示す整数が返されます。 + + \param key 解放するecc_keyオブジェクトへのポインタ + _Example_ \code - // initialize key and perform secure exchanges + // キーを初期化して安全な交換を実行 ... wc_ecc_free(&key); \endcode + \sa wc_ecc_init */ @@ -440,16 +592,22 @@ int wc_ecc_free(ecc_key* key); /*! \ingroup ECC - \brief この関数は固定小数点キャッシュを解放します。これはECCで使用でき、計算時間を高速化します。この機能を使用するには、FP_ECC(固定小数点ECC)を定義する必要があります。 - \return none いいえ返します。 + + \brief この関数は、固定小数点キャッシュを解放します。これは計算時間を高速化するためにeccで使用できます。この機能を使用するには、FP_ECC(固定小数点ecc)を定義する必要があります。スレッド化されたアプリケーションは、スレッドを終了する前にこの関数を呼び出す必要があります。 + + \return none 返り値なし。 + + \param none パラメータなし。 + _Example_ \code ecc_key key; - // initialize key and perform secure exchanges + // キーを初期化して安全な交換を実行 ... wc_ecc_fp_free(); \endcode + \sa wc_ecc_free */ @@ -457,9 +615,14 @@ void wc_ecc_fp_free(void); /*! \ingroup ECC - \brief ECC IDXが有効かどうかを確認します。 - \return 1 有効な場合は返品してください。 - \return 0 無効な場合は返します。 + + \brief ECC idxが有効かどうかをチェックします。 + + \return 1 有効な場合に返されます。 + \return 0 有効でない場合に返されます。 + + \param n チェックするidx番号。 + _Example_ \code ecc_key key; @@ -471,33 +634,39 @@ void wc_ecc_fp_free(void); is_valid = wc_ecc_is_valid_idx(key.idx); if (is_valid == 1) { - // idx is valid + // idxは有効 } else if (is_valid == 0) { - // idx is not valid + // idxは無効 } \endcode - \sa none + + \sa なし */ int wc_ecc_is_valid_idx(int n); - /*! \ingroup ECC - \brief 新しいECCポイントを割り当てます。 - \return p 新しく割り当てられたポイント。 - \return NULL エラー時にNULLを返します。 + + \brief 新しいECCポイントを割り当てます。 + + \return p 新しく割り当てられたポイント。 + \return NULL エラー時にNULLを返します。 + + \param none パラメータなし。 + _Example_ \code ecc_point* point; point = wc_ecc_new_point(); if (point == NULL) { - // Handle point creation error + // ポイント作成エラーを処理 } - // Do stuff with point + // ポイントで何かを行う \endcode + \sa wc_ecc_del_point \sa wc_ecc_cmp_point \sa wc_ecc_copy_point @@ -507,19 +676,25 @@ ecc_point* wc_ecc_new_point(void); /*! \ingroup ECC - \brief メモリからECCポイントを解放します。 - \return none いいえ返します。 + + \brief メモリからECCポイントを解放します。 + + \return none 返り値なし。 + + \param p 解放するポイント。 + _Example_ \code ecc_point* point; point = wc_ecc_new_point(); if (point == NULL) { - // Handle point creation error + // ポイント作成エラーを処理 } - // Do stuff with point + // ポイントで何かを行う wc_ecc_del_point(point); \endcode + \sa wc_ecc_new_point \sa wc_ecc_cmp_point \sa wc_ecc_copy_point @@ -529,11 +704,16 @@ void wc_ecc_del_point(ecc_point* p); /*! \ingroup ECC - \brief あるポイントの値を別のポイントにコピーします。 - \return ECC_BAD_ARG_E PまたはRがNULLのときにスローされたエラー。 - \return MP_OKAY ポイントが正常にコピーされました - \return ret 内部関数からのエラー。になることができます... - \param p コピーするポイント。 + + \brief あるポイントの値を別のポイントにコピーします。 + + \return ECC_BAD_ARG_E pまたはrがnullの場合にスローされるエラー。 + \return MP_OKAY ポイントが正常にコピーされました + \return ret 内部関数からのエラー。次のような可能性があります... + + \param p コピーするポイント。 + \param r 作成されたポイント。 + _Example_ \code ecc_point* point; @@ -544,9 +724,10 @@ void wc_ecc_del_point(ecc_point* p); copy_return = wc_ecc_copy_point(point, copied_point); if (copy_return != MP_OKAY) { - // Handle error + // エラーを処理 } \endcode + \sa wc_ecc_new_point \sa wc_ecc_cmp_point \sa wc_ecc_del_point @@ -556,11 +737,16 @@ int wc_ecc_copy_point(ecc_point* p, ecc_point *r); /*! \ingroup ECC - \brief ポイントの値を別のものと比較してください。 - \return BAD_FUNC_ARG 1つまたは両方の引数はnullです。 - \return MP_EQ ポイントは同じです。 - \return ret mp_ltまたはmp_gtのどちらかで、ポイントが等しくないことを意味します。 - \param a 比較する最初のポイント。 + + \brief ポイントの値を別のポイントと比較します。 + + \return BAD_FUNC_ARG 一方または両方の引数がNULL。 + \return MP_EQ ポイントが等しい。 + \return ret MP_LTまたはMP_GTのいずれかで、ポイントが等しくないことを示します。 + + \param a 比較する最初のポイント。 + \param b 比較する2番目のポイント。 + _Example_ \code ecc_point* point; @@ -572,17 +758,18 @@ int wc_ecc_copy_point(ecc_point* p, ecc_point *r); cmp_result = wc_ecc_cmp_point(point, point_to_compare); if (cmp_result == BAD_FUNC_ARG) { - // arguments are invalid + // 引数が無効 } else if (cmp_result == MP_EQ) { - // Points are equal + // ポイントが等しい } else { - // Points are not equal + // ポイントが等しくない } \endcode + \sa wc_ecc_new_point \sa wc_ecc_del_point \sa wc_ecc_copy_point @@ -592,10 +779,15 @@ int wc_ecc_cmp_point(ecc_point* a, ecc_point *b); /*! \ingroup ECC - \brief ポイントが無限大にあるかどうかを確認します。返品1が無限大である場合は0、そうでない場合は0、<0エラー時の0 - \return 1 Pは無限大です。 - \return 0 Pは無限大ではありません。 - \return <0 エラー。 + + \brief ポイントが無限遠点にあるかどうかをチェックします。ポイントが無限遠点にある場合は1を返し、そうでない場合は0を返し、エラーの場合は<0を返します + + \return 1 pが無限遠点にある。 + \return 0 pが無限遠点にない。 + \return <0 エラー。 + + \param p チェックするポイント。 + _Example_ \code ecc_point* point; @@ -605,17 +797,18 @@ int wc_ecc_cmp_point(ecc_point* a, ecc_point *b); is_infinity = wc_ecc_point_is_at_infinity(point); if (is_infinity < 0) { - // Handle error + // エラーを処理 } else if (is_infinity == 0) { - // Point is not at infinity + // ポイントは無限遠点にない } else if (is_infinity == 1) { - // Point is at infinity + // ポイントは無限遠点にある } \endcode + \sa wc_ecc_new_point \sa wc_ecc_del_point \sa wc_ecc_cmp_point @@ -626,26 +819,32 @@ int wc_ecc_point_is_at_infinity(ecc_point *p); /*! \ingroup ECC - \brief ECC固定点乗算を実行します。 - \return MP_OKAY 成功した操作で返します。 - \return MP_INIT_E 複数のPrecision Integer(MP_INT)ライブラリで使用するための整数を初期化するエラーがある場合に返されます。 - \param k 計量。 - \param G 乗算する基点。 - \param R 商品の目的地 - \param modulus 曲線の弾性率 + + \brief ECC固定点乗算を実行します。 + + \return MP_OKAY 操作が成功した場合に返されます。 + \return MP_INIT_E 多精度整数(mp_int)ライブラリで使用するために整数を初期化する際にエラーがある場合に返されます。 + + \param k 被乗数。 + \param G 乗算する基点。 + \param R 積の出力先。 + \param modulus カーブのモジュラス。 + \param map ゼロでない場合、ポイントをアフィン座標に戻してマップします。そうでない場合は、ヤコビ・モンゴメリー形式のままです。 + _Example_ \code ecc_point* base; ecc_point* destination; - // Initialize points + // ポイントを初期化 base = wc_ecc_new_point(); destination = wc_ecc_new_point(); - // Setup other arguments + // 他の引数を設定 mp_int multiplicand; mp_int modulus; int map; \endcode - \sa none + + \sa なし */ int wc_ecc_mulmod(mp_int* k, ecc_point *G, ecc_point *R, @@ -653,25 +852,30 @@ int wc_ecc_mulmod(mp_int* k, ecc_point *G, ecc_point *R, /*! \ingroup ECC - \brief この関数はECCキーをECC_KEY構造体からエクスポートし、結果をOUTに格納します。キーはANSI X9.63フォーマットに保存されます。outlenの出力バッファに書き込まれたバイトを格納します。 - \return 0 ECC_KEYのエクスポートに正常に返されました - \return LENGTH_ONLY_E 出力バッファがNULLに評価されている場合は返されますが、他の2つの入力パラメータは有効です。関数がキーを保存するのに必要な長さを返すだけであることを示します - \return ECC_BAD_ARG_E 入力パラメータのいずれかがNULLの場合、またはキーがサポートされていない場合(無効なインデックスがあります) - \return BUFFER_E 出力バッファが小さすぎてECCキーを保存する場合は返されます。出力バッファが小さすぎると、必要なサイズはoutlenに返されます。 - \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合 - \return MP_INIT_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_READ_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_CMP_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_INVMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_EXPTMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MUL_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_ADD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MULMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_TO_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MEM ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \param key エクスポートするECC_KEYオブジェクトへのポインタ - \param out ANSI X9.63フォーマット済みキーを保存するバッファへのポインタ + + \brief この関数は、ecc_key構造体からECCキーをエクスポートし、結果をoutに格納します。キーはANSI X9.63形式で格納されます。出力バッファに書き込まれたバイト数をoutLenに格納します。 + + \return 0 ecc_keyのエクスポートに成功した場合に返されます + \return LENGTH_ONLY_E 出力バッファがNULLと評価されるが、他の2つの入力パラメータが有効な場合に返されます。関数がキーを格納するために必要な長さのみを返していることを示します + \return ECC_BAD_ARG_E いずれかの入力パラメータがNULLの場合、またはキーがサポートされていない(無効なインデックスを持つ)場合に返されます + \return BUFFER_E 出力バッファがeccキーを格納するには小さすぎる場合に返されます。出力バッファが小さすぎる場合、必要なサイズがoutLenで返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return MP_INIT_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_READ_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_CMP_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MUL_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_ADD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_TO_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MEM ecc_keyの処理中にエラーがある場合に返される可能性があります + + \param key エクスポートするecc_keyオブジェクトへのポインタ + \param out ANSI X9.63形式のキーを格納するバッファへのポインタ + \param outLen 出力バッファのサイズ。キーの格納に成功すると、出力バッファに書き込まれたバイト数を保持します + _Example_ \code int ret; @@ -679,94 +883,110 @@ int wc_ecc_mulmod(mp_int* k, ecc_point *G, ecc_point *R, word32 buffSz = sizeof(buff); ecc_key key; - // initialize key, make key + // キーを初期化し、キーを作成 ret = wc_ecc_export_x963(&key, buff, &buffSz); if ( ret != 0) { - // error exporting key + // キーのエクスポートエラー } \endcode + \sa wc_ecc_export_x963_ex \sa wc_ecc_import_x963 + \sa wc_ecc_make_pub */ int wc_ecc_export_x963(ecc_key* key, byte* out, word32* outLen); /*! \ingroup ECC - \brief この関数はECCキーをECC_KEY構造体からエクスポートし、結果をOUTに格納します。キーはANSI X9.63フォーマットに保存されます。outlenの出力バッファに書き込まれたバイトを格納します。この関数は、圧縮されたパラメータを介して証明書を圧縮する追加のオプションを使用する。このパラメータがtrueの場合、キーはANSI X9.63圧縮形式で保存されます。 - \return 0 ECC_KEYのエクスポートに正常に返されました - \return NOT_COMPILED_IN hand_comp_keyがコンパイル時に有効になっていない場合は返されますが、キーは圧縮形式で要求されました - \return LENGTH_ONLY_E 出力バッファがNULLに評価されている場合は返されますが、他の2つの入力パラメータは有効です。関数がキーを保存するのに必要な長さを返すだけであることを示します - \return ECC_BAD_ARG_E 入力パラメータのいずれかがNULLの場合、またはキーがサポートされていない場合(無効なインデックスがあります) - \return BUFFER_E 出力バッファが小さすぎてECCキーを保存する場合は返されます。出力バッファが小さすぎると、必要なサイズはoutlenに返されます。 - \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合 - \return MP_INIT_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_READ_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_CMP_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_INVMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_EXPTMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MUL_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_ADD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MULMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_TO_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MEM ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \param key エクスポートするECC_KEYオブジェクトへのポインタ - \param out ANSI X9.63フォーマット済みキーを保存するバッファへのポインタ - \param outLen 出力バッファのサイズ。キーの保存に成功した場合は、出力バッファに書き込まれたバイトを保持します。 + + \brief この関数は、ecc_key構造体から公開鍵をエクスポートし、結果をoutに格納します。キーはANSI X9.63形式で格納されます。出力バッファに書き込まれたバイト数をoutLenに格納します。この関数は、compressedパラメータを通じて証明書を圧縮する追加オプションを提供します。このパラメータがtrueの場合、キーはANSI X9.63圧縮形式で格納されます。 + + \return 0 ecc_key公開成分のエクスポートに成功した場合に返されます + \return ECC_PRIVATEKEY_ONLY ecc_key公開成分が欠落している場合に返されます + \return NOT_COMPILED_IN コンパイル時にHAVE_COMP_KEYが有効になっていないが、キーが圧縮形式で要求された場合に返されます + \return LENGTH_ONLY_E 出力バッファがNULLと評価されるが、他の2つの入力パラメータが有効な場合に返されます。関数が公開鍵を格納するために必要な長さのみを返していることを示します + \return ECC_BAD_ARG_E いずれかの入力パラメータがNULLの場合、またはキーがサポートされていない(無効なインデックスを持つ)場合に返されます + \return BUFFER_E 出力バッファが公開鍵を格納するには小さすぎる場合に返されます。出力バッファが小さすぎる場合、必要なサイズがoutLenで返されます + \return MEMORY_E XMALLOCでメモリを割り当てる際にエラーがある場合に返されます + \return MP_INIT_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_READ_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_CMP_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MUL_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_ADD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_TO_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MEM ecc_keyの処理中にエラーがある場合に返される可能性があります + + \param key エクスポートするecc_keyオブジェクトへのポインタ + \param out ANSI X9.63形式の公開鍵を格納するバッファへのポインタ + \param outLen 出力バッファのサイズ。公開鍵の格納に成功すると、出力バッファに書き込まれたバイト数を保持します + \param compressed キーを圧縮形式で格納するかどうかの指標。1==圧縮、0==非圧縮 + _Example_ \code int ret; byte buff[1024]; word32 buffSz = sizeof(buff); ecc_key key; - // initialize key, make key + // キーを初期化し、キーを作成 ret = wc_ecc_export_x963_ex(&key, buff, &buffSz, 1); if ( ret != 0) { - // error exporting key + // キーのエクスポートエラー } \endcode + \sa wc_ecc_export_x963 \sa wc_ecc_import_x963 + \sa wc_ecc_make_pub */ int wc_ecc_export_x963_ex(ecc_key* key, byte* out, word32* outLen, int compressed); /*! \ingroup ECC - \brief この関数は、ANSI X9.63形式で保存されているキーを含むバッファからパブリックECCキーをインポートします。この関数は、圧縮キーがhand_comp_keyオプションを介してコンパイル時に有効になっている限り、圧縮キーと非圧縮キーの両方を処理します。 - \return 0 ECC_KEYのインポートに成功しました - \return NOT_COMPILED_IN hand_comp_keyがコンパイル時に有効になっていない場合は返されますが、キーは圧縮形式で保存されます。 - \return ECC_BAD_ARG_E INまたはKEYがNULLに評価された場合、またはInlenが偶数の場合(X9.63規格によれば、キーは奇数でなければなりません)。 - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \return ASN_PARSE_E ECCキーの解析中にエラーがある場合は返されます。ECCキーが有効なANSI X9.63フォーマットに格納されていないことを示すことがあります。 - \return IS_POINT_E エクスポートされた公開鍵がECC曲線上の点ではない場合に返されます - \return MP_INIT_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_READ_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_CMP_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_INVMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_EXPTMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MUL_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_ADD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MULMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_TO_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MEM ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \param in ANSI x9.63フォーマットされたECCキーを含むバッファへのポインタ - \param inLen 入力バッファの長さ + + \brief この関数は、ANSI X9.63形式で格納されたキーを含むバッファから公開ECCキーをインポートします。この関数は、コンパイル時にHAVE_COMP_KEYオプションを通じて圧縮キーが有効になっている限り、圧縮キーと非圧縮キーの両方を処理します。 + + \return 0 ecc_keyのインポートに成功した場合に返されます + \return NOT_COMPILED_IN コンパイル時にHAVE_COMP_KEYが有効になっていないが、キーが圧縮形式で格納されている場合に返されます + \return ECC_BAD_ARG_E inまたはkeyがNULLと評価される場合、またはinLenが偶数の場合に返されます(x9.63標準によると、キーは奇数でなければなりません) + \return MEMORY_E メモリの割り当てエラーがある場合に返されます + \return ASN_PARSE_E ECCキーの解析エラーがある場合に返されます。ECCキーが有効なANSI X9.63形式で格納されていないことを示す可能性があります + \return IS_POINT_E エクスポートされた公開鍵がECC曲線上のポイントでない場合に返されます + \return MP_INIT_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_READ_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_CMP_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MUL_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_ADD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_TO_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MEM ecc_keyの処理中にエラーがある場合に返される可能性があります + + \param in ANSI x9.63形式のECCキーを含むバッファへのポインタ + \param inLen 入力バッファの長さ + \param key インポートされたキーを格納するecc_keyオブジェクトへのポインタ + _Example_ \code int ret; - byte buff[] = { initialize with ANSI X9.63 formatted key }; + byte buff[] = { ANSI X9.63形式のキーで初期化 }; ecc_key pubKey; wc_ecc_init(&pubKey); ret = wc_ecc_import_x963(buff, sizeof(buff), &pubKey); if ( ret != 0) { - // error importing key + // キーのインポートエラー } \endcode + \sa wc_ecc_export_x963 \sa wc_ecc_import_private_key */ @@ -775,41 +995,48 @@ int wc_ecc_import_x963(const byte* in, word32 inLen, ecc_key* key); /*! \ingroup ECC - \brief この関数は、生の秘密鍵を含むバッファと、ANSI X9.63フォーマットされた公開鍵を含む2番目のバッファーからパブリック/プライベートECCキーのペアをインポートします。この関数は、圧縮キーがhand_comp_keyオプションを介してコンパイル時に有効になっている限り、圧縮キーと非圧縮キーの両方を処理します。 - \return 0 habe_comp_keyがコンパイル時に有効になっていない場合は、ecc_key not_compiled_inを正常にインポートしましたが、キーは圧縮形式で保存されます。 - \return ECC_BAD_ARG_E INまたはKEYがNULLに評価された場合、またはInlenが偶数の場合(X9.63規格によれば、キーは奇数でなければなりません)。 - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \return ASN_PARSE_E ECCキーの解析中にエラーがある場合は返されます。ECCキーが有効なANSI X9.63フォーマットに格納されていないことを示すことがあります。 - \return IS_POINT_E エクスポートされた公開鍵がECC曲線上の点ではない場合に返されます - \return MP_INIT_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_READ_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_CMP_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_INVMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_EXPTMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MUL_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_ADD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MULMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_TO_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MEM ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \param priv RAW秘密鍵を含むバッファへのポインタ - \param privSz 秘密鍵バッファのサイズ - \param pub ANSI x9.63フォーマットされたECC公開鍵を含むバッファへのポインタ - \param pubSz 公開鍵入力バッファの長さ + + \brief この関数は、生の秘密鍵を含むバッファとANSI X9.63形式の公開鍵を含む2番目のバッファから公開/秘密ECCキーペアをインポートします。この関数は、コンパイル時にHAVE_COMP_KEYオプションを通じて圧縮キーが有効になっている限り、圧縮キーと非圧縮キーの両方を処理します。 + + \return 0 ecc_keyのインポートに成功した場合に返されます + NOT_COMPILED_IN コンパイル時にHAVE_COMP_KEYが有効になっていないが、キーが圧縮形式で格納されている場合に返されます + \return ECC_BAD_ARG_E inまたはkeyがNULLと評価される場合、またはinLenが偶数の場合に返されます(x9.63標準によると、キーは奇数でなければなりません) + \return MEMORY_E メモリの割り当てエラーがある場合に返されます + \return ASN_PARSE_E ECCキーの解析エラーがある場合に返されます。ECCキーが有効なANSI X9.63形式で格納されていないことを示す可能性があります + \return IS_POINT_E エクスポートされた公開鍵がECC曲線上のポイントでない場合に返されます + \return MP_INIT_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_READ_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_CMP_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MUL_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_ADD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_TO_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MEM ecc_keyの処理中にエラーがある場合に返される可能性があります + + \param priv 生の秘密鍵を含むバッファへのポインタ + \param privSz 秘密鍵バッファのサイズ + \param pub ANSI x9.63形式のECC公開鍵を含むバッファへのポインタ + \param pubSz 公開鍵入力バッファの長さ + \param key インポートされた秘密/公開キーペアを格納するecc_keyオブジェクトへのポインタ + _Example_ \code int ret; - byte pub[] = { initialize with ANSI X9.63 formatted key }; - byte priv[] = { initialize with the raw private key }; + byte pub[] = { ANSI X9.63形式のキーで初期化 }; + byte priv[] = { 生の秘密鍵で初期化 }; ecc_key key; wc_ecc_init(&key); ret = wc_ecc_import_private_key(priv, sizeof(priv), pub, sizeof(pub), &key); if ( ret != 0) { - // error importing key + // キーのインポートエラー } \endcode + \sa wc_ecc_export_x963 \sa wc_ecc_import_private_key */ @@ -819,39 +1046,45 @@ int wc_ecc_import_private_key(const byte* priv, word32 privSz, const byte* pub, /*! \ingroup ECC - \brief この関数は、ECCシグネチャのR部分とS部分をDER符号化ECDSAシグネチャに変換します。この機能は、outlenでは、出力バッファに書き込まれた長さも記憶されています。 - \return 0 署名の変換に成功したことに戻りました - \return ECC_BAD_ARG_E いずれかの入力パラメータがNULLに評価された場合、または入力バッファがDERエンコードされたECDSAシグネチャを保持するのに十分な大きさでない場合に返されます。 - \return MP_INIT_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_READ_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_CMP_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_INVMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_EXPTMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MUL_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_ADD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MULMOD_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_TO_E ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \return MP_MEM ECC_KEYの処理中にエラーが発生した場合に返される可能性があります - \param r 署名のR部分を文字列として含むバッファへのポインタ - \param s シグネチャのS部分を含むバッファへのポインタ文字列としてのポインタ - \param out DERエンコードされたECDSAシグネチャを保存するバッファへのポインタ + + \brief この関数は、ECC署名のRとS部分をDERエンコードされたECDSA署名に変換します。この関数は、出力バッファoutに書き込まれた長さもoutlenに格納します。 + + \return 0 署名の変換に成功した場合に返されます + \return ECC_BAD_ARG_E いずれかの入力パラメータがNULLと評価される場合、または入力バッファがDERエンコードされたECDSA署名を保持するのに十分な大きさでない場合に返されます + \return MP_INIT_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_READ_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_CMP_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MUL_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_ADD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_TO_E ecc_keyの処理中にエラーがある場合に返される可能性があります + \return MP_MEM ecc_keyの処理中にエラーがある場合に返される可能性があります + + \param r 文字列として署名のR部分を含むバッファへのポインタ + \param s 文字列として署名のS部分を含むバッファへのポインタ + \param out DERエンコードされたECDSA署名を格納するバッファへのポインタ + \param outlen 利用可能な出力バッファの長さ。署名をECDSA形式に正常に変換した後、バッファに書き込まれたバイト数を格納します + _Example_ \code int ret; ecc_key key; - // initialize key, generate R and S + // キーを初期化し、RとSを生成 - char r[] = { initialize with R }; - char s[] = { initialize with S }; + char r[] = { Rで初期化 }; + char s[] = { Sで初期化 }; byte sig[wc_ecc_sig_size(key)]; - // signature size will be 2 * ECC key size + ~10 bytes for ASN.1 overhead + // 署名サイズは2 * ECCキーサイズ + ASN.1オーバーヘッド用の約10バイトになります word32 sigSz = sizeof(sig); ret = wc_ecc_rs_to_sig(r, s, sig, &sigSz); if ( ret != 0) { - // error converting parameters to signature + // パラメータから署名への変換エラー } \endcode + \sa wc_ecc_sign_hash \sa wc_ecc_sig_size */ @@ -860,40 +1093,46 @@ int wc_ecc_rs_to_sig(const char* r, const char* s, byte* out, word32* outlen); /*! \ingroup ECC - \brief この関数は、ECC署名のRAW成分を持つECC_KEY構造体を埋めます。 - \return 0 ECC_Key構造体に正常にインポートされたときに返されます - \return ECC_BAD_ARG_E いずれかの入力値がNULLに評価された場合に返されます。 - \return MEMORY_E ECC_Keyのパラメータを格納するためのエラーの初期化スペースがある場合に返されます。 - \return ASN_PARSE_E 入力カーベナデがECC_SETSで定義されていない場合 - \return MP_INIT_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_READ_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_CMP_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_INVMOD_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_EXPTMOD_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_MOD_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_MUL_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_ADD_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_MULMOD_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_TO_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_MEM 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \param key 塗りつぶすためのECC_KEY構造体へのポインタ - \param qx ASCII六角文字列として基点のXコンポーネントを含むバッファへのポインタ - \param qy ASCII六角文字列として基点のY成分を含むバッファへのポインタ - \param d ASCII hex文字列として秘密鍵を含むバッファへのポインタ + + \brief この関数は、ECC署名の生の成分でecc_key構造体を埋めます。 + + \return 0 ecc_key構造体へのインポートに成功した場合に返されます + \return ECC_BAD_ARG_E いずれかの入力値がNULLと評価された場合に返されます + \return MEMORY_E ecc_keyのパラメータを格納するためのスペースを初期化する際にエラーがある場合に返されます + \return ASN_PARSE_E 入力curveNameがecc_setsで定義されていない場合に返されます + \return MP_INIT_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_READ_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_CMP_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_MOD_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_MUL_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_ADD_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_TO_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_MEM 入力パラメータの処理中にエラーがある場合に返される可能性があります + + \param key 埋めるecc_key構造体へのポインタ + \param qx ASCII 16進文字列として基点のx成分を含むバッファへのポインタ + \param qy ASCII 16進文字列として基点のy成分を含むバッファへのポインタ + \param d ASCII 16進文字列として秘密鍵を含むバッファへのポインタ + \param curveName ecc_setsにあるECC曲線名を含む文字列へのポインタ + _Example_ \code int ret; ecc_key key; wc_ecc_init(&key); - char qx[] = { initialize with x component of base point }; - char qy[] = { initialize with y component of base point }; - char d[] = { initialize with private key }; + char qx[] = { 基点のx成分で初期化 }; + char qy[] = { 基点のy成分で初期化 }; + char d[] = { 秘密鍵で初期化 }; ret = wc_ecc_import_raw(&key,qx, qy, d, "ECC-256"); if ( ret != 0) { - // error initializing key with given inputs + // 指定された入力でキーを初期化する際のエラー } \endcode + \sa wc_ecc_import_private_key */ @@ -902,37 +1141,43 @@ int wc_ecc_import_raw(ecc_key* key, const char* qx, const char* qy, /*! \ingroup ECC - \brief この関数は、ECC_KEY構造体から秘密鍵のみをエクスポートします。秘密鍵をバッファアウトに格納し、outlenにこのバッファに書き込まれたバイトを設定します。 - \return 0 秘密鍵のエクスポートに成功したときに返されます - \return ECC_BAD_ARG_E いずれかの入力値がNULLに評価された場合に返されます。 - \return MEMORY_E ECC_Keyのパラメータを格納するためのエラーの初期化スペースがある場合に返されます。 - \return ASN_PARSE_E 入力カーベナデがECC_SETSで定義されていない場合 - \return MP_INIT_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_READ_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_CMP_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_INVMOD_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_EXPTMOD_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_MOD_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_MUL_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_ADD_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_MULMOD_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_TO_E 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \return MP_MEM 入力パラメータの処理中にエラーが発生した場合に返される可能性があります。 - \param key 秘密鍵をエクスポートするECC_Key構造体へのポインタ - \param out 秘密鍵を保存するバッファへのポインタ + + \brief この関数は、ecc_key構造体から秘密鍵のみをエクスポートします。秘密鍵をバッファoutに格納し、このバッファに書き込まれたバイト数をoutLenに設定します。 + + \return 0 秘密鍵のエクスポートに成功した場合に返されます + \return ECC_BAD_ARG_E いずれかの入力値がNULLと評価された場合に返されます + \return MEMORY_E ecc_keyのパラメータを格納するためのスペースを初期化する際にエラーがある場合に返されます + \return ASN_PARSE_E 入力curveNameがecc_setsで定義されていない場合に返されます + \return MP_INIT_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_READ_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_CMP_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_INVMOD_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_MOD_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_MUL_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_ADD_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_MULMOD_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_TO_E 入力パラメータの処理中にエラーがある場合に返される可能性があります + \return MP_MEM 入力パラメータの処理中にエラーがある場合に返される可能性があります + + \param key 秘密鍵をエクスポートするecc_key構造体へのポインタ + \param out 秘密鍵を格納するバッファへのポインタ + \param outLen outで利用可能なサイズを持つword32オブジェクトへのポインタ。秘密鍵のエクスポートに成功した後、outに書き込まれたバイト数で設定されます + _Example_ \code int ret; ecc_key key; - // initialize key, make key + // キーを初期化し、キーを作成 char priv[ECC_KEY_SIZE]; word32 privSz = sizeof(priv); ret = wc_ecc_export_private_only(&key, priv, &privSz); if ( ret != 0) { - // error exporting private key + // 秘密鍵のエクスポートエラー } \endcode + \sa wc_ecc_import_private_key */ @@ -940,15 +1185,20 @@ int wc_ecc_export_private_only(ecc_key* key, byte* out, word32* outLen); /*! \ingroup ECC - \brief DERへのエクスポートポイント。 - \return 0 成功に戻りました。 - \return ECC_BAD_ARG_E curve_idxが0未満または無効である場合は返します。いつ来るのか - \return LENGTH_ONLY_E outlenは設定されていますが、他にはありません。 - \return BUFFER_E outlennが1 + 2 *曲線サイズよりも小さい場合は返します。 - \return MEMORY_E メモリの割り当てに問題がある場合は返します。 - \param curve_idx ECC_SETSから使用される曲線のインデックス。 - \param point Derへのエクスポートを指す。 - \param out 出力の目的地 + + \brief ポイントをder形式にエクスポートします。 + + \return 0 成功時に返されます。 + \return ECC_BAD_ARG_E curve_idxが0未満または無効な場合に返されます。また、次の場合にも返されます + \return LENGTH_ONLY_E outLenが設定されているが他は何もない。 + \return BUFFER_E outLenが1 + 2 * カーブサイズ未満の場合に返されます。 + \return MEMORY_E メモリの割り当てに問題がある場合に返されます。 + + \param curve_idx ecc_setsから使用されるカーブのインデックス。 + \param point derにエクスポートするポイント。 + \param out 出力の出力先。 + \param outLen 出力に許可される最大サイズ、出力の最終サイズの出力先 + _Example_ \code int curve_idx; @@ -957,6 +1207,7 @@ int wc_ecc_export_private_only(ecc_key* key, byte* out, word32* outLen); word32 outLen; wc_ecc_export_point_der(curve_idx, point, out, &outLen); \endcode + \sa wc_ecc_import_point_der */ @@ -965,14 +1216,19 @@ int wc_ecc_export_point_der(const int curve_idx, ecc_point* point, /*! \ingroup ECC - \brief Derフォーマットからのインポートポイント。 - \return ECC_BAD_ARG_E 引数がnullの場合、またはInlenが偶数の場合は返します。 - \return MEMORY_E エラー初期化がある場合に返します - \return NOT_COMPILED_IN habe_comp_keyが真実でない場合は返され、inは圧縮証明書です - \return MP_OKAY 操作が成功しました。 - \param in からのポイントをインポートするためのDer Buffer。 - \param inLen DERバッファの長さ - \param curve_idx 曲線のインデックス + + \brief der形式からポイントをインポートします。 + + \return ECC_BAD_ARG_E いずれかの引数がnullの場合、またはinLenが偶数の場合に返されます。 + \return MEMORY_E 初期化中にエラーがある場合に返されます + \return NOT_COMPILED_IN HAVE_COMP_KEYがtrueでなく、inが圧縮証明書の場合に返されます + \return MP_OKAY 操作が成功しました。 + + \param in ポイントをインポートするderバッファ。 + \param inLen derバッファの長さ。 + \param curve_idx カーブのインデックス。 + \param point ポイントの出力先。 + _Example_ \code byte in[]; @@ -981,6 +1237,7 @@ int wc_ecc_export_point_der(const int curve_idx, ecc_point* point, ecc_point* point; wc_ecc_import_point_der(in, inLen, curve_idx, point); \endcode + \sa wc_ecc_export_point_der */ @@ -989,19 +1246,25 @@ int wc_ecc_import_point_der(byte* in, word32 inLen, const int curve_idx, /*! \ingroup ECC - \brief この関数は、ecc_key構造体のキーサイズをオクテットで返します。 - \return Given 有効なキー、オクテットのキーサイズを返します - \return 0 与えられたキーがNULLの場合に返されます + + \brief この関数は、ecc_key構造体のキーサイズをオクテット単位で返します。 + + \return Given a valid key, 有効なキーが与えられた場合、キーサイズをオクテット単位で返します + \return 0 指定されたキーがNULLの場合に返されます + + \param key キーサイズを取得するecc_key構造体へのポインタ + _Example_ \code int keySz; ecc_key key; - // initialize key, make key + // キーを初期化し、キーを作成 keySz = wc_ecc_size(&key); if ( keySz == 0) { - // error determining key size + // キーサイズの判定エラー } \endcode + \sa wc_ecc_make_key */ @@ -1009,15 +1272,21 @@ int wc_ecc_size(ecc_key* key); /*! \ingroup ECC - \brief この関数は、次のようにして指定されたECCシグネチャの最悪の場合のサイズを返します。(KEYSZ * 2)+ SIG_HEADER_SZ + ECC_MAX_PAD_SZ。実際のシグネチャサイズは、WC_ECC_SIGN_HASHで計算できます。 - \return returns 最大署名サイズ(オクテット) + + \brief この関数は、ECC署名の最悪の場合のサイズを返します。これは(keySz * 2)+ SIG_HEADER_SZ + ECC_MAX_PAD_SZで与えられます。実際の署名サイズは、wc_ecc_sign_hashで計算できます。 + + \return returns 最大署名サイズをオクテット単位で返します + + \param key size キーサイズ + _Example_ \code int sigSz = wc_ecc_sig_size_calc(32); if ( sigSz == 0) { - // error determining sig size + // 署名サイズの判定エラー } \endcode + \sa wc_ecc_sign_hash \sa wc_ecc_sig_size */ @@ -1027,20 +1296,25 @@ int wc_ecc_sig_size_calc(int sz); /*! \ingroup ECC - \brief この関数は、次のようにして指定されたECCシグネチャの最悪の場合のサイズを返します。(KEYSZ * 2)+ SIG_HEADER_SZ + ECC_MAX_PAD_SZ。実際のシグネチャサイズは、WC_ECC_SIGN_HASHで計算できます。 - \return Success 有効なキーを考えると、最大署名サイズをオクテットで返します。 - \return 0 与えられたキーがNULLの場合に返されます + + \brief この関数は、ECC署名の最悪の場合のサイズを返します。これは(keySz * 2)+ SIG_HEADER_SZ + ECC_MAX_PAD_SZで与えられます。実際の署名サイズは、wc_ecc_sign_hashで計算できます。 + \return Success 有効なキーが与えられた場合、最大署名サイズをオクテット単位で返します + \return 0 指定されたキーがNULLの場合に返されます + + \param key 署名サイズを取得するecc_key構造体へのポインタ + _Example_ \code int sigSz; ecc_key key; - // initialize key, make key + // キーを初期化し、キーを作成 sigSz = wc_ecc_sig_size(&key); if ( sigSz == 0) { - // error determining sig size + // 署名サイズの判定エラー } \endcode + \sa wc_ecc_sign_hash \sa wc_ecc_sig_size_calc */ @@ -1050,10 +1324,16 @@ int wc_ecc_sig_size(ecc_key* key); /*! \ingroup ECC - \brief この機能は、ECCとの安全なメッセージ交換を可能にするために、新しいECCコンテキストオブジェクトのスペースを割り当て、初期化します。 - \return Success 新しいECENCCTXオブジェクトの生成に成功した場合は、そのオブジェクトへのポインタを返します - \return NULL 関数が新しいECENCCTXオブジェクトを生成できない場合に返されます - \param flags これがサーバーであるかクライアントのコンテキストオプションがあるかどうかを示します.req_resp_client、およびreq_resp_server + + \brief この関数は、ECCを使用した安全なメッセージ交換を可能にするために、新しいECCコンテキストオブジェクト用のスペースを割り当てて初期化します。 + + \return Success 新しいecEncCtxオブジェクトの生成に成功すると、そのオブジェクトへのポインタを返します + \return NULL 関数が新しいecEncCtxオブジェクトの生成に失敗した場合に返されます + + \param flags これがサーバーコンテキストかクライアントコンテキストかを示します + オプションは:REQ_RESP_CLIENTおよびREQ_RESP_SERVER + \param rng ソルトを生成するために使用するRNGオブジェクトへのポインタ + _Example_ \code ecEncCtx* ctx; @@ -1061,9 +1341,10 @@ int wc_ecc_sig_size(ecc_key* key); wc_InitRng(&rng); ctx = wc_ecc_ctx_new(REQ_RESP_CLIENT, &rng); if(ctx == NULL) { - // error generating new ecEncCtx object + // 新しいecEncCtxオブジェクトの生成エラー } \endcode + \sa wc_ecc_encrypt \sa wc_ecc_encrypt_ex \sa wc_ecc_decrypt @@ -1073,18 +1354,24 @@ ecEncCtx* wc_ecc_ctx_new(int flags, WC_RNG* rng); /*! \ingroup ECC - \brief この関数は、メッセージの暗号化と復号化に使用されるECENCCTXオブジェクトを解放します。 - \return none 戻り値。 + + \brief この関数は、メッセージの暗号化と復号に使用されるecEncCtxオブジェクトを解放します。 + + \return none 返り値なし。 + + \param ctx 解放するecEncCtxオブジェクトへのポインタ + _Example_ \code ecEncCtx* ctx; WC_RNG rng; wc_InitRng(&rng); ctx = wc_ecc_ctx_new(REQ_RESP_CLIENT, &rng); - // do secure communication + // 安全な通信を行う ... wc_ecc_ctx_free(&ctx); \endcode + \sa wc_ecc_ctx_new */ @@ -1092,43 +1379,55 @@ void wc_ecc_ctx_free(ecEncCtx*); /*! \ingroup ECC - \brief この関数はECENCCTX構造をリセットして、新しいコンテキストオブジェクトを解放し、新しいコンテキストオブジェクトを割り当てます。 - \return 0 ecencctx構造が正常にリセットされた場合に返されます - \return BAD_FUNC_ARG RNGまたはCTXがNULLの場合に返されます - \return RNG_FAILURE_E ECCオブジェクトに新しいソルトを生成するエラーがある場合 - \param ctx リセットするECENCCTXオブジェクトへのポインタ + + \brief この関数は、新しいコンテキストオブジェクトを解放して割り当てる必要がないように、ecEncCtx構造体をリセットします。 + + \return 0 ecEncCtx構造体が正常にリセットされた場合に返されます + \return BAD_FUNC_ARG rngまたはctxのいずれかがNULLの場合に返されます + \return RNG_FAILURE_E ECCオブジェクト用の新しいソルトを生成する際にエラーがある場合に返されます + + \param ctx リセットするecEncCtxオブジェクトへのポインタ + \param rng 新しいソルトを生成するために使用するRNGオブジェクトへのポインタ + _Example_ \code ecEncCtx* ctx; WC_RNG rng; wc_InitRng(&rng); ctx = wc_ecc_ctx_new(REQ_RESP_CLIENT, &rng); - // do secure communication + // 安全な通信を行う ... wc_ecc_ctx_reset(&ctx, &rng); - // do more secure communication + // さらに安全な通信を行う \endcode + \sa wc_ecc_ctx_new */ -int wc_ecc_ctx_reset(ecEncCtx* ctx, WC_RNG* rng); /* reset for use again w/o alloc/free */ +int wc_ecc_ctx_reset(ecEncCtx* ctx, WC_RNG* rng); /* 割り当て/解放なしで再使用のためにリセット */ /*! \ingroup ECC - \brief この関数は、wc_ecc_ctx_newの後にオプションで呼び出されることができます。暗号化、KDF、およびMACアルゴリズムをECENCENCCTXオブジェクトに設定します。 - \return 0 ECENCCTXオブジェクトの情報を正常に設定すると返されます。 - \return BAD_FUNC_ARG 指定されたecencctxオブジェクトがNULLの場合に返されます。 - \param ctx 情報を設定するECENCCTXへのポインタ - \param encAlgo 使用する暗号化アルゴリズム - \param kdfAlgo 使用するKDFアルゴリズム + + \brief この関数は、wc_ecc_ctx_newの後にオプションで呼び出すことができます。ecEncCtxオブジェクトに暗号化、KDF、およびMACアルゴリズムを設定します。 + + \return 0 ecEncCtxオブジェクトの情報を正常に設定した場合に返されます。 + \return BAD_FUNC_ARG 指定されたecEncCtxオブジェクトがNULLの場合に返されます。 + + \param ctx 情報を設定するecEncCtxへのポインタ + \param encAlgo 使用する暗号化アルゴリズム。 + \param kdfAlgo 使用するKDFアルゴリズム。 + \param macAlgo 使用するMACアルゴリズム。 + _Example_ \code ecEncCtx* ctx; - // initialize ctx + // ctxを初期化 if(wc_ecc_ctx_set_algo(&ctx, ecAES_128_CTR, ecHKDF_SHA256, ecHMAC_SHA256))) { - // error setting info + // 情報設定エラー } \endcode + \sa wc_ecc_ctx_new */ @@ -1137,9 +1436,14 @@ int wc_ecc_ctx_set_algo(ecEncCtx* ctx, byte encAlgo, byte kdfAlgo, /*! \ingroup ECC - \brief この関数はECENCENCCTXオブジェクトのソルトを返します。この関数は、ECENCCTXの状態がECSRV_INITまたはECCLI_INITの場合にのみ呼び出す必要があります。 - \return 成功すると 、ecEncCtx ソルトを返します - \return NULL ecencctxオブジェクトがNULLの場合、またはECENCCTXの状態がECSRV_INITまたはECCLI_INITでない場合に返されます。後者の2つのケースでは、この機能はそれぞれECSRV_BAD_STATEまたはECCLI_BAD_STATEにECENCCTXの状態を設定します。 + + \brief この関数は、ecEncCtxオブジェクトのソルトを返します。この関数は、ecEncCtxの状態がecSRV_INITまたはecCLI_INITの場合にのみ呼び出す必要があります。 + + \return Success 成功時に、ecEncCtxソルトを返します + \return NULL ecEncCtxオブジェクトがNULLの場合、またはecEncCtxの状態がecSRV_INITまたはecCLI_INITでない場合に返されます。後者の2つのケースでは、この関数はecEncCtxの状態をそれぞれecSRV_BAD_STATEまたはecCLI_BAD_STATEに設定します + + \param ctx ソルトを取得するecEncCtxオブジェクトへのポインタ + _Example_ \code ecEncCtx* ctx; @@ -1149,22 +1453,29 @@ int wc_ecc_ctx_set_algo(ecEncCtx* ctx, byte encAlgo, byte kdfAlgo, ctx = wc_ecc_ctx_new(REQ_RESP_CLIENT, &rng); salt = wc_ecc_ctx_get_own_salt(&ctx); if(salt == NULL) { - // error getting salt + // ソルト取得エラー } \endcode + \sa wc_ecc_ctx_new \sa wc_ecc_ctx_set_peer_salt + \sa wc_ecc_ctx_set_kdf_salt */ const byte* wc_ecc_ctx_get_own_salt(ecEncCtx*); /*! \ingroup ECC - \brief この関数は、ECENCENCCTXオブジェクトのピアソルトを設定します。 - \return 0 ECENCCTXオブジェクトのピアソルトの設定に成功したときに返されます。 - \return BAD_FUNC_ARG 指定されたecencctxオブジェクトがnullまたは無効なプロトコルがある場合、または指定されたソルトがNULLの場合 - \return BAD_ENC_STATE_E ecencctxの状態がECSRV_SALT_GETまたはECCLI_SALT_GETの場合に返されます。後者の2つのケースでは、この機能はそれぞれECSRV_BAD_STATEまたはECCLI_BAD_STATEにECENCCTXの状態を設定します。 - \param ctx ソルトを設定するためのecencctxへのポインタ + + \brief この関数は、ecEncCtxオブジェクトのピアソルトを設定します。 + + \return 0 ecEncCtxオブジェクトのピアソルトを正常に設定した場合に返されます。 + \return BAD_FUNC_ARG 指定されたecEncCtxオブジェクトがNULLまたは無効なプロトコルを持つ場合、または指定されたソルトがNULLの場合に返されます + \return BAD_ENC_STATE_E ecEncCtxの状態がecSRV_SALT_GETまたはecCLI_SALT_GETの場合に返されます。後者の2つのケースでは、この関数はecEncCtxの状態をそれぞれecSRV_BAD_STATEまたはecCLI_BAD_STATEに設定します + + \param ctx ソルトを設定するecEncCtxへのポインタ + \param salt ピアのソルトへのポインタ + _Example_ \code ecEncCtx* cliCtx, srvCtx; @@ -1180,27 +1491,67 @@ const byte* wc_ecc_ctx_get_own_salt(ecEncCtx*); srvSalt = wc_ecc_ctx_get_own_salt(&srvCtx); ret = wc_ecc_ctx_set_peer_salt(&cliCtx, srvSalt); \endcode + \sa wc_ecc_ctx_get_own_salt + \sa wc_ecc_ctx_set_kdf_salt */ int wc_ecc_ctx_set_peer_salt(ecEncCtx* ctx, const byte* salt); /*! \ingroup ECC - \brief この関数は、wc_ecc_ctx_set_peer_saltの前後にオプションで呼び出されることができます。ECENCCTXオブジェクトのオプションの情報を設定します。 - \return 0 ECENCCTXオブジェクトの情報を正常に設定すると返されます。 - \return BAD_FUNC_ARG 与えられたECENCCTXオブジェクトがNULLの場合、入力情報はNULLまたはサイズが無効です。 - \param ctx 情報を設定するECENCCTXへのポインタ - \param info 設定する情報を含むバッファへのポインタ + + \brief この関数は、KDFで使用するソルトポインタと長さをecEncCtxオブジェクトに設定します。 + + \return 0 ecEncCtxオブジェクトのソルトを正常に設定した場合に返されます。 + \return BAD_FUNC_ARG 指定されたecEncCtxオブジェクトがNULLの場合、または指定されたソルトがNULLで長さがNULLでない場合に返されます。 + + \param ctx ソルトを設定するecEncCtxへのポインタ + \param salt ソルトバッファへのポインタ + \param sz ソルトの長さ(バイト単位) + + _Example_ + \code + ecEncCtx* srvCtx; + WC_RNG rng; + byte cliSalt[] = { 固定ソルトデータ }; + word32 cliSaltLen = (word32)sizeof(cliSalt); + int ret; + + wc_InitRng(&rng); + cliCtx = wc_ecc_ctx_new(REQ_RESP_SERVER, &rng); + + ret = wc_ecc_ctx_set_kdf_salt(&cliCtx, cliSalt, cliSaltLen); + \endcode + + \sa wc_ecc_ctx_get_own_salt + \sa wc_ecc_ctx_get_peer_salt +*/ + +int wc_ecc_ctx_set_kdf_salt(ecEncCtx* ctx, const byte* salt, word32 sz); + +/*! + \ingroup ECC + + \brief この関数は、wc_ecc_ctx_set_peer_saltの前または後にオプションで呼び出すことができます。ecEncCtxオブジェクトのオプション情報を設定します。 + + \return 0 ecEncCtxオブジェクトの情報を正常に設定した場合に返されます。 + \return BAD_FUNC_ARG 指定されたecEncCtxオブジェクトがNULLの場合、入力infoがNULLの場合、またはそのサイズが無効な場合に返されます + + \param ctx 情報を設定するecEncCtxへのポインタ + \param info 設定する情報を含むバッファへのポインタ + \param sz infoバッファのサイズ + _Example_ \code ecEncCtx* ctx; - byte info[] = { initialize with information }; - // initialize ctx, get salt, + byte info[] = { 情報で初期化 }; + // ctxを初期化、ソルトを取得、 if(wc_ecc_ctx_set_info(&ctx, info, sizeof(info))) { - // error setting info + // 情報設定エラー } \endcode + \sa wc_ecc_ctx_new */ @@ -1208,36 +1559,42 @@ int wc_ecc_ctx_set_info(ecEncCtx* ctx, const byte* info, int sz); /*! \ingroup ECC - \brief この関数は指定された入力メッセージをMSGからOUTに暗号化します。この関数はパラメータとしてオプションのCTXオブジェクトを取ります。提供されている場合、ECENCCTXのEncalgo、Kdfalgo、およびMacalgoに基づいて暗号化が進みます。CTXが指定されていない場合、処理はデフォルトのアルゴリズム、ECAES_128_CBC、ECHKDF_SHA256、ECHMAC_SHA256で完了します。この機能は、メッセージがCTXで指定された暗号化タイプに従って埋め込まれている必要があります。 - \return 0 入力メッセージの暗号化に成功したら返されます - \return BAD_FUNC_ARG PRIVKEY、PUBKEY、MSG、MSGSZ、OUT、OUTSZがNULLの場合、またはCTXオブジェクトがサポートされていない暗号化タイプを指定します。 - \return BAD_ENC_STATE_E 指定されたCTXオブジェクトが暗号化に適していない状態にある場合に返されます。 - \return BUFFER_E 指定された出力バッファが小さすぎて暗号化された暗号文を保存する場合に返されます - \return MEMORY_E 共有秘密鍵のメモリの割り当て中にエラーがある場合に返されます - \param privKey 暗号化に使用する秘密鍵を含むECC_KEYオブジェクトへのポインタ - \param pubKey コミュニケーションを希望するピアの公開鍵を含むECC_Keyオブジェクトへのポインタ - \param msg 暗号化するメッセージを保持しているバッファへのポインタ - \param msgSz 暗号化するバッファのサイズ - \param out 暗号化された暗号文を保存するバッファへのポインタ - \param outSz OUTバッファ内の使用可能なサイズを含むWord32オブジェクトへのポインタ。メッセージの暗号化に成功したら、出力バッファに書き込まれたバイト数を保持します。 + + \brief この関数は、msgからoutへ指定された入力メッセージを暗号化します。この関数は、オプションのctxオブジェクトをパラメータとして受け取ります。提供された場合、暗号化はecEncCtxのencAlgo、kdfAlgo、およびmacAlgoに基づいて進行します。ctxが提供されない場合、デフォルトのアルゴリズムecAES_128_CBC、ecHKDF_SHA256、およびecHMAC_SHA256で処理が完了します。この関数では、ctxで指定された暗号化タイプに応じてメッセージがパディングされている必要があります。 + + \return 0 入力メッセージの暗号化に成功した場合に返されます + \return BAD_FUNC_ARG privKey、pubKey、msg、msgSz、out、またはoutSzがNULLの場合、またはctxオブジェクトがサポートされていない暗号化タイプを指定している場合に返されます + \return BAD_ENC_STATE_E 指定されたctxオブジェクトが暗号化に適していない状態にある場合に返されます + \return BUFFER_E 提供された出力バッファが暗号化された暗号文を格納するには小さすぎる場合に返されます + \return MEMORY_E 共有秘密鍵用のメモリを割り当てる際にエラーがある場合に返されます + + \param privKey 暗号化に使用する秘密鍵を含むecc_keyオブジェクトへのポインタ + \param pubKey 通信したいピアの公開鍵を含むecc_keyオブジェクトへのポインタ + \param msg 暗号化するメッセージを保持するバッファへのポインタ + \param msgSz 暗号化するバッファのサイズ + \param out 暗号化された暗号文を格納するバッファへのポインタ + \param outSz outバッファで利用可能なサイズを含むword32オブジェクトへのポインタ。メッセージの暗号化に成功すると、出力バッファに書き込まれたバイト数を保持します + \param ctx オプション:使用する異なる暗号化アルゴリズムを指定するecEncCtxオブジェクトへのポインタ + _Example_ \code - byte msg[] = { initialize with msg to encrypt. Ensure padded to block size }; + byte msg[] = { 暗号化するメッセージで初期化。ブロックサイズにパディングされていることを確認 }; byte out[sizeof(msg)]; word32 outSz = sizeof(out); int ret; ecc_key cli, serv; - // initialize cli with private key - // initialize serv with received public key + // cliを秘密鍵で初期化 + // servを受信した公開鍵で初期化 ecEncCtx* cliCtx, servCtx; - // initialize cliCtx and servCtx - // exchange salts + // cliCtxとservCtxを初期化 + // ソルトを交換 ret = wc_ecc_encrypt(&cli, &serv, msg, sizeof(msg), out, &outSz, cliCtx); if(ret != 0) { - // error encrypting message + // メッセージの暗号化エラー } \endcode + \sa wc_ecc_encrypt_ex \sa wc_ecc_decrypt */ @@ -1247,38 +1604,44 @@ int wc_ecc_encrypt(ecc_key* privKey, ecc_key* pubKey, const byte* msg, /*! \ingroup ECC - \brief この関数は指定された入力メッセージをMSGからOUTに暗号化します。この関数はパラメータとしてオプションのCTXオブジェクトを取ります。提供されている場合、ECENCCTXのEncalgo、Kdfalgo、およびMacalgoに基づいて暗号化が進みます。CTXが指定されていない場合、処理はデフォルトのアルゴリズム、ECAES_128_CBC、ECHKDF_SHA256、ECHMAC_SHA256で完了します。この機能は、メッセージがCTXで指定された暗号化タイプに従って埋め込まれている必要があります。 - \return 0 入力メッセージの暗号化に成功したら返されます - \return BAD_FUNC_ARG PRIVKEY、PUBKEY、MSG、MSGSZ、OUT、OUTSZがNULLの場合、またはCTXオブジェクトがサポートされていない暗号化タイプを指定します。 - \return BAD_ENC_STATE_E 指定されたCTXオブジェクトが暗号化に適していない状態にある場合に返されます。 - \return BUFFER_E 指定された出力バッファが小さすぎて暗号化された暗号文を保存する場合に返されます - \return MEMORY_E 共有秘密鍵のメモリの割り当て中にエラーがある場合に返されます - \param privKey 暗号化に使用する秘密鍵を含むECC_KEYオブジェクトへのポインタ - \param pubKey コミュニケーションを希望するピアの公開鍵を含むECC_Keyオブジェクトへのポインタ - \param msg 暗号化するメッセージを保持しているバッファへのポインタ - \param msgSz 暗号化するバッファのサイズ - \param out 暗号化された暗号文を保存するバッファへのポインタ - \param outSz OUTバッファ内の使用可能なサイズを含むWord32オブジェクトへのポインタ。メッセージの暗号化に成功したら、出力バッファに書き込まれたバイト数を保持します。 - \param ctx オプション:使用するさまざまな暗号化アルゴリズムを指定するECENCCTXオブジェクトへのポインタ + + \brief この関数は、msgからoutへ指定された入力メッセージを暗号化します。この関数は、オプションのctxオブジェクトをパラメータとして受け取ります。提供された場合、暗号化はecEncCtxのencAlgo、kdfAlgo、およびmacAlgoに基づいて進行します。ctxが提供されない場合、デフォルトのアルゴリズムecAES_128_CBC、ecHKDF_SHA256、およびecHMAC_SHA256で処理が完了します。この関数では、ctxで指定された暗号化タイプに応じてメッセージがパディングされている必要があります。 + + \return 0 入力メッセージの暗号化に成功した場合に返されます + \return BAD_FUNC_ARG privKey、pubKey、msg、msgSz、out、またはoutSzがNULLの場合、またはctxオブジェクトがサポートされていない暗号化タイプを指定している場合に返されます + \return BAD_ENC_STATE_E 指定されたctxオブジェクトが暗号化に適していない状態にある場合に返されます + \return BUFFER_E 提供された出力バッファが暗号化された暗号文を格納するには小さすぎる場合に返されます + \return MEMORY_E 共有秘密鍵用のメモリを割り当てる際にエラーがある場合に返されます + + \param privKey 暗号化に使用する秘密鍵を含むecc_keyオブジェクトへのポインタ + \param pubKey 通信したいピアの公開鍵を含むecc_keyオブジェクトへのポインタ + \param msg 暗号化するメッセージを保持するバッファへのポインタ + \param msgSz 暗号化するバッファのサイズ + \param out 暗号化された暗号文を格納するバッファへのポインタ + \param outSz outバッファで利用可能なサイズを含むword32オブジェクトへのポインタ。メッセージの暗号化に成功すると、出力バッファに書き込まれたバイト数を保持します + \param ctx オプション:使用する異なる暗号化アルゴリズムを指定するecEncCtxオブジェクトへのポインタ + \param compressed 公開鍵フィールドを圧縮形式で出力する。 + _Example_ \code - byte msg[] = { initialize with msg to encrypt. Ensure padded to block size }; + byte msg[] = { 暗号化するメッセージで初期化。ブロックサイズにパディングされていることを確認 }; byte out[sizeof(msg)]; word32 outSz = sizeof(out); int ret; ecc_key cli, serv; - // initialize cli with private key - // initialize serv with received public key + // cliを秘密鍵で初期化 + // servを受信した公開鍵で初期化 ecEncCtx* cliCtx, servCtx; - // initialize cliCtx and servCtx - // exchange salts + // cliCtxとservCtxを初期化 + // ソルトを交換 ret = wc_ecc_encrypt_ex(&cli, &serv, msg, sizeof(msg), out, &outSz, cliCtx, 1); if(ret != 0) { - // error encrypting message + // メッセージの暗号化エラー } \endcode + \sa wc_ecc_encrypt \sa wc_ecc_decrypt */ @@ -1288,38 +1651,43 @@ int wc_ecc_encrypt_ex(ecc_key* privKey, ecc_key* pubKey, const byte* msg, /*! \ingroup ECC - \brief この関数はMSGからOUTへの暗号文を復号化します。この関数はパラメータとしてオプションのCTXオブジェクトを取ります。提供されている場合、ECENCCTXのEncalgo、Kdfalgo、およびMacalgoに基づいて暗号化が進みます。CTXが指定されていない場合、処理はデフォルトのアルゴリズム、ECAES_128_CBC、ECHKDF_SHA256、ECHMAC_SHA256で完了します。この機能は、メッセージがCTXで指定された暗号化タイプに従って埋め込まれている必要があります。 - \return 0 入力メッセージの復号化に成功したときに返されます - \return BAD_FUNC_ARG PRIVKEY、PUBKEY、MSG、MSGSZ、OUT、OUTSZがNULLの場合、またはCTXオブジェクトがサポートされていない暗号化タイプを指定します。 - \return BAD_ENC_STATE_E 指定されたCTXオブジェクトが復号化に適していない状態にある場合に返されます。 - \return BUFFER_E 供給された出力バッファが小さすぎて復号化された平文を保存する場合は返されます。 - \return MEMORY_E 共有秘密鍵のメモリの割り当て中にエラーがある場合に返されます - \param privKey 復号化に使用する秘密鍵を含むECC_Keyオブジェクトへのポインタ - \param pubKey コミュニケーションを希望するピアの公開鍵を含むECC_Keyオブジェクトへのポインタ - \param msg 暗号文を復号化するためのバッファへのポインタ - \param msgSz 復号化するバッファのサイズ - \param out 復号化された平文を保存するバッファへのポインタ - \param outSz OUTバッファ内の使用可能なサイズを含むWord32オブジェクトへのポインタ。暗号文を正常に復号化すると、出力バッファに書き込まれたバイト数を保持します。 + + \brief この関数は、msgからoutへ暗号文を復号します。この関数は、オプションのctxオブジェクトをパラメータとして受け取ります。提供された場合、暗号化はecEncCtxのencAlgo、kdfAlgo、およびmacAlgoに基づいて進行します。ctxが提供されない場合、デフォルトのアルゴリズムecAES_128_CBC、ecHKDF_SHA256、およびecHMAC_SHA256で処理が完了します。この関数では、ctxで指定された暗号化タイプに応じてメッセージがパディングされている必要があります。 + + \return 0 入力メッセージの復号に成功した場合に返されます + \return BAD_FUNC_ARG privKey、pubKey、msg、msgSz、out、またはoutSzがNULLの場合、またはctxオブジェクトがサポートされていない暗号化タイプを指定している場合に返されます + \return BAD_ENC_STATE_E 指定されたctxオブジェクトが復号に適していない状態にある場合に返されます + \return BUFFER_E 提供された出力バッファが復号された平文を格納するには小さすぎる場合に返されます + \return MEMORY_E 共有秘密鍵用のメモリを割り当てる際にエラーがある場合に返されます + + \param privKey 復号に使用する秘密鍵を含むecc_keyオブジェクトへのポインタ + \param pubKey 通信したいピアの公開鍵を含むecc_keyオブジェクトへのポインタ + \param msg 復号する暗号文を保持するバッファへのポインタ + \param msgSz 復号するバッファのサイズ + \param out 復号された平文を格納するバッファへのポインタ + \param outSz outバッファで利用可能なサイズを含むword32オブジェクトへのポインタ。暗号文の復号に成功すると、出力バッファに書き込まれたバイト数を保持します + \param ctx オプション:使用する異なる復号アルゴリズムを指定するecEncCtxオブジェクトへのポインタ + _Example_ \code - byte cipher[] = { initialize with - ciphertext to decrypt. Ensure padded to block size }; + byte cipher[] = { 復号する暗号文で初期化。ブロックサイズにパディングされていることを確認 }; byte plain[sizeof(cipher)]; word32 plainSz = sizeof(plain); int ret; ecc_key cli, serv; - // initialize cli with private key - // initialize serv with received public key + // cliを秘密鍵で初期化 + // servを受信した公開鍵で初期化 ecEncCtx* cliCtx, servCtx; - // initialize cliCtx and servCtx - // exchange salts + // cliCtxとservCtxを初期化 + // ソルトを交換 ret = wc_ecc_decrypt(&cli, &serv, cipher, sizeof(cipher), plain, &plainSz, cliCtx); if(ret != 0) { - // error decrypting message + // メッセージの復号エラー } \endcode + \sa wc_ecc_encrypt \sa wc_ecc_encrypt_ex */ @@ -1330,9 +1698,18 @@ int wc_ecc_decrypt(ecc_key* privKey, ecc_key* pubKey, const byte* msg, /*! \ingroup ECC - \brief 非ブロック操作のためのECCサポートを有効にします。次のビルドオプションを使用した単精度(SP)数学でサポートされています.WolfSSL_SP_SP_SMALL WOLFSSL_SP_NO_MALLOC WC_ECC_NONBLOCK - \return 0 コールバックコンテキストを入力メッセージに正常に設定すると返されます。 - \param key ECC_KEYオブジェクトへのポインタ + + \brief ノンブロッキング操作のためのECCサポートを有効にします。次のビルドオプションでSingle Precision(SP)数学でサポートされています: + WOLFSSL_SP_NONBLOCK + WOLFSSL_SP_SMALL + WOLFSSL_SP_NO_MALLOC + WC_ECC_NONBLOCK + + \return 0 入力メッセージのコールバックコンテキストの設定に成功した場合に返されます + + \param key ecc_keyオブジェクトへのポインタ + \param ctx SP用のスタックデータキャッシュを持つecc_nb_ctx_t構造体へのポインタ + _Example_ \code int ret; @@ -1345,13 +1722,13 @@ int wc_ecc_decrypt(ecc_key* privKey, ecc_key* pubKey, const byte* msg, if (ret == 0) { do { ret = wc_ecc_verify_hash_ex( - &r, &s, // r/s as mp_int - hash, hashSz, // computed hash digest - &verify_res, // verification result 1=success + &r, &s, // mp_intとしてのr/s + hash, hashSz, // 計算されたハッシュダイジェスト + &verify_res, // 検証結果 1=成功 &key ); - // TODO: Real-time work can be called here + // TODO: リアルタイム作業をここで呼び出すことができます } while (ret == FP_WOULDBLOCK); } wc_ecc_free(&key); @@ -1359,3 +1736,28 @@ int wc_ecc_decrypt(ecc_key* privKey, ecc_key* pubKey, const byte* msg, \endcode */ int wc_ecc_set_nonblock(ecc_key *key, ecc_nb_ctx_t* ctx); + +/*! + \ingroup ECC + + \brief 指定されたサイズより大きいキーを持つカーブまたはカーブIDに一致するカーブを比較し、より小さいキーサイズを持つカーブをキーに設定します。 + + \return 0 キーの設定に成功した場合に返されます + + \param keysize キーサイズ(バイト単位) + \param curve_id カーブID + + _Example_ + \code int ret; + ecc_key ecc; + + ret = wc_ecc_init(&ecc); + if (ret != 0) + return ret; + ret = wc_ecc_set_curve(&ecc, 32, ECC_SECP256R1)); + if (ret != 0) + return ret; + + \endcode +*/ +int wc_ecc_set_curve(ecc_key *key, int keysize, int curve_id); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/eccsi.h b/doc/dox_comments/header_files-ja/eccsi.h index e800096ba0..2c44395bdc 100644 --- a/doc/dox_comments/header_files-ja/eccsi.h +++ b/doc/dox_comments/header_files-ja/eccsi.h @@ -1,104 +1,129 @@ /*! + \ingroup ECCSI_Setup */ int wc_InitEccsiKey(EccsiKey* key, void* heap, int devId); /*! + \ingroup ECCSI_Setup */ int wc_InitEccsiKey_ex(EccsiKey* key, int keySz, int curveId, void* heap, int devId); /*! + \ingroup ECCSI_Setup */ void wc_FreeEccsiKey(EccsiKey* key); /*! + \ingroup ECCSI_Setup */ int wc_MakeEccsiKey(EccsiKey* key, WC_RNG* rng); /*! + \ingroup ECCSI_Operations */ int wc_MakeEccsiPair(EccsiKey* key, WC_RNG* rng, enum wc_HashType hashType, const byte* id, word32 idSz, mp_int* ssk, ecc_point* pvt); /*! + \ingroup ECCSI_Operations */ int wc_ValidateEccsiPair(EccsiKey* key, enum wc_HashType hashType, const byte* id, word32 idSz, const mp_int* ssk, ecc_point* pvt, int* valid); /*! + \ingroup ECCSI_Operations */ int wc_ValidateEccsiPvt(EccsiKey* key, const ecc_point* pvt, int* valid); /*! + \ingroup ECCSI_Operations */ int wc_EncodeEccsiPair(const EccsiKey* key, mp_int* ssk, ecc_point* pvt, byte* data, word32* sz); /*! + \ingroup ECCSI_Operations */ int wc_EncodeEccsiSsk(const EccsiKey* key, mp_int* ssk, byte* data, word32* sz); /*! + \ingroup ECCSI_Operations */ int wc_EncodeEccsiPvt(const EccsiKey* key, ecc_point* pvt, byte* data, word32* sz, int raw); /*! + \ingroup ECCSI_Operations */ int wc_DecodeEccsiPair(const EccsiKey* key, const byte* data, word32 sz, mp_int* ssk, ecc_point* pvt); /*! + \ingroup ECCSI_Operations */ int wc_DecodeEccsiSsk(const EccsiKey* key, const byte* data, word32 sz, mp_int* ssk); /*! + \ingroup ECCSI_Operations */ int wc_DecodeEccsiPvt(const EccsiKey* key, const byte* data, word32 sz, ecc_point* pvt); /*! + \ingroup ECCSI_Operations */ int wc_DecodeEccsiPvtFromSig(const EccsiKey* key, const byte* sig, word32 sz, ecc_point* pvt); /*! + \ingroup ECCSI_Setup */ int wc_ExportEccsiKey(EccsiKey* key, byte* data, word32* sz); /*! + \ingroup ECCSI_Setup */ int wc_ImportEccsiKey(EccsiKey* key, const byte* data, word32 sz); /*! + \ingroup ECCSI_Setup */ int wc_ExportEccsiPrivateKey(EccsiKey* key, byte* data, word32* sz); /*! + \ingroup ECCSI_Setup */ int wc_ImportEccsiPrivateKey(EccsiKey* key, const byte* data, word32 sz); /*! + \ingroup ECCSI_Setup */ int wc_ExportEccsiPublicKey(EccsiKey* key, byte* data, word32* sz, int raw); /*! + \ingroup ECCSI_Setup */ int wc_ImportEccsiPublicKey(EccsiKey* key, const byte* data, word32 sz, int trusted); /*! + \ingroup ECCSI_Operations */ int wc_HashEccsiId(EccsiKey* key, enum wc_HashType hashType, const byte* id, word32 idSz, ecc_point* pvt, byte* hash, byte* hashSz); /*! + \ingroup ECCSI_Setup */ int wc_SetEccsiHash(EccsiKey* key, const byte* hash, byte hashSz); /*! + \ingroup ECCSI_Setup */ int wc_SetEccsiPair(EccsiKey* key, const mp_int* ssk, const ecc_point* pvt); /*! + \ingroup ECCSI_Operations */ int wc_SignEccsiHash(EccsiKey* key, WC_RNG* rng, enum wc_HashType hashType, const byte* msg, word32 msgSz, byte* sig, word32* sigSz); /*! + \ingroup ECCSI_Operations */ int wc_VerifyEccsiHash(EccsiKey* key, enum wc_HashType hashType, const byte* msg, word32 msgSz, const byte* sig, word32 sigSz, diff --git a/doc/dox_comments/header_files-ja/ed25519.h b/doc/dox_comments/header_files-ja/ed25519.h index 64a4342e9e..81be1e1fd8 100644 --- a/doc/dox_comments/header_files-ja/ed25519.h +++ b/doc/dox_comments/header_files-ja/ed25519.h @@ -1,23 +1,23 @@ /*! \ingroup ED25519 - \brief この関数はEd25519秘密鍵からEd25519公開鍵を生成します。公開鍵をバッファpubkeyに出力します。 - この関数の呼び出しに先立ち、ed25519_key構造体にはEd25519秘密鍵がインポートされている必要があります。 - \return 0 公開鍵の作成に成功したときに返されます。 - \return BAD_FUNC_ARG 引数keyまたはpubKeyがNULLの場合、または指定された鍵サイズが32バイトではない場合(ED25519に32バイトのキーがあります)。 - \return ECC_PRIV_KEY_E ed25519_key構造体にEd25519秘密鍵がインポートされていない場合に返されます。 - \return MEMORY_E 関数の実行中にメモリを割り当てエラーがある場合に返されます。 + \brief この関数は、ed25519_keyオブジェクトに格納された秘密鍵からEd25519公開鍵を生成します。公開鍵をバッファpubKeyに格納します。 - \param [in] key Ed25519秘密鍵がインポートされているed25519_key構造体へのポインタ。 - \param [out] pubKey 公開鍵を出力するバッファへのポインタ。 - \param [in] pubKeySz バッファのサイズ。常にED25519_PUB_KEY_SIZE(32)でなければなりません。 + \return 0 公開鍵の作成に成功した場合に返されます。 + \return BAD_FUNC_ARG keyまたはpubKeyがNULLと評価された場合、または指定されたキーサイズが32バイトでない場合に返されます(Ed25519は32バイトのキーを持ちます)。 + \return ECC_PRIV_KEY_E ed25519_keyオブジェクトに秘密鍵が含まれていない場合に返されます。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 + + \param [in] key キーを生成するed25519_keyへのポインタ。 + \param [out] pubKey 公開鍵を格納するバッファへのポインタ。 + \param [in] pubKeySz 公開鍵のサイズ。ED25519_PUB_KEY_SIZEである必要があります。 _Example_ \code int ret; ed25519_key key; - byte priv[] = { initialize with 32 byte private key }; + byte priv[] = { 32バイトの秘密鍵で初期化 }; byte pub[32]; word32 pubSz = sizeof(pub); @@ -25,9 +25,10 @@ wc_ed25519_import_private_only(priv, sizeof(priv), &key); ret = wc_ed25519_make_public(&key, pub, &pubSz); if (ret != 0) { - // error making public key + // 公開鍵の作成エラー } \endcode + \sa wc_ed25519_init \sa wc_ed25519_import_private_only \sa wc_ed25519_make_key @@ -38,12 +39,16 @@ int wc_ed25519_make_public(ed25519_key* key, unsigned char* pubKey, /*! \ingroup ED25519 - \brief この関数は新しいed25519_key構造体を生成し、それを引数keyのバッファに格納します。 - \return 0 ed25519_key構造体を正常に生成すると返されます。 - \return BAD_FUNC_ARG RNGまたはKEYがNULLに評価された場合、または指定されたkeysizeが32バイトではない場合(Ed25519鍵には常に32バイトを指定する必要があります)。 - \return MEMORY_E 関数の実行中にメモリ割り当てエラーが発生した場合に返されます。 - \param [in] rng RNGキーを生成する初期化されたRNGオブジェクトへのポインタ。 - \param [in] keysize keyの長さ。ED25519の場合は常に32になります。 + + \brief この関数は新しいEd25519キーを生成し、それをkeyに格納します。 + + \return 0 ed25519_keyの作成に成功した場合に返されます。 + \return BAD_FUNC_ARG rngまたはkeyがNULLと評価された場合、または指定されたキーサイズが32バイトでない場合に返されます(Ed25519は32バイトのキーを持ちます)。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 + + \param [in] rng キーを生成するために使用する初期化済みRNGオブジェクトへのポインタ。 + \param [in] keysize 生成するキーの長さ。Ed25519の場合は常に32である必要があります。 + \param [in,out] key キーを生成するed25519_keyへのポインタ。 _Example_ \code @@ -56,9 +61,10 @@ int wc_ed25519_make_public(ed25519_key* key, unsigned char* pubKey, wc_ed25519_init(&key); wc_ed25519_make_key(&rng, 32, &key); if (ret != 0) { - // error making key + // キー作成エラー } \endcode + \sa wc_ed25519_init */ @@ -66,16 +72,18 @@ int wc_ed25519_make_key(WC_RNG* rng, int keysize, ed25519_key* key); /*! \ingroup ED25519 - \brief この関数は、ed25519_key構造体を使用してメッセージに署名します。 - \return 0 メッセージの署名を正常に生成すると返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLに評価された場合、または出力バッファが小さすぎて生成された署名を保存する場合は返されます。 - \return MEMORY_E 関数の実行中にメモリ割り当てエラーが発生した場合に返されます。 + + \brief この関数は、真正性を保証するためにed25519_keyオブジェクトを使用してメッセージに署名します。 + + \return 0 メッセージの署名の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、または出力バッファが生成された署名を格納するには小さすぎる場合に返されます。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 \param [in] in 署名するメッセージを含むバッファへのポインタ。 - \param [in] inlen 署名するメッセージのサイズ - \param [out] out 生成された署名を格納するためのバッファ。 - \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功したときに、書き込まれたバイト数を保持します。 - \param [in] key 署名を生成するために使用する秘密鍵を保持しているed25519_key構造体へのポインタ。 + \param [in] inlen 署名するメッセージの長さ。 + \param [out] out 生成された署名を格納するバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功した後、outに書き込まれたバイト数が格納されます。 + \param [in] key 署名を生成するために使用する秘密ed25519_keyへのポインタ。 _Example_ \code @@ -83,18 +91,19 @@ int wc_ed25519_make_key(WC_RNG* rng, int keysize, ed25519_key* key); WC_RNG rng; int ret, sigSz; - byte sig[64]; // will hold generated signature + byte sig[64]; // 生成された署名を保持 sigSz = sizeof(sig); - byte message[] = { initialize with message }; + byte message[] = { メッセージで初期化 }; - wc_InitRng(&rng); // initialize rng - wc_ed25519_init(&key); // initialize key - wc_ed25519_make_key(&rng, 32, &key); // make public/private key pair + wc_InitRng(&rng); // rngを初期化 + wc_ed25519_init(&key); // keyを初期化 + wc_ed25519_make_key(&rng, 32, &key); // 公開/秘密鍵ペアを作成 ret = wc_ed25519_sign_msg(message, sizeof(message), sig, &sigSz, &key); if (ret != 0) { - // error generating message signature + // メッセージ署名の生成エラー } \endcode + \sa wc_ed25519ctx_sign_msg \sa wc_ed25519ph_sign_hash \sa wc_ed25519ph_sign_msg @@ -106,18 +115,20 @@ int wc_ed25519_sign_msg(const byte* in, word32 inlen, byte* out, /*! \ingroup ED25519 - \brief この関数は、ed25519_key構造体を使用してメッセージに署名します。 - コンテキストは署名されるデータの一部です。 - \return 0 メッセージの署名を正常に生成すると返されます。 - \return BAD_FUNC_ARG 返された入力パラメータはNULLに評価されます。出力バッファが小さすぎて生成された署名を保存するには小さすぎます。 - \return MEMORY_E 関数の実行中にメモリ割り当てエラーが発生した場合に返されます。 + + \brief この関数は、真正性を保証するためにed25519_keyオブジェクトを使用してメッセージに署名します。コンテキストは署名されるデータの一部です。 + + \return 0 メッセージの署名の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、または出力バッファが生成された署名を格納するには小さすぎる場合に返されます。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 + \param [in] in 署名するメッセージを含むバッファへのポインタ。 - \param [in] inlen 署名するメッセージのサイズ - \param [out] out 生成された署名を格納するためのバッファ。 - \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 - \param [in] key 署名を生成するために使用する秘密鍵を保持しているed25519_key構造体へのポインタ。 + \param [in] inlen 署名するメッセージの長さ。 + \param [out] out 生成された署名を格納するバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功した後、outに書き込まれたバイト数が格納されます。 + \param [in] key 署名を生成するために使用する秘密ed25519_keyへのポインタ。 \param [in] context メッセージが署名されているコンテキストを含むバッファへのポインタ。 - \param [in] contextLen コンテキストバッファのサイズ + \param [in] contextLen コンテキストバッファの長さ。 _Example_ \code @@ -125,20 +136,21 @@ int wc_ed25519_sign_msg(const byte* in, word32 inlen, byte* out, WC_RNG rng; int ret, sigSz; - byte sig[64]; // will hold generated signature + byte sig[64]; // 生成された署名を保持 sigSz = sizeof(sig); - byte message[] = { initialize with message }; - byte context[] = { initialize with context of signing }; + byte message[] = { メッセージで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; - wc_InitRng(&rng); // initialize rng - wc_ed25519_init(&key); // initialize key - wc_ed25519_make_key(&rng, 32, &key); // make public/private key pair + wc_InitRng(&rng); // rngを初期化 + wc_ed25519_init(&key); // keyを初期化 + wc_ed25519_make_key(&rng, 32, &key); // 公開/秘密鍵ペアを作成 ret = wc_ed25519ctx_sign_msg(message, sizeof(message), sig, &sigSz, &key, context, sizeof(context)); if (ret != 0) { - // error generating message signature + // メッセージ署名の生成エラー } \endcode + \sa wc_ed25519_sign_msg \sa wc_ed25519ph_sign_hash \sa wc_ed25519ph_sign_msg @@ -151,22 +163,20 @@ int wc_ed25519ctx_sign_msg(const byte* in, word32 inlen, byte* out, /*! \ingroup ED25519 - \brief この関数は、ed25519_key構造体を使用してメッセージダイジェストに署名します。 - コンテキストは署名されるデータの一部として含まれています。 - 署名計算の前にメッセージは事前にハッシュされています。 - メッセージダイジェストを作成するために使用されるハッシュアルゴリズムはShake-256でなければなりません。 - \return 0 メッセージダイジェストの署名を正常に生成すると返されます。 - \return BAD_FUNC_ARG 返された入力パラメータはNULLに評価されます。出力バッファが小さすぎて生成された署名を保存するには小さすぎます。 - \return MEMORY_E 関数の実行中にメモリ割り当てエラーが発生した場合に返されます。 + \brief この関数は、真正性を保証するためにed25519_keyオブジェクトを使用してメッセージダイジェストに署名します。コンテキストは署名されるデータの一部として含まれます。メッセージは署名計算前に事前ハッシュ化されます。 + + \return 0 メッセージダイジェストの署名の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、または出力バッファが生成された署名を格納するには小さすぎる場合に返されます。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 \param [in] hash 署名するメッセージのハッシュを含むバッファへのポインタ。 - \param [in] hashLen 署名するメッセージのハッシュのサイズ - \param [out] out 生成された署名を格納するためのバッファ。 - \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 - \param [in] key 署名を生成するのに使用する秘密鍵を含んだed25519_key構造体へのポインタ。 + \param [in] hashLen 署名するメッセージのハッシュの長さ。 + \param [out] out 生成された署名を格納するバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功した後、outに書き込まれたバイト数が格納されます。 + \param [in] key 署名を生成するために使用する秘密ed25519_keyへのポインタ。 \param [in] context メッセージが署名されているコンテキストを含むバッファへのポインタ。 - \param [in] contextLen コンテキストバッファのサイズ + \param [in] contextLen コンテキストバッファの長さ。 _Example_ \code @@ -174,20 +184,21 @@ int wc_ed25519ctx_sign_msg(const byte* in, word32 inlen, byte* out, WC_RNG rng; int ret, sigSz; - byte sig[64]; // will hold generated signature + byte sig[64]; // 生成された署名を保持 sigSz = sizeof(sig); - byte hash[] = { initialize with SHA-512 hash of message }; - byte context[] = { initialize with context of signing }; + byte hash[] = { メッセージのSHA-512ハッシュで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; - wc_InitRng(&rng); // initialize rng - wc_ed25519_init(&key); // initialize key - wc_ed25519_make_key(&rng, 32, &key); // make public/private key pair + wc_InitRng(&rng); // rngを初期化 + wc_ed25519_init(&key); // keyを初期化 + wc_ed25519_make_key(&rng, 32, &key); // 公開/秘密鍵ペアを作成 ret = wc_ed25519ph_sign_hash(hash, sizeof(hash), sig, &sigSz, &key, context, sizeof(context)); if (ret != 0) { - // error generating message signature + // メッセージ署名の生成エラー } \endcode + \sa wc_ed25519_sign_msg \sa wc_ed25519ctx_sign_msg \sa wc_ed25519ph_sign_msg @@ -200,17 +211,20 @@ int wc_ed25519ph_sign_hash(const byte* hash, word32 hashLen, byte* out, /*! \ingroup ED25519 - \brief この関数は、ed25519_key構造体を使用して認証を保証するメッセージに署名します。コンテキストは署名されたデータの一部として含まれています。署名計算の前にメッセージは事前にハッシュされています。 - \return 0 メッセージの署名を正常に生成すると返されます。 - \return BAD_FUNC_ARG 返された入力パラメータはNULLに評価されます。出力バッファが小さすぎて生成された署名を保存するには小さすぎます。 - \return MEMORY_E 関数の実行中にメモリを割り当てエラーが発生した場合に返されます。 + + \brief この関数は、真正性を保証するためにed25519_keyオブジェクトを使用してメッセージに署名します。コンテキストは署名されるデータの一部として含まれます。メッセージは署名計算前に事前ハッシュ化されます。 + + \return 0 メッセージの署名の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、または出力バッファが生成された署名を格納するには小さすぎる場合に返されます。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 + \param [in] in 署名するメッセージを含むバッファへのポインタ。 - \param [in] inlen 署名するメッセージのインレル長。 - \param [out] out 生成された署名を格納するためのバッファ。 - \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 - \param [in] key 署名を生成するプライベートed25519_key構造体へのポインタ。 + \param [in] inlen 署名するメッセージの長さ。 + \param [out] out 生成された署名を格納するバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功した後、outに書き込まれたバイト数が格納されます。 + \param [in] key 署名を生成するために使用する秘密ed25519_keyへのポインタ。 \param [in] context メッセージが署名されているコンテキストを含むバッファへのポインタ。 - \param [in] contextLen コンテキストバッファのサイズ + \param [in] contextLen コンテキストバッファの長さ。 _Example_ \code @@ -218,20 +232,21 @@ int wc_ed25519ph_sign_hash(const byte* hash, word32 hashLen, byte* out, WC_RNG rng; int ret, sigSz; - byte sig[64]; // will hold generated signature + byte sig[64]; // 生成された署名を保持 sigSz = sizeof(sig); - byte message[] = { initialize with message }; - byte context[] = { initialize with context of signing }; + byte message[] = { メッセージで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; - wc_InitRng(&rng); // initialize rng - wc_ed25519_init(&key); // initialize key - wc_ed25519_make_key(&rng, 32, &key); // make public/private key pair + wc_InitRng(&rng); // rngを初期化 + wc_ed25519_init(&key); // keyを初期化 + wc_ed25519_make_key(&rng, 32, &key); // 公開/秘密鍵ペアを作成 ret = wc_ed25519ph_sign_msg(message, sizeof(message), sig, &sigSz, &key, context, sizeof(context)); if (ret != 0) { - // error generating message signature + // メッセージ署名の生成エラー } \endcode + \sa wc_ed25519_sign_msg \sa wc_ed25519ctx_sign_msg \sa wc_ed25519ph_sign_hash @@ -244,36 +259,37 @@ int wc_ed25519ph_sign_msg(const byte* in, word32 inlen, byte* out, /*! \ingroup ED25519 - \brief この関数はメッセージのEd25519署名を検証します。 - retを介して答えを返し、有効な署名の場合は1、無効な署名の場合には0を返します。 - \return 0 署名検証と認証を正常に実行したときに返されます。 - \return BAD_FUNC_ARG いずれかの入力パラメータがNULLに評価された場合、またはSIGLENが署名の実際の長さと一致しない場合に返されます。 - \return SIG_VERIFY_E 検証が完了した場合は返されますが、生成された署名は提供された署名と一致しません。 + \brief この関数は、真正性を保証するためにメッセージのEd25519署名を検証します。答えはretを通じて返され、1は有効な署名に対応し、0は無効な署名に対応します。 + + \return 0 署名の検証と認証の実行に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、またはsiglenが署名の実際の長さと一致しない場合に返されます。 + \return SIG_VERIFY_E 検証は完了したが、生成された署名が提供された署名と一致しない場合に返されます。 - \param [in] sig 検証するシグネチャを含むバッファへのポインタ。 - \param [in] siglen 検証するシグネチャのサイズ - \param [in] msg メッセージを含むバッファへのポインタ - \param [in] msgLen 検証するメッセージのサイズ - \param [out] ret 検証の結果を格納する変数へのポインタ。1はメッセージが正常に検証されたことを示します。 - \param [in] key 署名を検証するためのEd25519公開鍵へのポインタ。 + \param [in] sig 検証する署名を含むバッファへのポインタ。 + \param [in] siglen 検証する署名の長さ。 + \param [in] msg 検証するメッセージを含むバッファへのポインタ。 + \param [in] msgLen 検証するメッセージの長さ。 + \param [out] ret 検証結果へのポインタ。1はメッセージが正常に検証されたことを示します。 + \param [in] key 署名を検証するために使用する公開Ed25519鍵へのポインタ。 _Example_ \code ed25519_key key; int ret, verified = 0; - byte sig[] { initialize with received signature }; - byte msg[] = { initialize with message }; - // initialize key with received public key + byte sig[] { 受信した署名で初期化 }; + byte msg[] = { メッセージで初期化 }; + // 受信した公開鍵でkeyを初期化 ret = wc_ed25519_verify_msg(sig, sizeof(sig), msg, sizeof(msg), &verified, &key); if (ret < 0) { - // error performing verification + // 検証実行エラー } else if (verified == 0) - // the signature is invalid + // 署名が無効 } \endcode + \sa wc_ed25519ctx_verify_msg \sa wc_ed25519ph_verify_hash \sa wc_ed25519ph_verify_msg @@ -285,40 +301,40 @@ int wc_ed25519_verify_msg(const byte* sig, word32 siglen, const byte* msg, /*! \ingroup ED25519 - \brief この関数はメッセージのEd25519署名を検証します。 - コンテキストは署名されたデータの一部として含まれています。 - 答えは変数retを介して返され、署名が有効ならば1、無効ならば0を返します。 - - \return 0 署名検証と認証を正常に実行したときに返されます。 - \return BAD_FUNC_ARG いずれかの入力パラメータがNULLに評価された場合、またはSIGLENが署名の実際の長さと一致しない場合に返されます。 - \return SIG_VERIFY_E 検証が完了した場合は返されますが、生成された署名は提供された署名と一致しません。 - - \param [in] sig 検証するシグネチャを含むバッファへのポインタ。 - \param [in] siglen 検証するシグネチャのサイズ - \param [in] msg メッセージを含むバッファへのポインタ - \param [in] msgLen 検証するメッセージのサイズ - \param [out] ret 検証の結果を格納する変数へのポインタ。1はメッセージが正常に検証されたことを示します。 - \param [in] key 署名を検証するためのEd25519公開鍵へのポインタ。 - \param [in] context メッセージが署名されているコンテキストを含むバッファへのポインタ。 - \param [in] contextLen コンテキストバッファのサイズ + + \brief この関数は、真正性を保証するためにメッセージのEd25519署名を検証します。コンテキストは検証されるデータの一部として含まれます。答えはretを通じて返され、1は有効な署名に対応し、0は無効な署名に対応します。 + + \return 0 署名の検証と認証の実行に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、またはsiglenが署名の実際の長さと一致しない場合に返されます。 + \return SIG_VERIFY_E 検証は完了したが、生成された署名が提供された署名と一致しない場合に返されます。 + + \param [in] sig 検証する署名を含むバッファへのポインタ。 + \param [in] siglen 検証する署名の長さ。 + \param [in] msg 検証するメッセージを含むバッファへのポインタ。 + \param [in] msgLen 検証するメッセージの長さ。 + \param [out] ret 検証結果へのポインタ。1はメッセージが正常に検証されたことを示します。 + \param [in] key 署名を検証するために使用する公開Ed25519鍵へのポインタ。 + \param [in] context メッセージが署名されたコンテキストを含むバッファへのポインタ。 + \param [in] contextLen コンテキストバッファの長さ。 _Example_ \code ed25519_key key; int ret, verified = 0; - byte sig[] { initialize with received signature }; - byte msg[] = { initialize with message }; - byte context[] = { initialize with context of signature }; - // initialize key with received public key + byte sig[] { 受信した署名で初期化 }; + byte msg[] = { メッセージで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; + // 受信した公開鍵でkeyを初期化 ret = wc_ed25519ctx_verify_msg(sig, sizeof(sig), msg, sizeof(msg), &verified, &key, ); if (ret < 0) { - // error performing verification + // 検証実行エラー } else if (verified == 0) - // the signature is invalid + // 署名が無効 } \endcode + \sa wc_ed25519_verify_msg \sa wc_ed25519ph_verify_hash \sa wc_ed25519ph_verify_msg @@ -331,41 +347,41 @@ int wc_ed25519ctx_verify_msg(const byte* sig, word32 siglen, const byte* msg, /*! \ingroup ED25519 - \brief この関数は、メッセージのダイジェストのEd25519署名を検証します。 - 引数hashは、署名計算前のプリハッシュメッセージです。 - メッセージダイジェストを作成するために使用されるハッシュアルゴリズムはSHA-512でなければなりません。 - 答えは変数retを介して返され、署名が有効ならば1、無効ならば0を返します。 - - \return 0 署名検証と認証を正常に実行したときに返されます。 - \return BAD_FUNC_ARG いずれかの入力パラメータがNULLに評価された場合、またはSIGLENが署名の実際の長さと一致しない場合に返されます。 - \return SIG_VERIFY_E 検証が完了した場合は返されますが、生成された署名は提供された署名と一致しません。 - - \param [in] sig 検証するシグネチャを含むバッファへのポインタ。 - \param [in] siglen 検証するシグネチャのサイズ - \param [in] msg メッセージを含むバッファへのポインタ - \param [in] msgLen 検証するメッセージのサイズ - \param [out] ret 検証の結果を格納する変数へのポインタ。1はメッセージが正常に検証されたことを示します。 - \param [in] key 署名を検証するためのEd25519公開鍵へのポインタ。 + + \brief この関数は、真正性を保証するためにメッセージのダイジェストのEd25519署名を検証します。コンテキストは検証されるデータの一部として含まれます。ハッシュは署名計算前の事前ハッシュ化されたメッセージです。メッセージダイジェストの作成に使用されるハッシュアルゴリズムはSHA-512である必要があります。答えはretを通じて返され、1は有効な署名に対応し、0は無効な署名に対応します。 + + + \return 0 署名の検証と認証の実行に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、またはsiglenが署名の実際の長さと一致しない場合に返されます。 + \return SIG_VERIFY_E 検証は完了したが、生成された署名が提供された署名と一致しない場合に返されます。 + + \param [in] sig 検証する署名を含むバッファへのポインタ。 + \param [in] siglen 検証する署名の長さ。 + \param [in] hash 検証するメッセージのハッシュを含むバッファへのポインタ。 + \param [in] hashLen 検証するハッシュの長さ。 + \param [out] ret 検証結果へのポインタ。1はメッセージが正常に検証されたことを示します。 + \param [in] key 署名を検証するために使用する公開Ed25519鍵へのポインタ。 \param [in] context メッセージが署名されたコンテキストを含むバッファへのポインタ。 - \param [in] contextLen コンテキストのサイズ + \param [in] contextLen コンテキストバッファの長さ。 _Example_ \code ed25519_key key; int ret, verified = 0; - byte sig[] { initialize with received signature }; - byte hash[] = { initialize with SHA-512 hash of message }; - byte context[] = { initialize with context of signature }; - // initialize key with received public key + byte sig[] { 受信した署名で初期化 }; + byte hash[] = { メッセージのSHA-512ハッシュで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; + // 受信した公開鍵でkeyを初期化 ret = wc_ed25519ph_verify_hash(sig, sizeof(sig), msg, sizeof(msg), &verified, &key, ); if (ret < 0) { - // error performing verification + // 検証実行エラー } else if (verified == 0) - // the signature is invalid + // 署名が無効 } \endcode + \sa wc_ed25519_verify_msg \sa wc_ed25519ctx_verify_msg \sa wc_ed25519ph_verify_msg @@ -378,40 +394,40 @@ int wc_ed25519ph_verify_hash(const byte* sig, word32 siglen, const byte* hash, /*! \ingroup ED25519 - \brief この関数は、メッセージのダイジェストのEd25519署名を検証します。 - 引数contextは検証すべきデータの一部として含まれています。 - 検証前にメッセージがプリハッシュされています。 - 答えは変数resを介して返され、署名が有効ならば1、無効ならば0を返します。 - - \return 0 署名検証と認証を正常に実行したときに返されます。 - \return BAD_FUNC_ARG いずれかの入力パラメータがNULLに評価された場合、またはSIGLENが署名の実際の長さと一致しない場合に返されます。 - \return SIG_VERIFY_E 検証が完了した場合は返されますが、生成された署名は提供された署名と一致しません。 - \param [in] sig 検証するシグネチャを含むバッファへのポインタ。 - \param [in] siglen 検証するシグネチャのサイズ - \param [in] msg メッセージを含むバッファへのポインタ - \param [in] msgLen 検証するメッセージのサイズ - \param [out] ret 検証の結果を格納する変数へのポインタ。1はメッセージが正常に検証されたことを示します。 - \param [in] key 署名を検証するためのEd25519公開鍵へのポインタ。 + + \brief この関数は、真正性を保証するためにメッセージのEd25519署名を検証します。コンテキストは検証されるデータの一部として含まれます。メッセージは検証前に事前ハッシュ化されます。答えはretを通じて返され、1は有効な署名に対応し、0は無効な署名に対応します。 + + \return 0 署名の検証と認証の実行に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、またはsiglenが署名の実際の長さと一致しない場合に返されます。 + \return SIG_VERIFY_E 検証は完了したが、生成された署名が提供された署名と一致しない場合に返されます。 + + \param [in] sig 検証する署名を含むバッファへのポインタ。 + \param [in] siglen 検証する署名の長さ。 + \param [in] msg 検証するメッセージを含むバッファへのポインタ。 + \param [in] msgLen 検証するメッセージの長さ。 + \param [out] ret 検証結果へのポインタ。1はメッセージが正常に検証されたことを示します。 + \param [in] key 署名を検証するために使用する公開Ed25519鍵へのポインタ。 \param [in] context メッセージが署名されたコンテキストを含むバッファへのポインタ。 - \param [in] contextLen コンテキストのサイズ + \param [in] contextLen コンテキストバッファの長さ。 _Example_ \code ed25519_key key; int ret, verified = 0; - byte sig[] { initialize with received signature }; - byte msg[] = { initialize with message }; - byte context[] = { initialize with context of signature }; - // initialize key with received public key + byte sig[] { 受信した署名で初期化 }; + byte msg[] = { メッセージで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; + // 受信した公開鍵でkeyを初期化 ret = wc_ed25519ctx_verify_msg(sig, sizeof(sig), msg, sizeof(msg), &verified, &key, ); if (ret < 0) { - // error performing verification + // 検証実行エラー } else if (verified == 0) - // the signature is invalid + // 署名が無効 } \endcode + \sa wc_ed25519_verify_msg \sa wc_ed25519ph_verify_hash \sa wc_ed25519ph_verify_msg @@ -424,16 +440,20 @@ int wc_ed25519ph_verify_msg(const byte* sig, word32 siglen, const byte* msg, /*! \ingroup ED25519 - \brief この関数は、後のメッセージ検証で使用のためにed25519_key構造体を初期化します。 - \return 0 ed25519_key構造体の初期化に成功したときに返されます。 - \return BAD_FUNC_ARG 引数keyがNULLの場合に返されます。 - \param [in,out] key ed25519_key構造体へのポインタ + + \brief この関数は、メッセージ検証での将来の使用のためにed25519_keyオブジェクトを初期化します。 + + \return 0 ed25519_keyオブジェクトの初期化に成功した場合に返されます。 + \return BAD_FUNC_ARG keyがNULLの場合に返されます。 + + \param [in,out] key 初期化するed25519_keyオブジェクトへのポインタ。 _Example_ \code ed25519_key key; wc_ed25519_init(&key); \endcode + \sa wc_ed25519_make_key \sa wc_ed25519_free */ @@ -442,16 +462,19 @@ int wc_ed25519_init(ed25519_key* key); /*! \ingroup ED25519 - \brief この関数は、使用済みのed25519_key構造体を解放します。 - \param [in,out] key ed25519_key構造体へのポインタ + + \brief この関数は、使用後にEd25519オブジェクトを解放します。 + + \param [in,out] key 解放するed25519_keyオブジェクトへのポインタ _Example_ \code ed25519_key key; - // initialize key and perform secure exchanges + // keyを初期化し、安全な交換を実行 ... wc_ed25519_free(&key); \endcode + \sa wc_ed25519_init */ @@ -459,25 +482,26 @@ void wc_ed25519_free(ed25519_key* key); /*! \ingroup ED25519 - \brief この関数はバッファからed25519公開鍵をed25519_key構造体へインポートします。 - 圧縮あるいは非圧縮の両方の形式の鍵を扱います。 - \return 0 ed25519公開鍵のインポートに成功した場合に返されます。 - \return BAD_FUNC_ARG inまたはkeyがnullに評価された場合、またはinlenがED25519鍵のサイズよりも小さい場合に返されます。 - \param [in] in 公開鍵を含んだバッファへのポインタ - \param [in] inLen 公開鍵を含んだバッファのサイズ - \param [in,out] key ed25519_key構造体へのポインタ + \brief この関数は、公開鍵を含むバッファから公開ed25519_keyをインポートします。この関数は、圧縮キーと非圧縮キーの両方を処理します。公開鍵は、秘密鍵が存在する場合にそれと一致するかチェックされます。 + + \return 0 ed25519_keyのインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG inまたはkeyがNULLと評価された場合、またはinLenがEd25519鍵のサイズより小さい場合に返されます。 + + \param [in] in 公開鍵を含むバッファへのポインタ。 + \param [in] inLen 公開鍵を含むバッファの長さ。 + \param [in,out] key 公開鍵を格納するed25519_keyオブジェクトへのポインタ。 _Example_ \code int ret; - byte pub[] = { initialize Ed25519 public key }; + byte pub[] = { Ed25519公開鍵で初期化 }; ed_25519 key; wc_ed25519_init_key(&key); ret = wc_ed25519_import_public(pub, sizeof(pub), &key); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode @@ -492,28 +516,26 @@ int wc_ed25519_import_public(const byte* in, word32 inLen, ed25519_key* key); /*! \ingroup ED25519 - \brief この関数はバッファからed25519公開鍵をed25519_key構造体へインポートします。 - 圧縮あるいは非圧縮の両方の形式の鍵を扱います。 - 秘密鍵が既にインポートされている場合で、trusted引数が1以外の場合は両鍵が対応しているかをチェックします。 + \brief この関数は、公開鍵を含むバッファから公開ed25519_keyをインポートします。この関数は、圧縮キーと非圧縮キーの両方を処理します。信頼されていない場合、秘密鍵が存在するときに公開鍵が秘密鍵と一致するかチェックします。 - \return 0 ed25519公開鍵のインポートに成功した場合に返されます。 - \return BAD_FUNC_ARG Returned 引数inあるいはkeyがNULLの場合,あるいは引数inLenがEd25519鍵のサイズより小さい場合に返されます。 + \return 0 ed25519_keyのインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG inまたはkeyがNULLと評価された場合、またはinLenがEd25519鍵のサイズより小さい場合に返されます。 - \param [in] in 公開鍵を含んだバッファへのポインタ - \param [in] inLen 公開鍵を含んだバッファのサイズ - \param [in,out] key ed25519_key構造体へのポインタ - \param [in] trusted 公開鍵が信頼おけるか否かを示すフラグ + \param [in] in 公開鍵を含むバッファへのポインタ。 + \param [in] inLen 公開鍵を含むバッファの長さ。 + \param [in,out] key 公開鍵を格納するed25519_keyオブジェクトへのポインタ。 + \param [in] trusted 公開鍵データが信頼されているかどうか。 _Example_ \code int ret; - byte pub[] = { initialize Ed25519 public key }; + byte pub[] = { Ed25519公開鍵で初期化 }; ed_25519 key; wc_ed25519_init_key(&key); ret = wc_ed25519_import_public_ex(pub, sizeof(pub), &key, 1); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode @@ -526,62 +548,74 @@ int wc_ed25519_import_public(const byte* in, word32 inLen, ed25519_key* key); int wc_ed25519_import_public_ex(const byte* in, word32 inLen, ed25519_key* key, int trusted); - /*! \ingroup ED25519 - \brief この関数は、ed25519秘密鍵のみをバッファからインポートします。 - \return 0 Ed25519秘密鍵のインポートに成功した際に返されます。 - \return BAD_FUNC_ARG privまたはkeyがNULLに評価された場合、またはprivSzがED25519_KEY_SIZEと異なる場合に返されます。 + + \brief この関数は、バッファからEd25519秘密鍵のみをインポートします。 + + \return 0 Ed25519鍵のインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG privまたはkeyがNULLと評価された場合、またはprivSzがED25519_KEY_SIZEと等しくない場合に返されます。 + \param [in] priv 秘密鍵を含むバッファへのポインタ。 - \param [in] privSz 秘密鍵を含むバッファのサイズ + \param [in] privSz 秘密鍵の長さ。 + \param [in,out] key インポートされた秘密鍵を格納するed25519_keyオブジェクトへのポインタ。 _Example_ \code int ret; - byte priv[] = { initialize with 32 byte private key }; + byte priv[] = { 32バイトの秘密鍵で初期化 }; ed25519_key key; wc_ed25519_init_key(&key); - ret = wc_ed25519_import_private_key(priv, sizeof(priv), &key); + ret = wc_ed25519_import_private_only(priv, sizeof(priv), &key); if (ret != 0) { - // error importing private key + // 秘密鍵のインポートエラー } \endcode + \sa wc_ed25519_import_public + \sa wc_ed25519_import_public_ex \sa wc_ed25519_import_private_key + \sa wc_ed25519_import_private_key_ex \sa wc_ed25519_export_private_only */ + int wc_ed25519_import_private_only(const byte* priv, word32 privSz, ed25519_key* key); - /*! \ingroup ED25519 - \brief この関数は、Ed25519公開鍵/秘密鍵をそれぞれ含む一対のバッファからEd25519鍵ペアをインポートします。 - この関数は圧縮と非圧縮の両方の鍵を処理します。 - \return 0 Ed25519_KEYのインポートに成功しました。 - \return BAD_FUNC_ARG privまたはkeyがNULLに評価された場合、privSzがED25519_KEY_SIZEと異なるあるいはED25519_PRV_KEY_SIZEとも異なる場合、pubSzがED25519_PUB_KEY_SIZEよりも小さい場合に返されます。 + + \brief この関数は、一対のバッファから公開/秘密Ed25519鍵ペアをインポートします。この関数は、圧縮キーと非圧縮キーの両方を処理します。公開鍵は信頼されていないと想定され、秘密鍵に対してチェックされます。 + + \return 0 ed25519_keyのインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG privまたはkeyがNULLと評価された場合、またはprivSzがED25519_KEY_SIZEにもED25519_PRV_KEY_SIZEにも等しくない、もしくはpubSzがED25519_PUB_KEY_SIZEより小さい場合に返されます。 + \param [in] priv 秘密鍵を含むバッファへのポインタ。 - \param [in] privSz 秘密鍵バッファのサイズ + \param [in] privSz 秘密鍵の長さ。 \param [in] pub 公開鍵を含むバッファへのポインタ。 - \param [in] pubSz 公開鍵バッファのサイズ + \param [in] pubSz 公開鍵の長さ。 + \param [in,out] key インポートされた秘密/公開鍵ペアを格納するed25519_keyオブジェクトへのポインタ。 _Example_ \code int ret; - byte priv[] = { initialize with 32 byte private key }; - byte pub[] = { initialize with the corresponding public key }; + byte priv[] = { 32バイトの秘密鍵で初期化 }; + byte pub[] = { 対応する公開鍵で初期化 }; ed25519_key key; wc_ed25519_init_key(&key); ret = wc_ed25519_import_private_key(priv, sizeof(priv), pub, sizeof(pub), &key); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_ed25519_import_public + \sa wc_ed25519_import_public_ex \sa wc_ed25519_import_private_only + \sa wc_ed25519_import_private_key_ex \sa wc_ed25519_export_private */ @@ -590,29 +624,34 @@ int wc_ed25519_import_private_key(const byte* priv, word32 privSz, /*! \ingroup ED25519 - \brief この関数は一対のバッファからEd25519公開鍵/秘密鍵ペアをインポートします。この関数は圧縮キーと非圧縮キーの両方を処理します。公開鍵はtrusted引数により信頼されていないとされた場合には秘密鍵に対して検証されます。 - \return 0 ed25519_keyのインポートに成功しました。 - \return BAD_FUNC_ARG Returned if privあるいはkeyがNULLに評価された場合、privSzがED25519_KEY_SIZEともED25519_PRV_KEY_SIZEとも異なる場合、pubSzがED25519_PUB_KEY_SIZEより小さい場合に返されます。 - \param [in] priv 秘密鍵を保持するバッファへのポインタ - \param [in] privSz 秘密鍵バッファのサイズ - \param [in] pub 公開鍵を保持するバッファへのポインタ - \param [in] pubSz 公開鍵バッファのサイズ - \param [in,out] key インポートされた公開鍵/秘密鍵を保持するed25519_keyオブジェクトへのポインター - \param [in] trusted 公開鍵が信頼できるか否かを指定するフラグ + + \brief この関数は、一対のバッファから公開/秘密Ed25519鍵ペアをインポートします。この関数は、圧縮キーと非圧縮キーの両方を処理します。信頼されていない場合、公開鍵が秘密鍵に対してチェックされます。 + + \return 0 ed25519_keyのインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG privまたはkeyがNULLと評価された場合、またはprivSzがED25519_KEY_SIZEにもED25519_PRV_KEY_SIZEにも等しくない、もしくはpubSzがED25519_PUB_KEY_SIZEより小さい場合に返されます。 + + \param [in] priv 秘密鍵を含むバッファへのポインタ。 + \param [in] privSz 秘密鍵の長さ。 + \param [in] pub 公開鍵を含むバッファへのポインタ。 + \param [in] pubSz 公開鍵の長さ。 + \param [in,out] key インポートされた秘密/公開鍵ペアを格納するed25519_keyオブジェクトへのポインタ。 + \param [in] trusted 公開鍵データが信頼されているかどうか。 _Example_ \code int ret; - byte priv[] = { initialize with 32 byte private key }; - byte pub[] = { initialize with the corresponding public key }; + byte priv[] = { 32バイトの秘密鍵で初期化 }; + byte pub[] = { 対応する公開鍵で初期化 }; + ed25519_key key; wc_ed25519_init_key(&key); ret = wc_ed25519_import_private_key(priv, sizeof(priv), pub, sizeof(pub), &key, 1); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_ed25519_import_public \sa wc_ed25519_import_public_ex \sa wc_ed25519_import_private_only @@ -625,30 +664,34 @@ int wc_ed25519_import_private_key_ex(const byte* priv, word32 privSz, /*! \ingroup ED25519 - \brief この関数は、ed25519_key構造体から公開鍵をエクスポートします。公開鍵をバッファoutに格納し、outLenにこのバッファに書き込まれたバイトを設定します。 - \return 0 公開鍵のエクスポートに成功したら返されます。 - \return BAD_FUNC_ARG いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されたバッファーが公開鍵を保存するのに十分な大きさでない場合に返されます。このエラーを返すと、outlenに必要なサイズを設定します。 - \param [in] key 公開鍵をエクスポートするためのed25519_key構造体へのポインタ。 - \param [out] out 公開鍵を保存するバッファへのポインタ。 - \param [in,out] outLen 公開鍵を出力する先のバッファサイズを格納するword32型変数へのポインタ。 - 入力の際はバッファサイズを格納して渡し、出力の際はエクスポートした公開鍵のサイズを格納します。 + + \brief この関数は、ed25519_key構造体から公開鍵をエクスポートします。公開鍵をバッファoutに格納し、このバッファに書き込まれたバイト数をoutLenに設定します。 + + \return 0 公開鍵のエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力値のいずれかがNULLと評価された場合に返されます。 + \return BUFFER_E 提供されたバッファが秘密鍵を格納するのに十分な大きさでない場合に返されます。このエラーを返す際、関数はoutLenに必要なサイズを設定します。 + + \param [in] key 公開鍵をエクスポートするed25519_key構造体へのポインタ。 + \param [out] out 公開鍵を格納するバッファへのポインタ。 + \param [in,out] outLen outで利用可能なサイズを持つword32オブジェクトへのポインタ。公開鍵のエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 _Example_ \code int ret; ed25519_key key; - // initialize key, make key + // keyを初期化し、keyを作成 char pub[32]; word32 pubSz = sizeof(pub); ret = wc_ed25519_export_public(&key, pub, &pubSz); if (ret != 0) { - // error exporting public key + // 公開鍵のエクスポートエラー } \endcode + \sa wc_ed25519_import_public + \sa wc_ed25519_import_public_ex \sa wc_ed25519_export_private_only */ @@ -656,44 +699,50 @@ int wc_ed25519_export_public(ed25519_key* key, byte* out, word32* outLen); /*! \ingroup ED25519 - \brief この関数は、ed25519_key構造体からの秘密鍵のみをエクスポートします。秘密鍵をバッファアウトに格納し、outlenにこのバッファに書き込まれたバイトを設定します。 - \return 0 秘密鍵のエクスポートに成功したら返されます。 - \return BAD_FUNC_ARG いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されたバッファーが秘密鍵を保存するのに十分な大きさでない場合に返されます。 - \param [in] key 秘密鍵をエクスポートするためのed25519_key構造体へのポインタ。 - \param [out] out 秘密鍵を保存するバッファへのポインタ。 - \param [in,out] outLen 秘密鍵を出力する先のバッファサイズを格納するword32型変数へのポインタ。 - 入力の際はバッファサイズを格納して渡し、出力の際はエクスポートした秘密鍵のサイズを格納します。 + + \brief この関数は、ed25519_key構造体から秘密鍵のみをエクスポートします。秘密鍵をバッファoutに格納し、このバッファに書き込まれたバイト数をoutLenに設定します。 + + \return 0 秘密鍵のエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力値のいずれかがNULLと評価された場合に返されます。 + \return BUFFER_E 提供されたバッファが秘密鍵を格納するのに十分な大きさでない場合に返されます。 + + \param [in] key 秘密鍵をエクスポートするed25519_key構造体へのポインタ。 + \param [out] out 秘密鍵を格納するバッファへのポインタ。 + \param [in,out] outLen outで利用可能なサイズを持つword32オブジェクトへのポインタ。秘密鍵のエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 _Example_ \code int ret; ed25519_key key; - // initialize key, make key + // keyを初期化し、keyを作成 - char priv[32]; // 32 bytes because only private key + char priv[32]; // 秘密鍵のみなので32バイト word32 privSz = sizeof(priv); ret = wc_ed25519_export_private_only(&key, priv, &privSz); if (ret != 0) { - // error exporting private key + // 秘密鍵のエクスポートエラー } \endcode + \sa wc_ed25519_export_public \sa wc_ed25519_import_private_key + \sa wc_ed25519_import_private_key_ex */ int wc_ed25519_export_private_only(ed25519_key* key, byte* out, word32* outLen); /*! \ingroup ED25519 - \brief この関数は、ed25519_key構造体から鍵ペアをエクスポートします。鍵ペアをバッファoutに格納し、ounterenでこのバッファに書き込まれたバイトを設定します。 - \return 0 鍵ペアのエクスポートに成功したら返されます。 - \return BAD_FUNC_ARG いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されているバッファーが鍵ペアを保存するのに十分な大きさでない場合に返されます。 - \param [in] 鍵ペアをエクスポートするためのed25519_key構造体へのポインタ。 - \param [out] 鍵ペアを保存するバッファへのポインタ。 - \param [in,out] outLen 鍵ペアを出力する先のバッファサイズを格納するword32型変数へのポインタ。 - 入力の際はバッファサイズを格納して渡し、出力の際はエクスポートした鍵ペアのサイズを格納します。 + + \brief この関数は、ed25519_key構造体から鍵ペアをエクスポートします。鍵ペアをバッファoutに格納し、このバッファに書き込まれたバイト数をoutLenに設定します。 + + \return 0 鍵ペアのエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力値のいずれかがNULLと評価された場合に返されます。 + \return BUFFER_E 提供されたバッファが鍵ペアを格納するのに十分な大きさでない場合に返されます。 + + \param [in] key 鍵ペアをエクスポートするed25519_key構造体へのポインタ。 + \param [out] out 鍵ペアを格納するバッファへのポインタ。 + \param [in,out] outLen outで利用可能なサイズを持つword32オブジェクトへのポインタ。鍵ペアのエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 _Example_ \code @@ -703,16 +752,18 @@ int wc_ed25519_export_private_only(ed25519_key* key, byte* out, word32* outLen); WC_RNG rng; wc_InitRng(&rng); - wc_ed25519_make_key(&rng, 32, &key); // initialize 32 byte Ed25519 key + wc_ed25519_make_key(&rng, 32, &key); // 32バイトのEd25519鍵を初期化 - byte out[64]; // out needs to be a sufficient buffer size + byte out[64]; // outは十分なバッファサイズである必要があります word32 outLen = sizeof(out); int key_size = wc_ed25519_export_private(&key, out, &outLen); if (key_size == BUFFER_E) { - // Check size of out compared to outLen to see if function reset outLen + // 関数がoutLenをリセットしたかどうかを確認するため、outのサイズとoutLenを比較 } \endcode + \sa wc_ed25519_import_private_key + \sa wc_ed25519_import_private_key_ex \sa wc_ed25519_export_private_only */ @@ -720,25 +771,24 @@ int wc_ed25519_export_private(ed25519_key* key, byte* out, word32* outLen); /*! \ingroup ED25519 - \brief この関数は、ed25519_key構造体から秘密鍵と公開鍵を別々にエクスポートします。 - 秘密鍵をバッファprivに格納し、priovSzにこのバッファに書き込んだバイト数を設定します。 - 公開鍵をバッファpubに格納し、pubSzにこのバッファに書き込んだバイト数を設定します。 - \return 0 鍵ペアのエクスポートに成功したら返されます。 - \return BAD_FUNC_ARG いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されているバッファが鍵ペアを保存するのに十分な大きさでない場合に返されます。 - \param [in] key 鍵ペアをエクスポートするためのed25519_key構造体へのポインタ。 - \param [out] priv 秘密鍵を出力するバッファへのポインタ。 - \param [in,out] privSz 秘密鍵を出力する先のバッファのサイズを保持するword32型変数へのポインタ。 - 秘密鍵のエクスポート後には書き込まれたバイト数がセットされます。 - \param [out] pub パブリックキーを出力するバッファへのポインタ - \param [in,out] pubSz 公開鍵を出力する先のバッファのサイズを保持するword32型変数へのポインタ。 - 公開鍵のエクスポート後には書き込まれたバイト数がセットされます。 + + \brief この関数は、ed25519_key構造体から秘密鍵と公開鍵を個別にエクスポートします。秘密鍵をバッファprivに格納し、このバッファに書き込まれたバイト数をprivSzに設定します。公開鍵をバッファpubに格納し、このバッファに書き込まれたバイト数をpubSzに設定します。 + + \return 0 鍵ペアのエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力値のいずれかがNULLと評価された場合に返されます。 + \return BUFFER_E 提供されたバッファが鍵ペアを格納するのに十分な大きさでない場合に返されます。 + + \param [in] key 鍵ペアをエクスポートするed25519_key構造体へのポインタ。 + \param [out] priv 秘密鍵を格納するバッファへのポインタ。 + \param [in,out] privSz outで利用可能なサイズを持つword32オブジェクトへのポインタ。秘密鍵のエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 + \param [out] pub 公開鍵を格納するバッファへのポインタ。 + \param [in,out] pubSz outで利用可能なサイズを持つword32オブジェクトへのポインタ。公開鍵のエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 _Example_ \code int ret; ed25519_key key; - // initialize key, make key + // keyを初期化し、keyを作成 char pub[32]; word32 pubSz = sizeof(pub); @@ -747,9 +797,10 @@ int wc_ed25519_export_private(ed25519_key* key, byte* out, word32* outLen); ret = wc_ed25519_export_key(&key, priv, &pubSz, pub, &pubSz); if (ret != 0) { - // error exporting public key + // 公開鍵のエクスポートエラー } \endcode + \sa wc_ed25519_export_private \sa wc_ed25519_export_public */ @@ -760,49 +811,58 @@ int wc_ed25519_export_key(ed25519_key* key, /*! \ingroup ED25519 - \brief この関数は、ed25519_key構造体の公開鍵をチェックします。 - \return 0 プライベートキーと公開鍵が一致した場合に返されます。 - \return BAD_FUNC_ARG 与えられた鍵がNULLの場合に返されます。 - \return PUBLIC_KEY_E 公開鍵が参照できないか無効の場合に返されます。 - \param [in] key 公開鍵と秘密鍵の両方を保持しているed25519_key構造体へのポインタ + + \brief この関数は、ed25519_key構造体内の公開鍵が秘密鍵と一致するかチェックします。 + + \return 0 秘密鍵と公開鍵が一致した場合に返されます。 + \return BAD_FUNC_ARG 指定されたkeyがNULLの場合に返されます。 + \return PUBLIC_KEY_E 公開鍵が利用できない、または無効な場合に返されます。 + + \param [in] key 秘密鍵と公開鍵を保持するed25519_key構造体へのポインタ。 _Example_ \code int ret; - byte priv[] = { initialize with 57 byte private key }; - byte pub[] = { initialize with the corresponding public key }; + byte priv[] = { 57バイトの秘密鍵で初期化 }; + byte pub[] = { 対応する公開鍵で初期化 }; ed25519_key key; wc_ed25519_init_key(&key); - wc_ed25519_import_private_key(priv, sizeof(priv), pub, sizeof(pub), &key); + wc_ed25519_import_private_key_ex(priv, sizeof(priv), pub, sizeof(pub), &key, + 1); ret = wc_ed25519_check_key(&key); if (ret != 0) { - // error checking key + // 鍵のチェックエラー } \endcode + \sa wc_ed25519_import_private_key + \sa wc_ed25519_import_private_key_ex */ int wc_ed25519_check_key(ed25519_key* key); /*! \ingroup ED25519 - \brief この関数は、Ed25519 - 32バイトのサイズを返します。 - \return ED25519_KEY_SIZE 有効な秘密鍵のサイズ(32バイト)。 - \return BAD_FUNC_ARG 与えられた引数keyがNULLの場合に返されます。 - \param [in] key ed25519_key構造体へのポインタ + \brief この関数は、Ed25519のサイズ(32バイト)を返します。 + + \return ED25519_KEY_SIZE 有効な秘密鍵のサイズ(32バイト)。 + \return BAD_FUNC_ARG 指定されたkeyがNULLの場合に返されます。 + + \param [in] key 鍵サイズを取得するed25519_key構造体へのポインタ。 _Example_ \code int keySz; ed25519_key key; - // initialize key, make key + // keyを初期化し、keyを作成 keySz = wc_ed25519_size(&key); if (keySz == 0) { - // error determining key size + // 鍵サイズの決定エラー } \endcode + \sa wc_ed25519_make_key */ @@ -810,10 +870,13 @@ int wc_ed25519_size(ed25519_key* key); /*! \ingroup ED25519 - \brief この関数は、秘密鍵サイズ(secret + public)をバイト単位で返します。 - \return ED25519_PRV_KEY_SIZE 秘密鍵のサイズ(64バイト)。 - \return BAD_FUNC_ARG key引数がnullの場合に返されます。 - \param [in] key ed25519_key構造体へのポインタ + + \brief この関数は、秘密鍵のサイズ(秘密 + 公開)をバイト単位で返します。 + + \return ED25519_PRV_KEY_SIZE 秘密鍵のサイズ(64バイト)。 + \return BAD_FUNC_ARG key引数がNULLの場合に返されます。 + + \param [in] key 鍵サイズを取得するed25519_key構造体へのポインタ。 _Example_ \code @@ -823,9 +886,10 @@ int wc_ed25519_size(ed25519_key* key); WC_RNG rng; wc_InitRng(&rng); - wc_ed25519_make_key(&rng, 32, &key); // initialize 32 byte Ed25519 key + wc_ed25519_make_key(&rng, 32, &key); // 32バイトのEd25519鍵を初期化 int key_size = wc_ed25519_priv_size(&key); \endcode + \sa wc_ed25519_pub_size */ @@ -833,10 +897,13 @@ int wc_ed25519_priv_size(ed25519_key* key); /*! \ingroup ED25519 - \brief この関数は圧縮鍵サイズをバイト単位で返します(公開鍵)。 - \return ED25519_PUB_KEY_SIZE 圧縮公開鍵のサイズ(32バイト)。 - \return BAD_FUNC_ARG key引数がnullの場合は返します。 - \param [in] key ed25519_key構造体へのポインタ + + \brief この関数は、圧縮鍵のサイズをバイト単位で返します(公開鍵)。 + + \return ED25519_PUB_KEY_SIZE 圧縮公開鍵のサイズ(32バイト)。 + \return BAD_FUNC_ARG key引数がNULLの場合に返されます。 + + \param [in] key 鍵サイズを取得するed25519_key構造体へのポインタ。 _Example_ \code @@ -845,9 +912,10 @@ int wc_ed25519_priv_size(ed25519_key* key); WC_RNG rng; wc_InitRng(&rng); - wc_ed25519_make_key(&rng, 32, &key); // initialize 32 byte Ed25519 key + wc_ed25519_make_key(&rng, 32, &key); // 32バイトのEd25519鍵を初期化 int key_size = wc_ed25519_pub_size(&key); \endcode + \sa wc_ed25519_priv_size */ @@ -855,23 +923,27 @@ int wc_ed25519_pub_size(ed25519_key* key); /*! \ingroup ED25519 - \brief この関数は、ED25519シグネチャのサイズ(バイト数64)を返します。 - \return ED25519_SIG_SIZE ED25519シグネチャ(64バイト)のサイズ。 - \return BAD_FUNC_ARG key引数がnullの場合は返します。 - \param [in] key ed25519_key構造体へのポインタ + + \brief この関数は、Ed25519署名のサイズ(バイト単位で64)を返します。 + + \return ED25519_SIG_SIZE Ed25519署名のサイズ(64バイト)。 + \return BAD_FUNC_ARG key引数がNULLの場合に返されます。 + + \param [in] key 署名サイズを取得するed25519_key構造体へのポインタ。 _Example_ \code int sigSz; ed25519_key key; - // initialize key, make key + // keyを初期化し、keyを作成 sigSz = wc_ed25519_sig_size(&key); if (sigSz == 0) { - // error determining sig size + // 署名サイズの決定エラー } \endcode + \sa wc_ed25519_sign_msg */ -int wc_ed25519_sig_size(ed25519_key* key); +int wc_ed25519_sig_size(ed25519_key* key); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/ed448.h b/doc/dox_comments/header_files-ja/ed448.h index b75d27e374..0ce0c60e7d 100644 --- a/doc/dox_comments/header_files-ja/ed448.h +++ b/doc/dox_comments/header_files-ja/ed448.h @@ -1,17 +1,22 @@ /*! \ingroup ED448 - \brief この関数は、秘密鍵からED448公開鍵を生成します。公開鍵をバッファPubkeyに格納し、Pubkeyszでこのバッファに書き込まれたバイトを設定します。 - \return 0 公開鍵の作成に成功したときに返されます。 - \return BAD_FUNC_ARG IFIキーまたはPubKeyがNULLに評価された場合、または指定されたキーサイズが57バイトではない場合(ED448には57バイトのキーがあります)。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] キーを生成するED448_Keyへのキーポインタ。 - \param [out] 公開鍵を保存するバッファへのポインタ。 + + \brief この関数は、秘密鍵からEd448公開鍵を生成します。公開鍵をバッファpubKeyに格納し、このバッファに書き込まれたバイト数をpubKeySzに設定します。 + + \return 0 公開鍵の作成に成功した場合に返されます。 + \return BAD_FUNC_ARG keyまたはpubKeyがNULLと評価された場合、または指定されたキーサイズが57バイトでない場合に返されます(Ed448は57バイトのキーを持ちます)。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 + + \param [in] key キーを生成するed448_keyへのポインタ。 + \param [out] out 公開鍵を格納するバッファへのポインタ。 + \param [in,out] outLen outで利用可能なサイズを持つword32オブジェクトへのポインタ。公開鍵のエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 + _Example_ \code int ret; ed448_key key; - byte priv[] = { initialize with 57 byte private key }; + byte priv[] = { 57バイトの秘密鍵で初期化 }; byte pub[57]; word32 pubSz = sizeof(pub); @@ -19,9 +24,10 @@ wc_ed448_import_private_only(priv, sizeof(priv), &key); ret = wc_ed448_make_public(&key, pub, &pubSz); if (ret != 0) { - // error making public key + // 公開鍵の作成エラー } \endcode + \sa wc_ed448_init \sa wc_ed448_import_private_only \sa wc_ed448_make_key @@ -32,12 +38,17 @@ int wc_ed448_make_public(ed448_key* key, unsigned char* pubKey, /*! \ingroup ED448 - \brief この関数は新しいED448キーを生成し、それをキーに格納します。 - \return 0 ED448_Keyを正常に作成したときに返されます。 - \return BAD_FUNC_ARG RNGまたはKeyがNULLに評価された場合、または指定されたキーサイズが57バイトではない場合(ED448には57バイトのキーがあります)。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] RNGキーを生成する初期化されたRNGオブジェクトへのポインタ。 - \param [in] keysize keyの長さを生成します。ED448の場合は常に57になります。 + + \brief この関数は新しいEd448キーを生成し、それをkeyに格納します。 + + \return 0 ed448_keyの作成に成功した場合に返されます。 + \return BAD_FUNC_ARG rngまたはkeyがNULLと評価された場合、または指定されたキーサイズが57バイトでない場合に返されます(Ed448は57バイトのキーを持ちます)。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 + + \param [in] rng キーを生成するために使用する初期化済みRNGオブジェクトへのポインタ。 + \param [in] keysize 生成するキーの長さ。Ed448の場合は常に57である必要があります。 + \param [in,out] key キーを生成するed448_keyへのポインタ。 + _Example_ \code int ret; @@ -49,9 +60,10 @@ int wc_ed448_make_public(ed448_key* key, unsigned char* pubKey, wc_ed448_init(&key); ret = wc_ed448_make_key(&rng, 57, &key); if (ret != 0) { - // error making key + // キー作成エラー } \endcode + \sa wc_ed448_init */ @@ -59,32 +71,38 @@ int wc_ed448_make_key(WC_RNG* rng, int keysize, ed448_key* key); /*! \ingroup ED448 - \brief この関数は、ED448_Keyオブジェクトを使用したメッセージに正解を保証します。 - \return 0 メッセージの署名を正常に生成すると返されます。 - \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLに評価された場合、または出力バッファが小さすぎて生成された署名を保存する場合は返されます。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] 署名するメッセージを含むバッファへのポインタ。 - \param [in] 署名するメッセージのインレル長。 - \param [out] 生成された署名を格納するためのバッファー。 - \param [in,out] 出力バッファの最大長の範囲内。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 + + \brief この関数は、真正性を保証するためにed448_keyオブジェクトを使用してメッセージに署名します。 + + \return 0 メッセージの署名の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、または出力バッファが生成された署名を格納するには小さすぎる場合に返されます。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 + + \param [in] in 署名するメッセージを含むバッファへのポインタ。 + \param [in] inlen 署名するメッセージの長さ。 + \param [out] out 生成された署名を格納するバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功した後、outに書き込まれたバイト数が格納されます。 + \param [in] key 署名を生成するために使用する秘密ed448_keyへのポインタ。 + _Example_ \code ed448_key key; WC_RNG rng; int ret, sigSz; - byte sig[114]; // will hold generated signature + byte sig[114]; // 生成された署名を保持 sigSz = sizeof(sig); - byte message[] = { initialize with message }; + byte message[] = { メッセージで初期化 }; - wc_InitRng(&rng); // initialize rng - wc_ed448_init(&key); // initialize key - wc_ed448_make_key(&rng, 57, &key); // make public/private key pair + wc_InitRng(&rng); // rngを初期化 + wc_ed448_init(&key); // keyを初期化 + wc_ed448_make_key(&rng, 57, &key); // 公開/秘密鍵ペアを作成 ret = wc_ed448_sign_msg(message, sizeof(message), sig, &sigSz, &key); if (ret != 0 ) { - // error generating message signature + // メッセージ署名の生成エラー } \endcode + \sa wc_ed448ph_sign_hash \sa wc_ed448ph_sign_msg \sa wc_ed448_verify_msg @@ -95,36 +113,42 @@ int wc_ed448_sign_msg(const byte* in, word32 inlen, byte* out, /*! \ingroup ED448 - \brief この関数は、Ed448_Keyオブジェクトを使用してメッセージダイジェストに署名して信頼性を保証します。コンテキストは署名されたデータの一部として含まれています。ハッシュは、署名計算前のプリハッシュメッセージです。メッセージダイジェストを作成するために使用されるハッシュアルゴリズムはShake-256でなければなりません。 - \return 0 メッセージダイジェストの署名を正常に生成すると返されます。 - \return BAD_FUNC_ARG 返された入力パラメータはNULLに評価されます。出力バッファが小さすぎて生成された署名を保存するには小さすぎます。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] サインへのメッセージのハッシュを含むバッファへのハッシュポインタ。 - \param [in] サインへのメッセージのハッシュのハッシュの長さ。 - \param [out] 生成された署名を格納するためのバッファー。 - \param [in,out] 出力バッファの最大長の範囲内。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 - \param [in] 署名を生成するためのプライベートED448_Keyへのキーポインタ。 - \param [in] メッセージが署名されているコンテキストを含むバッファへのコンテキストポインタ。 + + \brief この関数は、真正性を保証するためにed448_keyオブジェクトを使用してメッセージダイジェストに署名します。コンテキストは署名されるデータの一部として含まれます。ハッシュは署名計算前の事前ハッシュ化されたメッセージです。 + + \return 0 メッセージダイジェストの署名の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、または出力バッファが生成された署名を格納するには小さすぎる場合に返されます。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 + + \param [in] hash 署名するメッセージのハッシュを含むバッファへのポインタ。 + \param [in] hashLen 署名するメッセージのハッシュの長さ。 + \param [out] out 生成された署名を格納するバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功した後、outに書き込まれたバイト数が格納されます。 + \param [in] key 署名を生成するために使用する秘密ed448_keyへのポインタ。 + \param [in] context メッセージが署名されているコンテキストを含むバッファへのポインタ。 + \param [in] contextLen コンテキストバッファの長さ。 + _Example_ \code ed448_key key; WC_RNG rng; int ret, sigSz; - byte sig[114]; // will hold generated signature + byte sig[114]; // 生成された署名を保持 sigSz = sizeof(sig); - byte hash[] = { initialize with SHAKE-256 hash of message }; - byte context[] = { initialize with context of signing }; + byte hash[] = { メッセージのハッシュで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; - wc_InitRng(&rng); // initialize rng - wc_ed448_init(&key); // initialize key - wc_ed448_make_key(&rng, 57, &key); // make public/private key pair + wc_InitRng(&rng); // rngを初期化 + wc_ed448_init(&key); // keyを初期化 + wc_ed448_make_key(&rng, 57, &key); // 公開/秘密鍵ペアを作成 ret = wc_ed448ph_sign_hash(hash, sizeof(hash), sig, &sigSz, &key, context, sizeof(context)); if (ret != 0) { - // error generating message signature + // メッセージ署名の生成エラー } \endcode + \sa wc_ed448_sign_msg \sa wc_ed448ph_sign_msg \sa wc_ed448ph_verify_hash @@ -136,74 +160,86 @@ int wc_ed448ph_sign_hash(const byte* hash, word32 hashLen, byte* out, /*! \ingroup ED448 - \brief この関数は、ED448_Keyオブジェクトを使用したメッセージに正解を保証します。コンテキストは署名されたデータの一部として含まれています。署名計算の前にメッセージは事前にハッシュされています。 - \return 0 メッセージの署名を正常に生成すると返されます。 - \return BAD_FUNC_ARG 返された入力パラメータはNULLに評価されます。出力バッファが小さすぎて生成された署名を保存するには小さすぎます。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] 署名するメッセージを含むバッファへのポインタ。 - \param [in] 署名するメッセージのインレル長。 - \param [out] 生成された署名を格納するためのバッファー。 - \param [in,out] 出力バッファの最大長の範囲内。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 - \param [in] 署名を生成するためのプライベートED448_Keyへのキーポインタ。 - \param [in] メッセージが署名されているコンテキストを含むバッファへのコンテキストポインタ。 + + \brief この関数は、真正性を保証するためにed448_keyオブジェクトを使用してメッセージに署名します。コンテキストは署名されるデータの一部として含まれます。メッセージは署名計算前に事前ハッシュ化されます。 + + \return 0 メッセージの署名の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、または出力バッファが生成された署名を格納するには小さすぎる場合に返されます。 + \return MEMORY_E 関数実行中にメモリの割り当てエラーが発生した場合に返されます。 + + \param [in] in 署名するメッセージを含むバッファへのポインタ。 + \param [in] inlen 署名するメッセージの長さ。 + \param [out] out 生成された署名を格納するバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功した後、outに書き込まれたバイト数が格納されます。 + \param [in] key 署名を生成するために使用する秘密ed448_keyへのポインタ。 + \param [in] context メッセージが署名されているコンテキストを含むバッファへのポインタ。 + \param [in] contextLen コンテキストバッファの長さ。 + _Example_ \code ed448_key key; WC_RNG rng; int ret, sigSz; - byte sig[114]; // will hold generated signature + byte sig[114]; // 生成された署名を保持 sigSz = sizeof(sig); - byte message[] = { initialize with message }; - byte context[] = { initialize with context of signing }; + byte message[] = { メッセージで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; - wc_InitRng(&rng); // initialize rng - wc_ed448_init(&key); // initialize key - wc_ed448_make_key(&rng, 57, &key); // make public/private key pair + wc_InitRng(&rng); // rngを初期化 + wc_ed448_init(&key); // keyを初期化 + wc_ed448_make_key(&rng, 57, &key); // 公開/秘密鍵ペアを作成 ret = wc_ed448ph_sign_msg(message, sizeof(message), sig, &sigSz, &key, context, sizeof(context)); if (ret != 0) { - // error generating message signature + // メッセージ署名の生成エラー } \endcode + \sa wc_ed448_sign_msg \sa wc_ed448ph_sign_hash \sa wc_ed448ph_verify_msg */ -int wc_ed448ph_sign_msg(const byte* in, word32 inLen, byte* out, - word32 *outLen, ed448_key* key, const byte* context, - byte contextLen); +int wc_ed448ph_sign_msg(const byte* in, word32 inlen, byte* out, + word32 *outlen, ed448_key* key, + const byte* context, byte contextLen); /*! \ingroup ED448 - \brief この関数は、メッセージのED448署名を確認して信頼性を確保します。文脈はデータ検証済みの一部として含まれています。答えはRESを介して返され、有効な署名に対応する1、無効な署名に対応する0を返します。 - \return 0 署名検証と認証を正常に実行したときに返されます。 - \return BAD_FUNC_ARG いずれかの入力パラメータがNULLに評価された場合、またはSIGLENが署名の実際の長さと一致しない場合に返されます。 - \return SIG_VERIFY_E 検証が完了した場合は返されますが、生成された署名は提供された署名と一致しません。 - \param [in] 検証するシグネチャを含むバッファへのSIGポインタ。 - \param [in] 検証するシグネチャのシグレンの長さ。 - \param [in] メッセージを含むバッファへのMSGポインタを確認する。 - \param [in] 検証するメッセージのMSGlen長。 - \param [in] 署名を検証するためのパブリックED448キーへのキーポインタ。 - \param [in] メッセージが署名されたコンテキストを含むバッファへのコンテキストポインタ。 + + \brief この関数は、真正性を保証するためにメッセージのEd448署名を検証します。コンテキストは検証されるデータの一部として含まれます。答えはresを通じて返され、1は有効な署名に対応し、0は無効な署名に対応します。 + + \return 0 署名の検証と認証の実行に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、またはsiglenが署名の実際の長さと一致しない場合に返されます。 + \return SIG_VERIFY_E 検証は完了したが、生成された署名が提供された署名と一致しない場合に返されます。 + + \param [in] sig 検証する署名を含むバッファへのポインタ。 + \param [in] siglen 検証する署名の長さ。 + \param [in] msg 検証するメッセージを含むバッファへのポインタ。 + \param [in] msgLen 検証するメッセージの長さ。 + \param [in] key 署名を検証するために使用する公開Ed448鍵へのポインタ。 + \param [in] context メッセージが署名されたコンテキストを含むバッファへのポインタ。 + \param [in] contextLen コンテキストバッファの長さ。 + _Example_ \code ed448_key key; int ret, verified = 0; - byte sig[] { initialize with received signature }; - byte msg[] = { initialize with message }; - byte context[] = { initialize with context of signature }; - // initialize key with received public key + byte sig[] { 受信した署名で初期化 }; + byte msg[] = { メッセージで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; + // 受信した公開鍵でkeyを初期化 ret = wc_ed448_verify_msg(sig, sizeof(sig), msg, sizeof(msg), &verified, &key, context, sizeof(context)); if (ret < 0) { - // error performing verification + // 検証実行エラー } else if (verified == 0) - // the signature is invalid + // 署名が無効 } \endcode + \sa wc_ed448ph_verify_hash \sa wc_ed448ph_verify_msg \sa wc_ed448_sign_msg @@ -215,33 +251,39 @@ int wc_ed448_verify_msg(const byte* sig, word32 siglen, const byte* msg, /*! \ingroup ED448 - \brief この関数は、メッセージのダイジェストのED448シグネチャを検証して、信頼性を確保します。文脈はデータ検証済みの一部として含まれています。ハッシュは、署名計算前のプリハッシュメッセージです。メッセージダイジェストを作成するために使用されるハッシュアルゴリズムはShake-256でなければなりません。答えはRESを介して返され、有効な署名に対応する1、無効な署名に対応する0を返します。 - \return 0 署名検証と認証を正常に実行したときに返されます。 - \return BAD_FUNC_ARG いずれかの入力パラメータがNULLに評価された場合、またはSIGLENが署名の実際の長さと一致しない場合に返されます。 - \return SIG_VERIFY_E 検証が完了した場合は返されますが、生成された署名は提供された署名と一致しません。 - \param [in] 検証するシグネチャを含むバッファへのSIGポインタ。 - \param [in] 検証するシグネチャのシグレンの長さ。 - \param [in] 検証するメッセージのハッシュを含むバッファへのハッシュポインタ。 - \param [in] 検証するハッシュのハッシュレン長。 - \param [in] 署名を検証するためのパブリックED448キーへのキーポインタ。 - \param [in] メッセージが署名されたコンテキストを含むバッファへのコンテキストポインタ。 + + \brief この関数は、真正性を保証するためにメッセージのダイジェストのEd448署名を検証します。コンテキストは検証されるデータの一部として含まれます。ハッシュは署名計算前の事前ハッシュ化されたメッセージです。答えはresを通じて返され、1は有効な署名に対応し、0は無効な署名に対応します。 + + \return 0 署名の検証と認証の実行に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、またはsiglenが署名の実際の長さと一致しない場合に返されます。 + \return SIG_VERIFY_E 検証は完了したが、生成された署名が提供された署名と一致しない場合に返されます。 + + \param [in] sig 検証する署名を含むバッファへのポインタ。 + \param [in] siglen 検証する署名の長さ。 + \param [in] hash 検証するメッセージのハッシュを含むバッファへのポインタ。 + \param [in] hashLen 検証するハッシュの長さ。 + \param [in] key 署名を検証するために使用する公開Ed448鍵へのポインタ。 + \param [in] context メッセージが署名されたコンテキストを含むバッファへのポインタ。 + \param [in] contextLen コンテキストバッファの長さ。 + _Example_ \code ed448_key key; int ret, verified = 0; - byte sig[] { initialize with received signature }; - byte hash[] = { initialize with SHAKE-256 hash of message }; - byte context[] = { initialize with context of signature }; - // initialize key with received public key + byte sig[] { 受信した署名で初期化 }; + byte hash[] = { メッセージのハッシュで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; + // 受信した公開鍵でkeyを初期化 ret = wc_ed448ph_verify_hash(sig, sizeof(sig), hash, sizeof(hash), &verified, &key, context, sizeof(context)); if (ret < 0) { - // error performing verification + // 検証実行エラー } else if (verified == 0) - // the signature is invalid + // 署名が無効 } \endcode + \sa wc_ed448_verify_msg \sa wc_ed448ph_verify_msg \sa wc_ed448ph_sign_hash @@ -253,33 +295,39 @@ int wc_ed448ph_verify_hash(const byte* sig, word32 siglen, const byte* hash, /*! \ingroup ED448 - \brief この関数は、メッセージのED448署名を確認して信頼性を確保します。文脈はデータ検証済みの一部として含まれています。検証前にメッセージがプリハッシュされています。答えはRESを介して返され、有効な署名に対応する1、無効な署名に対応する0を返します。 - \return 0 署名検証と認証を正常に実行したときに返されます。 - \return BAD_FUNC_ARG いずれかの入力パラメータがNULLに評価された場合、またはSIGLENが署名の実際の長さと一致しない場合に返されます。 - \return SIG_VERIFY_E 検証が完了した場合は返されますが、生成された署名は提供された署名と一致しません。 - \param [in] 検証するシグネチャを含むバッファへのSIGポインタ。 - \param [in] 検証するシグネチャのシグレンの長さ。 - \param [in] メッセージを含むバッファへのMSGポインタを確認する。 - \param [in] 検証するメッセージのMSGlen長。 - \param [in] 署名を検証するためのパブリックED448キーへのキーポインタ。 - \param [in] メッセージが署名されたコンテキストを含むバッファへのコンテキストポインタ。 + + \brief この関数は、真正性を保証するためにメッセージのEd448署名を検証します。コンテキストは検証されるデータの一部として含まれます。メッセージは検証前に事前ハッシュ化されます。答えはresを通じて返され、1は有効な署名に対応し、0は無効な署名に対応します。 + + \return 0 署名の検証と認証の実行に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLと評価された場合、またはsiglenが署名の実際の長さと一致しない場合に返されます。 + \return SIG_VERIFY_E 検証は完了したが、生成された署名が提供された署名と一致しない場合に返されます。 + + \param [in] sig 検証する署名を含むバッファへのポインタ。 + \param [in] siglen 検証する署名の長さ。 + \param [in] msg 検証するメッセージを含むバッファへのポインタ。 + \param [in] msgLen 検証するメッセージの長さ。 + \param [in] key 署名を検証するために使用する公開Ed448鍵へのポインタ。 + \param [in] context メッセージが署名されたコンテキストを含むバッファへのポインタ。 + \param [in] contextLen コンテキストバッファの長さ。 + _Example_ \code ed448_key key; int ret, verified = 0; - byte sig[] { initialize with received signature }; - byte msg[] = { initialize with message }; - byte context[] = { initialize with context of signature }; - // initialize key with received public key + byte sig[] { 受信した署名で初期化 }; + byte msg[] = { メッセージで初期化 }; + byte context[] = { 署名のコンテキストで初期化 }; + // 受信した公開鍵でkeyを初期化 ret = wc_ed448ph_verify_msg(sig, sizeof(sig), msg, sizeof(msg), &verified, &key, context, sizeof(context)); if (ret < 0) { - // error performing verification + // 検証実行エラー } else if (verified == 0) - // the signature is invalid + // 署名が無効 } \endcode + \sa wc_ed448_verify_msg \sa wc_ed448ph_verify_hash \sa wc_ed448ph_sign_msg @@ -291,14 +339,20 @@ int wc_ed448ph_verify_msg(const byte* sig, word32 siglen, const byte* msg, /*! \ingroup ED448 - \brief この関数は、メッセージ検証で将来の使用のためにED448_Keyオブジェクトを初期化します。 - \return 0 ED448_Keyオブジェクトの初期化に成功したら返されます。 - \return BAD_FUNC_ARG キーがNULLの場合は返されます。 + + \brief この関数は、メッセージ検証での将来の使用のためにed448_keyオブジェクトを初期化します。 + + \return 0 ed448_keyオブジェクトの初期化に成功した場合に返されます。 + \return BAD_FUNC_ARG keyがNULLの場合に返されます。 + + \param [in,out] key 初期化するed448_keyオブジェクトへのポインタ。 + _Example_ \code ed448_key key; wc_ed448_init(&key); \endcode + \sa wc_ed448_make_key \sa wc_ed448_free */ @@ -307,14 +361,19 @@ int wc_ed448_init(ed448_key* key); /*! \ingroup ED448 - \brief この関数は、それが使用された後にED448オブジェクトを解放します。 + + \brief この関数は、使用後にEd448オブジェクトを解放します。 + + \param [in,out] key 解放するed448_keyオブジェクトへのポインタ + _Example_ \code ed448_key key; - // initialize key and perform secure exchanges + // keyを初期化し、安全な交換を実行 ... wc_ed448_free(&key); \endcode + \sa wc_ed448_init */ @@ -322,24 +381,32 @@ void wc_ed448_free(ed448_key* key); /*! \ingroup ED448 - \brief この関数は、公開鍵を含むバッファからPublic ED448_Keyペアをインポートします。この関数は圧縮キーと非圧縮キーの両方を処理します。 - \return 0 ED448_Keyのインポートに成功しました。 - \return BAD_FUNC_ARG INまたはKEYがNULLに評価されている場合、またはINLENがED448キーのサイズより小さい場合に返されます。 - \param [in] 公開鍵を含むバッファへのポインタ。 - \param [in] 公開鍵を含むバッファのインレル長。 + + \brief この関数は、公開鍵を含むバッファから公開ed448_keyペアをインポートします。この関数は、圧縮キーと非圧縮キーの両方を処理します。公開鍵は、秘密鍵が存在する場合にそれと一致するかチェックされます。 + + \return 0 ed448_keyのインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG inまたはkeyがNULLと評価された場合、またはinLenがEd448鍵のサイズより小さい場合に返されます。 + + \param [in] in 公開鍵を含むバッファへのポインタ。 + \param [in] inLen 公開鍵を含むバッファの長さ。 + \param [in,out] key 公開鍵を格納するed448_keyオブジェクトへのポインタ。 + _Example_ \code int ret; - byte pub[] = { initialize Ed448 public key }; + byte pub[] = { Ed448公開鍵で初期化 }; ed_448 key; wc_ed448_init_key(&key); ret = wc_ed448_import_public(pub, sizeof(pub), &key); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + + \sa wc_ed448_import_public_ex \sa wc_ed448_import_private_key + \sa wc_ed448_import_private_key_ex \sa wc_ed448_export_public */ @@ -347,25 +414,68 @@ int wc_ed448_import_public(const byte* in, word32 inLen, ed448_key* key); /*! \ingroup ED448 - \brief この関数は、ed448秘密鍵をバッファからのみインポートします。 - \return 0 ED448秘密鍵のインポートに成功しました。 - \return BAD_FUNC_ARG INまたはKEYがNULLに評価された場合、またはPRIVSZがED448_KEY_SIZEよりも小さい場合に返されます。 - \param [in] 秘密鍵を含むバッファへのPRIVポインタ。 - \param [in] 秘密鍵のPrivsz長さ。 + + \brief この関数は、公開鍵を含むバッファから公開ed448_keyペアをインポートします。この関数は、圧縮キーと非圧縮キーの両方を処理します。信頼されていない場合、秘密鍵が存在するときに公開鍵が秘密鍵と一致するかチェックします。 + + \return 0 ed448_keyのインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG inまたはkeyがNULLと評価された場合、またはinLenがEd448鍵のサイズより小さい場合に返されます。 + + \param [in] in 公開鍵を含むバッファへのポインタ。 + \param [in] inLen 公開鍵を含むバッファの長さ。 + \param [in,out] key 公開鍵を格納するed448_keyオブジェクトへのポインタ。 + \param [in] trusted 公開鍵データが信頼されているかどうか。 + + _Example_ + \code + int ret; + byte pub[] = { Ed448公開鍵で初期化 }; + + ed_448 key; + wc_ed448_init_key(&key); + ret = wc_ed448_import_public_ex(pub, sizeof(pub), &key, 1); + if (ret != 0) { + // 鍵のインポートエラー + } + \endcode + + \sa wc_ed448_import_public + \sa wc_ed448_import_private_key + \sa wc_ed448_import_private_key_ex + \sa wc_ed448_export_public +*/ + +int wc_ed448_import_public_ex(const byte* in, word32 inLen, ed448_key* key, + int trusted); + +/*! + \ingroup ED448 + + \brief この関数は、バッファからEd448秘密鍵のみをインポートします。 + + \return 0 Ed448秘密鍵のインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG inまたはkeyがNULLと評価された場合、またはprivSzがED448_KEY_SIZEより小さい場合に返されます。 + + \param [in] priv 秘密鍵を含むバッファへのポインタ。 + \param [in] privSz 秘密鍵の長さ。 + \param [in,out] key インポートされた秘密鍵を格納するed448_keyオブジェクトへのポインタ。 + _Example_ \code int ret; - byte priv[] = { initialize with 57 byte private key }; + byte priv[] = { 57バイトの秘密鍵で初期化 }; ed448_key key; wc_ed448_init_key(&key); ret = wc_ed448_import_private_only(priv, sizeof(priv), &key); if (ret != 0) { - // error importing private key + // 秘密鍵のインポートエラー } \endcode + \sa wc_ed448_import_public + \sa wc_ed448_import_public_ex \sa wc_ed448_import_private_key + \sa wc_ed448_import_private_key_ex \sa wc_ed448_export_private_only */ @@ -374,29 +484,37 @@ int wc_ed448_import_private_only(const byte* priv, word32 privSz, /*! \ingroup ED448 - \brief この関数は、一対のバッファからパブリック/プライベートED448キーペアをインポートします。この関数は圧縮キーと非圧縮キーの両方を処理します。 - \return 0 ED448キーのインポートに成功しました。 - \return BAD_FUNC_ARG INまたはKEYがNULLに評価された場合、またはPROVSZがED448_KEY_SIZEまたはPUBSZのいずれかがeD448_PUB_KEY_SIZEよりも小さい場合に返されます。 - \param [in] 秘密鍵を含むバッファへのPRIVポインタ。 - \param [in] 秘密鍵のPrivsz長さ。 - \param [in] 公開鍵を含むバッファへのPubポインタ。 - \param [in] 公開鍵のPubszの長さ。 + + \brief この関数は、一対のバッファから公開/秘密Ed448鍵ペアをインポートします。この関数は、圧縮キーと非圧縮キーの両方を処理します。 + + \return 0 Ed448鍵のインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG inまたはkeyがNULLと評価された場合、またはprivSzがED448_KEY_SIZEより小さい、もしくはpubSzがED448_PUB_KEY_SIZEより小さい場合に返されます。 + + \param [in] priv 秘密鍵を含むバッファへのポインタ。 + \param [in] privSz 秘密鍵の長さ。 + \param [in] pub 公開鍵を含むバッファへのポインタ。 + \param [in] pubSz 公開鍵の長さ。 + \param [in,out] key インポートされた秘密/公開鍵ペアを格納するed448_keyオブジェクトへのポインタ。 + _Example_ \code int ret; - byte priv[] = { initialize with 57 byte private key }; - byte pub[] = { initialize with the corresponding public key }; + byte priv[] = { 57バイトの秘密鍵で初期化 }; + byte pub[] = { 対応する公開鍵で初期化 }; ed448_key key; wc_ed448_init_key(&key); ret = wc_ed448_import_private_key(priv, sizeof(priv), pub, sizeof(pub), &key); if (ret != 0) { - // error importing key + // 鍵のインポートエラー } \endcode + \sa wc_ed448_import_public + \sa wc_ed448_import_public_ex \sa wc_ed448_import_private_only + \sa wc_ed448_import_private_key_ex \sa wc_ed448_export_private */ @@ -405,27 +523,74 @@ int wc_ed448_import_private_key(const byte* priv, word32 privSz, /*! \ingroup ED448 - \brief この関数は、ED448_Key構造体から秘密鍵をエクスポートします。公開鍵をバッファアウトに格納し、ounterenでこのバッファに書き込まれたバイトを設定します。 - \return 0 公開鍵のエクスポートに成功したら返されます。 - \return BAD_FUNC_ARG いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されたバッファーが秘密鍵を保存するのに十分な大きさでない場合に返されます。このエラーを返すと、outlenに必要なサイズを設定します。 - \param [in] 公開鍵をエクスポートするED448_Key構造体へのキーポインタ。 - \param [out] 公開鍵を保存するバッファへのポインタ。 + + \brief この関数は、一対のバッファから公開/秘密Ed448鍵ペアをインポートします。この関数は、圧縮キーと非圧縮キーの両方を処理します。信頼されていない場合、公開鍵が秘密鍵に対してチェックされます。 + + \return 0 Ed448鍵のインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG inまたはkeyがNULLと評価された場合、またはprivSzがED448_KEY_SIZEより小さい、もしくはpubSzがED448_PUB_KEY_SIZEより小さい場合に返されます。 + + \param [in] priv 秘密鍵を含むバッファへのポインタ。 + \param [in] privSz 秘密鍵の長さ。 + \param [in] pub 公開鍵を含むバッファへのポインタ。 + \param [in] pubSz 公開鍵の長さ。 + \param [in,out] key インポートされた秘密/公開鍵ペアを格納するed448_keyオブジェクトへのポインタ。 + \param [in] trusted 公開鍵データが信頼されているかどうか。 + _Example_ \code int ret; + byte priv[] = { 57バイトの秘密鍵で初期化 }; + byte pub[] = { 対応する公開鍵で初期化 }; + ed448_key key; - // initialize key, make key + wc_ed448_init_key(&key); + ret = wc_ed448_import_private_key_ex(priv, sizeof(priv), pub, sizeof(pub), + &key, 1); + if (ret != 0) { + // 鍵のインポートエラー + } + \endcode + + \sa wc_ed448_import_public + \sa wc_ed448_import_public_ex + \sa wc_ed448_import_private_only + \sa wc_ed448_import_private_key + \sa wc_ed448_export_private +*/ + +int wc_ed448_import_private_key_ex(const byte* priv, word32 privSz, + const byte* pub, word32 pubSz, ed448_key* key, int trusted); + +/*! + \ingroup ED448 + + \brief この関数は、ed448_key構造体から秘密鍵をエクスポートします。公開鍵をバッファoutに格納し、このバッファに書き込まれたバイト数をoutLenに設定します。 + + \return 0 公開鍵のエクスポートに成功した場合に返されます。 + \return BAD_FUNC_ARG 入力値のいずれかがNULLと評価された場合に返されます。 + \return BUFFER_E 提供されたバッファが秘密鍵を格納するのに十分な大きさでない場合に返されます。このエラーを返す際、関数はoutLenに必要なサイズを設定します。 + + \param [in] key 公開鍵をエクスポートするed448_key構造体へのポインタ。 + \param [out] out 公開鍵を格納するバッファへのポインタ。 + \param [in,out] outLen outで利用可能なサイズを持つword32オブジェクトへのポインタ。公開鍵のエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 + + _Example_ + \code + int ret; + ed448_key key; + // keyを初期化し、keyを作成 char pub[57]; word32 pubSz = sizeof(pub); ret = wc_ed448_export_public(&key, pub, &pubSz); if (ret != 0) { - // error exporting public key + // 公開鍵のエクスポートエラー } \endcode + \sa wc_ed448_import_public + \sa wc_ed448_import_public_ex \sa wc_ed448_export_private_only */ @@ -433,39 +598,51 @@ int wc_ed448_export_public(ed448_key* key, byte* out, word32* outLen); /*! \ingroup ED448 - \brief この関数は、ED448_Key構造体からの秘密鍵のみをエクスポートします。秘密鍵をバッファアウトに格納し、outlenにこのバッファに書き込まれたバイトを設定します。 - \return 0 秘密鍵のエクスポートに成功したら返されます。 - \return ECC_BAD_ARG_E いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されたバッファーが秘密鍵を保存するのに十分な大きさでない場合に返されます。 - \param [in] 秘密鍵をエクスポートするED448_Key構造体へのキーポインタ。 - \param [out] 秘密鍵を保存するバッファへのポインタ。 + + \brief この関数は、ed448_key構造体から秘密鍵のみをエクスポートします。秘密鍵をバッファoutに格納し、このバッファに書き込まれたバイト数をoutLenに設定します。 + + \return 0 秘密鍵のエクスポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E 入力値のいずれかがNULLと評価された場合に返されます。 + \return BUFFER_E 提供されたバッファが秘密鍵を格納するのに十分な大きさでない場合に返されます。 + + \param [in] key 秘密鍵をエクスポートするed448_key構造体へのポインタ。 + \param [out] out 秘密鍵を格納するバッファへのポインタ。 + \param [in,out] outLen outで利用可能なサイズを持つword32オブジェクトへのポインタ。秘密鍵のエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 + _Example_ \code int ret; ed448_key key; - // initialize key, make key + // keyを初期化し、keyを作成 - char priv[57]; // 57 bytes because only private key + char priv[57]; // 秘密鍵のみなので57バイト word32 privSz = sizeof(priv); ret = wc_ed448_export_private_only(&key, priv, &privSz); if (ret != 0) { - // error exporting private key + // 秘密鍵のエクスポートエラー } \endcode + \sa wc_ed448_export_public \sa wc_ed448_import_private_key + \sa wc_ed448_import_private_key_ex */ int wc_ed448_export_private_only(ed448_key* key, byte* out, word32* outLen); /*! \ingroup ED448 - \brief この関数は、ED448_Key構造体からキーペアをエクスポートします。キーペアをバッファOUTに格納し、ounterenでこのバッファに書き込まれたバイトを設定します。 - \return 0 キーペアのエクスポートに成功したら返されます。 - \return ECC_BAD_ARG_E いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されているバッファーがキーペアを保存するのに十分な大きさでない場合に返されます。 - \param [in] キーペアをエクスポートするためのED448_Key構造体へのキーポインタ。 - \param [out] キーペアを保存するバッファへのポインタ。 + + \brief この関数は、ed448_key構造体から鍵ペアをエクスポートします。鍵ペアをバッファoutに格納し、このバッファに書き込まれたバイト数をoutLenに設定します。 + + \return 0 鍵ペアのエクスポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E 入力値のいずれかがNULLと評価された場合に返されます。 + \return BUFFER_E 提供されたバッファが鍵ペアを格納するのに十分な大きさでない場合に返されます。 + + \param [in] key 鍵ペアをエクスポートするed448_key構造体へのポインタ。 + \param [out] out 鍵ペアを格納するバッファへのポインタ。 + \param [in,out] outLen outで利用可能なサイズを持つword32オブジェクトへのポインタ。鍵ペアのエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 + _Example_ \code ed448_key key; @@ -474,15 +651,16 @@ int wc_ed448_export_private_only(ed448_key* key, byte* out, word32* outLen); WC_RNG rng; wc_InitRng(&rng); - wc_ed448_make_key(&rng, 57, &key); // initialize 57 byte Ed448 key + wc_ed448_make_key(&rng, 57, &key); // 57バイトのEd448鍵を初期化 - byte out[114]; // out needs to be a sufficient buffer size + byte out[114]; // outは十分なバッファサイズである必要があります word32 outLen = sizeof(out); int key_size = wc_ed448_export_private(&key, out, &outLen); if (key_size == BUFFER_E) { - // Check size of out compared to outLen to see if function reset outLen + // 関数がoutLenをリセットしたかどうかを確認するため、outのサイズとoutLenを比較 } \endcode + \sa wc_ed448_import_private \sa wc_ed448_export_private_only */ @@ -491,19 +669,24 @@ int wc_ed448_export_private(ed448_key* key, byte* out, word32* outLen); /*! \ingroup ED448 - \brief この関数は、ED448_Key構造体とは別にプライベートキーと公開鍵をエクスポートします。秘密鍵をバッファーPrivに格納し、PRIVSZでこのバッファに書き込まれたバイトを設定します。公開鍵をバッファPUBに格納し、Pubszでこのバッファに書き込まれたバイトを設定します。 - \return 0 キーペアのエクスポートに成功したら返されます。 - \return ECC_BAD_ARG_E いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されているバッファーがキーペアを保存するのに十分な大きさでない場合に返されます。 - \param [in] キーペアをエクスポートするためのED448_Key構造体へのキーポインタ。 - \param [out] 秘密鍵を保存するバッファへのPRIVポインタ。 - \param [in,out] PRIVSZ PIVINSZポインタサイズが表示されているサイズを持つWord32オブジェクトへのポインタ。秘密鍵のエクスポート後に書き込まれたバイト数を設定します。 - \param [out] パブリックキーを保存するバッファへのPub。 + + \brief この関数は、ed448_key構造体から秘密鍵と公開鍵を個別にエクスポートします。秘密鍵をバッファprivに格納し、このバッファに書き込まれたバイト数をprivSzに設定します。公開鍵をバッファpubに格納し、このバッファに書き込まれたバイト数をpubSzに設定します。 + + \return 0 鍵ペアのエクスポートに成功した場合に返されます。 + \return ECC_BAD_ARG_E 入力値のいずれかがNULLと評価された場合に返されます。 + \return BUFFER_E 提供されたバッファが鍵ペアを格納するのに十分な大きさでない場合に返されます。 + + \param [in] key 鍵ペアをエクスポートするed448_key構造体へのポインタ。 + \param [out] priv 秘密鍵を格納するバッファへのポインタ。 + \param [in,out] privSz outで利用可能なサイズを持つword32オブジェクトへのポインタ。秘密鍵のエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 + \param [out] pub 公開鍵を格納するバッファへのポインタ。 + \param [in,out] pubSz outで利用可能なサイズを持つword32オブジェクトへのポインタ。公開鍵のエクスポートに成功した後、outに書き込まれたバイト数が設定されます。 + _Example_ \code int ret; ed448_key key; - // initialize key, make key + // keyを初期化し、keyを作成 char pub[57]; word32 pubSz = sizeof(pub); @@ -512,9 +695,10 @@ int wc_ed448_export_private(ed448_key* key, byte* out, word32* outLen); ret = wc_ed448_export_key(&key, priv, &pubSz, pub, &pubSz); if (ret != 0) { - // error exporting private and public key + // 秘密鍵と公開鍵のエクスポートエラー } \endcode + \sa wc_ed448_export_private \sa wc_ed448_export_public */ @@ -525,24 +709,32 @@ int wc_ed448_export_key(ed448_key* key, /*! \ingroup ED448 - \brief この関数は、ed448_key構造体の公開鍵をチェックします。 - \return 0 プライベートキーと公開鍵が一致した場合に返されます。 - \return BAD_FUNC_ARGS 与えられたキーがNULLの場合に返されます。 + + \brief この関数は、ed448_key構造体内の公開鍵が秘密鍵と一致するかチェックします。 + + \return 0 秘密鍵と公開鍵が一致した場合に返されます。 + \return BAD_FUNC_ARGS 指定されたkeyがNULLの場合に返されます。 + + \param [in] key 秘密鍵と公開鍵を保持するed448_key構造体へのポインタ。 + _Example_ \code int ret; - byte priv[] = { initialize with 57 byte private key }; - byte pub[] = { initialize with the corresponding public key }; + byte priv[] = { 57バイトの秘密鍵で初期化 }; + byte pub[] = { 対応する公開鍵で初期化 }; ed448_key key; wc_ed448_init_key(&key); - wc_ed448_import_private_key(priv, sizeof(priv), pub, sizeof(pub), &key); + wc_ed448_import_private_key_ex(priv, sizeof(priv), pub, sizeof(pub), &key, + 1); ret = wc_ed448_check_key(&key); if (ret != 0) { - // error checking key + // 鍵のチェックエラー } \endcode + \sa wc_ed448_import_private_key + \sa wc_ed448_import_private_key_ex */ int wc_ed448_check_key(ed448_key* key); @@ -550,19 +742,25 @@ int wc_ed448_check_key(ed448_key* key); /*! \ingroup ED448 - \brief この関数は、ED448秘密鍵のサイズ - 57バイトを返します。 - \return ED448_KEY_SIZE 有効な秘密鍵のサイズ(57バイト)。 - \return BAD_FUNC_ARGS 与えられたキーがNULLの場合に返されます。 + + \brief この関数は、Ed448秘密鍵のサイズ(57バイト)を返します。 + + \return ED448_KEY_SIZE 有効な秘密鍵のサイズ(57バイト)。 + \return BAD_FUNC_ARGS 指定されたkeyがNULLの場合に返されます。 + + \param [in] key 鍵サイズを取得するed448_key構造体へのポインタ。 + _Example_ \code int keySz; ed448_key key; - // initialize key, make key + // keyを初期化し、keyを作成 keySz = wc_ed448_size(&key); if (keySz == 0) { - // error determining key size + // 鍵サイズの決定エラー } \endcode + \sa wc_ed448_make_key */ @@ -570,9 +768,14 @@ int wc_ed448_size(ed448_key* key); /*! \ingroup ED448 - \brief この関数は、秘密鍵サイズ(secret + public)をバイト単位で返します。 - \return ED448_PRV_KEY_SIZE 秘密鍵のサイズ(114バイト)。 - \return BAD_FUNC_ARG key引数がnullの場合は返します。 + + \brief この関数は、秘密鍵のサイズ(秘密 + 公開)をバイト単位で返します。 + + \return ED448_PRV_KEY_SIZE 秘密鍵のサイズ(114バイト)。 + \return BAD_FUNC_ARG key引数がNULLの場合に返されます。 + + \param [in] key 鍵サイズを取得するed448_key構造体へのポインタ。 + _Example_ \code ed448_key key; @@ -581,9 +784,10 @@ int wc_ed448_size(ed448_key* key); WC_RNG rng; wc_InitRng(&rng); - wc_ed448_make_key(&rng, 57, &key); // initialize 57 byte Ed448 key + wc_ed448_make_key(&rng, 57, &key); // 57バイトのEd448鍵を初期化 int key_size = wc_ed448_priv_size(&key); \endcode + \sa wc_ed448_pub_size */ @@ -591,9 +795,14 @@ int wc_ed448_priv_size(ed448_key* key); /*! \ingroup ED448 - \brief この関数は圧縮鍵サイズをバイト単位で返します(公開鍵)。 - \return ED448_PUB_KEY_SIZE 圧縮公開鍵のサイズ(57バイト)。 - \return BAD_FUNC_ARG key引数がnullの場合は返します。 + + \brief この関数は、圧縮鍵のサイズをバイト単位で返します(公開鍵)。 + + \return ED448_PUB_KEY_SIZE 圧縮公開鍵のサイズ(57バイト)。 + \return BAD_FUNC_ARG key引数がNULLの場合に返されます。 + + \param [in] key 鍵サイズを取得するed448_key構造体へのポインタ。 + _Example_ \code ed448_key key; @@ -601,9 +810,10 @@ int wc_ed448_priv_size(ed448_key* key); WC_RNG rng; wc_InitRng(&rng); - wc_ed448_make_key(&rng, 57, &key); // initialize 57 byte Ed448 key + wc_ed448_make_key(&rng, 57, &key); // 57バイトのEd448鍵を初期化 int key_size = wc_ed448_pub_size(&key); \endcode + \sa wc_ed448_priv_size */ @@ -611,21 +821,27 @@ int wc_ed448_pub_size(ed448_key* key); /*! \ingroup ED448 - \brief この関数は、ED448シグネチャのサイズ(バイト数114)を返します。 - \return ED448_SIG_SIZE ED448シグネチャ(114バイト)のサイズ。 - \return BAD_FUNC_ARG key引数がnullの場合は返します。 + + \brief この関数は、Ed448署名のサイズ(バイト単位で114)を返します。 + + \return ED448_SIG_SIZE Ed448署名のサイズ(114バイト)。 + \return BAD_FUNC_ARG key引数がNULLの場合に返されます。 + + \param [in] key 署名サイズを取得するed448_key構造体へのポインタ。 + _Example_ \code int sigSz; ed448_key key; - // initialize key, make key + // keyを初期化し、keyを作成 sigSz = wc_ed448_sig_size(&key); if (sigSz == 0) { - // error determining sig size + // 署名サイズの決定エラー } \endcode + \sa wc_ed448_sign_msg */ -int wc_ed448_sig_size(ed448_key* key); +int wc_ed448_sig_size(ed448_key* key); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/error-crypt.h b/doc/dox_comments/header_files-ja/error-crypt.h index e660d1f32c..b6b6c1ef70 100644 --- a/doc/dox_comments/header_files-ja/error-crypt.h +++ b/doc/dox_comments/header_files-ja/error-crypt.h @@ -1,34 +1,46 @@ /*! \ingroup Error - \brief この関数は、特定のバッファ内の特定のエラーコードのエラー文字列を格納します。 - \return none いいえ返します。 - \param error 文字列を取得するためのエラーコード + + \brief この関数は、特定のエラーコードに対するエラー文字列を指定されたバッファに格納します。 + + \return none 戻り値なし。 + + \param error 文字列を取得するエラーコード + \param buffer エラー文字列を格納するバッファ。バッファは少なくともWOLFSSL_MAX_ERROR_SZ(80バイト)の長さである必要があります + _Example_ \code char errorMsg[WOLFSSL_MAX_ERROR_SZ]; int err = wc_some_function(); - if( err != 0) { // error occurred + if( err != 0) { // エラーが発生 wc_ErrorString(err, errorMsg); } \endcode + \sa wc_GetErrorString */ void wc_ErrorString(int err, char* buff); /*! \ingroup Error - \brief この関数は、特定のエラーコードのエラー文字列を返します。 - \return string エラーコードのエラー文字列を文字列リテラルとして返します。 + + \brief この関数は、特定のエラーコードに対するエラー文字列を返します。 + + \return string エラーコードに対するエラー文字列を文字列リテラルとして返します。 + + \param error 文字列を取得するエラーコード + _Example_ \code char * errorMsg; int err = wc_some_function(); - if( err != 0) { // error occurred + if( err != 0) { // エラーが発生 errorMsg = wc_GetErrorString(err); } \endcode + \sa wc_ErrorString */ -const char* wc_GetErrorString(int error); +const char* wc_GetErrorString(int error); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/evp.h b/doc/dox_comments/header_files-ja/evp.h index d6fef8e5de..b95641498d 100644 --- a/doc/dox_comments/header_files-ja/evp.h +++ b/doc/dox_comments/header_files-ja/evp.h @@ -1,7 +1,12 @@ /*! \ingroup openSSL - \brief それぞれのwolfssl_evp_cipherポインタのゲッター関数。最初にプログラム内でwolfssl_evp_init()を1回呼び出す必要があります。wolfssl_des_ecbマクロは、wolfssl_evp_des_ede3_ecb()に対して定義する必要があります。 - \return pointer DES EDE3操作のためのwolfssl_evp_cipherポインタを返します。 + + \brief それぞれのWOLFSSL_EVP_CIPHERポインタのゲッター関数。これらの暗号文字列を設定するには、まずプログラムでwolfSSL_EVP_init()を一度呼び出す必要があります。wolfSSL_EVP_des_ede3_ecb()の場合、WOLFSSL_DES_ECBマクロが定義されている必要があります。 + + \return pointer DES EDE3操作用のWOLFSSL_EVP_CIPHERポインタを返します。 + + \param none パラメータなし。 + _Example_ \code printf("block size des ede3 cbc = %d\n", @@ -9,31 +14,43 @@ printf("block size des ede3 ecb = %d\n", wolfSSL_EVP_CIPHER_block_size(wolfSSL_EVP_des_ede3_ecb())); \endcode + \sa wolfSSL_EVP_CIPHER_CTX_init */ const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_ede3_ecb(void); /*! \ingroup openSSL - \brief それぞれのwolfssl_evp_cipherポインタのゲッター関数。最初にプログラム内でwolfssl_evp_init()を1回呼び出す必要があります。wolfssl_des_ecbマクロは、wolfssl_evp_des_ecb()に対して定義する必要があります。 - \return pointer DES操作のためのwolfssl_evp_cipherポインタを返します。 + + \brief それぞれのWOLFSSL_EVP_CIPHERポインタのゲッター関数。これらの暗号文字列を設定するには、まずプログラムでwolfSSL_EVP_init()を一度呼び出す必要があります。wolfSSL_EVP_des_ecb()の場合、WOLFSSL_DES_ECBマクロが定義されている必要があります。 + + \return pointer DES操作用のWOLFSSL_EVP_CIPHERポインタを返します。 + + \param none パラメータなし。 + _Example_ \code WOLFSSL_EVP_CIPHER* cipher; cipher = wolfSSL_EVP_des_cbc(); … \endcode + \sa wolfSSL_EVP_CIPHER_CTX_init */ const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_cbc(void); /*! \ingroup openSSL - \brief wolfssl_evp_md_ctxを初期化する機能。この関数はwolfssl_engineがwolfssl_engineを使用しないため、wolfssl_evp_digestinit()のラッパーです。 - \return SSL_SUCCESS 正常に設定されている場合。 - \return SSL_FAILURE 成功しなかった場合 - \param ctx 初期化する構造 - \param type SHAなどのハッシュの種類。 + + \brief WOLFSSL_EVP_MD_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_EVP_DigestInit()のラッパーです。 + + \return SSL_SUCCESS 正常に設定された場合。 + \return SSL_FAILURE 成功しなかった場合。 + + \param ctx 初期化する構造体。 + \param type 実行するハッシュのタイプ、例えばSHA。 + \param impl 使用するエンジン。wolfSSLでは該当なし、NULLでも可。 + _Example_ \code WOLFSSL_EVP_MD_CTX* md = NULL; @@ -45,8 +62,9 @@ const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_cbc(void); } printf("cipher md init ret = %d\n", wolfSSL_EVP_DigestInit_ex(md, wolfSSL_EVP_sha1(), e)); - //free resources + //リソースを解放 \endcode + \sa wolfSSL_EVP_MD_CTX_new \sa wolfCrypt_Init \sa wolfSSL_EVP_MD_CTX_free @@ -57,14 +75,19 @@ int wolfSSL_EVP_DigestInit_ex(WOLFSSL_EVP_MD_CTX* ctx, /*! \ingroup openSSL - \brief wolfssl_evp_cipher_ctxを初期化する機能。この関数はwolfssl_engineがwolfssl_engineを使用しないため、wolfssl_ciphinit()のラッパーです。 - \return SSL_SUCCESS 正常に設定されている場合。 - \return SSL_FAILURE 成功しなかった場合 - \param ctx 初期化する構造 - \param type AESなどの暗号化/復号化の種類。 - \param impl 使用するエンジン。wolfsslのn / aは、nullになることができます。 - \param key 設定するキー - \param iv アルゴリズムで必要な場合はIV。 + + \brief WOLFSSL_EVP_CIPHER_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_CipherInit()のラッパーです。 + + \return SSL_SUCCESS 正常に設定された場合。 + \return SSL_FAILURE 成功しなかった場合。 + + \param ctx 初期化する構造体。 + \param type 実行する暗号化/復号のタイプ、例えばAES。 + \param impl 使用するエンジン。wolfSSLでは該当なし、NULLでも可。 + \param key 設定する鍵。 + \param iv アルゴリズムが必要とする場合のiv。 + \param enc 暗号化(1)または復号(0)フラグ。 + _Example_ \code WOLFSSL_EVP_CIPHER_CTX* ctx = NULL; @@ -82,8 +105,9 @@ int wolfSSL_EVP_DigestInit_ex(WOLFSSL_EVP_MD_CTX* ctx, EVP_aes_128_ cbc(), e, key, iv, 1)); printf("cipher init ex success ret = %d\n", wolfSSL_EVP_CipherInit_ex(ctx, EVP_aes_128_c bc(), e, key, iv, 1)); - // free resources + // リソースを解放 \endcode + \sa wolfSSL_EVP_CIPHER_CTX_new \sa wolfCrypt_Init \sa wolfSSL_EVP_CIPHER_CTX_free @@ -97,13 +121,18 @@ int wolfSSL_EVP_CipherInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx, /*! \ingroup openSSL - \brief wolfssl_evp_cipher_ctxを初期化する機能。WolfSSLはWOLFSSL_ENGINEを使用しないため、この関数はwolfssl_evp_ciphinit()のラッパーです。暗号化フラグを暗号化するように設定します。 - \return SSL_SUCCESS 正常に設定されている場合。 - \return SSL_FAILURE 成功しなかった場合 - \param ctx 初期化する構造 - \param type AESなどの暗号化の種類。 - \param impl 使用するエンジン。wolfsslのn / aは、nullになることができます。 - \param key 使用する鍵 + + \brief WOLFSSL_EVP_CIPHER_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_EVP_CipherInit()のラッパーです。暗号化フラグを暗号化に設定します。 + + \return SSL_SUCCESS 正常に設定された場合。 + \return SSL_FAILURE 成功しなかった場合。 + + \param ctx 初期化する構造体。 + \param type 実行する暗号化のタイプ、例えばAES。 + \param impl 使用するエンジン。wolfSSLでは該当なし、NULLでも可。 + \param key 使用する鍵。 + \param iv 使用するiv。 + _Example_ \code WOLFSSL_EVP_CIPHER_CTX* ctx = NULL; @@ -115,8 +144,9 @@ int wolfSSL_EVP_CipherInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx, } printf("cipher ctx init ret = %d\n", wolfSSL_EVP_EncryptInit_ex(ctx, wolfSSL_EVP_aes_128_cbc(), e, key, iv)); - //free resources + //リソースを解放 \endcode + \sa wolfSSL_EVP_CIPHER_CTX_new \sa wolfCrypt_Init \sa wolfSSL_EVP_CIPHER_CTX_free @@ -129,14 +159,19 @@ int wolfSSL_EVP_EncryptInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx, /*! \ingroup openSSL - \brief wolfssl_evp_cipher_ctxを初期化する機能。WolfSSLはWOLFSSL_ENGINEを使用しないため、この関数はwolfssl_evp_ciphinit()のラッパーです。暗号化フラグを復号化するように設定します。 - \return SSL_SUCCESS 正常に設定されている場合。 - \return SSL_FAILURE 成功しなかった場合 - \param ctx 初期化する構造 - \param type AESなどの暗号化/復号化の種類。 - \param impl 使用するエンジン。wolfsslのn / aは、nullになることができます。 - \param key 設定するキー - \param iv アルゴリズムで必要な場合はIV。 + + \brief WOLFSSL_EVP_CIPHER_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_EVP_CipherInit()のラッパーです。暗号化フラグを復号に設定します。 + + \return SSL_SUCCESS 正常に設定された場合。 + \return SSL_FAILURE 成功しなかった場合。 + + \param ctx 初期化する構造体。 + \param type 実行する暗号化/復号のタイプ、例えばAES。 + \param impl 使用するエンジン。wolfSSLでは該当なし、NULLでも可。 + \param key 設定する鍵。 + \param iv アルゴリズムが必要とする場合のiv。 + \param enc 暗号化(1)または復号(0)フラグ。 + _Example_ \code WOLFSSL_EVP_CIPHER_CTX* ctx = NULL; @@ -156,8 +191,9 @@ int wolfSSL_EVP_EncryptInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx, EVP_aes_128_ cbc(), e, key, iv, 1)); printf("cipher init ex success ret = %d\n", wolfSSL_EVP_DecryptInit_ex(ctx, EVP_aes_128_c bc(), e, key, iv, 1)); - // free resources + // リソースを解放 \endcode + \sa wolfSSL_EVP_CIPHER_CTX_new \sa wolfCrypt_Init \sa wolfSSL_EVP_CIPHER_CTX_free @@ -170,13 +206,18 @@ int wolfSSL_EVP_DecryptInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx, /*! \ingroup openSSL - \brief データを暗号化/復号化する機能。バッファ内では暗号化または復号化され、OUTバッファが結果を保持します。OUTORは暗号化/復号化された情報の長さになります。 - \return SSL_SUCCESS 成功した場合 - \return SSL_FAILURE 成功しなかった場合 - \param ctx から暗号化の種類を取得するための構造。 - \param out 出力を保持するためのバッファ。 - \param outl 出力のサイズになるように調整しました。 - \param in 操作を実行するためのバッファー。 + + \brief データを暗号化/復号する関数。inバッファが暗号化または復号される対象として追加され、outバッファが結果を保持します。outlは暗号化/復号された情報の長さになります。 + + \return SSL_SUCCESS 成功した場合。 + \return SSL_FAILURE 成功しなかった場合。 + + \param ctx 暗号タイプを取得する構造体。 + \param out 出力を保持するバッファ。 + \param outl 出力のサイズに調整されます。 + \param in 操作を実行するバッファ。 + \param inl 入力バッファの長さ。 + _Example_ \code WOLFSSL_EVP_CIPHER_CTX* ctx = NULL; @@ -186,12 +227,13 @@ int wolfSSL_EVP_DecryptInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx, int inl = 100; ctx = wolfSSL_EVP_CIPHER_CTX_new(); - // set up ctx + // ctxをセットアップ ret = wolfSSL_EVP_CipherUpdate(ctx, out, outl, in, inl); - // check ret value - // buffer out holds outl bytes of data - // free resources + // ret値をチェック + // バッファoutはoutlバイトのデータを保持 + // リソースを解放 \endcode + \sa wolfSSL_EVP_CIPHER_CTX_new \sa wolfCrypt_Init \sa wolfSSL_EVP_CIPHER_CTX_free @@ -202,19 +244,25 @@ int wolfSSL_EVP_CipherUpdate(WOLFSSL_EVP_CIPHER_CTX *ctx, /*! \ingroup openSSL - \brief この関数は、パディングを追加する最終暗号化操作を実行します。wolfssl_evp_ciph_no_paddingフラグがwolfssl_evp_cipher_ctx構造に設定されている場合、1が返され、暗号化/復号化は行われません。PADDING FLAGがSETIパディングを追加して暗号化すると、暗号化にCTXが設定されていると、復号化されたときにパディング値がチェックされます。 - \return 1 成功に戻りました。 - \return 0 失敗に遭遇した場合 - \param ctx 復号化/暗号化する構造。 - \param out 最後の復号化/暗号化のためのバッファ。 + + \brief この関数は、パディングを追加する最終暗号操作を実行します。WOLFSSL_EVP_CIPHER_CTX構造体にWOLFSSL_EVP_CIPH_NO_PADDINGフラグが設定されている場合、1が返され、暗号化/復号は実行されません。パディングフラグが設定されている場合、ctxが暗号化に設定されているときにパディングが追加され暗号化され、復号に設定されているときにパディング値がチェックされます。 + + \return 1 成功時に返されます。 + \return 0 失敗が発生した場合。 + + \param ctx 復号/暗号化に使用する構造体。 + \param out 最終復号/暗号化用のバッファ。 + \param out1 関数によってデータが追加されたときのoutバッファのサイズ。 + _Example_ \code WOLFSSL_EVP_CIPHER_CTX* ctx; int out1; unsigned char out[64]; - // create ctx + // ctxを作成 wolfSSL_EVP_CipherFinal(ctx, out, &out1); \endcode + \sa wolfSSL_EVP_CIPHER_CTX_new */ int wolfSSL_EVP_CipherFinal(WOLFSSL_EVP_CIPHER_CTX *ctx, @@ -222,17 +270,23 @@ int wolfSSL_EVP_CipherFinal(WOLFSSL_EVP_CIPHER_CTX *ctx, /*! \ingroup openSSL - \brief WolfSSL EVP_CIPHER_CTX構造キー長の設定機能 - \return SSL_SUCCESS 正常に設定されている場合。 - \return SSL_FAILURE キーの長さを設定できなかった場合。 - \param ctx キーの長さを設定する構造 + + \brief WOLFSSL_EVP_CIPHER_CTX構造体の鍵長のセッター関数。 + + \return SSL_SUCCESS 正常に設定された場合。 + \return SSL_FAILURE 鍵長の設定に失敗した場合。 + + \param ctx 鍵長を設定する構造体。 + \param keylen 鍵の長さ。 + _Example_ \code WOLFSSL_EVP_CIPHER_CTX* ctx; int keylen; - // create ctx + // ctxを作成 wolfSSL_EVP_CIPHER_CTX_set_key_length(ctx, keylen); \endcode + \sa wolfSSL_EVP_CIPHER_flags */ int wolfSSL_EVP_CIPHER_CTX_set_key_length(WOLFSSL_EVP_CIPHER_CTX* ctx, @@ -240,43 +294,61 @@ int wolfSSL_EVP_CIPHER_CTX_set_key_length(WOLFSSL_EVP_CIPHER_CTX* ctx, /*! \ingroup openSSL - \brief これはCTXブロックサイズのGetter関数です。 - \return size ctx-> block_sizeを返します。 + + \brief これはctxブロックサイズのゲッター関数です。 + + \return size ctx->block_sizeを返します。 + + \param ctx ブロックサイズを取得する暗号ctx。 + _Example_ \code const WOLFSSL_CVP_CIPHER_CTX* ctx; - //set up ctx - printf(“block size = %d\n”, wolfSSL_EVP_CIPHER_CTX_block_size(ctx)); + //ctxをセットアップ + printf("block size = %d\n", wolfSSL_EVP_CIPHER_CTX_block_size(ctx)); \endcode + \sa wolfSSL_EVP_CIPHER_block_size */ int wolfSSL_EVP_CIPHER_CTX_block_size(const WOLFSSL_EVP_CIPHER_CTX *ctx); /*! \ingroup openSSL - \brief これは暗号のブロックサイズのゲッター関数です。 - \return size ブロックサイズを返します。 + + \brief これは暗号のブロックサイズのゲッター関数です。 + + \return size ブロックサイズを返します。 + + \param cipher ブロックサイズを取得する暗号。 + _Example_ \code - printf(“block size = %d\n”, + printf("block size = %d\n", wolfSSL_EVP_CIPHER_block_size(wolfSSL_EVP_aes_256_ecb())); \endcode + \sa wolfSSL_EVP_aes_256_ctr */ int wolfSSL_EVP_CIPHER_block_size(const WOLFSSL_EVP_CIPHER *cipher); /*! \ingroup openSSL - \brief WolfSSL evp_cipher_ctx構造の設定機能 - \return none いいえ返します。 - \param ctx フラグを設定する構造 + + \brief WOLFSSL_EVP_CIPHER_CTX構造体のセッター関数。 + + \return none 戻り値なし。 + + \param ctx フラグを設定する構造体。 + \param flag 構造体に設定するフラグ。 + _Example_ \code WOLFSSL_EVP_CIPHER_CTX* ctx; int flag; - // create ctx + // ctxを作成 wolfSSL_EVP_CIPHER_CTX_set_flags(ctx, flag); \endcode + \sa wolfSSL_EVP_CIPHER_flags \sa wolfSSL_EVP_CIPHER_CTX_flags */ @@ -284,16 +356,22 @@ void wolfSSL_EVP_CIPHER_CTX_set_flags(WOLFSSL_EVP_CIPHER_CTX *ctx, int flags); /*! \ingroup openSSL - \brief WolfSSL evp_cipher_ctx構造のクリア機能 - \return none いいえ返します。 - \param ctx フラグをクリアするための構造 + + \brief WOLFSSL_EVP_CIPHER_CTX構造体のクリア関数。 + + \return none 戻り値なし。 + + \param ctx フラグをクリアする構造体。 + \param flag 構造体でクリアするフラグ値。 + _Example_ \code WOLFSSL_EVP_CIPHER_CTX* ctx; int flag; - // create ctx + // ctxを作成 wolfSSL_EVP_CIPHER_CTX_clear_flags(ctx, flag); \endcode + \sa wolfSSL_EVP_CIPHER_flags \sa wolfSSL_EVP_CIPHER_CTX_flags */ @@ -301,16 +379,22 @@ void wolfSSL_EVP_CIPHER_CTX_clear_flags(WOLFSSL_EVP_CIPHER_CTX *ctx, int flags); /*! \ingroup openSSL - \brief wolfssl_evp_cipher_ctx構造のためのセッター機能パディングを使用する。 - \return SSL_SUCCESS 正常に設定されている場合。 - \return BAD_FUNC_ARG NULL引数が渡された場合。 - \param ctx パディングフラグを設定する構造 + + \brief パディングを使用するためのWOLFSSL_EVP_CIPHER_CTX構造体のセッター関数。 + + \return SSL_SUCCESS 正常に設定された場合。 + \return BAD_FUNC_ARG null引数が渡された場合。 + + \param ctx パディングフラグを設定する構造体。 + \param padding パディングを設定しない場合は0、パディングを設定する場合は1。 + _Example_ \code WOLFSSL_EVP_CIPHER_CTX* ctx; - // create ctx + // ctxを作成 wolfSSL_EVP_CIPHER_CTX_set_padding(ctx, 1); \endcode + \sa wolfSSL_EVP_CIPHER_CTX_new */ int wolfSSL_EVP_CIPHER_CTX_set_padding(WOLFSSL_EVP_CIPHER_CTX *c, int pad); @@ -318,8 +402,13 @@ int wolfSSL_EVP_CIPHER_CTX_set_padding(WOLFSSL_EVP_CIPHER_CTX *c, int pad); /*! \ingroup openSSL - \brief wolfssl_evp_cipher_ctx構造のゲッター関数廃止予定のV1.1.0 - \return unsigned フラグ/モードの長い。 + + \brief WOLFSSL_EVP_CIPHER_CTX構造体のゲッター関数。v1.1.0で非推奨 + + \return unsigned long フラグ/モードのunsigned long。 + + \param ctx フラグを取得する構造体。 + _Example_ \code WOLFSSL_EVP_CIPHER_CTX* ctx; @@ -327,7 +416,8 @@ int wolfSSL_EVP_CIPHER_CTX_set_padding(WOLFSSL_EVP_CIPHER_CTX *c, int pad); ctx = wolfSSL_EVP_CIPHER_CTX_new() flags = wolfSSL_EVP_CIPHER_CTX_flags(ctx); \endcode + \sa wolfSSL_EVP_CIPHER_CTX_new \sa wolfSSL_EVP_CIPHER_flags */ -unsigned long wolfSSL_EVP_CIPHER_CTX_flags(const WOLFSSL_EVP_CIPHER_CTX *ctx); +unsigned long wolfSSL_EVP_CIPHER_CTX_flags(const WOLFSSL_EVP_CIPHER_CTX *ctx); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/hash.h b/doc/dox_comments/header_files-ja/hash.h index 82ca76b70e..8e33c2309c 100644 --- a/doc/dox_comments/header_files-ja/hash.h +++ b/doc/dox_comments/header_files-ja/hash.h @@ -1,17 +1,23 @@ /*! \ingroup wolfCrypt - \brief この関数は提供されたwc_hashtypeのOIDを返します。 - \return OID 戻り値0を超えてください - \return HASH_TYPE_E ハッシュ型はサポートされていません。 - \return BAD_FUNC_ARG 提供された引数の1つが正しくありません。 + + \brief この関数は、提供されたwc_HashTypeのOIDを返します。 + + \return OID 0より大きい値を返します + \return HASH_TYPE_E ハッシュタイプがサポートされていません。 + \return BAD_FUNC_ARG 提供された引数の1つが正しくありません。 + + \param hash_type "WC_HASH_TYPE_SHA256"などの"enum wc_HashType"からのハッシュタイプ。 + _Example_ \code enum wc_HashType hash_type = WC_HASH_TYPE_SHA256; int oid = wc_HashGetOID(hash_type); if (oid > 0) { - // Success + // 成功 } \endcode + \sa wc_HashGetDigestSize \sa wc_Hash */ @@ -19,10 +25,15 @@ int wc_HashGetOID(enum wc_HashType hash_type); /*! \ingroup wolfCrypt - \brief この関数は、hash_typeのダイジェスト(出力)のサイズを返します。返品サイズは、WC_HASHに提供される出力バッファが十分に大きいことを確認するために使用されます。 - \return Success 正の戻り値は、ハッシュのダイジェストサイズを示します。 - \return Error hash_typeがサポートされていない場合はhash_type_eを返します。 - \return Failure 無効なhash_typeが使用された場合、bad_func_argを返します。 + + \brief この関数は、hash_typeのダイジェスト(出力)のサイズを返します。返されるサイズは、wc_Hashに提供される出力バッファが十分な大きさであることを確認するために使用されます。 + + \return Success 正の戻り値は、ハッシュのダイジェストサイズを示します。 + \return Error hash_typeがサポートされていない場合、HASH_TYPE_Eを返します。 + \return Failure 無効なhash_typeが使用された場合、BAD_FUNC_ARGを返します。 + + \param hash_type "WC_HASH_TYPE_SHA256"などの"enum wc_HashType"からのハッシュタイプ。 + _Example_ \code int hash_len = wc_HashGetDigestSize(hash_type); @@ -31,18 +42,24 @@ int wc_HashGetOID(enum wc_HashType hash_type); return BAD_FUNC_ARG; } \endcode + \sa wc_Hash */ int wc_HashGetDigestSize(enum wc_HashType hash_type); /*! \ingroup wolfCrypt - \brief この関数は、提供されたデータバッファ上にハッシュを実行し、提供されたハッシュバッファにそれを返します。 - \return 0 そうでなければ、それ以外の誤り(bad_func_argやbuffer_eなど)。 - \param hash_type "wc_hash_type_sha256"などの "enum wc_hashtype"からのハッシュ型。 - \param data ハッシュへのデータを含むバッファへのポインタ。 - \param data_len データバッファの長さ。 - \param hash 最後のハッシュを出力するために使用されるバッファへのポインタ。 + + \brief この関数は、提供されたデータバッファに対してハッシュを実行し、提供されたハッシュバッファに結果を返します。 + + \return 0 成功、それ以外はエラー(BAD_FUNC_ARGやBUFFER_Eなど)。 + + \param hash_type "WC_HASH_TYPE_SHA256"などの"enum wc_HashType"からのハッシュタイプ。 + \param data ハッシュ化するデータを含むバッファへのポインタ。 + \param data_len データバッファの長さ。 + \param hash 最終ハッシュを出力するために使用されるバッファへのポインタ。 + \param hash_len ハッシュバッファの長さ。 + _Example_ \code enum wc_HashType hash_type = WC_HASH_TYPE_SHA256; @@ -50,10 +67,11 @@ int wc_HashGetDigestSize(enum wc_HashType hash_type); if (hash_len > 0) { int ret = wc_Hash(hash_type, data, data_len, hash_data, hash_len); if(ret == 0) { - // Success + // 成功 } } \endcode + \sa wc_HashGetDigestSize */ int wc_Hash(enum wc_HashType hash_type, @@ -62,11 +80,16 @@ int wc_Hash(enum wc_HashType hash_type, /*! \ingroup MD5 - \brief 利便性機能は、すべてのハッシュを処理し、その結果をハッシュに入れます。 - \return 0 データを正常にハッシュしたときに返されます。 - \return Memory_E メモリエラー、メモリを割り当てることができません。これは、小さなスタックオプションが有効になっているだけです。 - \param data ハッシュへのデータ - \param len データの長さ + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 データのハッシュ化に成功した場合に返されます。 + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code const byte* data; @@ -76,9 +99,10 @@ int wc_Hash(enum wc_HashType hash_type, ... ret = wc_Md5Hash(data, data_len, hash); if (ret != 0) { - // Md5 Hash Failure Case. + // Md5ハッシュ失敗のケース。 } \endcode + \sa wc_Md5Hash \sa wc_Md5Final \sa wc_InitMd5 @@ -87,15 +111,21 @@ int wc_Md5Hash(const byte* data, word32 len, byte* hash); /*! \ingroup SHA - \brief 利便性機能は、すべてのハッシュを処理し、その結果をハッシュに入れます。 - \return 0 うまく返されました...。 - \return Memory_E メモリエラー、メモリを割り当てることができません。これは、小さなスタックオプションが有効になっているだけです。 - \param data ハッシュへのデータ - \param len データの長さ + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 正常に….の場合に返されます。 + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code none \endcode + \sa wc_ShaHash \sa wc_ShaFinal \sa wc_InitSha @@ -104,15 +134,44 @@ int wc_ShaHash(const byte* data, word32 len, byte* hash); /*! \ingroup SHA - \brief 利便性機能は、すべてのハッシュを処理し、その結果をハッシュに入れます。 - \return 0 うまく返されました... - \return Memory_E メモリエラー、メモリを割り当てることができません。これは、小さなスタックオプションが有効になっているだけです。 - \param data ハッシュへのデータ - \param len データの長さ + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 成功 + \return <0 エラー + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + none + \endcode + + \sa wc_InitSha224 + \sa wc_Sha224Update + \sa wc_Sha224Final +*/ +int wc_Sha224Hash(const byte* data, word32 len, byte* hash); + +/*! + \ingroup SHA + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 正常に…の場合に返されます + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code none \endcode + \sa wc_Sha256Hash \sa wc_Sha256Final \sa wc_InitSha256 @@ -121,32 +180,44 @@ int wc_Sha256Hash(const byte* data, word32 len, byte* hash); /*! \ingroup SHA - \brief 利便性機能は、すべてのハッシュを処理し、その結果をハッシュに入れます。 - \return 0 成功 - \return <0 エラー - \param data ハッシュへのデータ - \param len データの長さ + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 データのハッシュ化に成功した場合に返されます + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code none \endcode - \sa wc_InitSha224 - \sa wc_Sha224Update - \sa wc_Sha224Final + + \sa wc_Sha384Hash + \sa wc_Sha384Final + \sa wc_InitSha384 */ -int wc_Sha224Hash(const byte* data, word32 len, byte* hash); +int wc_Sha384Hash(const byte* data, word32 len, byte* hash); /*! \ingroup SHA - \brief 利便性機能は、すべてのハッシュを処理し、その結果をハッシュに入れます。 - \return 0 入力されたデータを正常にハッシュしたときに返されます - \return Memory_E メモリエラー、メモリを割り当てることができません。これは、小さなスタックオプションが有効になっているだけです。 - \param data ハッシュへのデータ - \param len データの長さ + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 入力されたデータのハッシュ化に成功した場合に返されます + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code none \endcode + \sa wc_Sha512Hash \sa wc_Sha512Final \sa wc_InitSha512 @@ -155,17 +226,138 @@ int wc_Sha512Hash(const byte* data, word32 len, byte* hash); /*! \ingroup SHA - \brief 利便性機能は、すべてのハッシュを処理し、その結果をハッシュに入れます。 - \return 0 データを正常にハッシュしたときに返されます - \return Memory_E メモリエラー、メモリを割り当てることができません。これは、小さなスタックオプションが有効になっているだけです。 - \param data ハッシュへのデータ - \param len データの長さ + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 データのハッシュ化に成功した場合に返されます + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code none \endcode - \sa wc_Sha384Hash - \sa wc_Sha384Final - \sa wc_InitSha384 + + \sa wc_InitSha3_224 + \sa wc_Sha3_224_Update + \sa wc_Sha3_224_Final */ -int wc_Sha384Hash(const byte* data, word32 len, byte* hash); +int wc_Sha3_224Hash(const byte* data, word32 len, byte* hash); + +/*! + \ingroup SHA + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 データのハッシュ化に成功した場合に返されます + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + none + \endcode + + \sa wc_InitSha3_256 + \sa wc_Sha3_256_Update + \sa wc_Sha3_256_Final +*/ +int wc_Sha3_256Hash(const byte* data, word32 len, byte* hash); + +/*! + \ingroup SHA + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 データのハッシュ化に成功した場合に返されます + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + none + \endcode + + \sa wc_InitSha3_384 + \sa wc_Sha3_384_Update + \sa wc_Sha3_384_Final +*/ +int wc_Sha3_384Hash(const byte* data, word32 len, byte* hash); + +/*! + \ingroup SHA + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 入力されたデータのハッシュ化に成功した場合に返されます + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + none + \endcode + + \sa wc_InitSha3_512 + \sa wc_Sha3_512_Update + \sa wc_Sha3_512_Final +*/ +int wc_Sha3_512Hash(const byte* data, word32 len, byte* hash); + +/*! + \ingroup SHA + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 入力されたデータのハッシュ化に成功した場合に返されます + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + none + \endcode + + \sa wc_InitShake128 + \sa wc_Shake128_Update + \sa wc_Shake128_Final +*/ +int wc_Shake128Hash(const byte* data, word32 len, byte* hash); + +/*! + \ingroup SHA + + \brief 便利な関数で、すべてのハッシュ処理を行い、結果をhashに格納します。 + + \return 0 入力されたデータのハッシュ化に成功した場合に返されます + \return Memory_E メモリエラー、メモリを割り当てられません。これは小さいスタックオプションが有効な場合にのみ可能です。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + none + \endcode + + \sa wc_InitShake256 + \sa wc_Shake256_Update + \sa wc_Shake256_Final +*/ +int wc_Shake256Hash(const byte* data, word32 len, byte* hash); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/hmac.h b/doc/dox_comments/header_files-ja/hmac.h index 7a60f4eb2d..0ed55660f5 100644 --- a/doc/dox_comments/header_files-ja/hmac.h +++ b/doc/dox_comments/header_files-ja/hmac.h @@ -1,21 +1,27 @@ /*! \ingroup HMAC - \brief この関数はHMACオブジェクトを初期化し、その暗号化タイプ、キー、およびHMACの長さを設定します。 - \return 0 HMACオブジェクトの初期化に成功しました - \return BAD_FUNC_ARG 入力タイプが無効な場合は返されます。有効なオプションは次のとおりです.MD5、SHA、SHA256、SHA384、SHA3-224、SHA3-256、SHA3-384、SHA3-512 - \return MEMORY_E ハッシュに使用する構造体の割り当てメモリの割り当てエラーがある場合 - \return HMAC_MIN_KEYLEN_E FIPS実装を使用するときに、指定されたキーがFIPS規格の最小許容(14バイト)よりも短い - \param hmac 初期化するHMACオブジェクトへのポインタ - \param type HMACオブジェクトを使用する暗号化方式を指定します。有効なオプションは次のとおりです.MD5、SHA、SHA256、SHA384、SHA3-224、SHA3-256、SHA3-384、SHA3-512 - \param key HMACオブジェクトを初期化するキーを含むバッファへのポインタ + + \brief この関数はHmacオブジェクトを初期化し、暗号化タイプ、鍵、およびHMAC長を設定します。 + + \return 0 Hmacオブジェクトの初期化に成功した場合に返されます。 + \return BAD_FUNC_ARG 入力タイプが無効な場合に返されます(typeパラメータを参照)。 + \return MEMORY_E ハッシュに使用する構造体のメモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準の14バイトより短い場合に返されます。 + + \param hmac 初期化するHmacオブジェクトへのポインタ。 + \param type Hmacオブジェクトが使用する暗号化方式を指定するタイプ。有効なオプションは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 + \param key Hmacオブジェクトを初期化する鍵を含むバッファへのポインタ。 + \param length 鍵の長さ。 + _Example_ \code Hmac hmac; - byte key[] = { // initialize with key to use for encryption }; - if (wc_HmacSetKey(&hmac, MD5, key, sizeof(key)) != 0) { - // error initializing Hmac object + byte key[] = { // 暗号化に使用する鍵で初期化 }; + if (wc_HmacSetKey(&hmac, WC_MD5, key, sizeof(key)) != 0) { + // Hmacオブジェクトの初期化エラー } \endcode + \sa wc_HmacUpdate \sa wc_HmacFinal */ @@ -23,24 +29,30 @@ int wc_HmacSetKey(Hmac* hmac, int type, const byte* key, word32 keySz); /*! \ingroup HMAC - \brief この関数は、HMACを使用して認証するメッセージを更新します。HMACオブジェクトがWC_HMACSETKEYで初期化された後に呼び出されるべきです。この関数は、ハッシュへのメッセージを更新するために複数回呼び出されることがあります。必要に応じてwc_hmacupdateを呼び出した後、最終認証済みメッセージタグを取得するためにwc_hmacfinalを呼び出す必要があります。 - \return 0 認証するメッセージの更新に成功しました - \return MEMORY_E ハッシュアルゴリズムで使用するためのメモリ割り当てエラーがある場合 - \param hmac メッセージを更新するHMACオブジェクトへのポインタ - \param msg 追加するメッセージを含むバッファへのポインタ + + \brief この関数は、HMACを使用して認証するメッセージを更新します。wc_HmacSetKeyでHmacオブジェクトが初期化された後に呼び出す必要があります。この関数は、ハッシュするメッセージを更新するために複数回呼び出すことができます。必要に応じてwc_HmacUpdateを呼び出した後、wc_HmacFinalを呼び出して最終的な認証メッセージタグを取得する必要があります。 + + \return 0 認証するメッセージの更新に成功した場合に返されます。 + \return MEMORY_E ハッシュアルゴリズムで使用するメモリ割り当てエラーがある場合に返されます。 + + \param hmac メッセージを更新するHmacオブジェクトへのポインタ。 + \param msg 追加するメッセージを含むバッファへのポインタ。 + \param length 追加するメッセージの長さ。 + _Example_ \code Hmac hmac; - byte msg[] = { // initialize with message to authenticate }; - byte msg2[] = { // initialize with second half of message }; - // initialize hmac + byte msg[] = { // 認証するメッセージで初期化 }; + byte msg2[] = { // メッセージの後半で初期化 }; + // hmacを初期化 if( wc_HmacUpdate(&hmac, msg, sizeof(msg)) != 0) { - // error updating message + // メッセージ更新エラー } if( wc_HmacUpdate(&hmac, msg2, sizeof(msg)) != 0) { - // error updating with second message + // 2番目のメッセージでの更新エラー } \endcode + \sa wc_HmacSetKey \sa wc_HmacFinal */ @@ -48,21 +60,27 @@ int wc_HmacUpdate(Hmac* hmac, const byte* in, word32 sz); /*! \ingroup HMAC - \brief この関数は、HMACオブジェクトのメッセージの最終ハッシュを計算します。 - \return 0 最後のハッシュの計算に成功した - \return MEMORY_E ハッシュアルゴリズムで使用するためにメモリを割り当てるエラーがある場合 - \param hmac 最終ハッシュを計算するHMACオブジェクトへのポインタ + + \brief この関数は、Hmacオブジェクトのメッセージの最終ハッシュを計算します。 + + \return 0 最終ハッシュの計算に成功した場合に返されます。 + \return MEMORY_E ハッシュアルゴリズムで使用するメモリ割り当てエラーがある場合に返されます。 + + \param hmac 最終ハッシュを計算するHmacオブジェクトへのポインタ。 + \param hash 最終ハッシュを保存するバッファへのポインタ。選択したハッシュアルゴリズムに必要なスペースを確保する必要があります。 + _Example_ \code Hmac hmac; byte hash[MD5_DIGEST_SIZE]; - // initialize hmac with MD5 as type - // wc_HmacUpdate() with messages + // タイプとしてMD5でhmacを初期化 + // メッセージでwc_HmacUpdate() if (wc_HmacFinal(&hmac, hash) != 0) { - // error computing hash + // ハッシュ計算エラー } \endcode + \sa wc_HmacSetKey \sa wc_HmacUpdate */ @@ -70,46 +88,435 @@ int wc_HmacFinal(Hmac* hmac, byte* out); /*! \ingroup HMAC - \brief この関数は、構成された暗号スイートに基づいて使用可能な最大のHMACダイジェストサイズを返します。 - \return Success 設定された暗号スイートに基づいて使用可能な最大のHMACダイジェストサイズを返します + + \brief この関数は、設定された暗号スイートに基づいて利用可能な最大のHMACダイジェストサイズを返します。 + + \return Success 設定された暗号スイートに基づいて利用可能な最大のHMACダイジェストサイズを返します。 + + \param none パラメータなし。 + _Example_ \code int maxDigestSz = wolfSSL_GetHmacMaxSize(); \endcode + \sa none */ int wolfSSL_GetHmacMaxSize(void); /*! \ingroup HMAC - \brief この関数は、HMACキー導出機能(HKDF)へのアクセスを提供します。HMACを利用して、任意のSALTとオプションの情報を派生したキーに変換します。0またはNULLが指定されている場合、ハッシュ型はデフォルトでMD5になります。 - \return 0 与えられた入力でキーの生成に成功したら返されます - \return BAD_FUNC_ARG 無効なハッシュ型が引数として指定されている場合に返されます。有効な型は次のとおりです.MD5、SHA、SHA256、SHA384、SHA3-224、SHA3-256、SHA3-384、SHA3-512 - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \return HMAC_MIN_KEYLEN_E FIPS実装を使用するときに返されることがあり、指定されたキー長は最小許容FIPS規格よりも短いです。 - \param type HKDFに使用するハッシュタイプ。有効な型は次のとおりです.MD5、SHA、SHA256、SHA384、SHA3-224、SHA3-256、SHA3-384、SHA3-512 - \param inKey KDFに使用するキーを含むバッファへのポインタ - \param inKeySz 入力キーの長さ - \param salt 任意のソルトを含むバッファへのポインタ。ソルトを使用しない場合は代わりにNULLを使用してください - \param saltSz ソルトの長さ。ソルトを使用しない場合は0を使用してください - \param info オプションの追加情報を含むバッファへのポインタ。追加情報を追加していない場合はNULLを使用してください - \param infoSz 追加情報の長さ追加情報を使用しない場合は0を使用してください - \param out 派生キーを保存するバッファへのポインタ + + \brief この関数は、HMAC鍵導出関数(HKDF)へのアクセスを提供します。HMACを利用して、オプションのソルトとオプションの情報を含むinKeyを導出鍵に変換し、outに保存します。ハッシュタイプは、0またはNULLが指定された場合、デフォルトでMD5になります。 + + HMAC設定オプションは--enable-hmac(デフォルトでオン)、またはソースを直接ビルドする場合はHAVE_HKDFです。 + + \return 0 指定された入力で鍵の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 + + \param type HKDFに使用するハッシュタイプ。有効なタイプは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 + \param inKey KDFに使用する鍵を含むバッファへのポインタ。 + \param inKeySz 入力鍵の長さ。 + \param salt オプションのソルトを含むバッファへのポインタ。ソルトを使用しない場合はNULLを使用します。 + \param saltSz ソルトの長さ。ソルトを使用しない場合は0を使用します。 + \param info オプションの追加情報を含むバッファへのポインタ。追加情報を追加しない場合はNULLを使用します。 + \param infoSz 追加情報の長さ。追加情報を使用しない場合は0を使用します。 + \param out 導出鍵を保存するバッファへのポインタ。 + \param outSz 生成された鍵を保存する出力バッファで利用可能なスペース。 + _Example_ \code - byte key[] = { // initialize with key }; - byte salt[] = { // initialize with salt }; + byte key[] = { // 鍵で初期化 }; + byte salt[] = { // ソルトで初期化 }; byte derivedKey[MAX_DIGEST_SIZE]; - int ret = wc_HKDF(SHA512, key, sizeof(key), salt, sizeof(salt), + int ret = wc_HKDF(WC_SHA512, key, sizeof(key), salt, sizeof(salt), NULL, 0, derivedKey, sizeof(derivedKey)); if ( ret != 0 ) { - // error generating derived key + // 導出鍵の生成エラー } \endcode + \sa wc_HmacSetKey */ int wc_HKDF(int type, const byte* inKey, word32 inKeySz, const byte* salt, word32 saltSz, const byte* info, word32 infoSz, byte* out, word32 outSz); + + +/*! + \ingroup HMAC + + \brief この関数は、HMAC鍵導出関数(HKDF)へのアクセスを提供します。HMACを利用して、オプションのソルトを含むinKeyを導出鍵に変換し、outに保存します。ハッシュタイプは、0またはNULLが指定された場合、デフォルトでMD5になります。 + + HMAC設定オプションは--enable-hmac(デフォルトでオン)、またはソースを直接ビルドする場合はHAVE_HKDFです。 + + \return 0 指定された入力で鍵の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 + + \param type HKDFに使用するハッシュタイプ。有効なタイプは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 + \param salt オプションのソルトを含むバッファへのポインタ。ソルトを使用しない場合はNULLを使用します。 + \param saltSz ソルトの長さ。ソルトを使用しない場合は0を使用します。 + \param inKey KDFに使用する鍵を含むバッファへのポインタ。 + \param inKeySz 入力鍵の長さ。 + \param out 導出鍵を保存するバッファへのポインタ。 + + _Example_ + \code + byte key[] = { // 鍵で初期化 }; + byte salt[] = { // ソルトで初期化 }; + byte derivedKey[MAX_DIGEST_SIZE]; + + int ret = wc_HKDF_Extract(WC_SHA512, salt, sizeof(salt), key, sizeof(key), + derivedKey); + if ( ret != 0 ) { + // 導出鍵の生成エラー + } + \endcode + + \sa wc_HKDF + \sa wc_HKDF_Extract_ex + \sa wc_HKDF_Expand + \sa wc_HKDF_Expand_ex +*/ +int wc_HKDF_Extract( + int type, + const byte* salt, word32 saltSz, + const byte* inKey, word32 inKeySz, + byte* out); + +/*! + \ingroup HMAC + + \brief この関数は、HMAC鍵導出関数(HKDF)へのアクセスを提供します。HMACを利用して、オプションのソルトを含むinKeyを導出鍵に変換し、outに保存します。ハッシュタイプは、0またはNULLが指定された場合、デフォルトでMD5になります。これは、ヒープヒントとデバイス識別子を追加する_exバージョンです。 + + HMAC設定オプションは--enable-hmac(デフォルトでオン)、またはソースを直接ビルドする場合はHAVE_HKDFです。 + + \return 0 指定された入力で鍵の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 + + \param type HKDFに使用するハッシュタイプ。有効なタイプは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 + \param salt オプションのソルトを含むバッファへのポインタ。ソルトを使用しない場合はNULLを使用します。 + \param saltSz ソルトの長さ。ソルトを使用しない場合は0を使用します。 + \param inKey KDFに使用する鍵を含むバッファへのポインタ。 + \param inKeySz 入力鍵の長さ。 + \param out 導出鍵を保存するバッファへのポインタ。 + \param heap メモリに使用するヒープヒント。NULLにできます。 + \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定します。 + + _Example_ + \code + byte key[] = { // 鍵で初期化 }; + byte salt[] = { // ソルトで初期化 }; + byte derivedKey[MAX_DIGEST_SIZE]; + + int ret = wc_HKDF_Extract_ex(WC_SHA512, salt, sizeof(salt), key, sizeof(key), + derivedKey, NULL, INVALID_DEVID); + if ( ret != 0 ) { + // 導出鍵の生成エラー + } + \endcode + + \sa wc_HKDF + \sa wc_HKDF_Extract + \sa wc_HKDF_Expand + \sa wc_HKDF_Expand_ex +*/ +int wc_HKDF_Extract_ex( + int type, + const byte* salt, word32 saltSz, + const byte* inKey, word32 inKeySz, + byte* out, + void* heap, int devId); + +/*! + \ingroup HMAC + + \brief この関数は、HMAC鍵導出関数(HKDF)へのアクセスを提供します。HMACを利用して、オプションの情報を含むinKeyを導出鍵に変換し、outに保存します。ハッシュタイプは、0またはNULLが指定された場合、デフォルトでMD5になります。 + + HMAC設定オプションは--enable-hmac(デフォルトでオン)、またはソースを直接ビルドする場合はHAVE_HKDFです。 + + \return 0 指定された入力で鍵の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 + + \param type HKDFに使用するハッシュタイプ。有効なタイプは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 + \param inKey KDFに使用する鍵を含むバッファへのポインタ。 + \param inKeySz 入力鍵の長さ。 + \param info オプションの追加情報を含むバッファへのポインタ。追加情報を追加しない場合はNULLを使用します。 + \param infoSz 追加情報の長さ。追加情報を使用しない場合は0を使用します。 + \param out 導出鍵を保存するバッファへのポインタ。 + \param outSz 生成された鍵を保存する出力バッファで利用可能なスペース。 + + _Example_ + \code + byte key[] = { // 鍵で初期化 }; + byte salt[] = { // ソルトで初期化 }; + byte derivedKey[MAX_DIGEST_SIZE]; + + int ret = wc_HKDF_Expand(WC_SHA512, key, sizeof(key), NULL, 0, + derivedKey, sizeof(derivedKey)); + if ( ret != 0 ) { + // 導出鍵の生成エラー + } + \endcode + + \sa wc_HKDF + \sa wc_HKDF_Extract + \sa wc_HKDF_Extract_ex + \sa wc_HKDF_Expand_ex +*/ +int wc_HKDF_Expand( + int type, + const byte* inKey, word32 inKeySz, + const byte* info, word32 infoSz, + byte* out, word32 outSz); + +/*! + \ingroup HMAC + + \brief この関数は、HMAC鍵導出関数(HKDF)へのアクセスを提供します。HMACを利用して、オプションの情報を含むinKeyを導出鍵に変換し、outに保存します。ハッシュタイプは、0またはNULLが指定された場合、デフォルトでMD5になります。これは、ヒープヒントとデバイス識別子を追加する_exバージョンです。 + + HMAC設定オプションは--enable-hmac(デフォルトでオン)、またはソースを直接ビルドする場合はHAVE_HKDFです。 + + \return 0 指定された入力で鍵の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 + + \param type HKDFに使用するハッシュタイプ。有効なタイプは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 + \param inKey KDFに使用する鍵を含むバッファへのポインタ。 + \param inKeySz 入力鍵の長さ。 + \param info オプションの追加情報を含むバッファへのポインタ。追加情報を追加しない場合はNULLを使用します。 + \param infoSz 追加情報の長さ。追加情報を使用しない場合は0を使用します。 + \param out 導出鍵を保存するバッファへのポインタ。 + \param outSz 生成された鍵を保存する出力バッファで利用可能なスペース。 + \param heap メモリに使用するヒープヒント。NULLにできます。 + \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定します。 + + _Example_ + \code + byte key[] = { // 鍵で初期化 }; + byte salt[] = { // ソルトで初期化 }; + byte derivedKey[MAX_DIGEST_SIZE]; + + int ret = wc_HKDF_Expand_ex(WC_SHA512, key, sizeof(key), NULL, 0, + derivedKey, sizeof(derivedKey), NULL, INVALID_DEVID); + if ( ret != 0 ) { + // 導出鍵の生成エラー + } + \endcode + + \sa wc_HKDF + \sa wc_HKDF_Extract + \sa wc_HKDF_Extract_ex + \sa wc_HKDF_Expand +*/ +int wc_HKDF_Expand_ex( + int type, + const byte* inKey, word32 inKeySz, + const byte* info, word32 infoSz, + byte* out, word32 outSz, + void* heap, int devId); + +/*! + \ingroup HMAC + + \brief この関数は、TLS v1.3鍵導出のためのRFC 5869 HMACベース抽出拡張鍵導出関数(HKDF)へのアクセスを提供します。 + + \return 0 指定された入力で鍵の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 + + \param prk 生成された疑似ランダム鍵。 + \param salt ソルト。 + \param saltLen ソルトの長さ。 + \param ikm 鍵材料の出力へのポインタ。 + \param ikmLen 入力鍵材料バッファの長さ。 + \param digest HKDFに使用するハッシュタイプ。有効なタイプは:WC_SHA256、WC_SHA384、またはWC_SHA512。 + + _Example_ + \code + byte secret[] = { // ランダム鍵で初期化 }; + byte salt[] = { // オプションのソルトで初期化 }; + byte masterSecret[MAX_DIGEST_SIZE]; + + int ret = wc_Tls13_HKDF_Extract(secret, salt, sizeof(salt), 0, + masterSecret, sizeof(masterSecret), WC_SHA512); + if ( ret != 0 ) { + // 導出鍵の生成エラー + } + \endcode + + \sa wc_HKDF + \sa wc_HKDF_Extract + \sa wc_HKDF_Extract_ex + \sa wc_HKDF_Expand + \sa wc_Tls13_HKDF_Extract_ex +*/ +int wc_Tls13_HKDF_Extract( + byte* prk, + const byte* salt, word32 saltLen, + byte* ikm, word32 ikmLen, int digest); + +/*! + \ingroup HMAC + + \brief この関数は、TLS v1.3鍵導出のためのRFC 5869 HMACベース抽出拡張鍵導出関数(HKDF)へのアクセスを提供します。これは、ヒープヒントとデバイス識別子を追加する_exバージョンです。 + + \return 0 指定された入力で鍵の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 + + \param prk 生成された疑似ランダム鍵。 + \param salt ソルト。 + \param saltLen ソルトの長さ。 + \param ikm 鍵材料の出力へのポインタ。 + \param ikmLen 入力鍵材料バッファの長さ。 + \param digest HKDFに使用するハッシュタイプ。有効なタイプは:WC_SHA256、WC_SHA384、またはWC_SHA512。 + \param heap メモリに使用するヒープヒント。NULLにできます。 + \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定します。 + + _Example_ + \code + byte secret[] = { // ランダム鍵で初期化 }; + byte salt[] = { // オプションのソルトで初期化 }; + byte masterSecret[MAX_DIGEST_SIZE]; + + int ret = wc_Tls13_HKDF_Extract_ex(secret, salt, sizeof(salt), 0, + masterSecret, sizeof(masterSecret), WC_SHA512, NULL, INVALID_DEVID); + if ( ret != 0 ) { + // 導出鍵の生成エラー + } + \endcode + + \sa wc_HKDF + \sa wc_HKDF_Extract + \sa wc_HKDF_Extract_ex + \sa wc_HKDF_Expand + \sa wc_Tls13_HKDF_Extract +*/ +int wc_Tls13_HKDF_Extract_ex( + byte* prk, + const byte* salt, word32 saltLen, + byte* ikm, word32 ikmLen, int digest, + void* heap, int devId); + +/*! + \ingroup HMAC + + \brief HMAC、ソルト、ラベル、および情報を使用してデータを拡張します。TLS v1.3は鍵導出のためにこの関数を定義しています。これは、ヒープヒントとデバイス識別子を追加する_exバージョンです。 + + \return 0 指定された入力で鍵の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 + + \param okm 生成された疑似ランダム鍵 - 出力鍵材料。 + \param okmLen 生成された疑似ランダム鍵の長さ - 出力鍵材料。 + \param prk ソルト - 疑似ランダム鍵。 + \param prkLen ソルトの長さ - 疑似ランダム鍵。 + \param protocol TLSプロトコルラベル。 + \param protocolLen TLSプロトコルラベルの長さ。 + \param info 拡張する情報。 + \param infoLen 情報の長さ。 + \param digest HKDFに使用するハッシュタイプ。有効なタイプは:WC_SHA256、WC_SHA384、またはWC_SHA512。 + \param heap メモリに使用するヒープヒント。NULLにできます。 + \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定します。 + + \sa wc_HKDF + \sa wc_HKDF_Extract + \sa wc_HKDF_Extract_ex + \sa wc_HKDF_Expand + \sa wc_Tls13_HKDF_Expand_Label + \sa wc_Tls13_HKDF_Expand_Label_Alloc +*/ +int wc_Tls13_HKDF_Expand_Label_ex( + byte* okm, word32 okmLen, + const byte* prk, word32 prkLen, + const byte* protocol, word32 protocolLen, + const byte* label, word32 labelLen, + const byte* info, word32 infoLen, + int digest, + void* heap, int devId); + +/*! + \ingroup HMAC + + \brief HMAC、ソルト、ラベル、および情報を使用してデータを拡張します。TLS v1.3は鍵導出のためにこの関数を定義しています。 + + \return 0 指定された入力で鍵の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 + + \param okm 生成された疑似ランダム鍵 - 出力鍵材料。 + \param okmLen 生成された疑似ランダム鍵の長さ - 出力鍵材料。 + \param prk ソルト - 疑似ランダム鍵。 + \param prkLen ソルトの長さ - 疑似ランダム鍵。 + \param protocol TLSプロトコルラベル。 + \param protocolLen TLSプロトコルラベルの長さ。 + \param info 拡張する情報。 + \param infoLen 情報の長さ。 + \param digest HKDFに使用するハッシュタイプ。有効なタイプは:WC_SHA256、WC_SHA384、またはWC_SHA512。 + + \sa wc_HKDF + \sa wc_HKDF_Extract + \sa wc_HKDF_Extract_ex + \sa wc_HKDF_Expand + \sa wc_Tls13_HKDF_Expand_Label_ex + \sa wc_Tls13_HKDF_Expand_Label_Alloc +*/ +int wc_Tls13_HKDF_Expand_Label( + byte* okm, word32 okmLen, + const byte* prk, word32 prkLen, + const byte* protocol, word32 protocolLen, + const byte* label, word32 labelLen, + const byte* info, word32 infoLen, + int digest); + +/*! + \ingroup HMAC + + \brief この関数はwc_Tls13_HKDF_Expand_Label()と非常に似ていますが、通常使用されるスタックスペースが十分でない場合にメモリを割り当てます。HMAC、ソルト、ラベル、および情報を使用してデータを拡張します。TLS v1.3は鍵導出のためにこの関数を定義しています。これは、ヒープヒントとデバイス識別子を追加する_exバージョンです。 + + \return 0 指定された入力で鍵の生成に成功した場合に返されます。 + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 + + \param okm 生成された疑似ランダム鍵 - 出力鍵材料。 + \param okmLen 生成された疑似ランダム鍵の長さ - 出力鍵材料。 + \param prk ソルト - 疑似ランダム鍵。 + \param prkLen ソルトの長さ - 疑似ランダム鍵。 + \param protocol TLSプロトコルラベル。 + \param protocolLen TLSプロトコルラベルの長さ。 + \param info 拡張する情報。 + \param infoLen 情報の長さ。 + \param digest HKDFに使用するハッシュタイプ。有効なタイプは:WC_SHA256、WC_SHA384、またはWC_SHA512。 + \param heap メモリに使用するヒープヒント。NULLにできます。 + + \sa wc_HKDF + \sa wc_HKDF_Extract + \sa wc_HKDF_Extract_ex + \sa wc_HKDF_Expand + \sa wc_Tls13_HKDF_Expand_Label + \sa wc_Tls13_HKDF_Expand_Label_ex +*/ +int wc_Tls13_HKDF_Expand_Label_Alloc( + byte* okm, word32 okmLen, + const byte* prk, word32 prkLen, + const byte* protocol, word32 protocolLen, + const byte* label, word32 labelLen, + const byte* info, word32 infoLen, + int digest, void* heap); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/iotsafe.h b/doc/dox_comments/header_files-ja/iotsafe.h index 3a839eff7f..37f3dc1f30 100644 --- a/doc/dox_comments/header_files-ja/iotsafe.h +++ b/doc/dox_comments/header_files-ja/iotsafe.h @@ -1,8 +1,11 @@ /*! \ingroup IoTSafe - \brief この関数は与えられたコンテキストでのIoTセーフサポートを有効にします。 - \param ctx IOTセーフサポートを有効にする必要があるWOLFSSL_CTXオブジェクトへのポインタ - \return 0 成功した + \brief この関数は、指定されたコンテキストでIoT-Safeサポートを有効にします。 + + \param ctx IoT-safeサポートを有効にする必要があるWOLFSSL_CTXオブジェクトへのポインタ + \return 0 成功時 + \return WC_HW_E ハードウェアエラー時 + _Example_ \code WOLFSSL_CTX *ctx; @@ -11,6 +14,7 @@ return NULL; wolfSSL_CTX_iotsafe_enable(ctx); \endcode + \sa wolfSSL_iotsafe_on \sa wolfIoTSafe_SetCSIM_read_cb \sa wolfIoTSafe_SetCSIM_write_cb @@ -20,33 +24,38 @@ int wolfSSL_CTX_iotsafe_enable(WOLFSSL_CTX *ctx); /*! \ingroup IoTSafe - \brief この関数は、IOT-SAFE TLSコールバックを特定のSSLセッションに接続します。 - \brief スロットのIDが1バイトの長さの場合、SSLセッションをIoT-Safeアプレットに接続するように呼び出す必要があります。IOTセーフスロットのIDが2バイト以上の場合、\ REF WOLFSSL_IOTSAFE_ON_EX「WOLFSSL_IOTSAFE_ON_EX()」を使用する必要があります。 - \param ssl コールバックが有効になるWolfSSLオブジェクトへのポインタ - \param privkey_id ホストの秘密鍵を含むIOTセーフなアプレットスロットのID - \param ecdh_keypair_slot ECDH鍵ペアを保存するためのIoT安全アプレットスロットのID - \param peer_pubkey_slot ECDH用の他のエンドポイントの公開鍵を保存するためのIOT-SAFEアプレットスロットのID - \param peer_cert_slot 検証のための他のエンドポイントの公開鍵を保存するためのIOTセーフなアプレットスロットのID - \return 0 成功すると - \return NOT_COMPILED_IN habe_pk_callbacksが無効になっている場合 + \brief この関数は、IoT-Safe TLSコールバックを指定されたSSLセッションに接続します。 + \brief これは、スロットのIDが1バイト長の場合にSSLセッションをIoT-Safeアプレットに接続するために呼び出す必要があります。 + IoT-SAFEスロットのIDが2バイト以上の場合は、代わりに\ref wolfSSL_iotsafe_on_ex "wolfSSL_iotsafe_on_ex()"を使用する必要があります。 + + \param ssl コールバックが有効になるWOLFSSLオブジェクトへのポインタ + \param privkey_id ホストの秘密鍵を含むiot-safeアプレットスロットのID + \param ecdh_keypair_slot ECDH鍵ペアを格納するiot-safeアプレットスロットのID + \param peer_pubkey_slot ECDH用に他のエンドポイントの公開鍵を格納するiot-safeアプレットスロットのID + \param peer_cert_slot 検証用に他のエンドポイントの公開鍵を格納するiot-safeアプレットスロットのID + \return 0 成功時 + \return NOT_COMPILED_IN HAVE_PK_CALLBACKSが無効な場合 + \return BAD_FUNC_ARG sslポインタが無効な場合 + _Example_ \code - // Define key ids for IoT-Safe + // IoT-Safe用の鍵IDを定義 #define PRIVKEY_ID 0x02 #define ECDH_KEYPAIR_ID 0x03 #define PEER_PUBKEY_ID 0x04 #define PEER_CERT_ID 0x05 - // Create new ssl session + // 新しいsslセッションを作成 WOLFSSL *ssl; ssl = wolfSSL_new(ctx); if (!ssl) return NULL; - // Enable IoT-Safe and associate key slots + // IoT-Safeを有効にして鍵スロットを関連付け ret = wolfSSL_CTX_iotsafe_enable(ctx); if (ret == 0) { ret = wolfSSL_iotsafe_on(ssl, PRIVKEY_ID, ECDH_KEYPAIR_ID, PEER_PUBKEY_ID, PEER_CERT_ID); } \endcode + \sa wolfSSL_iotsafe_on_ex \sa wolfSSL_CTX_iotsafe_enable */ @@ -56,18 +65,23 @@ int wolfSSL_iotsafe_on(WOLFSSL *ssl, byte privkey_id, /*! \ingroup IoTSafe - \brief この関数は、IOT-SAFE TLSコールバックを特定のSSLセッションに接続します。これは、IOTセーフスロットのIDを参照で渡すことができ、IDフィールドの長さをパラメータ "id_size"で指定できます。 - \param ssl コールバックが有効になるWolfSSLオブジェクトへのポインタ - \param privkey_id ホストの秘密鍵を含むIoTセーフアプレットスロットのIDへのポインタ - \param ecdh_keypair_slot ECDH鍵ペアを保存するIOT-SafeアプレットスロットのIDへのポインタ - \param peer_pubkey_slot ECDH用の他のエンドポイントの公開鍵を保存するIOTセーフアプレットスロットのIDへのポインタ - \param peer_cert_slot 検証のために他のエンドポイントの公開鍵を保存するためのIOT-SAFEアプレットスロットのIDへのポインタ - \param id_size 各スロットIDのサイズ - \return 0 成功すると - \return NOT_COMPILED_IN habe_pk_callbacksが無効になっている場合 + \brief この関数は、IoT-Safe TLSコールバックを指定されたSSLセッションに接続します。 + これは\ref wolfSSL_iotsafe_on "wolfSSL_iotsafe_on"と同等ですが、IoT-SAFEスロットのIDを参照渡しでき、IDフィールドの長さをパラメータ"id_size"で指定できる点が異なります。 + + + \param ssl コールバックが有効になるWOLFSSLオブジェクトへのポインタ + \param privkey_id ホストの秘密鍵を含むiot-safeアプレットスロットのIDへのポインタ + \param ecdh_keypair_slot ECDH鍵ペアを格納するiot-safeアプレットスロットのIDへのポインタ + \param peer_pubkey_slot ECDH用に他のエンドポイントの公開鍵を格納するiot-safeアプレットスロットのIDへのポインタ + \param peer_cert_slot 検証用に他のエンドポイントの公開鍵を格納するiot-safeアプレットスロットのIDへのポインタ + \param id_size 各スロットIDのサイズ + \return 0 成功時 + \return NOT_COMPILED_IN HAVE_PK_CALLBACKSが無効な場合 + \return BAD_FUNC_ARG sslポインタが無効な場合 + _Example_ \code - // Define key ids for IoT-Safe (16 bit, little endian) + // IoT-Safe用の鍵IDを定義(16ビット、リトルエンディアン) #define PRIVKEY_ID 0x0201 #define ECDH_KEYPAIR_ID 0x0301 #define PEER_PUBKEY_ID 0x0401 @@ -81,17 +95,18 @@ int wolfSSL_iotsafe_on(WOLFSSL *ssl, byte privkey_id, - // Create new ssl session + // 新しいsslセッションを作成 WOLFSSL *ssl; ssl = wolfSSL_new(ctx); if (!ssl) return NULL; - // Enable IoT-Safe and associate key slots + // IoT-Safeを有効にして鍵スロットを関連付け ret = wolfSSL_CTX_iotsafe_enable(ctx); if (ret == 0) { ret = wolfSSL_CTX_iotsafe_on_ex(ssl, &privkey, &ecdh_keypair, &peer_pubkey, &peer_cert, ID_SIZE); } \endcode + \sa wolfSSL_iotsafe_on \sa wolfSSL_CTX_iotsafe_enable */ @@ -101,29 +116,35 @@ int wolfSSL_iotsafe_on_ex(WOLFSSL *ssl, byte *privkey_id, /*! \ingroup IoTSafe - \brief AT + CSIMコマンドのリードコールバックを関連付けます。この入力関数は通常、モデムと通信するUARTチャネルの読み取りイベントに関連付けられています。読み取りコールバックが関連付けられているのは、同時にIoT-Safeサポートを使用するすべてのコンテキストのグローバルと変更です。 + \brief AT+CSIMコマンド用の読み取りコールバックを関連付けます。この入力関数は通常、モデムと通信するUARTチャネルの読み取りイベントに関連付けられます。関連付けられる読み取りコールバックはグローバルで、同時にIoT-safeサポートを使用するすべてのコンテキストに対して変更されます。 + \param rf UART読み取りイベントに関連付けられる読み取りコールバック。コールバック関数は2つの引数(buf、len)を受け取り、lenまで読み取られた文字数を返します。改行文字に遭遇すると、コールバックはこれまでに受信した文字数(改行文字を含む)を返す必要があります。 + _Example_ \code - // USART read function, defined elsewhere + // USART読み取り関数、他の場所で定義 int usart_read(char *buf, int len); wolfIoTSafe_SetCSIM_read_cb(usart_read); \endcode + \sa wolfIoTSafe_SetCSIM_write_cb */ void wolfIoTSafe_SetCSIM_read_cb(wolfSSL_IOTSafe_CSIM_read_cb rf); /*! \ingroup IoTSafe - \brief AT + CSIMコマンドの書き込みコールバックを関連付けます。この出力関数は通常、モデムと通信するUARTチャネル上のライトイベントに関連付けられています。Write Callbackが関連付けられているのは、同時にIoT-Safeサポートを使用するすべてのコンテキストのグローバルと変更です。 + \brief AT+CSIMコマンド用の書き込みコールバックを関連付けます。この出力関数は通常、モデムと通信するUARTチャネルの書き込みイベントに関連付けられます。関連付けられる書き込みコールバックはグローバルで、同時にIoT-safeサポートを使用するすべてのコンテキストに対して変更されます。 + \param rf UART書き込みイベントに関連付けられる書き込みコールバック。コールバック関数は2つの引数(buf、len)を受け取り、lenまで書き込まれた文字数を返します。 + _Example_ \code - // USART write function, defined elsewhere + // USART書き込み関数、他の場所で定義 int usart_write(const char *buf, int len); wolfIoTSafe_SetCSIM_write_cb(usart_write); \endcode + \sa wolfIoTSafe_SetCSIM_read_cb */ void wolfIoTSafe_SetCSIM_write_cb(wolfSSL_IOTSafe_CSIM_write_cb wf); @@ -132,25 +153,31 @@ void wolfIoTSafe_SetCSIM_write_cb(wolfSSL_IOTSafe_CSIM_write_cb wf); /*! \ingroup IoTSafe - \brief IOTセーフ機能getrandomを使用して、指定されたサイズのランダムなバッファを生成します。この関数は、WolfCrypt RNGオブジェクトによって自動的に使用されます。 - \param out ランダムなバイトシーケンスが格納されているバッファ。 - \param sz 生成するランダムシーケンスのサイズ(バイト単位) + \brief IoT-Safe関数GetRandomを使用して、指定されたサイズのランダムバッファを生成します。この関数はwolfCrypt RNGオブジェクトによって自動的に使用されます。 + + \param out ランダムなバイトシーケンスが格納されるバッファ。 + \param sz 生成するランダムシーケンスのサイズ(バイト単位) + \return 0 成功時 + */ int wolfIoTSafe_GetRandom(unsigned char* out, word32 sz); /*! \ingroup IoTSafe - \brief IOT-Safeアプレット上のファイルに保存されている証明書をインポートし、ローカルにメモリに保存します。1バイトのファイルIDフィールドで動作します。 - \param id 証明書が保存されているIOTセーフ・アプレットのファイルID - \param output 証明書がインポートされるバッファー - \param sz バッファ出力で使用可能な最大サイズ - \return the 輸入された証明書の長さ + \brief IoT-Safeアプレット上のファイルに保存されている証明書をインポートし、メモリ内にローカルに保存します。1バイトのファイルIDフィールドで動作します。 + + \param id 証明書が保存されているIoT-Safeアプレット内のファイルID + \param output 証明書がインポートされるバッファ + \param sz バッファoutputで利用可能な最大サイズ + \return インポートされた証明書の長さ + \return < 0 失敗の場合 + _Example_ \code #define CRT_CLIENT_FILE_ID 0x03 unsigned char cert_buffer[2048]; - // Get the certificate into the buffer + // 証明書をバッファに取得 cert_buffer_size = wolfIoTSafe_GetCert(CRT_CLIENT_FILE_ID, cert_buffer, 2048); if (cert_buffer_size < 1) { printf("Bad cli cert\n"); @@ -158,7 +185,7 @@ int wolfIoTSafe_GetRandom(unsigned char* out, word32 sz); } printf("Loaded Client certificate from IoT-Safe, size = %lu\n", cert_buffer_size); - // Use the certificate buffer as identity for the TLS client context + // TLSクライアントコンテキストのアイデンティティとして証明書バッファを使用 if (wolfSSL_CTX_use_certificate_buffer(cli_ctx, cert_buffer, cert_buffer_size, SSL_FILETYPE_ASN1) != SSL_SUCCESS) { printf("Cannot load client cert\n"); @@ -166,173 +193,204 @@ int wolfIoTSafe_GetRandom(unsigned char* out, word32 sz); } printf("Client certificate successfully imported.\n"); \endcode -*/ -int wolfIoTSafe_GetCert(uint8_t id, unsigned char *output, unsigned long sz); +*/ +int wolfIoTSafe_GetCert(byte id, unsigned char *output, unsigned long sz); /*! \ingroup IoTSafe - \brief IOT-Safeアプレット上のファイルに保存されている証明書をインポートし、ローカルにメモリに保存します。\ ref wolfiotsafe_getcert "wolfiotsafe_getcert"と同等です。ただし、2バイト以上のファイルIDで呼び出すことができます。 - \param id 証明書が保存されているIOT-SAFEアプレットのファイルIDへのポインタ - \param id_sz ファイルIDのサイズ:バイト数 - \param output 証明書がインポートされるバッファー - \param sz バッファ出力で使用可能な最大サイズ - \return the 輸入された証明書の長さ - _Example_ - \code - #define CRT_CLIENT_FILE_ID 0x0302 - #define ID_SIZE (sizeof(word16)) - unsigned char cert_buffer[2048]; - word16 client_file_id = CRT_CLIENT_FILE_ID; - + \brief IoT-Safeアプレット上のファイルに保存されている証明書をインポートし、メモリ内にローカルに保存します。\ref wolfIoTSafe_GetCert "wolfIoTSafe_GetCert"と同等ですが、2バイト以上のファイルIDで呼び出すことができます。 + \param id 証明書が保存されているIoT-Safeアプレット内のファイルIDへのポインタ + \param id_sz ファイルIDのサイズ + \param output 証明書がインポートされるバッファ + \param sz バッファoutputで利用可能な最大サイズ + \return インポートされた証明書の長さ + \return < 0 失敗の場合 - // Get the certificate into the buffer - cert_buffer_size = wolfIoTSafe_GetCert_ex(&client_file_id, ID_SIZE, cert_buffer, 2048); - if (cert_buffer_size < 1) { - printf("Bad cli cert\n"); - return -1; - } - printf("Loaded Client certificate from IoT-Safe, size = %lu\n", cert_buffer_size); + _Example_ + \code - // Use the certificate buffer as identity for the TLS client context - if (wolfSSL_CTX_use_certificate_buffer(cli_ctx, cert_buffer, - cert_buffer_size, SSL_FILETYPE_ASN1) != SSL_SUCCESS) { - printf("Cannot load client cert\n"); - return -1; - } - printf("Client certificate successfully imported.\n"); \endcode + */ int wolfIoTSafe_GetCert_ex(uint8_t *id, uint16_t id_sz, unsigned char *output, unsigned long sz); /*! \ingroup IoTSafe - \brief IOTセーフアプレットに格納されているECC 256ビットの公開鍵をECC_Keyオブジェクトにインポートします。 - \param key IOT-SAFEアプレットからインポートされたキーを含むECC_KEYオブジェクト - \param id 公開鍵が保存されているIOTセーフアプレットのキーID - \return 0 成功すると + \brief IoT-Safeアプレットに保存されているECC 256ビット公開鍵をecc_keyオブジェクトにインポートします。 + + \param key IoT-Safeアプレットからインポートされた鍵を含むecc_keyオブジェクト + \param id 公開鍵が保存されているIoT-Safeアプレット内の鍵ID + \return 0 成功時 + \return < 0 失敗の場合 + + \sa wc_iotsafe_ecc_export_public \sa wc_iotsafe_ecc_export_private + */ int wc_iotsafe_ecc_import_public(ecc_key *key, byte key_id); /*! \ingroup IoTSafe - \brief ECC_KEYオブジェクトからIOT-SAFEアプレットへの書き込み可能なパブリックキースロットにECC 256ビット公開鍵をエクスポートします。 - \param key エクスポートする鍵を含むecc_keyオブジェクト - \param id 公開鍵が保存されているIOTセーフアプレットのキーID - \return 0 成功すると + \brief ECC 256ビット公開鍵をecc_keyオブジェクトからIoT-Safeアプレット内の書き込み可能な公開鍵スロットにエクスポートします。 + \param key エクスポートする鍵を含むecc_keyオブジェクト + \param id 公開鍵が保存されるIoT-Safeアプレット内の鍵ID + \return 0 成功時 + \return < 0 失敗の場合 + + \sa wc_iotsafe_ecc_import_public_ex \sa wc_iotsafe_ecc_export_private + */ int wc_iotsafe_ecc_export_public(ecc_key *key, byte key_id); /*! \ingroup IoTSafe - \brief ECC_KEYオブジェクトからIOT-SAFEアプレットへの書き込み可能なパブリックキースロットにECC 256ビット公開鍵をエクスポートします。\ ref WC_IOTSAFE_ECC_IMPORT_PUBLIC「WC_IOTSAFE_ECC_IMPORT_PUBLIC」と同等のものは、2バイト以上のキーIDで呼び出すことができる点を除きます。 - \param key エクスポートする鍵を含むecc_keyオブジェクト - \param id 公開鍵が保存されるIOTセーフアプレットのキーIDへのポインタ - \param id_size キーIDサイズ - \return 0 成功すると + \brief ECC 256ビット公開鍵をecc_keyオブジェクトからIoT-Safeアプレット内の書き込み可能な公開鍵スロットにエクスポートします。 + \ref wc_iotsafe_ecc_import_public "wc_iotsafe_ecc_import_public"と同等ですが、2バイト以上の鍵IDで呼び出すことができます。 + \param key エクスポートする鍵を含むecc_keyオブジェクト + \param id 公開鍵が保存されるIoT-Safeアプレット内の鍵IDへのポインタ + \param id_size 鍵IDのサイズ + + \return 0 成功時 + \return < 0 失敗の場合 + + \sa wc_iotsafe_ecc_import_public \sa wc_iotsafe_ecc_export_private + */ int wc_iotsafe_ecc_import_public_ex(ecc_key *key, byte *key_id, word16 id_size); /*! \ingroup IoTSafe - \brief ECC 256ビットキーをECC_KEYオブジェクトからIOTセーフアプレットに書き込み可能なプライベートキースロットにエクスポートします。 - \param key エクスポートする鍵を含むecc_keyオブジェクト - \param id 秘密鍵が保存されるIOTセーフアプレットのキーID - \return 0 成功すると + \brief ECC 256ビット鍵をecc_keyオブジェクトからIoT-Safeアプレット内の書き込み可能な秘密鍵スロットにエクスポートします。 + \param key エクスポートする鍵を含むecc_keyオブジェクト + \param id 秘密鍵が保存されるIoT-Safeアプレット内の鍵ID + \return 0 成功時 + \return < 0 失敗の場合 + + \sa wc_iotsafe_ecc_export_private_ex \sa wc_iotsafe_ecc_import_public \sa wc_iotsafe_ecc_export_public + */ int wc_iotsafe_ecc_export_private(ecc_key *key, byte key_id); /*! \ingroup IoTSafe - \brief ECC 256ビットキーをECC_KEYオブジェクトからIOTセーフアプレットに書き込み可能なプライベートキースロットにエクスポートします。\ ref WC_IOTSAFE_ECC_EXPORT_PRIVATE「WC_IOTSAFE_ECC_EXPORT_PRIVATE」を除き、2バイト以上のキーIDを呼び出すことができる点を除き、 - \param key エクスポートする鍵を含むecc_keyオブジェクト - \param id 秘密鍵が保存されるIOTセーフアプレットのキーIDへのポインタ - \param id_size キーIDサイズ - \return 0 成功すると + \brief ECC 256ビット鍵をecc_keyオブジェクトからIoT-Safeアプレット内の書き込み可能な秘密鍵スロットにエクスポートします。 + \ref wc_iotsafe_ecc_export_private "wc_iotsafe_ecc_export_private"と同等ですが、2バイト以上の鍵IDで呼び出すことができます。 + + \param key エクスポートする鍵を含むecc_keyオブジェクト + \param id 秘密鍵が保存されるIoT-Safeアプレット内の鍵IDへのポインタ + \param id_size 鍵IDのサイズ + \return 0 成功時 + \return < 0 失敗の場合 + + \sa wc_iotsafe_ecc_export_private \sa wc_iotsafe_ecc_import_public \sa wc_iotsafe_ecc_export_public + */ int wc_iotsafe_ecc_export_private_ex(ecc_key *key, byte *key_id, word16 id_size); /*! \ingroup IoTSafe - \brief 事前計算された256ビットハッシュに署名して、IOT-SAFEアプレットに、以前に保存されたプライベートキー、またはプリプロビジョニングされています。 - \param in サインするメッセージハッシュを含むバッファへのポインタ - \param inlen 署名するメッセージの長さ - \param out 生成された署名を保存するためのバッファ - \param outlen 出力バッファの最大長。バイトを保存します - \param id メッセージ署名の生成に成功したときに書き込まれたペイロードに署名するための秘密鍵を含むスロットのIOTセーフアプレットのキーID - \return 0 成功すると + \brief IoT-Safeアプレット内に事前に保存または事前プロビジョニングされた秘密鍵を使用して、事前計算されたハッシュに署名します。 + + \param in 署名するメッセージハッシュを含むバッファへのポインタ + \param inlen 署名するメッセージハッシュの長さ + \param out 生成された署名を格納するバッファ + \param outlen 出力バッファの最大長。メッセージ署名の生成に成功すると、outに書き込まれたバイト数を格納します + \param id ペイロードに署名する秘密鍵を含むスロットのIoT-Safeアプレット内の鍵ID + \return 0 成功時 + \return < 0 失敗の場合 + \sa wc_iotsafe_ecc_sign_hash_ex \sa wc_iotsafe_ecc_verify_hash \sa wc_iotsafe_ecc_gen_k + */ int wc_iotsafe_ecc_sign_hash(byte *in, word32 inlen, byte *out, word32 *outlen, byte key_id); /*! \ingroup IoTSafe - \brief 事前計算された256ビットハッシュに署名して、IOT-SAFEアプレットに、以前に保存されたプライベートキー、またはプリプロビジョニングされています。\ ref wc_iotsafe_ecc_sign_hash "wc_iotsafe_ecc_sign_hash"と同等です。ただし、2バイト以上のキーIDで呼び出すことができます。 - \param in サインするメッセージハッシュを含むバッファへのポインタ - \param inlen 署名するメッセージの長さ - \param out 生成された署名を保存するためのバッファ - \param outlen 出力バッファの最大長。バイトを保存します - \param id 秘密鍵を含むスロットのIOT-SAFEアプレットのキーIDへのポインタメッセージ署名の生成に成功したときに書き込まれるペイロードに署名する - \param id_size キーIDサイズ - \return 0 成功すると + \brief IoT-Safeアプレット内に事前に保存または事前プロビジョニングされた秘密鍵を使用して、事前計算されたハッシュに署名します。\ref wc_iotsafe_ecc_sign_hash "wc_iotsafe_ecc_sign_hash"と同等ですが、2バイト以上の鍵IDで呼び出すことができます。 + + \param in 署名するメッセージハッシュを含むバッファへのポインタ + \param inlen 署名するメッセージハッシュの長さ + \param out 生成された署名を格納するバッファ + \param outlen 出力バッファの最大長。メッセージ署名の生成に成功すると、outに書き込まれたバイト数を格納します + \param id ペイロードに署名する秘密鍵を含むスロットのIoT-Safeアプレット内の鍵IDへのポインタ + \param id_size 鍵IDのサイズ + \return 0 成功時 + \return < 0 失敗の場合 + \sa wc_iotsafe_ecc_sign_hash \sa wc_iotsafe_ecc_verify_hash \sa wc_iotsafe_ecc_gen_k + */ int wc_iotsafe_ecc_sign_hash_ex(byte *in, word32 inlen, byte *out, word32 *outlen, byte *key_id, word16 id_size); /*! \ingroup IoTSafe - \brief 予め計算された256ビットハッシュに対するECCシグネチャを、IOT-SAFEアプレット内のプリプロビジョニング、またはプロビジョニングされたプリプロビジョニングを使用します。結果はRESに書き込まれます。1が有効で、0が無効です。注:有効なテストに戻り値を使用しないでください。Resのみを使用してください。 - \return 0 成功すると(署名が無効であっても) - \return < 故障の場合は0 + \brief IoT-Safeアプレット内に事前に保存または事前プロビジョニングされた公開鍵を使用して、事前計算されたハッシュに対するECC署名を検証します。結果はresに書き込まれます。1は有効、0は無効です。 + 注意: 有効性をテストするために戻り値を使用しないでください。resのみを使用してください。 + + \return 0 成功時(署名が有効でない場合でも) + \return < 0 失敗の場合。 + \param sig 検証する署名を含むバッファ - \param hash 署名されたハッシュ(メッセージダイジェスト) - \param hashlen ハッシュの長さ(オクテット) - \param res 署名の結果、1 ==有効、0 ==無効 + \param hash 署名されたハッシュ(メッセージダイジェスト) + \param hashlen ハッシュの長さ(オクテット) + \param res 署名の結果、1==有効、0==無効 + \param key_id IoT-Safeアプレット内に公開ECC鍵が保存されているスロットのID + \sa wc_iotsafe_ecc_verify_hash_ex \sa wc_iotsafe_ecc_sign_hash \sa wc_iotsafe_ecc_gen_k + */ int wc_iotsafe_ecc_verify_hash(byte *sig, word32 siglen, byte *hash, word32 hashlen, int *res, byte key_id); /*! \ingroup IoTSafe - \brief 予め計算された256ビットハッシュに対するECCシグネチャを、IOT-SAFEアプレット内のプリプロビジョニング、またはプロビジョニングされたプリプロビジョニングを使用します。結果はRESに書き込まれます。1が有効で、0が無効です。注:有効なテストに戻り値を使用しないでください。Resのみを使用してください。\ ref WC_IOTSAFE_ECC_VERIFY_HASH "WC_IOTSAFE_ECC_VERIFY_HASH"を除き、2バイト以上のキーIDで呼び出すことができる点を除きます。 - \return 0 成功すると(署名が無効であっても) - \return < 故障の場合は0 + \brief IoT-Safeアプレット内に事前に保存または事前プロビジョニングされた公開鍵を使用して、事前計算されたハッシュに対するECC署名を検証します。結果はresに書き込まれます。1は有効、0は無効です。 + 注意: 有効性をテストするために戻り値を使用しないでください。resのみを使用してください。 + \ref wc_iotsafe_ecc_verify_hash "wc_iotsafe_ecc_verify_hash"と同等ですが、2バイト以上の鍵IDで呼び出すことができます。 + + \return 0 成功時(署名が有効でない場合でも) + \return < 0 失敗の場合。 + \param sig 検証する署名を含むバッファ - \param hash 署名されたハッシュ(メッセージダイジェスト) - \param hashlen ハッシュの長さ(オクテット) - \param res 署名の結果、1 ==有効、0 ==無効 - \param key_id パブリックECCキーがIOTセーフアプレットに保存されているスロットのID + \param hash 署名されたハッシュ(メッセージダイジェスト) + \param hashlen ハッシュの長さ(オクテット) + \param res 署名の結果、1==有効、0==無効 + \param key_id IoT-Safeアプレット内に公開ECC鍵が保存されているスロットのID + \param id_size 鍵IDのサイズ + \sa wc_iotsafe_ecc_verify_hash \sa wc_iotsafe_ecc_sign_hash \sa wc_iotsafe_ecc_gen_k + */ int wc_iotsafe_ecc_verify_hash_ex(byte *sig, word32 siglen, byte *hash, word32 hashlen, int *res, byte *key_id, word16 id_size); /*! \ingroup IoTSafe - \brief ECC 256ビットのキーペアを生成し、それを(書き込み可能な)スロットにIOTセーフなアプレットに保存します。 - \param key_id ECCキーペアがIOTセーフアプレットに格納されているスロットのID。 - \return 0 成功すると + \brief ECC 256ビット鍵ペアを生成し、IoT-Safeアプレット内の(書き込み可能な)スロットに保存します。 + \param key_id IoT-Safeアプレット内にECC鍵ペアが保存されているスロットのID。 + \return 0 成功時 + \return < 0 失敗の場合。 + \sa wc_iotsafe_ecc_gen_k_ex \sa wc_iotsafe_ecc_sign_hash \sa wc_iotsafe_ecc_verify_hash @@ -341,12 +399,15 @@ int wc_iotsafe_ecc_gen_k(byte key_id); /*! \ingroup IoTSafe - \brief ECC 256ビットのキーペアを生成し、それを(書き込み可能な)スロットにIOTセーフなアプレットに保存します。\ ref wc_iotsafe_ecc_gen_k "wc_iotsafe_ecc_gen_k"と同等です。ただし、2バイト以上のキーIDで呼び出すことができます。 - \param key_id ECCキーペアがIOTセーフアプレットに格納されているスロットのID。 - \param id_size キーIDサイズ - \return 0 成功すると + \brief ECC 256ビット鍵ペアを生成し、IoT-Safeアプレット内の(書き込み可能な)スロットに保存します。 + \ref wc_iotsafe_ecc_gen_k "wc_iotsafe_ecc_gen_k"と同等ですが、2バイト以上の鍵IDで呼び出すことができます。 + \param key_id IoT-Safeアプレット内にECC鍵ペアが保存されているスロットのID。 + \param id_size 鍵IDのサイズ + \return 0 成功時 + \return < 0 失敗の場合。 + \sa wc_iotsafe_ecc_gen_k \sa wc_iotsafe_ecc_sign_hash_ex \sa wc_iotsafe_ecc_verify_hash_ex */ -int wc_iotsafe_ecc_gen_k(byte key_id); +int wc_iotsafe_ecc_gen_k(byte key_id); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/kdf.h b/doc/dox_comments/header_files-ja/kdf.h new file mode 100644 index 0000000000..63a84dc74f --- /dev/null +++ b/doc/dox_comments/header_files-ja/kdf.h @@ -0,0 +1,258 @@ +/*! + \ingroup SrtpKdf + + \brief この関数はSRTP KDFアルゴリズムを使用して鍵を導出します。 + + \return 0 鍵の導出に成功した場合に返されます。 + \return BAD_FUNC_ARG keyまたはsaltがNULLの場合に返されます + \return BAD_FUNC_ARG 鍵の長さが16、24、または32でない場合に返されます。 + \return BAD_FUNC_ARG saltSzが14より大きい場合に返されます。 + \return BAD_FUNC_ARG kdrIdxが-1未満または24より大きい場合に返されます。 + \return MEMORY_E 動的メモリ割り当ての失敗時。 + + \param [in] key 暗号化で使用する鍵。 + \param [in] keySz 鍵のサイズ(バイト単位)。 + \param [in] salt ランダムな非秘密値。 + \param [in] saltSz ランダム値のサイズ(バイト単位)。 + \param [in] kdrIdx 鍵導出率。-1の場合kdr = 0、それ以外の場合kdr = 2^kdrIdx。 + \param [in] idx XORするインデックス値。 + \param [out] key1 最初の鍵。ラベル値は0x00。 + \param [in] key1Sz 最初の鍵のサイズ(バイト単位)。 + \param [out] key2 2番目の鍵。ラベル値は0x01。 + \param [in] key2Sz 2番目の鍵のサイズ(バイト単位)。 + \param [out] key3 3番目の鍵。ラベル値は0x02。 + \param [in] key3Sz 3番目の鍵のサイズ(バイト単位)。 + + + _Example_ + \code + unsigned char key[16] = { ... }; + unsigned char salt[14] = { ... }; + unsigned char idx[6] = { ... }; + unsigned char keyE[16]; + unsigned char keyA[20]; + unsigned char keyS[14]; + int kdrIdx = 0; // インデックスのすべてを使用 + int ret; + + ret = wc_SRTP_KDF(key, sizeof(key), salt, sizeof(salt), kdrIdx, idx, + keyE, sizeof(keyE), keyA, sizeof(keyA), keyS, sizeof(keyS)); + if (ret != 0) { + WOLFSSL_MSG("wc_SRTP_KDF failed"); + } + \endcode + + \sa wc_SRTCP_KDF + \sa wc_SRTP_KDF_label + \sa wc_SRTCP_KDF_label + \sa wc_SRTP_KDF_kdr_to_idx +*/ +int wc_SRTP_KDF(const byte* key, word32 keySz, const byte* salt, word32 saltSz, + int kdrIdx, const byte* idx, byte* key1, word32 key1Sz, byte* key2, + word32 key2Sz, byte* key3, word32 key3Sz); + +/*! + \ingroup SrtpKdf + + \brief この関数はSRTCP KDFアルゴリズムを使用して鍵を導出します。 + + \return 0 鍵の導出に成功した場合に返されます。 + \return BAD_FUNC_ARG keyまたはsaltがNULLの場合に返されます + \return BAD_FUNC_ARG 鍵の長さが16、24、または32でない場合に返されます。 + \return BAD_FUNC_ARG saltSzが14より大きい場合に返されます。 + \return BAD_FUNC_ARG kdrIdxが-1未満または24より大きい場合に返されます。 + \return MEMORY_E 動的メモリ割り当ての失敗時。 + + \param [in] key 暗号化で使用する鍵。 + \param [in] keySz 鍵のサイズ(バイト単位)。 + \param [in] salt ランダムな非秘密値。 + \param [in] saltSz ランダム値のサイズ(バイト単位)。 + \param [in] kdrIdx 鍵導出率。-1の場合kdr = 0、それ以外の場合kdr = 2^kdrIdx。 + \param [in] idx XORするインデックス値。 + \param [out] key1 最初の鍵。ラベル値は0x00。 + \param [in] key1Sz 最初の鍵のサイズ(バイト単位)。 + \param [out] key2 2番目の鍵。ラベル値は0x01。 + \param [in] key2Sz 2番目の鍵のサイズ(バイト単位)。 + \param [out] key3 3番目の鍵。ラベル値は0x02。 + \param [in] key3Sz 3番目の鍵のサイズ(バイト単位)。 + + + _Example_ + \code + unsigned char key[16] = { ... }; + unsigned char salt[14] = { ... }; + unsigned char idx[4] = { ... }; + unsigned char keyE[16]; + unsigned char keyA[20]; + unsigned char keyS[14]; + int kdrIdx = 0; // インデックスのすべてを使用 + int ret; + + ret = wc_SRTCP_KDF(key, sizeof(key), salt, sizeof(salt), kdrIdx, idx, + keyE, sizeof(keyE), keyA, sizeof(keyA), keyS, sizeof(keyS)); + if (ret != 0) { + WOLFSSL_MSG("wc_SRTP_KDF failed"); + } + \endcode + + \sa wc_SRTP_KDF + \sa wc_SRTP_KDF_label + \sa wc_SRTCP_KDF_label + \sa wc_SRTP_KDF_kdr_to_idx +*/ +int wc_SRTCP_KDF(const byte* key, word32 keySz, const byte* salt, word32 saltSz, + int kdrIdx, const byte* idx, byte* key1, word32 key1Sz, byte* key2, + word32 key2Sz, byte* key3, word32 key3Sz); +/*! + \ingroup SrtpKdf + + \brief この関数はSRTP KDFアルゴリズムを使用してラベル付きの鍵を導出します。 + + \return 0 鍵の導出に成功した場合に返されます。 + \return BAD_FUNC_ARG key、salt、またはoutKeyがNULLの場合に返されます + \return BAD_FUNC_ARG 鍵の長さが16、24、または32でない場合に返されます。 + \return BAD_FUNC_ARG saltSzが14より大きい場合に返されます。 + \return BAD_FUNC_ARG kdrIdxが-1未満または24より大きい場合に返されます。 + \return MEMORY_E 動的メモリ割り当ての失敗時。 + + \param [in] key 暗号化で使用する鍵。 + \param [in] keySz 鍵のサイズ(バイト単位)。 + \param [in] salt ランダムな非秘密値。 + \param [in] saltSz ランダム値のサイズ(バイト単位)。 + \param [in] kdrIdx 鍵導出率。-1の場合kdr = 0、それ以外の場合kdr = 2^kdrIdx。 + \param [in] idx XORするインデックス値。 + \param [in] label 鍵を導出する際に使用するラベル。 + \param [out] outKey 導出された鍵。 + \param [in] outKeySz 導出された鍵のサイズ(バイト単位)。 + + + _Example_ + \code + unsigned char key[16] = { ... }; + unsigned char salt[14] = { ... }; + unsigned char idx[6] = { ... }; + unsigned char keyE[16]; + int kdrIdx = 0; // インデックスのすべてを使用 + int ret; + + ret = wc_SRTP_KDF_label(key, sizeof(key), salt, sizeof(salt), kdrIdx, idx, + WC_SRTP_LABEL_ENCRYPTION, keyE, sizeof(keyE)); + if (ret != 0) { + WOLFSSL_MSG("wc_SRTP_KDF failed"); + } + \endcode + + \sa wc_SRTP_KDF + \sa wc_SRTCP_KDF + \sa wc_SRTCP_KDF_label + \sa wc_SRTP_KDF_kdr_to_idx +*/ +int wc_SRTP_KDF_label(const byte* key, word32 keySz, const byte* salt, + word32 saltSz, int kdrIdx, const byte* idx, byte label, byte* outKey, + word32 outKeySz); +/*! + \ingroup SrtpKdf + + \brief この関数はSRTCP KDFアルゴリズムを使用してラベル付きの鍵を導出します。 + + \return 0 鍵の導出に成功した場合に返されます。 + \return BAD_FUNC_ARG key、salt、またはoutKeyがNULLの場合に返されます + \return BAD_FUNC_ARG 鍵の長さが16、24、または32でない場合に返されます。 + \return BAD_FUNC_ARG saltSzが14より大きい場合に返されます。 + \return BAD_FUNC_ARG kdrIdxが-1未満または24より大きい場合に返されます。 + \return MEMORY_E 動的メモリ割り当ての失敗時。 + + \param [in] key 暗号化で使用する鍵。 + \param [in] keySz 鍵のサイズ(バイト単位)。 + \param [in] salt ランダムな非秘密値。 + \param [in] saltSz ランダム値のサイズ(バイト単位)。 + \param [in] kdrIdx 鍵導出率。-1の場合kdr = 0、それ以外の場合kdr = 2^kdrIdx。 + \param [in] idx XORするインデックス値。 + \param [in] label 鍵を導出する際に使用するラベル。 + \param [out] outKey 導出された鍵。 + \param [in] outKeySz 導出された鍵のサイズ(バイト単位)。 + + + _Example_ + \code + unsigned char key[16] = { ... }; + unsigned char salt[14] = { ... }; + unsigned char idx[4] = { ... }; + unsigned char keyE[16]; + int kdrIdx = 0; // インデックスのすべてを使用 + int ret; + + ret = wc_SRTCP_KDF_label(key, sizeof(key), salt, sizeof(salt), kdrIdx, + idx, WC_SRTCP_LABEL_ENCRYPTION, keyE, sizeof(keyE)); + if (ret != 0) { + WOLFSSL_MSG("wc_SRTP_KDF failed"); + } + \endcode + + \sa wc_SRTP_KDF + \sa wc_SRTCP_KDF + \sa wc_SRTP_KDF_label + \sa wc_SRTP_KDF_kdr_to_idx +*/ +int wc_SRTCP_KDF_label(const byte* key, word32 keySz, const byte* salt, + word32 saltSz, int kdrIdx, const byte* idx, byte label, byte* outKey, + word32 outKeySz); +/*! + \ingroup SrtpKdf + + \brief この関数はkdr値をSRTP/SRTCP KDF APIで使用するインデックスに変換します。 + + \return インデックスとしての鍵導出率。 + + \param [in] kdr 変換する鍵導出率。 + + _Example_ + \code + word32 kdr = 0x00000010; + int kdrIdx; + int ret; + + kdrIdx = wc_SRTP_KDF_kdr_to_idx(kdr); + \endcode + + \sa wc_SRTP_KDF + \sa wc_SRTCP_KDF + \sa wc_SRTP_KDF_label + \sa wc_SRTCP_KDF_label +*/ +int wc_SRTP_KDF_kdr_to_idx(word32 kdr); + +/** + * \brief SP800-56Cオプション1で規定されている単一ステップ鍵導出関数(KDF)を実行します。 + * + * \param [in] z 入力鍵材料。 + * \param [in] zSz 入力鍵材料のサイズ。 + * \param [in] fixedInfo KDFに含める固定情報。 + * \param [in] fixedInfoSz 固定情報のサイズ。 + * \param [in] derivedSecretSz 導出される秘密の希望サイズ。 + * \param [in] hashType KDFで使用するハッシュアルゴリズム。 + * \param [out] output 導出された秘密を格納するバッファ。 + * \param [in] outputSz 出力バッファのサイズ。 + * + + * \return 0 KDF操作が成功した場合、 + * \return BAD_FUNC_ARG 入力パラメータが無効な場合。 + * \return 負のエラーコード KDF操作が失敗した場合。 + * + * _Example_ + \code + unsigned char z[32] = { ... }; + unsigned char fixedInfo[16] = { ... }; + unsigned char output[32]; + int ret; + + ret = wc_KDA_KDF_onestep(z, sizeof(z), fixedInfo, sizeof(fixedInfo), + sizeof(output), WC_HASH_TYPE_SHA256, output, sizeof(output)); + if (ret != 0) { + WOLFSSL_MSG("wc_KDA_KDF_onestep failed"); + } + \endcode + */ +int wc_KDA_KDF_onestep(const byte* z, word32 zSz, + const byte* fixedInfo, word32 fixedInfoSz, word32 derivedSecretSz, + enum wc_HashType hashType, byte* output, word32 outputSz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/logging.h b/doc/dox_comments/header_files-ja/logging.h index 47b61417ee..63d9190b0e 100644 --- a/doc/dox_comments/header_files-ja/logging.h +++ b/doc/dox_comments/header_files-ja/logging.h @@ -1,23 +1,30 @@ /*! \ingroup Logging - \brief この関数は、WolfSSLログメッセージを処理するために使用されるロギングコールバックを登録します。デフォルトでは、システムがIT fprintf()をSTDERRにサポートしている場合は、この関数を使用することによって、ユーザーによって何でも実行できます。 - \return Success 成功した場合、この関数は0を返します。 - \return BAD_FUNC_ARG 関数ポインタが提供されていない場合に返されるエラーです。 + + \brief この関数は、wolfSSLログメッセージを処理するために使用されるロギングコールバックを登録します。デフォルトでは、システムがサポートしている場合、stderrへのfprintf()が使用されますが、この関数を使用することでユーザーは任意の処理を行うことができます。 + + \return Success 成功した場合、この関数は0を返します。 + \return BAD_FUNC_ARG 関数ポインタが提供されていない場合に返されるエラーです。 + + \param log_function ロギングコールバックとして登録する関数。 + 関数シグネチャは上記のプロトタイプに従う必要があります。 + _Example_ \code int ret = 0; - // Logging callback prototype + // ロギングコールバックのプロトタイプ void MyLoggingCallback(const int logLevel, const char* const logMessage); - // Register the custom logging callback with wolfSSL + // カスタムロギングコールバックをwolfSSLに登録 ret = wolfSSL_SetLoggingCb(MyLoggingCallback); if (ret != 0) { - // failed to set logging callback + // ロギングコールバックの設定に失敗 } void MyLoggingCallback(const int logLevel, const char* const logMessage) { - // custom logging function + // カスタムロギング関数 } \endcode + \sa wolfSSL_Debugging_ON \sa wolfSSL_Debugging_OFF */ @@ -25,13 +32,19 @@ int wolfSSL_SetLoggingCb(wolfSSL_Logging_cb log_function); /*! \ingroup Debug - \brief ビルド時にロギングが有効になっている場合、この関数は実行時にロギングをオンにします。ビルド時にログ記録を有効にするには--enable-debugまたはdebug_wolfsslを定義します。 - \return 0 成功すると。 - \return NOT_COMPILED_IN このビルドに対してロギングが有効になっていない場合は返されるエラーです。 + + \brief ビルド時にロギングが有効になっている場合、この関数は実行時にロギングを有効にします。ビルド時にロギングを有効にするには、--enable-debugを使用するか、DEBUG_WOLFSSLを定義します。 + + \return 0 成功時。 + \return NOT_COMPILED_IN このビルドでロギングが有効になっていない場合に返されるエラーです。 + + \param none パラメータなし。 + _Example_ \code wolfSSL_Debugging_ON(); \endcode + \sa wolfSSL_Debugging_OFF \sa wolfSSL_SetLoggingCb */ @@ -39,13 +52,19 @@ int wolfSSL_Debugging_ON(void); /*! \ingroup Debug - \brief この関数はランタイムロギングメッセージをオフにします。彼らがすでに消えている場合は、行動はとられません。 - \return none いいえ返します。 + + \brief この関数は、実行時のロギングメッセージを無効にします。既に無効になっている場合、何も行われません。 + + \return none 戻り値なし。 + + \param none パラメータなし。 + _Example_ \code wolfSSL_Debugging_OFF(); \endcode + \sa wolfSSL_Debugging_ON \sa wolfSSL_SetLoggingCb */ -void wolfSSL_Debugging_OFF(void); +void wolfSSL_Debugging_OFF(void); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/md2.h b/doc/dox_comments/header_files-ja/md2.h index 07d8545027..2e3be3fbba 100644 --- a/doc/dox_comments/header_files-ja/md2.h +++ b/doc/dox_comments/header_files-ja/md2.h @@ -1,7 +1,12 @@ /*! \ingroup MD2 - \brief この関数はMD2を初期化します。これはWC_MD2HASHによって自動的に呼び出されます。 - \return 0 初期化に成功したときに返されます + + \brief この関数はmd2を初期化します。これはwc_Md2Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param md2 暗号化に使用するmd2構造体へのポインタ + _Example_ \code md2 md2[1]; @@ -13,6 +18,7 @@ wc_Md2Final(md2, hash); } \endcode + \sa wc_Md2Hash \sa wc_Md2Update \sa wc_Md2Final @@ -21,14 +27,19 @@ void wc_InitMd2(Md2*); /*! \ingroup MD2 - \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。 - \return 0 データをダイジェストに正常に追加すると返されます。 - \param md2 暗号化に使用するMD2構造へのポインタ - \param data ハッシュするデータ + + \brief 長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。 + + \return 0 ダイジェストへのデータ追加に成功した場合に返されます。 + + \param md2 暗号化に使用するmd2構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + _Example_ \code md2 md2[1]; - byte data[] = { }; // Data to be hashed + byte data[] = { }; // ハッシュ化されるデータ word32 len = sizeof(data); if ((ret = wc_InitMd2(md2)) != 0) { @@ -39,6 +50,7 @@ void wc_InitMd2(Md2*); wc_Md2Final(md2, hash); } \endcode + \sa wc_Md2Hash \sa wc_Md2Final \sa wc_InitMd2 @@ -47,13 +59,18 @@ void wc_Md2Update(Md2* md2, const byte* data, word32 len); /*! \ingroup MD2 - \brief データのハッシュを確定します。結果はハッシュに入れられます。 - \return 0 ファイナライズに成功したときに返されます。 - \param md2 暗号化に使用するMD2構造へのポインタ + + \brief データのハッシュ化を完了します。結果はhashに格納されます。 + + \return 0 完了に成功した場合に返されます。 + + \param md2 暗号化に使用するmd2構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code md2 md2[1]; - byte data[] = { }; // Data to be hashed + byte data[] = { }; // ハッシュ化されるデータ word32 len = sizeof(data); if ((ret = wc_InitMd2(md2)) != 0) { @@ -64,6 +81,7 @@ void wc_Md2Update(Md2* md2, const byte* data, word32 len); wc_Md2Final(md2, hash); } \endcode + \sa wc_Md2Hash \sa wc_Md2Final \sa wc_InitMd2 @@ -72,17 +90,23 @@ void wc_Md2Final(Md2* md2, byte* hash); /*! \ingroup MD2 - \brief 利便性機能は、すべてのハッシュを処理し、その結果をハッシュに入れます。 - \return 0 データを正常にハッシュしたときに返されます。 - \return Memory_E メモリエラー、メモリを割り当てることができません。これは、小さなスタックオプションが有効になっているだけです。 - \param data ハッシュへのデータ - \param len データの長さ + + \brief 便利な関数で、すべてのハッシュ化を処理し、結果をhashに格納します。 + + \return 0 データのハッシュ化に成功した場合に返されます。 + \return Memory_E メモリエラー、メモリを割り当てることができません。これはスモールスタックオプションが有効な場合にのみ発生します。 + + \param data ハッシュ化するデータ + \param len データの長さ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code none \endcode + \sa wc_Md2Hash \sa wc_Md2Final \sa wc_InitMd2 */ -int wc_Md2Hash(const byte* data, word32 len, byte* hash); +int wc_Md2Hash(const byte* data, word32 len, byte* hash); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/md4.h b/doc/dox_comments/header_files-ja/md4.h index be9e537ee3..d0654596e8 100644 --- a/doc/dox_comments/header_files-ja/md4.h +++ b/doc/dox_comments/header_files-ja/md4.h @@ -1,7 +1,12 @@ /*! \ingroup MD4 - \brief この関数はMD4を初期化します。これはWC_MD4HASHによって自動的に呼び出されます。 - \return 0 初期化に成功したときに返されます + + \brief この関数はmd4を初期化します。これはwc_Md4Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param md4 暗号化に使用するmd4構造体へのポインタ + _Example_ \code md4 md4[1]; @@ -13,6 +18,7 @@ wc_Md4Final(md4, hash); } \endcode + \sa wc_Md4Hash \sa wc_Md4Update \sa wc_Md4Final @@ -21,14 +27,19 @@ void wc_InitMd4(Md4*); /*! \ingroup MD4 - \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。 - \return 0 データをダイジェストに正常に追加すると返されます。 - \param md4 暗号化に使用するMD4構造へのポインタ - \param data ハッシュするデータ + + \brief 長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。 + + \return 0 ダイジェストへのデータ追加に成功した場合に返されます。 + + \param md4 暗号化に使用するmd4構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + _Example_ \code md4 md4[1]; - byte data[] = { }; // Data to be hashed + byte data[] = { }; // ハッシュ化されるデータ word32 len = sizeof(data); if ((ret = wc_InitMd4(md4)) != 0) { @@ -39,6 +50,7 @@ void wc_InitMd4(Md4*); wc_Md4Final(md4, hash); } \endcode + \sa wc_Md4Hash \sa wc_Md4Final \sa wc_InitMd4 @@ -47,9 +59,14 @@ void wc_Md4Update(Md4* md4, const byte* data, word32 len); /*! \ingroup MD4 - \brief データのハッシュを確定します。結果はハッシュに入れられます。 - \return 0 ファイナライズに成功したときに返されます。 - \param md4 暗号化に使用するMD4構造へのポインタ + + \brief データのハッシュ化を完了します。結果はhashに格納されます。 + + \return 0 完了に成功した場合に返されます。 + + \param md4 暗号化に使用するmd4構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code md4 md4[1]; @@ -61,8 +78,9 @@ void wc_Md4Update(Md4* md4, const byte* data, word32 len); wc_Md4Final(md4, hash); } \endcode + \sa wc_Md4Hash \sa wc_Md4Final \sa wc_InitMd4 */ -void wc_Md4Final(Md4* md4, byte* hash); +void wc_Md4Final(Md4* md4, byte* hash); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/md5.h b/doc/dox_comments/header_files-ja/md5.h index 78bdb8bd6e..e23eb96d63 100644 --- a/doc/dox_comments/header_files-ja/md5.h +++ b/doc/dox_comments/header_files-ja/md5.h @@ -1,8 +1,13 @@ /*! \ingroup MD5 - \brief この関数はMD5を初期化します。これはWC_MD5HASHによって自動的に呼び出されます。 - \return 0 初期化に成功したときに返されます。 - \return BAD_FUNC_ARG MD5構造がNULL値として渡された場合に返されます。 + + \brief この関数はmd5を初期化します。これはwc_Md5Hashによって自動的に呼び出されます。 + + \return 0 正常に初期化された場合に返されます。 + \return BAD_FUNC_ARG Md5構造体がNULL値として渡された場合に返されます。 + + \param md5 暗号化に使用するmd5構造体へのポインタ + _Example_ \code Md5 md5; @@ -13,14 +18,15 @@ else { ret = wc_Md5Update(&md5, data, len); if (ret != 0) { - // Md5 Update Failure Case. + // Md5 Update失敗のケース。 } ret = wc_Md5Final(&md5, hash); if (ret != 0) { - // Md5 Final Failure Case. + // Md5 Final失敗のケース。 } } \endcode + \sa wc_Md5Hash \sa wc_Md5Update \sa wc_Md5Final @@ -29,15 +35,20 @@ int wc_InitMd5(wc_Md5*); /*! \ingroup MD5 - \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。 - \return 0 データをダイジェストに正常に追加すると返されます。 - \return BAD_FUNC_ARG MD5構造がNULLの場合、またはデータがNULLで、LENがゼロより大きい場合に返されます。DATAパラメーターがNULLでLENがゼロの場合、関数はエラーを返してはいけません。 - \param md5 暗号化に使用するMD5構造へのポインタ - \param data ハッシュするデータ + + \brief 長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。 + + \return 0 ダイジェストへのデータ追加に成功した場合に返されます。 + \return BAD_FUNC_ARG Md5構造体がNULLの場合、またはdataがNULLでlenがゼロより大きい場合に返されます。dataパラメータがNULLでlenがゼロの場合、関数はエラーを返すべきではありません。 + + \param md5 暗号化に使用するmd5構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + _Example_ \code Md5 md5; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitMd5(&md5)) != 0) { @@ -46,14 +57,15 @@ int wc_InitMd5(wc_Md5*); else { ret = wc_Md5Update(&md5, data, len); if (ret != 0) { - // Md5 Update Error Case. + // Md5 Updateエラーのケース。 } ret = wc_Md5Final(&md5, hash); if (ret != 0) { - // Md5 Final Error Case. + // Md5 Finalエラーのケース。 } } \endcode + \sa wc_Md5Hash \sa wc_Md5Final \sa wc_InitMd5 @@ -62,14 +74,19 @@ int wc_Md5Update(wc_Md5* md5, const byte* data, word32 len); /*! \ingroup MD5 - \brief データのハッシュを確定します。結果はハッシュに入れられます。MD5構造体がリセットされます。注:この関数は、habe_intel_qaが定義されている場合にintelqasymmd5()を呼び出す結果も返します。 - \return 0 ファイナライズに成功したときに返されます。 - \return BAD_FUNC_ARG MD5構造またはハッシュポインタがNULLで渡された場合に返されます。 - \param md5 暗号化に使用するMD5構造へのポインタ + + \brief データのハッシュ化を完了します。結果はhashに格納されます。Md5構造体はリセットされます。注意:この関数は、HAVE_INTEL_QAが定義されている場合にIntelQaSymMd5()を呼び出した結果も返します。 + + \return 0 正常に完了した場合に返されます。 + \return BAD_FUNC_ARG Md5構造体またはhashポインタがNULLで渡された場合に返されます。 + + \param md5 暗号化に使用するmd5構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code md5 md5[1]; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitMd5(md5)) != 0) { @@ -78,14 +95,15 @@ int wc_Md5Update(wc_Md5* md5, const byte* data, word32 len); else { ret = wc_Md5Update(md5, data, len); if (ret != 0) { - // Md5 Update Failure Case. + // Md5 Update失敗のケース。 } ret = wc_Md5Final(md5, hash); if (ret != 0) { - // Md5 Final Failure Case. + // Md5 Final失敗のケース。 } } \endcode + \sa wc_Md5Hash \sa wc_InitMd5 \sa wc_Md5GetHash @@ -94,12 +112,17 @@ int wc_Md5Final(wc_Md5* md5, byte* hash); /*! \ingroup MD5 - \brief MD5構造をリセットします。注:これは、wolfssl_ti_hashが定義されている場合にのみサポートされています。 - \return none いいえ返します。 + + \brief Md5構造体をリセットします。注意:これはWOLFSSL_TI_HASHが定義されている場合にのみサポートされます。 + + \return none 戻り値なし。 + + \param md5 リセットするMd5構造体へのポインタ。 + _Example_ \code Md5 md5; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitMd5(&md5)) != 0) { @@ -111,6 +134,7 @@ int wc_Md5Final(wc_Md5* md5, byte* hash); wc_Md5Free(&md5); } \endcode + \sa wc_InitMd5 \sa wc_Md5Update \sa wc_Md5Final @@ -119,9 +143,14 @@ void wc_Md5Free(wc_Md5*); /*! \ingroup MD5 - \brief ハッシュデータを取得します。結果はハッシュに入れられます。MD5構造はリセットされません。 - \return none いいえリターン - \param md5 暗号化に使用するMD5構造へのポインタ。 + + \brief ハッシュデータを取得します。結果はhashに格納されます。Md5構造体はリセットされません。 + + \return none 戻り値なし + + \param md5 暗号化に使用するmd5構造体へのポインタ。 + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code md5 md5[1]; @@ -133,8 +162,9 @@ void wc_Md5Free(wc_Md5*); wc_Md5GetHash(md5, hash); } \endcode + \sa wc_Md5Hash \sa wc_Md5Final \sa wc_InitMd5 */ -int wc_Md5GetHash(wc_Md5* md5, byte* hash); +int wc_Md5GetHash(wc_Md5* md5, byte* hash); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/memory.h b/doc/dox_comments/header_files-ja/memory.h index e7e838f73b..7646fe1c6e 100644 --- a/doc/dox_comments/header_files-ja/memory.h +++ b/doc/dox_comments/header_files-ja/memory.h @@ -1,14 +1,21 @@ /*! \ingroup Memory - \brief この関数はmalloc()と似ていますが、WolfSSLが使用するように構成されているメモリ割り当て関数を呼び出します。デフォルトでは、WolfSSLはmalloc()を使用します。これは、WolfSSLメモリ抽象化レイヤを使用して変更できます - wolfssl_setAllocator()を参照してください。注WOLFSSL_MALLOCは、WOLFSSLによって直接呼び出されませんが、代わりにMacro XMallocによって呼び出されます。デフォルトのビルドの場合、size引数のみが存在します。wolfssl_static_memoryビルドを使用する場合は、ヒープとタイプ引数が含まれます。 - \return pointer 成功した場合、この関数は割り当てられたメモリへのポインタを返します。 - \return error エラーがある場合は、NULLが返されます。 - \param size 割り当てるメモリのサイズ(バイト) - \param heap メモリに使用するヒントヒント。nullになることができます + + \brief この関数はmalloc()に似ていますが、wolfSSLが使用するように設定されたメモリ割り当て関数を呼び出します。デフォルトでは、wolfSSLはmalloc()を使用します。これはwolfSSLメモリ抽象化レイヤーを使用して変更できます - wolfSSL_SetAllocators()を参照してください。wolfSSL_Mallocは直接wolfSSLによって呼び出されるのではなく、代わりにマクロXMALLOCによって呼び出されることに注意してください。 + デフォルトのビルドでは、sizeパラメータのみが存在します。WOLFSSL_STATIC_MEMORYビルドを使用している場合は、heapとtypeパラメータが含まれます。 + + \return pointer 成功した場合、この関数は割り当てられたメモリへのポインタを返します。 + \return error エラーがある場合、NULLが返されます。 + + \param size 割り当てるメモリのバイト単位のサイズ。 + \param heap メモリに使用するヒープヒント。NULLにできます。 + \param type 動的タイプ(types.hのDYNAMIC_TYPE_リストを参照)。 + _Example_ \code int* tenInts = (int*)wolfSSL_Malloc(sizeof(int)*10); \endcode + \sa wolfSSL_Free \sa wolfSSL_Realloc \sa wolfSSL_SetAllocators @@ -20,19 +27,26 @@ void* wolfSSL_Malloc(size_t size, void* heap, int type); /*! \ingroup Memory - \brief この関数はfree()と似ていますが、WolfSSLが使用するように構成されているメモリフリー機能を呼び出します。デフォルトでは、WolfSSLはfree()を使用します。これは、WolfSSLメモリ抽象化レイヤを使用して変更できます - wolfssl_setAllocator()を参照してください。注WOLFSSL_FREEはWOLFSSLによって直接呼び出されませんが、代わりにマクロXFreeによって呼び出されます。デフォルトのビルドの場合、PTR引数のみが存在します。wolfssl_static_memoryビルドを使用する場合は、ヒープとタイプ引数が含まれます。 - \return none いいえ返します。 - \param ptr 解放されるメモリへのポインタ。 - \param heap メモリに使用するヒントヒント。nullになることができます + + \brief この関数はfree()に似ていますが、wolfSSLが使用するように設定されたメモリ解放関数を呼び出します。デフォルトでは、wolfSSLはfree()を使用します。これはwolfSSLメモリ抽象化レイヤーを使用して変更できます - wolfSSL_SetAllocators()を参照してください。wolfSSL_Freeは直接wolfSSLによって呼び出されるのではなく、代わりにマクロXFREEによって呼び出されることに注意してください。 + デフォルトのビルドでは、ptrパラメータのみが存在します。WOLFSSL_STATIC_MEMORYビルドを使用している場合は、heapとtypeパラメータが含まれます。 + + \return none 戻り値なし。 + + \param ptr 解放するメモリへのポインタ。 + \param heap メモリに使用するヒープヒント。NULLにできます。 + \param type 動的タイプ(types.hのDYNAMIC_TYPE_リストを参照)。 + _Example_ \code int* tenInts = (int*)wolfSSL_Malloc(sizeof(int)*10); - // process data as desired + // 必要に応じてデータを処理 ... if(tenInts) { wolfSSL_Free(tenInts); } \endcode + \sa wolfSSL_Alloc \sa wolfSSL_Realloc \sa wolfSSL_SetAllocators @@ -44,17 +58,24 @@ void wolfSSL_Free(void *ptr, void* heap, int type); /*! \ingroup Memory - \brief この関数はREALLOC()と似ていますが、WolfSSLが使用するように構成されているメモリ再割り当て機能を呼び出します。デフォルトでは、WolfSSLはRealLoc()を使用します。これは、WolfSSLメモリ抽象化レイヤを使用して変更できます - wolfssl_setAllocator()を参照してください。注WOLFSSL_REALLOCはWOLFSSLによって直接呼び出されませんが、代わりにマクロXreallocによって呼び出されます。デフォルトのビルドの場合、size引数のみが存在します。wolfssl_static_memoryビルドを使用する場合は、ヒープとタイプ引数が含まれます。 - \return pointer 成功した場合、この関数はマイポイントを再割り当てするためのポインタを返します。これはPTRと同じポインタ、または新しいポインタの場所であり得る。 - \return Null エラーがある場合は、NULLが返されます。 - \param ptr 再割り当てされているメモリへのポインタ。 - \param size 割り当てるバイト数。 - \param heap メモリに使用するヒントヒント。nullになることができます + + \brief この関数はrealloc()に似ていますが、wolfSSLが使用するように設定されたメモリ再割り当て関数を呼び出します。デフォルトでは、wolfSSLはrealloc()を使用します。これはwolfSSLメモリ抽象化レイヤーを使用して変更できます - wolfSSL_SetAllocators()を参照してください。 + wolfSSL_Reallocは直接wolfSSLによって呼び出されるのではなく、代わりにマクロXREALLOCによって呼び出されることに注意してください。デフォルトのビルドでは、sizeパラメータのみが存在します。WOLFSSL_STATIC_MEMORYビルドを使用している場合は、heapとtypeパラメータが含まれます。 + + \return pointer 成功した場合、この関数は再割り当てされたメモリへのポインタを返します。これはptrと同じポインタである場合もあれば、新しいポインタの場所である場合もあります。 + \return Null エラーがある場合、NULLが返されます。 + + \param ptr 再割り当てする、以前に割り当てられたメモリへのポインタ。 + \param size 割り当てるバイト数。 + \param heap メモリに使用するヒープヒント。NULLにできます。 + \param type 動的タイプ(types.hのDYNAMIC_TYPE_リストを参照)。 + _Example_ \code int* tenInts = (int*)wolfSSL_Malloc(sizeof(int)*10); int* twentyInts = (int*)wolfSSL_Realloc(tenInts, sizeof(int)*20); \endcode + \sa wolfSSL_Free \sa wolfSSL_Malloc \sa wolfSSL_SetAllocators @@ -66,34 +87,40 @@ void* wolfSSL_Realloc(void *ptr, size_t size, void* heap, int type); /*! \ingroup Memory - \brief この機能は、WolfSSLが使用する割り当て関数を登録します。デフォルトでは、システムがそれをサポートしている場合、Malloc / FreeとRealLocが使用されます。この機能を使用すると、実行時にユーザーは独自のメモリハンドラをインストールできます。 - \return Success 成功した場合、この関数は0を返します。 - \return BAD_FUNC_ARG 関数ポインタが提供されていない場合に返されるエラーです。 - \param malloc_function 使用するWolfSSLのメモリ割り当て機能関数署名は、上記のwolfssl_malloc_cbプロトタイプと一致する必要があります。 - \param free_function 使用するWolfSSLのメモリフリー機能関数シグネチャは、上記のwolfssl_free_cbプロトタイプと一致する必要があります。 + + \brief この関数は、wolfSSLが使用する割り当て関数を登録します。デフォルトでは、システムがサポートしている場合、malloc/freeとreallocが使用されます。この関数を使用すると、ユーザーは実行時に独自のメモリハンドラをインストールできます。 + + \return Success 成功した場合、この関数は0を返します。 + \return BAD_FUNC_ARG 関数ポインタが提供されていない場合に返されるエラー。 + + \param malloc_function wolfSSLが使用するメモリ割り当て関数。関数シグネチャは上記のwolfSSL_Malloc_cbプロトタイプと一致する必要があります。 + \param free_function wolfSSLが使用するメモリ解放関数。関数シグネチャは上記のwolfSSL_Free_cbプロトタイプと一致する必要があります。 + \param realloc_function wolfSSLが使用するメモリ再割り当て関数。関数シグネチャは上記のwolfSSL_Realloc_cbプロトタイプと一致する必要があります。 + _Example_ \code static void* MyMalloc(size_t size) { - // custom malloc function + // カスタムmalloc関数 } static void MyFree(void* ptr) { - // custom free function + // カスタムfree関数 } static void* MyRealloc(void* ptr, size_t size) { - // custom realloc function + // カスタムrealloc関数 } - // Register custom memory functions with wolfSSL + // カスタムメモリ関数をwolfSSLに登録 int ret = wolfSSL_SetAllocators(MyMalloc, MyFree, MyRealloc); if (ret != 0) { - // failed to set memory functions + // メモリ関数の設定に失敗 } \endcode + \sa none */ int wolfSSL_SetAllocators(wolfSSL_Malloc_cb, @@ -102,22 +129,30 @@ int wolfSSL_SetAllocators(wolfSSL_Malloc_cb, /*! \ingroup Memory - \brief この機能は、静的メモリ機能が使用されている場合(--enable-staticMemory)の場合に使用できます。メモリの「バケット」に最適なバッファサイズを示します。これにより、パーティション化された後に追加の未使用のメモリが終了しないように、バッファサイズを計算する方法が可能になります。返された値は、正の場合、使用するコンピュータのバッファサイズです。 - \return Success バッファサイズ計算を正常に完了すると、正の値が返されます。この返された値は最適なバッファサイズです。 - \return Failure すべての負の値はエラーの場合と見なされます。 - \param buffer バッファへのポインタ - \param size バッファのサイズ + + \brief この関数は、静的メモリ機能が使用されている場合に利用可能です(--enable-staticmemory)。メモリ「バケット」の最適なバッファサイズを提供します。これにより、パーティション化された後に余分な未使用メモリが残らないようにバッファサイズを計算する方法が提供されます。この関数の非_exバージョンでは、コンパイル時に設定されたデフォルトのバケットと配布リストが使用されます。 + 返される値が正の場合、使用する計算されたバッファサイズです。 + + \return Success バッファサイズの計算が正常に完了すると、正の値が返されます。この返される値は最適なバッファサイズです。 + \return Failure すべての負の値はエラーケースと見なされます。 + + \param buffer バッファへのポインタ。 + \param size バッファのサイズ。 + \param type 希望するメモリタイプ、つまりWOLFMEM_GENERALまたはWOLFMEM_IO_POOL。 + _Example_ \code byte buffer[1000]; word32 size = sizeof(buffer); int optimum; + optimum = wolfSSL_StaticBufferSz(buffer, size, WOLFMEM_GENERAL); - if (optimum < 0) { //handle error case } - printf(“The optimum buffer size to make use of all memory is %d\n”, + if (optimum < 0) { //エラーケースを処理 } + printf("すべてのメモリを利用するための最適なバッファサイズは %d です\n", optimum); ... \endcode + \sa wolfSSL_Malloc \sa wolfSSL_Free */ @@ -125,21 +160,415 @@ int wolfSSL_StaticBufferSz(byte* buffer, word32 sz, int flag); /*! \ingroup Memory - \brief この機能は、静的メモリ機能が使用されている場合(--enable-staticMemory)の場合に使用できます。メモリの各パーティションに必要なパディングのサイズを示します。このパディングサイズは、メモリアライメントのために追加のメモリ管理構造を含む必要があるサイズになります。 - \return On 正常なメモリパディング計算戻り値は正の値になります - \return All 負の値はエラーケースと見なされます。 + + \brief この関数は、静的メモリ機能が使用されている場合に利用可能です(--enable-staticmemory)。メモリの各パーティションに必要なパディングのサイズを提供します。このパディングサイズは、メモリ管理構造体を含むために必要なサイズと、メモリアライメントのための追加分になります。 + + \return メモリパディングの計算が成功すると、戻り値は正の値になります。 + \return すべての負の値はエラーケースと見なされます。 + + \param none パラメータなし。 + _Example_ \code int padding; padding = wolfSSL_MemoryPaddingSz(); - if (padding < 0) { //handle error case } - printf(“The padding size needed for each \”bucket\” of memory is %d\n”, + if (padding < 0) { //エラーケースを処理 } + printf("メモリの各「バケット」に必要なパディングサイズは %d です\n", padding); - // calculation of buffer for IO POOL size is number of buckets - // times (padding + WOLFMEM_IO_SZ) + // IO POOLサイズのバッファの計算は、バケット数 + // × (padding + WOLFMEM_IO_SZ) ... \endcode + \sa wolfSSL_Malloc \sa wolfSSL_Free */ int wolfSSL_MemoryPaddingSz(void); + +/*! + \ingroup Memory + + \brief この関数は、CTXのために静的メモリを確保するために使用されます。確保されたメモリは、CTXの存続期間中およびCTXから作成されたすべてのSSLオブジェクトに使用されます。NULLのctxポインタとwolfSSL_method_func関数を渡すことにより、CTX自体の作成も静的メモリを使用します。wolfSSL_method_funcは、WOLFSSL_METHOD* (*wolfSSL_method_func)(void* heap);の関数シグネチャを持ちます。 + maxに0を渡すと、設定されていないかのように動作し、最大同時使用制限が適用されません。 + 渡されるflag値は、メモリの使用方法と動作中の動作を決定します。 + 利用可能なフラグは次のとおりです。 + + 0 - デフォルトの一般メモリ + + WOLFMEM_IO_POOL - メッセージの送受信時の入出力バッファに使用されます。一般メモリをオーバーライドするため、渡されたバッファ内のすべてのメモリがIOに使用されます。 + WOLFMEM_IO_FIXED - WOLFMEM_IO_POOLと同じですが、各SSLは存続期間中に2つのバッファを保持します。 + WOLFMEM_TRACK_STATS - 各SSLは実行中にメモリ統計を追跡します。 + + \return 成功した場合、SSL_SUCCESSが返されます。 + \return すべての失敗した戻り値は0未満またはSSL_FAILUREと等しくなります。 + + \param ctx WOLFSSL_CTX構造体へのポインタのアドレス。 + \param method プロトコルを作成する関数。(ctxもNULLでない場合はNULLである必要があります) + \param buf すべての操作に使用するメモリ。 + \param sz 渡されるメモリバッファのサイズ。 + \param flag メモリのタイプ。 + \param max 最大同時操作数。 + + _Example_ + \code + WOLFSSL_CTX* ctx; + WOLFSSL* ssl; + int ret; + unsigned char memory[MAX]; + int memorySz = MAX; + unsigned char IO[MAX]; + int IOSz = MAX; + int flag = WOLFMEM_IO_FIXED | WOLFMEM_TRACK_STATS; + ... + // 静的メモリを使用してctxも作成、使用する一般メモリから開始 + ctx = NULL: + ret = wolfSSL_CTX_load_static_memory(&ctx, wolfSSLv23_server_method_ex, memory, memorySz, 0, + MAX_CONCURRENT_HANDSHAKES); + if (ret != SSL_SUCCESS) { + // エラーケースを処理 + } + // IOで使用するメモリをロード + ret = wolfSSL_CTX_load_static_memory(&ctx, NULL, IO, IOSz, flag, MAX_CONCURRENT_IO); + if (ret != SSL_SUCCESS) { + // エラーケースを処理 + } + ... + \endcode + + \sa wolfSSL_CTX_new + \sa wolfSSL_CTX_is_static_memory + \sa wolfSSL_is_static_memory +*/ +int wolfSSL_CTX_load_static_memory(WOLFSSL_CTX** ctx, wolfSSL_method_func method, + unsigned char* buf, unsigned int sz, int flag, int max); + +/*! + \ingroup Memory + + \brief この関数は接続の動作を変更せず、静的メモリ使用に関する情報を収集するためにのみ使用されます。 + + \return CTXに静的メモリを使用している場合は1の値が返されます。 + \return 静的メモリを使用していない場合は0が返されます。 + + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + \param mem_stats 静的メモリ使用に関する情報を保持する構造体。 + + _Example_ + \code + WOLFSSL_CTX* ctx; + int ret; + WOLFSSL_MEM_STATS mem_stats; + ... + //CTXでの静的メモリに関する情報を取得 + + ret = wolfSSL_CTX_is_static_memory(ctx, &mem_stats); + + if (ret == 1) { + // 静的メモリを使用しているケースを処理 + // mem_statsの要素を出力または検査 + } + + if (ret == 0) { + //ctxが静的メモリを使用していないケースを処理 + } + ... + \endcode + + \sa wolfSSL_CTX_new + \sa wolfSSL_CTX_load_static_memory + \sa wolfSSL_is_static_memory +*/ +int wolfSSL_CTX_is_static_memory(WOLFSSL_CTX* ctx, WOLFSSL_MEM_STATS* mem_stats); + +/*! + \ingroup Memory + + \brief wolfSSL_is_static_memoryは、SSLの静的メモリ使用に関する情報を収集するために使用されます。戻り値は、静的メモリが使用されているかどうかを示し、WOLFSSL_MEM_CONN_STATSは、静的メモリをロードする際に親CTXにWOLFMEM_TRACK_STATSフラグが渡された場合にのみ入力されます。 + + \return CTXに静的メモリを使用している場合は1の値が返されます。 + \return 静的メモリを使用していない場合は0が返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param mem_stats 静的メモリ使用を含む構造体。 + + _Example_ + \code + WOLFSSL* ssl; + int ret; + WOLFSSL_MEM_CONN_STATS mem_stats; + + ... + + ret = wolfSSL_is_static_memory(ssl, mem_stats); + + if (ret == 1) { + // 静的メモリの場合のケースを処理 + // WOLFMEM_TRACK_STATSフラグがある場合はmem_statsの要素を調査 + } + ... + \endcode + + \sa wolfSSL_new + \sa wolfSSL_CTX_is_static_memory +*/ +int wolfSSL_is_static_memory(WOLFSSL* ssl, WOLFSSL_MEM_CONN_STATS* mem_stats); + +/*! + \ingroup Memory + + \brief この関数は、wolfCrypt使用のために静的メモリを確保するために使用されます。作成されたヒープヒントを関数に渡すことでメモリを使用できます。この例は、wc_InitRng_exを呼び出すときです。渡されるflag値は、メモリの使用方法と動作中の動作を決定します。一般的に、wolfCrypt操作はWOLFMEM_GENERALプールからメモリを使用します。 + 利用可能なフラグは次のとおりです。 + + WOLFMEM_GENERAL - デフォルトの一般メモリ + + WOLFMEM_IO_POOL - メッセージの送受信時の入出力バッファに使用されます。一般メモリをオーバーライドするため、渡されたバッファ内のすべてのメモリがIOに使用されます。 + WOLFMEM_IO_FIXED - WOLFMEM_IO_POOLと同じですが、各SSLは存続期間中に2つのバッファを保持します。 + WOLFMEM_TRACK_STATS - 各SSLは実行中にメモリ統計を追跡します。 + + \return 成功した場合、0が返されます。 + \return すべての失敗した戻り値は0未満になります。 + + \param hint 使用するWOLFSSL_HEAP_HINT構造体。 + \param buf すべての操作に使用するメモリ。 + \param sz 渡されるメモリバッファのサイズ。 + \param flag メモリのタイプ。 + \param max 最大同時操作数(ハンドシェイク、IO)。 + + _Example_ + \code + WOLFSSL_HEAP_HINT hint; + int ret; + unsigned char memory[MAX]; + int memorySz = MAX; + int flag = WOLFMEM_GENERAL | WOLFMEM_TRACK_STATS; + ... + + // 使用するメモリをロード + + ret = wc_LoadStaticMemory(&hint, memory, memorySz, flag, 0); + if (ret != SSL_SUCCESS) { + // エラーケースを処理 + } + ... + + ret = wc_InitRng_ex(&rng, hint, 0); + + // ret値をチェック + \endcode + + \sa none +*/ +int wc_LoadStaticMemory(WOLFSSL_HEAP_HINT* hint, unsigned char* buf, unsigned int sz, + int flag, int max); + +/*! + \ingroup Memory + + \brief この関数は、カスタムバケットサイズと配分を使用してwolfCrypt使用のために静的メモリを確保するために使用されます。作成されたヒープヒントを関数に渡すことでメモリを使用できます。この拡張バージョンでは、デフォルトの事前定義されたサイズを使用する代わりに、カスタムバケットサイズと配分を使用できます。 + + \return 成功した場合、0が返されます。 + \return すべての失敗した戻り値は0未満になります。 + + \param hint 使用するWOLFSSL_HEAP_HINT構造体。 + \param buf すべての操作に使用するメモリ。 + \param sz 渡されるメモリバッファのサイズ。 + \param flag メモリのタイプ。 + \param max 最大同時操作数(ハンドシェイク、IO)。 + \param bucket_sizes 使用するバケットサイズの配列。 + \param bucket_count 配列内のバケットサイズの数。 + + _Example_ + \code + WOLFSSL_HEAP_HINT hint; + int ret; + unsigned char memory[MAX]; + int memorySz = MAX; + int flag = WOLFMEM_GENERAL | WOLFMEM_TRACK_STATS; + word16 bucket_sizes[] = {64, 128, 256, 512, 1024}; + int bucket_count = 5; + ... + + // カスタムバケットサイズで使用するメモリをロード + + ret = wc_LoadStaticMemory_ex(&hint, memory, memorySz, flag, 0, + bucket_sizes, bucket_count); + if (ret != SSL_SUCCESS) { + // エラーケースを処理 + } + ... + + ret = wc_InitRng_ex(&rng, hint, 0); + + // ret値をチェック + \endcode + + \sa wc_LoadStaticMemory + \sa wc_UnloadStaticMemory +*/ +int wc_LoadStaticMemory_ex(WOLFSSL_HEAP_HINT* hint, unsigned char* buf, unsigned int sz, + int flag, int max, word16* bucket_sizes, int bucket_count); + +/*! + \ingroup Memory + + \brief この関数は、NULLヒープヒントがメモリ割り当て関数に渡されたときに使用されるグローバルヒープヒントを設定します。これにより、アプリケーション全体で使用されるデフォルトのヒープヒントを設定できます。 + + \return 設定されていた以前のグローバルヒープヒントを返します。 + + \param hint グローバルヒープヒントとして使用するWOLFSSL_HEAP_HINT構造体。 + + _Example_ + \code + WOLFSSL_HEAP_HINT hint; + WOLFSSL_HEAP_HINT* prev_hint; + int ret; + unsigned char memory[MAX]; + int memorySz = MAX; + ... + + // 使用するメモリをロード + ret = wc_LoadStaticMemory(&hint, memory, memorySz, WOLFMEM_GENERAL, 0); + if (ret != SSL_SUCCESS) { + // エラーケースを処理 + } + + // グローバルヒープヒントとして設定 + prev_hint = wolfSSL_SetGlobalHeapHint(&hint); + if (prev_hint != NULL) { + // 以前のグローバルヒープヒントがありました + } + \endcode + + \sa wolfSSL_GetGlobalHeapHint + \sa wc_LoadStaticMemory +*/ +WOLFSSL_HEAP_HINT* wolfSSL_SetGlobalHeapHint(WOLFSSL_HEAP_HINT* hint); + +/*! + \ingroup Memory + + \brief この関数は、NULLヒープヒントがメモリ割り当て関数に渡されたときに使用される現在のグローバルヒープヒントを取得します。 + + \return 現在のグローバルヒープヒントを返します。設定されていない場合はNULLを返します。 + + \param none パラメータなし。 + + _Example_ + \code + WOLFSSL_HEAP_HINT* current_hint; + ... + + current_hint = wolfSSL_GetGlobalHeapHint(); + if (current_hint != NULL) { + // グローバルヒープヒントが設定されています + // current_hintを操作に使用できます + } + \endcode + + \sa wolfSSL_SetGlobalHeapHint + \sa wc_LoadStaticMemory +*/ +WOLFSSL_HEAP_HINT* wolfSSL_GetGlobalHeapHint(void); + +/*! + \ingroup Memory + + \brief この関数は、静的メモリ割り当て追跡用のデバッグコールバック関数を設定します。WOLFSSL_STATIC_MEMORY_DEBUG_CALLBACKビルドオプションと共に使用されます。コールバック関数は、メモリ割り当ておよび割り当て解除操作中に呼び出され、デバッグ情報を提供します。 + + \return 成功した場合、0が返されます。 + \return すべての失敗した戻り値は0未満になります。 + + \param cb 設定するデバッグコールバック関数。 + + _Example_ + \code + static void debug_memory_cb(const char* func, const char* file, int line, + void* ptr, size_t size, int type) + { + printf("Memory %s: %s:%d ptr=%p size=%zu type=%d\n", + func, file, line, ptr, size, type); + } + ... + + // デバッグコールバックを設定 + int ret = wolfSSL_SetDebugMemoryCb(debug_memory_cb); + if (ret != 0) { + // エラーケースを処理 + } + \endcode + + \sa none +*/ +int wolfSSL_SetDebugMemoryCb(wolfSSL_DebugMemoryCb cb); + +/*! + \ingroup Memory + + \brief この関数は、静的メモリヒープと関連するミューテックスを解放します。静的メモリ割り当ての使用が完了したときに、リソースを適切にクリーンアップするために呼び出す必要があります。 + + \return 成功した場合、0が返されます。 + \return すべての失敗した戻り値は0未満になります。 + + \param hint アンロードするWOLFSSL_HEAP_HINT構造体。 + + _Example_ + \code + WOLFSSL_HEAP_HINT hint; + int ret; + unsigned char memory[MAX]; + int memorySz = MAX; + ... + + // 使用するメモリをロード + ret = wc_LoadStaticMemory(&hint, memory, memorySz, WOLFMEM_GENERAL, 0); + if (ret != SSL_SUCCESS) { + // エラーケースを処理 + } + + // 操作にメモリを使用 + ... + + // 完了時にクリーンアップ + ret = wc_UnloadStaticMemory(&hint); + if (ret != 0) { + // エラーケースを処理 + } + \endcode + + \sa wc_LoadStaticMemory + \sa wc_LoadStaticMemory_ex +*/ +int wc_UnloadStaticMemory(WOLFSSL_HEAP_HINT* hint); + +/*! + \ingroup Memory + + \brief この関数は、カスタムバケットサイズと配分を使用した静的メモリ割り当てに必要なバッファサイズを計算します。この拡張バージョンでは、デフォルトの事前定義されたサイズを使用する代わりに、カスタムバケットサイズを使用できます。 + + \return バッファサイズの計算が正常に完了すると、正の値が返されます。 + \return すべての負の値はエラーケースと見なされます。 + + \param bucket_sizes 使用するバケットサイズの配列。 + \param bucket_count 配列内のバケットサイズの数。 + \param flag 希望するメモリタイプ、つまりWOLFMEM_GENERALまたはWOLFMEM_IO_POOL。 + + _Example_ + \code + word32 sizeList[] = {64, 128, 256, 512, 1024}; + word32 distList[] = {1, 2, 1, 1, 1}; + int listSz = 5; + int optimum; + + optimum = wolfSSL_StaticBufferSz_ex(listSz, sizeList, distList, NULL, 0, + WOLFMEM_GENERAL); + if (optimum < 0) { //エラーケースを処理 } + printf("カスタムバケットでの最適なバッファサイズは %d です\n", optimum); + ... + \endcode + + \sa wolfSSL_StaticBufferSz + \sa wc_LoadStaticMemory_ex +*/ +int wolfSSL_StaticBufferSz_ex(unsigned int listSz, + const word32 *sizeList, const word32 *distList, + byte* buffer, word32 sz, int flag); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/ocsp.h b/doc/dox_comments/header_files-ja/ocsp.h new file mode 100644 index 0000000000..721b94308f --- /dev/null +++ b/doc/dox_comments/header_files-ja/ocsp.h @@ -0,0 +1,48 @@ +/*! + \ingroup OCSP + + \brief OCSPコンテキストを割り当てて初期化します。 + + この関数は、OCSP操作で使用するためのWOLFSSL_OCSP構造体を割り当てて初期化します。 + + \param cm 証明書マネージャーへのポインタ。 + + \return 成功時に割り当てられたWOLFSSL_OCSPへのポインタ + \return 失敗時にNULL + + \sa wc_FreeOCSP +*/ +WOLFSSL_OCSP* wc_NewOCSP(WOLFSSL_CERT_MANAGER* cm); + +/*! + \ingroup OCSP + + \brief OCSPコンテキストに関連付けられたリソースを解放します。 + + この関数は、WOLFSSL_OCSP構造体に関連付けられたすべてのリソースを解放します。 + + \param ocsp 解放するWOLFSSL_OCSP構造体へのポインタ。 + + \return void + + \sa wc_NewOCSP +*/ +void wc_FreeOCSP(WOLFSSL_OCSP* ocsp); + +/*! + \ingroup OCSP + + \brief 指定された証明書のOCSPレスポンスをチェックします。 + + この関数は、特定の証明書のOCSPレスポンスを検証します。 + + \param ocsp WOLFSSL_OCSP構造体へのポインタ。 + \param cert デコードされた証明書へのポインタ。 + \param response OCSPレスポンスバッファへのポインタ。 + \param responseSz OCSPレスポンスバッファのサイズ。 + \param heap オプションのヒープポインタ。 + + \return 0 成功時 + \return <0 失敗時 +*/ +int wc_CheckCertOcspResponse(WOLFSSL_OCSP *ocsp, DecodedCert *cert, byte *response, int responseSz, void* heap); diff --git a/doc/dox_comments/header_files-ja/pem.h b/doc/dox_comments/header_files-ja/pem.h index e94085e7dc..623f3be0e6 100644 --- a/doc/dox_comments/header_files-ja/pem.h +++ b/doc/dox_comments/header_files-ja/pem.h @@ -1,27 +1,33 @@ /*! \ingroup openSSL - \brief この関数は、PEM形式のwolfssl_bio構造体にキーを書き込みます。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FAILURE 失敗すると。 - \param bio wolfssl_bio構造体からPEMバッファを取得します。 - \param key PEM形式に変換するためのキー。 - \param cipher EVP暗号構造 - \param passwd パスワード。 - \param len パスワードの長さ - \param cb パスワードコールバック + + \brief この関数は、WOLFSSL_BIO構造体にキーをPEM形式で書き込みます。 + + \return SSL_SUCCESS 成功時。 + \return SSL_FAILURE 失敗時。 + + \param bio PEMバッファを取得するWOLFSSL_BIO構造体。 + \param key PEM形式に変換するキー。 + \param cipher EVP暗号構造体。 + \param passwd パスワード。 + \param len パスワードの長さ。 + \param cb パスワードコールバック。 + \param arg オプション引数。 + _Example_ \code WOLFSSL_BIO* bio; WOLFSSL_EVP_PKEY* key; int ret; - // create bio and setup key + // bioを作成してキーをセットアップ ret = wolfSSL_PEM_write_bio_PrivateKey(bio, key, NULL, NULL, 0, NULL, NULL); - //check ret value + //ret値を確認 \endcode + \sa wolfSSL_PEM_read_bio_X509_AUX */ int wolfSSL_PEM_write_bio_PrivateKey(WOLFSSL_BIO* bio, WOLFSSL_EVP_PKEY* key, const WOLFSSL_EVP_CIPHER* cipher, unsigned char* passwd, int len, - wc_pem_password_cb* cb, void* arg); + wc_pem_password_cb* cb, void* arg); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/pkcs11.h b/doc/dox_comments/header_files-ja/pkcs11.h index db3db9c2ba..4394dd48f4 100644 --- a/doc/dox_comments/header_files-ja/pkcs11.h +++ b/doc/dox_comments/header_files-ja/pkcs11.h @@ -1,35 +1,43 @@ /*! + \ingroup PKCS11 */ int wc_Pkcs11_Initialize(Pkcs11Dev* dev, const char* library, void* heap); /*! + \ingroup PKCS11 */ void wc_Pkcs11_Finalize(Pkcs11Dev* dev); /*! + \ingroup PKCS11 */ int wc_Pkcs11Token_Init(Pkcs11Token* token, Pkcs11Dev* dev, int slotId, const char* tokenName, const unsigned char *userPin, int userPinSz); /*! + \ingroup PKCS11 */ void wc_Pkcs11Token_Final(Pkcs11Token* token); /*! + \ingroup PKCS11 */ int wc_Pkcs11Token_Open(Pkcs11Token* token, int readWrite); /*! + \ingroup PKCS11 */ void wc_Pkcs11Token_Close(Pkcs11Token* token); /*! + \ingroup PKCS11 */ int wc_Pkcs11StoreKey(Pkcs11Token* token, int type, int clear, /*! + \ingroup PKCS11 */ int wc_Pkcs11_CryptoDevCb(int devId, wc_CryptoInfo* info, void* ctx); diff --git a/doc/dox_comments/header_files-ja/pkcs7.h b/doc/dox_comments/header_files-ja/pkcs7.h index 924ae4f3f8..638ecc6d1e 100644 --- a/doc/dox_comments/header_files-ja/pkcs7.h +++ b/doc/dox_comments/header_files-ja/pkcs7.h @@ -1,80 +1,116 @@ /*! \ingroup PKCS7 - \brief この関数は、DERフォーマットの証明書を使用してPKCS7構造を初期化します。空のPKCS7構造を初期化するには、NULL CERTとCERTSZの場合は0を渡すことができます。 - \return 0 PKCS7構造の初期化に成功しました - \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合 - \return ASN_PARSE_E 証明書ヘッダーの解析中にエラーがある場合 - \return ASN_OBJECT_ID_E 証明書から暗号化タイプの解析中にエラーがある場合に返されます - \return ASN_EXPECT_0_E CERTファイルの暗号化仕様にフォーマットエラーがある場合 - \return ASN_BEFORE_DATE_E 日付が証明書開始日以前の場合返却 - \return ASN_AFTER_DATE_E 日付が証明書の有効期限の後にある場合に返されます - \return ASN_BITSTR_E 証明書からビット文字列を解析したエラーがある場合に返されます。 - \return ECC_CURVE_OID_E 証明書からECCキーの解析中にエラーがある場合 - \return ASN_UNKNOWN_OID_E 証明書が不明なキーオブジェクトIDを使用している場合に返されます - \return ASN_VERSION_E allow_v1_extensionsオプションが定義されておらず、証明書がV1またはV2の証明書の場合に返されます。 - \return BAD_FUNC_ARG 証明書拡張機能の処理中にエラーがある場合 - \return ASN_CRIT_EXT_E 証明書の処理中になじみのない重要な拡張機能が発生した場合に返されます。 - \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます。 - \return ASN_SIG_CONFIRM_E 認証署名が失敗したことを確認した場合に返されます - \return ASN_NAME_INVALID_E 証明書の名前がCA名制約によって許可されていない場合に返されます。 - \return ASN_NO_SIGNER_E 証明書の真正性を確認するためのCA署名者がない場合に返されました - \param pkcs7 デコードされた証明書を保存するPKCS7構造へのポインタ - \param cert PKCS7構造を初期化するためのDERフォーマットのASN.1証明書を含むバッファへのポインタ + + \brief カスタムAES鍵ラップ/アンラップ操作に使用されるコールバック。 + + \return 成功時には、出力バッファに書き込まれたラップ/アンラップされた鍵のサイズを返す必要があります。戻り値0またはエラーコード(< 0)は失敗を示します。 + + \param[in] key 使用する鍵を指定します。 + \param[in] keySz 使用する鍵のサイズ。 + \param[in] in ラップ/アンラップする入力データを指定します。 + \param[in] inSz 入力データのサイズ。 + \param[in] wrap 要求された操作が鍵ラップの場合は1、アンラップの場合は0。 + \param[out] out 出力バッファを指定します。 + \param[out] outSz 出力バッファのサイズ。 +*/ +typedef int (*CallbackAESKeyWrapUnwrap)(const byte* key, word32 keySz, + const byte* in, word32 inSz, int wrap, byte* out, word32 outSz); + +/*! + \ingroup PKCS7 + + \brief この関数は、DER形式の証明書でPKCS7構造体を初期化します。空のPKCS7構造体を初期化するには、certにNULLを、certSzに0を渡すことができます。 + + \return 0 PKCS7構造体の初期化に成功した場合に返されます。 + \return MEMORY_E XMALLOCでメモリ割り当てエラーがある場合に返されます。 + \return ASN_PARSE_E 証明書ヘッダーの解析エラーがある場合に返されます。 + \return ASN_OBJECT_ID_E 証明書から暗号化タイプの解析エラーがある場合に返されます。 + \return ASN_EXPECT_0_E 証明書ファイルの暗号化仕様にフォーマットエラーがある場合に返されます。 + \return ASN_BEFORE_DATE_E 日付が証明書開始日より前の場合に返されます。 + \return ASN_AFTER_DATE_E 日付が証明書有効期限より後の場合に返されます。 + \return ASN_BITSTR_E 証明書からビット文字列の解析エラーがある場合に返されます。 + \return ECC_CURVE_OID_E 証明書からECC鍵の解析エラーがある場合に返されます。 + \return ASN_UNKNOWN_OID_E 証明書が不明な鍵オブジェクトIDを使用している場合に返されます。 + \return ASN_VERSION_E ALLOW_V1_EXTENSIONSオプションが定義されておらず、証明書がV1またはV2証明書の場合に返されます。 + \return BAD_FUNC_ARG 証明書拡張の処理エラーがある場合に返されます。 + \return ASN_CRIT_EXT_E 証明書の処理中に不明なクリティカル拡張に遭遇した場合に返されます。 + \return ASN_SIG_OID_E 署名暗号化タイプが提供されたファイル内の証明書の暗号化タイプと同じでない場合に返されます。 + \return ASN_SIG_CONFIRM_E 証明書署名の確認に失敗した場合に返されます。 + \return ASN_NAME_INVALID_E 証明書の名前がCA名前制約によって許可されていない場合に返されます。 + \return ASN_NO_SIGNER_E 証明書の真正性を検証するCA署名者がいない場合に返されます。 + + \param pkcs7 デコードされた証明書を格納するPKCS7構造体へのポインタ。 + \param cert PKCS7構造体を初期化するためのDER形式ASN.1証明書を含むバッファへのポインタ。 + \param certSz 証明書バッファのサイズ。 + _Example_ \code PKCS7 pkcs7; - byte derBuff[] = { }; // initialize with DER-encoded certificate + byte derBuff[] = { }; // DERエンコードされた証明書で初期化 if ( wc_PKCS7_InitWithCert(&pkcs7, derBuff, sizeof(derBuff)) != 0 ) { - // error parsing certificate into pkcs7 format + // 証明書のpkcs7形式への解析エラー } \endcode + \sa wc_PKCS7_Free */ int wc_PKCS7_InitWithCert(PKCS7* pkcs7, byte* cert, word32 certSz); /*! \ingroup PKCS7 - \brief この関数は、PKCS7の初期化装置によって割り当てられたメモリを解放します。 - \return none いいえ返します。 + + \brief この関数は、PKCS7初期化子によって割り当てられたメモリを解放します。 + + \return none 戻り値なし。 + + \param pkcs7 解放するPKCS7構造体へのポインタ。 + _Example_ \code PKCS7 pkcs7; - // initialize and use PKCS7 object + // PKCS7オブジェクトを初期化して使用 wc_PKCS7_Free(pkcs7); \endcode + \sa wc_PKCS7_InitWithCert */ void wc_PKCS7_Free(PKCS7* pkcs7); /*! \ingroup PKCS7 - \brief この関数はPKCS7データコンテンツタイプを構築し、PKCS7構造をパーセル可能なPKCS7データパケットを含むバッファにエンコードします。 - \return Success PKCS7データをバッファに正常にエンコードすると、PKCS7構造内の索引を返します。このインデックスは、出力バッファに書き込まれたバイトにも対応しています。 - \return BUFFER_E 指定されたバッファがエンコードされた証明書を保持するのに十分な大きさでない場合に返されます - \param pkcs7 符号化するPKCS7構造へのポインタ - \param output エンコードされた証明書を保存するバッファへのポインタ + + \brief この関数は、PKCS7データコンテンツタイプをビルドし、PKCS7構造体を解析可能なPKCS7データパケットを含むバッファにエンコードします。 + + \return Success PKCS7データをバッファに正常にエンコードした場合、PKCS7構造体で解析されたインデックスまで返します。このインデックスは、出力バッファに書き込まれたバイト数にも対応します。 + \return BUFFER_E 指定されたバッファがエンコードされた証明書を保持するのに十分な大きさでない場合に返されます。 + + \param pkcs7 エンコードするPKCS7構造体へのポインタ。 + \param output エンコードされた証明書を格納するバッファへのポインタ。 + \param outputSz 出力バッファで利用可能なサイズ。 + _Example_ \code PKCS7 pkcs7; int ret; - byte derBuff[] = { }; // initialize with DER-encoded certificate + byte derBuff[] = { }; // DERエンコードされた証明書で初期化 byte pkcs7Buff[FOURK_BUF]; wc_PKCS7_InitWithCert(&pkcs7, derBuff, sizeof(derBuff)); - // update message and data to encode + // エンコードするメッセージとデータを更新 pkcs7.privateKey = key; pkcs7.privateKeySz = keySz; pkcs7.content = data; pkcs7.contentSz = dataSz; - ... etc. + ... など ret = wc_PKCS7_EncodeData(&pkcs7, pkcs7Buff, sizeof(pkcs7Buff)); if ( ret != 0 ) { - // error encoding into output buffer + // 出力バッファへのエンコードエラー } \endcode + \sa wc_PKCS7_InitWithCert */ int wc_PKCS7_EncodeData(PKCS7* pkcs7, byte* output, @@ -82,52 +118,58 @@ int wc_PKCS7_EncodeData(PKCS7* pkcs7, byte* output, /*! \ingroup PKCS7 - \brief この関数はPKCS7署名付きデータコンテンツタイプを構築し、PKCS7構造をPARSable PKCS7署名付きデータパケットを含むバッファにエンコードします。 - \return Success PKCS7データをバッファに正常にエンコードすると、PKCS7構造内の索引を返します。このインデックスは、出力バッファに書き込まれたバイトにも対応しています。 - \return BAD_FUNC_ARG PKCS7構造が署名付きデータパケットを生成するための1つ以上の要求要素が欠落している場合に返されます。 - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \return PUBLIC_KEY_E 公開鍵の解析中にエラーがある場合 - \return RSA_BUFFER_E バッファエラーが発生した場合は、小さすぎたり入力が大きすぎたりし過ぎました - \return BUFFER_E 指定されたバッファがエンコードされた証明書を保持するのに十分な大きさでない場合に返されます - \return MP_INIT_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_READ_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_CMP_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_INVMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_EXPTMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MUL_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_ADD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MULMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_TO_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MEM 署名を生成するエラーがある場合は返却される可能性があります - \param pkcs7 符号化するPKCS7構造へのポインタ - \param output エンコードされた証明書を保存するバッファへのポインタ + + \brief この関数は、PKCS7署名付きデータコンテンツタイプをビルドし、PKCS7構造体を解析可能なPKCS7署名付きデータパケットを含むバッファにエンコードします。 + + \return Success PKCS7データをバッファに正常にエンコードした場合、PKCS7構造体で解析されたインデックスまで返します。このインデックスは、出力バッファに書き込まれたバイト数にも対応します。 + \return BAD_FUNC_ARG 署名付きデータパケットを生成するために必要な1つ以上の要素がPKCS7構造体に欠けている場合に返されます。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return PUBLIC_KEY_E 公開鍵の解析エラーがある場合に返されます。 + \return RSA_BUFFER_E バッファエラー、出力が小さすぎるか入力が大きすぎる場合に返されます。 + \return BUFFER_E 指定されたバッファがエンコードされた証明書を保持するのに十分な大きさでない場合に返されます。 + \return MP_INIT_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_READ_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_CMP_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_INVMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_EXPTMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MUL_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_ADD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MULMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_TO_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MEM 署名の生成エラーがある場合に返される可能性があります。 + + \param pkcs7 エンコードするPKCS7構造体へのポインタ。 + \param output エンコードされた証明書を格納するバッファへのポインタ。 + \param outputSz 出力バッファで利用可能なサイズ。 + _Example_ \code PKCS7 pkcs7; int ret; - byte data[] = {}; // initialize with data to sign - byte derBuff[] = { }; // initialize with DER-encoded certificate + byte data[] = {}; // 署名するデータで初期化 + byte derBuff[] = { }; // DERエンコードされた証明書で初期化 byte pkcs7Buff[FOURK_BUF]; wc_PKCS7_InitWithCert(&pkcs7, derBuff, sizeof(derBuff)); - // update message and data to encode + // エンコードするメッセージとデータを更新 pkcs7.privateKey = key; pkcs7.privateKeySz = keySz; pkcs7.content = data; pkcs7.contentSz = dataSz; pkcs7.hashOID = SHAh; pkcs7.rng = &rng; - ... etc. + ... など ret = wc_PKCS7_EncodeSignedData(&pkcs7, pkcs7Buff, sizeof(pkcs7Buff)); if ( ret != 0 ) { - // error encoding into output buffer + // 出力バッファへのエンコードエラー } wc_PKCS7_Free(&pkcs7); \endcode + \sa wc_PKCS7_InitWithCert \sa wc_PKCS7_VerifySignedData */ @@ -136,36 +178,42 @@ int wc_PKCS7_EncodeSignedData(PKCS7* pkcs7, /*! \ingroup PKCS7 - \brief この関数は、PKCS7の署名付きデータコンテンツタイプを構築し、PKCS7構造をエンコードし、Parsable PKCS7署名付きデータパケットを含むヘッダーおよびフッターバッファにエンコードします。これにはコンテンツは含まれません。ハッシュを計算してデータに提供する必要があります + + \brief この関数は、PKCS7署名付きデータコンテンツタイプをビルドし、PKCS7構造体を解析可能なPKCS7署名付きデータパケットを含むヘッダーとフッターバッファにエンコードします。これにはコンテンツは含まれません。 + データのハッシュを計算して提供する必要があります。 + \return 0=Success - \return BAD_FUNC_ARG PKCS7構造が署名付きデータパケットを生成するための1つ以上の要求要素が欠落している場合に返されます。 - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \return PUBLIC_KEY_E 公開鍵の解析中にエラーがある場合 - \return RSA_BUFFER_E バッファエラーが発生した場合は、小さすぎたり入力が大きすぎたりし過ぎました - \return BUFFER_E 指定されたバッファがエンコードされた証明書を保持するのに十分な大きさでない場合に返されます - \return MP_INIT_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_READ_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_CMP_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_INVMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_EXPTMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MUL_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_ADD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MULMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_TO_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MEM 署名を生成するエラーがある場合は返却される可能性があります - \param pkcs7 符号化するPKCS7構造へのポインタ - \param hashBuf コンテンツデータの計算ハッシュへのポインタ - \param hashSz ダイジェストのサイズ - \param outputHead エンコードされた証明書ヘッダーを保存するバッファへのポインタ - \param outputHeadSz 出力ヘッダーバッファのサイズが入力され、実際のサイズを返します。 - \param outputFoot エンコードされた証明書フッターを保存するバッファへのポインタ + \return BAD_FUNC_ARG 署名付きデータパケットを生成するために必要な1つ以上の要素がPKCS7構造体に欠けている場合に返されます。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return PUBLIC_KEY_E 公開鍵の解析エラーがある場合に返されます。 + \return RSA_BUFFER_E バッファエラー、出力が小さすぎるか入力が大きすぎる場合に返されます。 + \return BUFFER_E 指定されたバッファがエンコードされた証明書を保持するのに十分な大きさでない場合に返されます。 + \return MP_INIT_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_READ_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_CMP_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_INVMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_EXPTMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MUL_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_ADD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MULMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_TO_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MEM 署名の生成エラーがある場合に返される可能性があります。 + + \param pkcs7 エンコードするPKCS7構造体へのポインタ。 + \param hashBuf コンテンツデータの計算されたハッシュへのポインタ。 + \param hashSz ダイジェストのサイズ。 + \param outputHead エンコードされた証明書ヘッダーを格納するバッファへのポインタ。 + \param outputHeadSz 出力ヘッダーバッファのサイズが入力され、実際のサイズを返します。 + \param outputFoot エンコードされた証明書フッターを格納するバッファへのポインタ。 + \param outputFootSz 出力フッターバッファのサイズが入力され、実際のサイズを返します。 + _Example_ \code PKCS7 pkcs7; int ret; - byte derBuff[] = { }; // initialize with DER-encoded certificate - byte data[] = {}; // initialize with data to sign + byte derBuff[] = { }; // DERエンコードされた証明書で初期化 + byte data[] = {}; // 署名するデータで初期化 byte pkcs7HeadBuff[FOURK_BUF/2]; byte pkcs7FootBuff[FOURK_BUF/2]; word32 pkcs7HeadSz = (word32)sizeof(pkcs7HeadBuff); @@ -175,16 +223,16 @@ int wc_PKCS7_EncodeSignedData(PKCS7* pkcs7, word32 hashSz = wc_HashGetDigestSize(hashType); wc_PKCS7_InitWithCert(&pkcs7, derBuff, sizeof(derBuff)); - // update message and data to encode + // エンコードするメッセージとデータを更新 pkcs7.privateKey = key; pkcs7.privateKeySz = keySz; pkcs7.content = NULL; pkcs7.contentSz = dataSz; pkcs7.hashOID = SHAh; pkcs7.rng = &rng; - ... etc. + ... など - // calculate hash for content + // コンテンツのハッシュを計算 ret = wc_HashInit(&hash, hashType); if (ret == 0) { ret = wc_HashUpdate(&hash, hashType, data, sizeof(data)); @@ -197,11 +245,12 @@ int wc_PKCS7_EncodeSignedData(PKCS7* pkcs7, ret = wc_PKCS7_EncodeSignedData_ex(&pkcs7, hashBuf, hashSz, pkcs7HeadBuff, &pkcs7HeadSz, pkcs7FootBuff, &pkcs7FootSz); if ( ret != 0 ) { - // error encoding into output buffer + // 出力バッファへのエンコードエラー } wc_PKCS7_Free(&pkcs7); \endcode + \sa wc_PKCS7_InitWithCert \sa wc_PKCS7_VerifySignedData_ex */ @@ -211,107 +260,117 @@ int wc_PKCS7_EncodeSignedData_ex(PKCS7* pkcs7, const byte* hashBuf, /*! \ingroup PKCS7 - \brief この関数は、送信されたPKCS7の署名付きデータメッセージを取り、証明書リストと証明書失効リストを抽出してから署名を検証します。与えられたPKCS7構造に抽出されたコンテンツを格納します。 - \return 0 メッセージから情報を抽出することに成功しました - \return BAD_FUNC_ARG 入力パラメータの1つが無効な場合は返されます - \return ASN_PARSE_E 与えられたPKIMSGから解析中のエラーがある場合に返されます - \return PKCS7_OID_E 与えられたPKIMSGが署名付きデータ型ではない場合に返されます - \return ASN_VERSION_E PKCS7署名者情報がバージョン1ではない場合に返されます - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \return PUBLIC_KEY_E 公開鍵の解析中にエラーがある場合 - \return RSA_BUFFER_E バッファエラーが発生した場合は、小さすぎたり入力が大きすぎたりし過ぎません - \return BUFFER_E 指定されたバッファがエンコードされた証明書を保持するのに十分な大きさでない場合に返されます - \return MP_INIT_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_READ_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_CMP_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_INVMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_EXPTMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MUL_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_ADD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MULMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_TO_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MEM 署名を生成するエラーがある場合は返却される可能性があります - \param pkcs7 解析された証明書を保存するPKCS7構造へのポインタ - \param pkiMsg 署名されたメッセージを含むバッファへのポインタを検証および復号化する + + \brief この関数は、送信されたPKCS7署名付きデータメッセージを受け取り、証明書リストと証明書失効リストを抽出し、署名を検証します。抽出されたコンテンツを与えられたPKCS7構造体に格納します。 + + \return 0 メッセージから情報を正常に抽出した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータの1つが無効な場合に返されます。 + \return ASN_PARSE_E 与えられたpkiMsgの解析エラーがある場合に返されます。 + \return PKCS7_OID_E 与えられたpkiMsgが署名付きデータタイプでない場合に返されます。 + \return ASN_VERSION_E PKCS7署名者情報がバージョン1でない場合に返されます。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return PUBLIC_KEY_E 公開鍵の解析エラーがある場合に返されます。 + \return RSA_BUFFER_E バッファエラー、出力が小さすぎるか入力が大きすぎる場合に返されます。 + \return BUFFER_E 指定されたバッファがエンコードされた証明書を保持するのに十分な大きさでない場合に返されます。 + \return MP_INIT_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_READ_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_CMP_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_INVMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_EXPTMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MUL_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_ADD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MULMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_TO_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MEM 署名の生成エラーがある場合に返される可能性があります。 + + \param pkcs7 解析された証明書を格納するPKCS7構造体へのポインタ。 + \param pkiMsg 検証およびデコードする署名付きメッセージを含むバッファへのポインタ。 + \param pkiMsgSz 署名付きメッセージのサイズ。 + _Example_ \code PKCS7 pkcs7; int ret; - byte pkcs7Buff[] = {}; // the PKCS7 signature + byte pkcs7Buff[] = {}; // PKCS7署名 wc_PKCS7_InitWithCert(&pkcs7, NULL, 0); - // update message and data to encode + // エンコードするメッセージとデータを更新 pkcs7.privateKey = key; pkcs7.privateKeySz = keySz; pkcs7.content = data; pkcs7.contentSz = dataSz; - ... etc. + ... など ret = wc_PKCS7_VerifySignedData(&pkcs7, pkcs7Buff, sizeof(pkcs7Buff)); if ( ret != 0 ) { - // error encoding into output buffer + // 出力バッファへのエンコードエラー } wc_PKCS7_Free(&pkcs7); \endcode + \sa wc_PKCS7_InitWithCert \sa wc_PKCS7_EncodeSignedData */ int wc_PKCS7_VerifySignedData(PKCS7* pkcs7, byte* pkiMsg, word32 pkiMsgSz); - /*! \ingroup PKCS7 - \brief この機能は、送信されたPKCS7署名付きデータメッセージをHASH /ヘッダー/フッターとして取り出してから、証明書リストと証明書失効リストを抽出してから、署名を検証します。与えられたPKCS7構造に抽出されたコンテンツを格納します。 - \return 0 メッセージから情報を抽出することに成功しました - \return BAD_FUNC_ARG 入力パラメータの1つが無効な場合は返されます - \return ASN_PARSE_E 与えられたPKIMSGから解析中のエラーがある場合に返されます - \return PKCS7_OID_E 与えられたPKIMSGが署名付きデータ型ではない場合に返されます - \return ASN_VERSION_E PKCS7署名者情報がバージョン1ではない場合に返されます - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \return PUBLIC_KEY_E 公開鍵の解析中にエラーがある場合 - \return RSA_BUFFER_E バッファエラーが発生した場合は、小さすぎたり入力が大きすぎたりし過ぎません - \return BUFFER_E 指定されたバッファがエンコードされた証明書を保持するのに十分な大きさでない場合に返されます - \return MP_INIT_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_READ_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_CMP_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_INVMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_EXPTMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MUL_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_ADD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MULMOD_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_TO_E 署名を生成するエラーがある場合は返却される可能性があります - \return MP_MEM 署名を生成するエラーがある場合は返却される可能性があります - \param pkcs7 解析された証明書を保存するPKCS7構造へのポインタ - \param hashBuf コンテンツデータの計算ハッシュへのポインタ - \param hashSz ダイジェストのサイズ - \param pkiMsgHead 署名されたメッセージヘッダーを含むバッファへのポインタを検証およびデコードする - \param pkiMsgHeadSz 署名付きメッセージヘッダーのサイズ - \param pkiMsgFoot 署名されたメッセージフッターを含むバッファへのポインタを検証してデコードする + + \brief この関数は、ハッシュ/ヘッダー/フッターとして送信されたPKCS7署名付きデータメッセージを受け取り、証明書リストと証明書失効リストを抽出し、署名を検証します。抽出されたコンテンツを与えられたPKCS7構造体に格納します。 + + \return 0 メッセージから情報を正常に抽出した場合に返されます。 + \return BAD_FUNC_ARG 入力パラメータの1つが無効な場合に返されます。 + \return ASN_PARSE_E 与えられたpkiMsgの解析エラーがある場合に返されます。 + \return PKCS7_OID_E 与えられたpkiMsgが署名付きデータタイプでない場合に返されます。 + \return ASN_VERSION_E PKCS7署名者情報がバージョン1でない場合に返されます。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return PUBLIC_KEY_E 公開鍵の解析エラーがある場合に返されます。 + \return RSA_BUFFER_E バッファエラー、出力が小さすぎるか入力が大きすぎる場合に返されます。 + \return BUFFER_E 指定されたバッファがエンコードされた証明書を保持するのに十分な大きさでない場合に返されます。 + \return MP_INIT_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_READ_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_CMP_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_INVMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_EXPTMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MUL_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_ADD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MULMOD_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_TO_E 署名の生成エラーがある場合に返される可能性があります。 + \return MP_MEM 署名の生成エラーがある場合に返される可能性があります。 + + \param pkcs7 解析された証明書を格納するPKCS7構造体へのポインタ。 + \param hashBuf コンテンツデータの計算されたハッシュへのポインタ。 + \param hashSz ダイジェストのサイズ。 + \param pkiMsgHead 検証およびデコードする署名付きメッセージヘッダーを含むバッファへのポインタ。 + \param pkiMsgHeadSz 署名付きメッセージヘッダーのサイズ。 + \param pkiMsgFoot 検証およびデコードする署名付きメッセージフッターを含むバッファへのポインタ。 + \param pkiMsgFootSz 署名付きメッセージフッターのサイズ。 + _Example_ \code PKCS7 pkcs7; int ret; - byte data[] = {}; // initialize with data to sign - byte pkcs7HeadBuff[] = {}; // initialize with PKCS7 header - byte pkcs7FootBuff[] = {}; // initialize with PKCS7 footer + byte data[] = {}; // 署名するデータで初期化 + byte pkcs7HeadBuff[] = {}; // PKCS7ヘッダーで初期化 + byte pkcs7FootBuff[] = {}; // PKCS7フッターで初期化 enum wc_HashType hashType = WC_HASH_TYPE_SHA; byte hashBuf[WC_MAX_DIGEST_SIZE]; word32 hashSz = wc_HashGetDigestSize(hashType); wc_PKCS7_InitWithCert(&pkcs7, NULL, 0); - // update message and data to encode + // エンコードするメッセージとデータを更新 pkcs7.privateKey = key; pkcs7.privateKeySz = keySz; pkcs7.content = NULL; pkcs7.contentSz = dataSz; pkcs7.rng = &rng; - ... etc. + ... など - // calculate hash for content + // コンテンツのハッシュを計算 ret = wc_HashInit(&hash, hashType); if (ret == 0) { ret = wc_HashUpdate(&hash, hashType, data, sizeof(data)); @@ -324,11 +383,12 @@ int wc_PKCS7_VerifySignedData(PKCS7* pkcs7, ret = wc_PKCS7_VerifySignedData_ex(&pkcs7, hashBuf, hashSz, pkcs7HeadBuff, sizeof(pkcs7HeadBuff), pkcs7FootBuff, sizeof(pkcs7FootBuff)); if ( ret != 0 ) { - // error encoding into output buffer + // 出力バッファへのエンコードエラー } wc_PKCS7_Free(&pkcs7); \endcode + \sa wc_PKCS7_InitWithCert \sa wc_PKCS7_EncodeSignedData_ex */ @@ -338,37 +398,58 @@ int wc_PKCS7_VerifySignedData_ex(PKCS7* pkcs7, const byte* hashBuf, /*! \ingroup PKCS7 - \brief この関数は、PKCS7構造を編集し、PKCS7構造を符号化し、Parsable PKCS7エンベロープデータパケットを含むバッファに編集します。 - \return Success エンベロープデータ形式でメッセージを正常にエンコードする上で返信され、出力バッファに書き込まれたサイズを返します。 - \return BAD_FUNC_ARG: 入力パラメータの1つが無効な場合、またはPKCS7構造が必要な要素を欠落している場合 - \return ALGO_ID_E pkcs7構造がサポートされていないアルゴリズムタイプを使用している場合に返されます。現在、DESBとDES3Bのみがサポートされています - \return BUFFER_E 与えられた出力バッファが小さすぎて出力データを保存する場合に返されます - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \return RNG_FAILURE_E 暗号化の乱数発生器の初期化中にエラーがある場合 - \return DRBG_FAILED 暗号化に使用される乱数発生器を使用して数字を生成するエラーが発生した場合 - \param pkcs7 符号化するPKCS7構造へのポインタ - \param output エンコードされた証明書を保存するバッファへのポインタ + + \brief カスタムAES鍵ラップ/アンラップ操作を実行するために使用されるコールバック関数を設定します。 + + \retval 0 コールバック関数が正常に設定されました。 + \retval BAD_FUNC_ARG パラメータpkcs7がNULLです。 + + \param pkcs7 PKCS7構造体へのポインタ。 + \param aesKeyWrapCb カスタムAES鍵ラップ/アンラップ関数へのポインタ。 +*/ +int wc_PKCS7_SetAESKeyWrapUnwrapCb(wc_PKCS7* pkcs7, + CallbackAESKeyWrapUnwrap aesKeyWrapCb); + +/*! + \ingroup PKCS7 + + \brief この関数は、PKCS7エンベロープデータコンテンツタイプをビルドし、PKCS7構造体を解析可能なPKCS7エンベロープデータパケットを含むバッファにエンコードします。 + + \return Success エンベロープデータ形式でメッセージを正常にエンコードした場合、出力バッファに書き込まれたサイズを返します。 + \return BAD_FUNC_ARG: 入力パラメータの1つが無効な場合、またはPKCS7構造体に必要な要素が欠けている場合に返されます。 + \return ALGO_ID_E PKCS7構造体がサポートされていないアルゴリズムタイプを使用している場合に返されます。現在、DesbとDES3bのみがサポートされています。 + \return BUFFER_E 指定された出力バッファが出力データを格納するのに小さすぎる場合に返されます。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return RNG_FAILURE_E 暗号化用の乱数生成器の初期化エラーがある場合に返されます。 + \return DRBG_FAILED 暗号化に使用される乱数生成器で数値の生成エラーがある場合に返されます。 + \return NOT_COMPILED_IN ECC鍵を使用していて、wolfSSLがHAVE_X963_KDFサポートなしでビルドされている場合に返される可能性があります。 + + \param pkcs7 エンコードするPKCS7構造体へのポインタ。 + \param output エンコードされた証明書を格納するバッファへのポインタ。 + \param outputSz 出力バッファで利用可能なサイズ。 + _Example_ \code PKCS7 pkcs7; int ret; - byte derBuff[] = { }; // initialize with DER-encoded certificate + byte derBuff[] = { }; // DERエンコードされた証明書で初期化 byte pkcs7Buff[FOURK_BUF]; wc_PKCS7_InitWithCert(&pkcs7, derBuff, sizeof(derBuff)); - // update message and data to encode + // エンコードするメッセージとデータを更新 pkcs7.privateKey = key; pkcs7.privateKeySz = keySz; pkcs7.content = data; pkcs7.contentSz = dataSz; - ... etc. + ... など ret = wc_PKCS7_EncodeEnvelopedData(&pkcs7, pkcs7Buff, sizeof(pkcs7Buff)); - if ( ret != 0 ) { - // error encoding into output buffer + if ( ret < 0 ) { + // 出力バッファへのエンコードエラー } \endcode + \sa wc_PKCS7_InitWithCert \sa wc_PKCS7_DecodeEnvelopedData */ @@ -377,52 +458,243 @@ int wc_PKCS7_EncodeEnvelopedData(PKCS7* pkcs7, /*! \ingroup PKCS7 - \brief この関数はPKCS7エンベロープデータコンテンツタイプをアントラップして復号化し、メッセージを出力にデコードします。渡されたPKCS7オブジェクトの秘密鍵を使用してメッセージを復号化します。 - \return On メッセージから情報を抽出するには、出力に書き込まれたバイト数を返します。 - \return BAD_FUNC_ARG 入力パラメータの1つが無効な場合は返されます - \return ASN_PARSE_E 与えられたPKIMSGから解析中のエラーがある場合に返されます - \return PKCS7_OID_E 与えられたPKIMSGがエンベロープデータ型ではない場合に返されます - \return ASN_VERSION_E PKCS7署名者情報がバージョン0ではない場合に返されます - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます - \return ALGO_ID_E pkcs7構造がサポートされていないアルゴリズムタイプを使用している場合に返されます。現在、Signature Generation for Signature GenerationのRSAKを使用して、DESBとDES3Bのみが暗号化でサポートされています。 - \return PKCS7_RECIP_E 提供された受信者と一致するエンベロープデータに受信者が見つからない場合 - \return RSA_BUFFER_E バッファエラーが原因でRSAシグネチャ検証中にエラーがある場合は、小さすぎたり入力が大きすぎたりすると元に戻されます。 - \return MP_INIT_E 署名検証中にエラーがある場合は返却される可能性があります - \return MP_READ_E 署名検証中にエラーがある場合は返却される可能性があります - \return MP_CMP_E 署名検証中にエラーがある場合は返却される可能性があります - \return MP_INVMOD_E 署名検証中にエラーがある場合は返却される可能性があります - \return MP_EXPTMOD_E 署名検証中にエラーがある場合は返却される可能性があります - \return MP_MOD_E 署名検証中にエラーがある場合は返却される可能性があります - \return MP_MUL_E 署名検証中にエラーがある場合は返却される可能性があります - \return MP_ADD_E 署名検証中にエラーがある場合は返却される可能性があります - \return MP_MULMOD_E 署名検証中にエラーがある場合は返却される可能性があります - \return MP_TO_E 署名検証中にエラーがある場合は返却される可能性があります - \return MP_MEM 署名検証中にエラーがある場合は返却される可能性があります - \param pkcs7 エンベロープデータパッケージをデコードする秘密鍵を含むPKCS7構造へのポインタ - \param pkiMsg エンベロープデータパッケージを含むバッファへのポインタ - \param pkiMsgSz 包み込まれたデータパッケージのサイズ - \param output デコードされたメッセージを保存するバッファへのポインタ + + \brief この関数は、PKCS7エンベロープデータコンテンツタイプをアンラップして復号し、メッセージをoutputにデコードします。渡されたPKCS7オブジェクトの秘密鍵を使用してメッセージを復号します。 + + 注意: EnvelopedDataがECC鍵とKeyAgreementRecipientInfo構造体を使用して暗号化されている場合、wolfcrypt組み込みのAES鍵ラップ/アンラップ機能を有効にするためにHAVE_AES_KEYWRAPビルドオプションを有効にするか、wc_PKCS7_SetAESKeyWrapUnwrapCb()を使用してカスタムAES鍵ラップ/アンラップコールバックを設定する必要があります。これらのいずれも該当しない場合、復号は失敗します。 + + \return メッセージから情報を正常に抽出した場合、outputに書き込まれたバイト数を返します。 + \return BAD_FUNC_ARG 入力パラメータの1つが無効な場合に返されます。 + \return ASN_PARSE_E 与えられたpkiMsgの解析エラーがある場合に返されます。 + \return PKCS7_OID_E 与えられたpkiMsgがエンベロープデータタイプでない場合に返されます。 + \return ASN_VERSION_E PKCS7署名者情報がバージョン0でない場合に返されます。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return ALGO_ID_E PKCS7構造体がサポートされていないアルゴリズムタイプを使用している場合に返されます。現在、暗号化にはDesbとDES3bのみがサポートされており、署名生成にはRSAkがサポートされています。 + \return PKCS7_RECIP_E エンベロープデータ内に提供された受信者と一致する受信者が見つからない場合に返されます。 + \return RSA_BUFFER_E バッファエラー、出力が小さすぎるか入力が大きすぎることによるRSA署名検証中のエラーがある場合に返されます。 + \return MP_INIT_E 署名検証中にエラーがある場合に返される可能性があります。 + \return MP_READ_E 署名検証中にエラーがある場合に返される可能性があります。 + \return MP_CMP_E 署名検証中にエラーがある場合に返される可能性があります。 + \return MP_INVMOD_E 署名検証中にエラーがある場合に返される可能性があります。 + \return MP_EXPTMOD_E 署名検証中にエラーがある場合に返される可能性があります。 + \return MP_MOD_E 署名検証中にエラーがある場合に返される可能性があります。 + \return MP_MUL_E 署名検証中にエラーがある場合に返される可能性があります。 + \return MP_ADD_E 署名検証中にエラーがある場合に返される可能性があります。 + \return MP_MULMOD_E 署名検証中にエラーがある場合に返される可能性があります。 + \return MP_TO_E 署名検証中にエラーがある場合に返される可能性があります。 + \return MP_MEM 署名検証中にエラーがある場合に返される可能性があります。 + \return NOT_COMPILED_IN EnvelopedDataがECC鍵を使用して暗号化されていて、wolfSSLがHAVE_X963_KDFサポートなしでビルドされている場合に返される可能性があります。 + + \param pkcs7 エンベロープデータパッケージをデコードするための秘密鍵を含むPKCS7構造体へのポインタ。 + \param pkiMsg エンベロープデータパッケージを含むバッファへのポインタ。 + \param pkiMsgSz エンベロープデータパッケージのサイズ。 + \param output デコードされたメッセージを格納するバッファへのポインタ。 + \param outputSz 出力バッファで利用可能なサイズ。 + _Example_ \code PKCS7 pkcs7; - byte received[] = { }; // initialize with received enveloped message + byte received[] = { }; // 受信したエンベロープデータメッセージで初期化 byte decoded[FOURK_BUF]; int decodedSz; - // initialize pkcs7 with certificate - // update key + // 証明書でpkcs7を初期化 + // 鍵を更新 pkcs7.privateKey = key; pkcs7.privateKeySz = keySz; - decodedSz = wc_PKCS7_DecodeEnvelopedData(&pkcs7, received, - sizeof(received),decoded, sizeof(decoded)); - if ( decodedSz != 0 ) { - // error decoding message + decodedSz = wc_PKCS7_DecodeEnvelopedData(&pkcs7, received, sizeof(received), + decoded, sizeof(decoded)); + if ( decodedSz < 0 ) { + // メッセージのデコードエラー } \endcode + \sa wc_PKCS7_InitWithCert \sa wc_PKCS7_EncodeEnvelopedData */ int wc_PKCS7_DecodeEnvelopedData(PKCS7* pkcs7, byte* pkiMsg, - word32 pkiMsgSz, byte* output, - word32 outputSz); + word32 pkiMsgSz, byte* output, word32 outputSz); + +/*! + \ingroup PKCS7 + + \brief この関数は、KeyAgreeRecipientInfo RecipientInfoオブジェクトを含むEnvelopedDataパッケージからKeyAgreeRecipientIdentifierオブジェクトを抽出します。最初のRecipientInfoで見つかった最初のKeyAgreeRecipientIdentiferのみがコピーされます。この関数は、複数のRecipientInfoオブジェクトやKeyAgreeRecipientInfo内の複数のRecipientEncryptedKeyオブジェクトをサポートしていません。 + + \return 成功時に0を返します。 + \return BAD_FUNC_ARG 入力パラメータの1つが無効な場合に返されます。 + \return ASN_PARSE_E 入力メッセージの解析エラーがある場合に返されます。 + \return PKCS7_OID_E 入力メッセージがエンベロープデータタイプでない場合に返されます。 + \return BUFFER_E 出力バッファに十分なスペースがない場合に返されます。 + + \param[in] in EnvelopedData ContentInfoメッセージを含む入力バッファ。 + \param[in] inSz 入力バッファのサイズ。 + \param[out] out 出力バッファ。 + \param[in,out] outSz 入力時の出力バッファサイズ、出力時に書き込まれたサイズ。 +*/ +int wc_PKCS7_GetEnvelopedDataKariRid(const byte * in, word32 inSz, + byte * out, word32 * outSz); + +/*! + \ingroup PKCS7 + + \brief この関数は、PKCS7暗号化データコンテンツタイプをアンラップして復号し、メッセージをoutputにデコードします。pkcs7->encryptionKeyとpkcs7->encryptionKeySzを介して渡されたPKCS7オブジェクトの暗号化鍵を使用してメッセージを復号します。 + + \return メッセージから情報を正常に抽出した場合、outputに書き込まれたバイト数を返します。 + \return BAD_FUNC_ARG 入力パラメータの1つが無効な場合に返されます。 + \return ASN_PARSE_E 与えられたpkiMsgの解析エラーがある場合に返されます。 + \return PKCS7_OID_E 与えられたpkiMsgが暗号化データタイプでない場合に返されます。 + \return ASN_VERSION_E PKCS7署名者情報がバージョン0でない場合に返されます。 + \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 + \return BUFFER_E 暗号化されたコンテンツのサイズが無効な場合に返されます。 + + \param pkcs7 暗号化データパッケージをデコードするための暗号化鍵を含むPKCS7構造体へのポインタ。 + \param pkiMsg 暗号化データパッケージを含むバッファへのポインタ。 + \param pkiMsgSz 暗号化データパッケージのサイズ。 + \param output デコードされたメッセージを格納するバッファへのポインタ。 + \param outputSz 出力バッファで利用可能なサイズ。 + + _Example_ + \code + PKCS7 pkcs7; + byte received[] = { }; // 受信した暗号化データメッセージで初期化 + byte decoded[FOURK_BUF]; + int decodedSz; + + // 証明書でpkcs7を初期化 + // 鍵を更新 + pkcs7.encryptionKey = key; + pkcs7.encryptionKeySz = keySz; + + decodedSz = wc_PKCS7_DecodeEncryptedData(&pkcs7, received, + sizeof(received), decoded, sizeof(decoded)); + if ( decodedSz < 0 ) { + // メッセージのデコードエラー + } + \endcode + + \sa wc_PKCS7_InitWithCert +*/ +int wc_PKCS7_DecodeEncryptedData(PKCS7* pkcs7, byte* pkiMsg, + word32 pkiMsgSz, byte* output, word32 outputSz); + +/*! + \ingroup PKCS7 + + \brief この関数は、PKCS7暗号化鍵パッケージコンテンツタイプをアンラップして復号し、メッセージをoutputにデコードします。ラップされたコンテンツタイプがEncryptedDataの場合、pkcs7入力構造体に暗号化鍵を設定する必要があります(pkcs7->encryptionKeyとpkcs7->encryptionKeySzを介して)。ラップされたコンテンツタイプがEnvelopedDataの場合、pkcs7入力構造体に秘密鍵を設定する必要があります(pkcs7->privateKeyとpkcs7->privateKeySzを介して)。 + AuthEnvelopedDataのラップされたコンテンツタイプは現在サポートされていません。 + + この関数は、ラップされたコンテンツタイプに応じて、wc_PKCS7_DecodeEnvelopedData()またはwc_PKCS7_DecodeEncryptedData()を自動的に呼び出します。この関数は、ここにリストされているエラーコードに加えて、これらの関数のいずれかからのエラーコードを返す可能性があります。 + + \return メッセージから情報を正常に抽出した場合、outputに書き込まれたバイト数を返します。 + \return BAD_FUNC_ARG 入力パラメータの1つが無効な場合に返されます。 + \return ASN_PARSE_E 与えられたpkiMsgの解析エラーがある場合、またはラップされたコンテンツタイプがEncryptedDataで、EncryptedDataのサポートがコンパイルされていない場合(例: NO_PKCS7_ENCRYPTED_DATAが設定されている場合)に返されます。 + \return PKCS7_OID_E 与えられたpkiMsgが暗号化鍵パッケージデータタイプでない場合に返されます。 + + \param pkcs7 暗号化鍵パッケージをデコードするための秘密鍵または暗号化鍵を含むPKCS7構造体へのポインタ。 + \param pkiMsg 暗号化鍵パッケージメッセージを含むバッファへのポインタ。 + \param pkiMsgSz 暗号化鍵パッケージメッセージのサイズ。 + \param output デコードされた出力を格納するバッファへのポインタ。 + \param outputSz 出力バッファで利用可能なサイズ。 + + _Example_ + \code + PKCS7 pkcs7; + byte received[] = { }; // 受信した暗号化データメッセージで初期化 + byte decoded[FOURK_BUF]; + int decodedSz; + + // 証明書でpkcs7を初期化 + // 予想されるEnvelopedDataの鍵を更新(例) + pkcs7.privateKey = key; + pkcs7.privateKeySz = keySz; + + decodedSz = wc_PKCS7_DecodeEncryptedKeyPackage(&pkcs7, received, + sizeof(received), decoded, sizeof(decoded)); + if ( decodedSz < 0 ) { + // メッセージのデコードエラー + } + \endcode + + \sa wc_PKCS7_InitWithCert +*/ +int wc_PKCS7_DecodeEncryptedKeyPackage(wc_PKCS7 * pkcs7, + byte * pkiMsg, word32 pkiMsgSz, byte * output, word32 outputSz); + +/*! + \ingroup PKCS7 + + \brief この関数は、SymmetricKeyPackage属性へのアクセスを提供します。 + + \return 0 要求された属性が正常に見つかりました。 + attrとattrSz出力変数には、属性のアドレスとサイズが入力されます。属性は、skp入力ポインタを介して渡されたのと同じバッファ内にあります。 + \return BAD_FUNC_ARG 入力パラメータの1つが無効です。 + \return ASN_PARSE_E 入力オブジェクトの解析中にエラーが発生しました。 + \return BAD_INDEX_E 要求された属性インデックスが無効でした。 + + \param[in] skp SymmetricKeyPackageオブジェクトを含む入力バッファ。 + \param[in] skpSz SymmetricKeyPackageオブジェクトのサイズ。 + \param[in] index アクセスする属性のインデックス。 + \param[out] attr 要求された属性オブジェクトへのポインタを格納するバッファ。 + \param[out] attrSz 要求された属性オブジェクトのサイズを格納するバッファ。 +*/ +int wc_PKCS7_DecodeSymmetricKeyPackageAttribute(const byte * skp, + word32 skpSz, size_t index, const byte ** attr, word32 * attrSz); + +/*! + \ingroup PKCS7 + + \brief この関数は、SymmetricKeyPackage鍵へのアクセスを提供します。 + + \return 0 要求された鍵が正常に見つかりました。 + keyとkeySz出力変数には、鍵のアドレスとサイズが入力されます。鍵は、skp入力ポインタを介して渡されたのと同じバッファ内にあります。 + \return BAD_FUNC_ARG 入力パラメータの1つが無効です。 + \return ASN_PARSE_E 入力オブジェクトの解析中にエラーが発生しました。 + \return BAD_INDEX_E 要求された鍵インデックスが無効でした。 + + \param[in] skp SymmetricKeyPackageオブジェクトを含む入力バッファ。 + \param[in] skpSz SymmetricKeyPackageオブジェクトのサイズ。 + \param[in] index アクセスする鍵のインデックス。 + \param[out] key 要求された鍵オブジェクトへのポインタを格納するバッファ。 + \param[out] keySz 要求された鍵オブジェクトのサイズを格納するバッファ。 +*/ +int wc_PKCS7_DecodeSymmetricKeyPackageKey(const byte * skp, + word32 skpSz, size_t index, const byte ** key, word32 * keySz); + +/*! + \ingroup PKCS7 + + \brief この関数は、OneSymmetricKey属性へのアクセスを提供します。 + + \return 0 要求された属性が正常に見つかりました。 + attrとattrSz出力変数には、属性のアドレスとサイズが入力されます。属性は、osk入力ポインタを介して渡されたのと同じバッファ内にあります。 + \return BAD_FUNC_ARG 入力パラメータの1つが無効です。 + \return ASN_PARSE_E 入力オブジェクトの解析中にエラーが発生しました。 + \return BAD_INDEX_E 要求された属性インデックスが無効でした。 + + \param[in] osk OneSymmetricKeyオブジェクトを含む入力バッファ。 + \param[in] oskSz OneSymmetricKeyオブジェクトのサイズ。 + \param[in] index アクセスする属性のインデックス。 + \param[out] attr 要求された属性オブジェクトへのポインタを格納するバッファ。 + \param[out] attrSz 要求された属性オブジェクトのサイズを格納するバッファ。 +*/ +int wc_PKCS7_DecodeOneSymmetricKeyAttribute(const byte * osk, + word32 oskSz, size_t index, const byte ** attr, word32 * attrSz); + +/*! + \ingroup PKCS7 + + \brief この関数は、OneSymmetricKey鍵へのアクセスを提供します。 + + \return 0 要求された鍵が正常に見つかりました。 + keyとkeySz出力変数には、鍵のアドレスとサイズが入力されます。鍵は、osk入力ポインタを介して渡されたのと同じバッファ内にあります。 + \return BAD_FUNC_ARG 入力パラメータの1つが無効です。 + \return ASN_PARSE_E 入力オブジェクトの解析中にエラーが発生しました。 + + \param[in] osk OneSymmetricKeyオブジェクトを含む入力バッファ。 + \param[in] oskSz OneSymmetricKeyオブジェクトのサイズ。 + \param[out] key 要求された鍵オブジェクトへのポインタを格納するバッファ。 + \param[out] keySz 要求された鍵オブジェクトのサイズを格納するバッファ。 +*/ +int wc_PKCS7_DecodeOneSymmetricKeyKey(const byte * osk, + word32 oskSz, const byte ** key, word32 * keySz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/poly1305.h b/doc/dox_comments/header_files-ja/poly1305.h index 905a30025d..7dd9fe7691 100644 --- a/doc/dox_comments/header_files-ja/poly1305.h +++ b/doc/dox_comments/header_files-ja/poly1305.h @@ -1,16 +1,22 @@ /*! \ingroup Poly1305 - \brief この関数は、Poly1305コンテキスト構造のキーを設定し、ハッシュに初期化します。注:セキュリティを確保するために、WC_POLY1305FINALでメッセージハッシュを生成した後に新しいキーを設定する必要があります。 - \return 0 キーを正常に設定し、Poly1305構造の初期化 - \return BAD_FUNC_ARG 与えられたキーが32バイトの長さでない場合、またはPoly1305コンテキストがNULLの場合 - \param ctx 初期化するためのPoly1305構造へのポインタ - \param key ハッシュに使用する鍵を含むバッファへのポインタ + + \brief この関数は、Poly1305コンテキスト構造体のキーを設定し、ハッシュ化のために初期化します。注意: wc_Poly1305Finalでメッセージハッシュを生成した後、セキュリティを確保するために新しいキーを設定する必要があります。 + + \return 0 キーの設定とPoly1305構造体の初期化に成功した場合に返されます + \return BAD_FUNC_ARG 指定されたキーが32バイトでない場合、またはPoly1305コンテキストがNULLの場合に返されます + + \param ctx 初期化するPoly1305構造体へのポインタ + \param key ハッシュ化に使用するキーを含むバッファへのポインタ + \param keySz バッファ内のキーのサイズ。32バイトである必要があります + _Example_ \code Poly1305 enc; - byte key[] = { initialize with 32 byte key to use for hashing }; + byte key[] = { ハッシュ化に使用する32バイトのキーで初期化 }; wc_Poly1305SetKey(&enc, key, sizeof(key)); \endcode + \sa wc_Poly1305Update \sa wc_Poly1305Final */ @@ -19,23 +25,29 @@ int wc_Poly1305SetKey(Poly1305* poly1305, const byte* key, /*! \ingroup Poly1305 - \brief この関数は、Poly1305構造を持つハッシュにメッセージを更新します。 - \return 0 ハッシュへのメッセージの更新に成功しました - \return BAD_FUNC_ARG Poly1305構造がNULLの場合に返されます - \param ctx HASHにメッセージを更新するためのPoly1305構造へのポインタ - \param m ハッシュに追加する必要があるメッセージを含むバッファへのポインタ + + \brief この関数は、Poly1305構造体でハッシュ化するメッセージを更新します。 + + \return 0 ハッシュ化するメッセージの更新に成功した場合に返されます + \return BAD_FUNC_ARG Poly1305構造体がNULLの場合に返されます + + \param ctx ハッシュ化するメッセージを更新するPoly1305構造体へのポインタ + \param m ハッシュに追加するメッセージを含むバッファへのポインタ + \param bytes ハッシュ化するメッセージのサイズ + _Example_ \code Poly1305 enc; - byte key[] = { }; // initialize with 32 byte key to use for encryption + byte key[] = { }; // 暗号化に使用する32バイトのキーで初期化 - byte msg[] = { }; // initialize with message to hash + byte msg[] = { }; // ハッシュ化するメッセージで初期化 wc_Poly1305SetKey(&enc, key, sizeof(key)); if( wc_Poly1305Update(key, msg, sizeof(msg)) != 0 ) { - // error updating message to hash + // ハッシュ化するメッセージの更新エラー } \endcode + \sa wc_Poly1305SetKey \sa wc_Poly1305Final */ @@ -43,25 +55,32 @@ int wc_Poly1305Update(Poly1305* poly1305, const byte* m, word32 bytes); /*! \ingroup Poly1305 - \brief この関数は入力メッセージのハッシュを計算し、結果をMACに格納します。この後、キーをリセットする必要があります。 - \return 0 最後のMacの計算に成功した - \return BAD_FUNC_ARG Poly1305構造がNULLの場合に返されます - \param ctx MACを生成するためのPoly1305構造へのポインタ + + \brief この関数は、入力メッセージのハッシュを計算し、結果をmacに格納します。この関数を呼び出した後、キーをリセットする必要があります。 + + \return 0 最終MACの計算に成功した場合に返されます + \return BAD_FUNC_ARG Poly1305構造体がNULLの場合に返されます + + \param ctx MACを生成するために使用するPoly1305構造体へのポインタ + \param mac MACを格納するバッファへのポインタ。 + POLY1305_DIGEST_SIZE(16バイト)幅である必要があります + _Example_ \code Poly1305 enc; - byte mac[POLY1305_DIGEST_SIZE]; // space for a 16 byte mac + byte mac[POLY1305_DIGEST_SIZE]; // 16バイトのmac用のスペース - byte key[] = { }; // initialize with 32 byte key to use for encryption + byte key[] = { }; // 暗号化に使用する32バイトのキーで初期化 - byte msg[] = { }; // initialize with message to hash + byte msg[] = { }; // ハッシュ化するメッセージで初期化 wc_Poly1305SetKey(&enc, key, sizeof(key)); wc_Poly1305Update(key, msg, sizeof(msg)); if ( wc_Poly1305Final(&enc, mac) != 0 ) { - // error computing final MAC + // 最終MACの計算エラー } \endcode + \sa wc_Poly1305SetKey \sa wc_Poly1305Update */ @@ -69,33 +88,39 @@ int wc_Poly1305Final(Poly1305* poly1305, byte* tag); /*! \ingroup Poly1305 - \brief 鍵がロードされ、最近のTLS AEADパディング方式を使用してMAC(タグ)を作成する初期化されたPoly1305構造体を取ります。 - \return 0 成功 - \return BAD_FUNC_ARG CTX、INPUT、またはTAGがNULLの場合、または追加がNULLで、ADDSZが0より大きい場合、またはTAGSZがWC_POLY1305_MAC_SZより小さい場合に返されます。 - \param ctx 初期化されたPoly1305構造物 - \param additional 使用する追加データ - \param addSz 追加バッファのサイズ - \param input からタグを作成するための入力バッファ - \param sz 入力バッファのサイズ - \param tag 作成したタグを保持するためのバッファー + + \brief キーがロードされた初期化済みのPoly1305構造体を受け取り、最新のTLS AEADパディングスキームを使用してMAC(タグ)を作成します。 + + \return 0 成功 + \return BAD_FUNC_ARG ctx、input、またはtagがnullの場合、またはadditionalがnullでaddSzが0より大きい場合、またはtagSzがWC_POLY1305_MAC_SZ未満の場合に返されます。 + + \param ctx 使用する初期化済みのPoly1305構造体 + \param additional 使用する追加データ + \param addSz additionalバッファのサイズ + \param input タグを作成する入力バッファ + \param sz 入力バッファのサイズ + \param tag 作成されたタグを保持するバッファ + \param tagSz 入力タグバッファのサイズ(少なくともWC_POLY1305_MAC_SZ(16)である必要があります) + _Example_ \code Poly1305 ctx; - byte key[] = { }; // initialize with 32 byte key to use for hashing - byte additional[] = { }; // initialize with additional data - byte msg[] = { }; // initialize with message + byte key[] = { }; // ハッシュ化に使用する32バイトのキーで初期化 + byte additional[] = { }; // 追加データで初期化 + byte msg[] = { }; // メッセージで初期化 byte tag[16]; wc_Poly1305SetKey(&ctx, key, sizeof(key)); if(wc_Poly1305_MAC(&ctx, additional, sizeof(additional), (byte*)msg, sizeof(msg), tag, sizeof(tag)) != 0) { - // Handle the error + // エラーを処理 } \endcode + \sa wc_Poly1305SetKey \sa wc_Poly1305Update \sa wcPoly1305Final */ int wc_Poly1305_MAC(Poly1305* ctx, byte* additional, word32 addSz, - byte* input, word32 sz, byte* tag, word32 tagSz); + byte* input, word32 sz, byte* tag, word32 tagSz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/psa.h b/doc/dox_comments/header_files-ja/psa.h index 15c359b84e..4136a885de 100644 --- a/doc/dox_comments/header_files-ja/psa.h +++ b/doc/dox_comments/header_files-ja/psa.h @@ -1,8 +1,11 @@ /*! \ingroup PSA - \brief この関数は、与えられたコンテキストでのPSAサポートを可能にします。 - \param ctx PSAサポートを有効にする必要があるWOLFSSL_CTXオブジェクトへのポインタ - \return WOLFSSL_SUCCESS 成功した + \brief この関数は、指定されたコンテキストでPSAサポートを有効にします。 + + \param ctx PSAサポートを有効にする必要があるWOLFSSL_CTXオブジェクトへのポインタ + \return WOLFSSL_SUCCESS 成功時 + \return BAD_FUNC_ARG ctx == NULLの場合 + _Example_ \code WOLFSSL_CTX *ctx; @@ -14,27 +17,36 @@ printf("can't enable PSA on ctx"); \endcode + \sa wolfSSL_set_psa_ctx */ int wolfSSL_CTX_psa_enable(WOLFSSL_CTX *ctx); /*! \ingroup PSA - \brief 与えられたSSLセッションのPSAコンテキストを設定する機能 - \param ssl CTXが有効になるWolfSSLへのポインタ - \param ctx Struct PSA_SSL_CTXへのポインタ(SSLセッションに固有である必要があります) - \return WOLFSSL_SUCCESS 成功した + + \brief この関数は、指定されたSSLセッションのPSAコンテキストをセットアップします + + \param ssl ctxを有効にするWOLFSSLへのポインタ + \param ctx struct psa_ssl_ctxへのポインタ(SSLセッションごとに一意である必要があります) + + \return WOLFSSL_SUCCESS 成功時 + \return BAD_FUNC_ARG sslまたはctxがNULLの場合 + + この関数は、指定されたSSLセッションへのTLSコールバック用のPSAコンテキストをセットアップします。セッションの終了時に、コンテキストによって使用されたリソースは、wolfSSL_free_psa_ctx()を使用して解放する必要があります。 + _Example_ \code - // Create new ssl session + // 新しいSSLセッションを作成 WOLFSSL *ssl; struct psa_ssl_ctx psa_ctx = { 0 }; ssl = wolfSSL_new(ctx); if (!ssl) return NULL; - // setup PSA context + // PSAコンテキストをセットアップ ret = wolfSSL_set_psa_ctx(ssl, ctx); \endcode + \sa wolfSSL_psa_set_private_key_id \sa wolfSSL_psa_free_psa_ctx */ @@ -42,23 +54,29 @@ int wolfSSL_set_psa_ctx(WOLFSSL *ssl, struct psa_ssl_ctx *ctx); /*! \ingroup PSA - \brief この関数はPSAコンテキストによって使用されるリソースを解放します + \brief この関数は、PSAコンテキストによって使用されるリソースを解放します + + \param ctx struct psa_ssl_ctxへのポインタ + \sa wolfSSL_set_psa_ctx */ void wolfSSL_free_psa_ctx(struct psa_ssl_ctx *ctx); /*! \ingroup PSA - \brief この関数は、SSLセッションによって使用される秘密鍵を設定します - \param ctx 構造体PSA_SSL_CTXへのポインタ + \brief この関数は、SSLセッションで使用される秘密鍵を設定します + + \param ctx struct psa_ssl_ctxへのポインタ + \param id 秘密鍵として使用されるキーのPSA ID + _Example_ \code - // Create new ssl session + // 新しいSSLセッションを作成 WOLFSSL *ssl; struct psa_ssl_ctx psa_ctx = { 0 }; psa_key_id_t key_id; - // key provisioning already done + // キープロビジョニングは既に完了 get_private_key_id(&key_id); ssl = wolfSSL_new(ctx); @@ -68,8 +86,9 @@ void wolfSSL_free_psa_ctx(struct psa_ssl_ctx *ctx); wolfSSL_psa_set_private_key_id(&psa_ctx, key_id); wolfSSL_set_psa_ctx(ssl, ctx); \endcode + \sa wolfSSL_set_psa_ctx */ int wolfSSL_psa_set_private_key_id(struct psa_ssl_ctx *ctx, - psa_key_id_t id); + psa_key_id_t id); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/pwdbased.h b/doc/dox_comments/header_files-ja/pwdbased.h index 9303c12618..838c896425 100644 --- a/doc/dox_comments/header_files-ja/pwdbased.h +++ b/doc/dox_comments/header_files-ja/pwdbased.h @@ -1,110 +1,128 @@ /*! \ingroup Password - \brief この機能はパスワードベースの鍵導出機能1(PBKDF1)を実装し、入力パスワードを連結ソルトと共により安全な鍵に変換し、出力に記憶する。これにより、HASH関数としてSHAとMD5を選択できます。 - \return 0 入力パスワードからキーの派生に正常に戻された - \return BAD_FUNC_ARG 与えられた無効なハッシュタイプがある場合(有効なタイプは:MD5とSHA)、反復は1未満、または要求されたキーの長さ(Klen)は提供されたハッシュのハッシュ長よりも大きいです。 - \return MEMORY_E SHAまたはMD5オブジェクトにメモリを割り当てるエラーがある場合は返されます。 - \param output 生成されたキーを保存するバッファへのポインタ。少なくともklen longになるべきです - \param passwd キーの派生に使用するパスワードを含むバッファへのポインタ - \param pLen キーの派生に使用するパスワードの長さ - \param salt 鍵由来に使用するソルトを含むバッファへのポインター - \param sLen ソルトの長さ - \param iterations ハッシュを処理するための回数 - \param kLen 派生キーの希望の長さ。選択したハッシュのダイジェストサイズより長くしてはいけません + + \brief この関数は、パスワードベース鍵導出関数1(PBKDF1)を実装し、連結されたソルトを持つ入力パスワードをより安全な鍵に変換し、それをoutputに格納します。ユーザーはハッシュ関数としてSHAとMD5のいずれかを選択できます。 + + \return 0 入力パスワードから鍵の導出に成功した場合に返されます + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合(有効なタイプはMD5とSHA)、iterationsが1未満の場合、または要求された鍵の長さ(kLen)が提供されたハッシュのハッシュ長より大きい場合に返されます + \return MEMORY_E SHAまたはMD5オブジェクトのメモリ割り当て中にエラーが発生した場合に返されます + + \param output 生成された鍵を格納するバッファへのポインタ。少なくともkLenの長さである必要があります + \param passwd 鍵導出に使用するパスワードを含むバッファへのポインタ + \param pLen 鍵導出に使用するパスワードの長さ + \param salt 鍵導出に使用するソルトを含むバッファへのポインタ + \param sLen ソルトの長さ + \param iterations ハッシュを処理する回数 + \param kLen 導出される鍵の希望の長さ。選択されたハッシュのダイジェストサイズより長くしないでください + \param hashType 使用するハッシュアルゴリズム。有効な選択肢はWC_MD5とWC_SHAです + _Example_ \code int ret; - byte key[MD5_DIGEST_SIZE]; - byte pass[] = { }; // initialize with password - byte salt[] = { }; // initialize with salt + byte key[WC_MD5_DIGEST_SIZE]; + byte pass[] = { }; // パスワードで初期化 + byte salt[] = { }; // ソルトで初期化 ret = wc_PBKDF1(key, pass, sizeof(pass), salt, sizeof(salt), 1000, - sizeof(key), MD5); + sizeof(key), WC_MD5); if ( ret != 0 ) { - // error deriving key from password + // パスワードからの鍵導出エラー } \endcode + \sa wc_PBKDF2 \sa wc_PKCS12_PBKDF */ int wc_PBKDF1(byte* output, const byte* passwd, int pLen, const byte* salt, int sLen, int iterations, int kLen, - int typeH); + int hashType); /*! \ingroup Password - \brief この機能はパスワードベースのキー導出機能2(PBKDF2)を実装し、入力パスワードを連結されたソルトとともにより安全なキーに変換し、出力に記憶されています。これにより、MD5、SHA、SHA256、SHA384、SHA512、およびBLAKE2Bなど、サポートされているHMACハッシュ関数のいずれかを選択できます。 - \return 0 入力パスワードからキーの派生に正常に戻された - \return BAD_FUNC_ARG 無効なハッシュタイプがある場合、または反復が1未満の場合は返されます。 - \return MEMORY_E HMACオブジェクトに割り振りメモリがある場合 - \param output 生成されたキーを保存するバッファへのポインタ。klen longにするべきです - \param passwd キーの派生に使用するパスワードを含むバッファへのポインタ - \param pLen キーの派生に使用するパスワードの長さ - \param salt 鍵由来に使用するソルトを含むバッファへのポインター - \param sLen ソルトの長さ - \param iterations ハッシュを処理するための回数 - \param kLen 派生鍵の望ましい長さ + + \brief この関数は、パスワードベース鍵導出関数2(PBKDF2)を実装し、連結されたソルトを持つ入力パスワードをより安全な鍵に変換し、それをoutputに格納します。ユーザーは、WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512を含む、サポートされているHMACハッシュ関数のいずれかを選択できます。 + + \return 0 入力パスワードから鍵の導出に成功した場合に返されます + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合、またはiterationsが1未満の場合に返されます + \return MEMORY_E HMACオブジェクトのメモリ割り当て中にエラーが発生した場合に返されます + + \param output 生成された鍵を格納するバッファへのポインタ。kLenの長さである必要があります + \param passwd 鍵導出に使用するパスワードを含むバッファへのポインタ + \param pLen 鍵導出に使用するパスワードの長さ + \param salt 鍵導出に使用するソルトを含むバッファへのポインタ + \param sLen ソルトの長さ + \param iterations ハッシュを処理する回数 + \param kLen 導出される鍵の希望の長さ + \param hashType 使用するハッシュアルゴリズム。有効な選択肢は、WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512です + _Example_ \code int ret; byte key[64]; - byte pass[] = { }; // initialize with password - byte salt[] = { }; // initialize with salt + byte pass[] = { }; // パスワードで初期化 + byte salt[] = { }; // ソルトで初期化 ret = wc_PBKDF2(key, pass, sizeof(pass), salt, sizeof(salt), 2048, sizeof(key), - SHA512); + WC_SHA512); if ( ret != 0 ) { - // error deriving key from password + // パスワードからの鍵導出エラー } \endcode + \sa wc_PBKDF1 \sa wc_PKCS12_PBKDF */ int wc_PBKDF2(byte* output, const byte* passwd, int pLen, const byte* salt, int sLen, int iterations, int kLen, - int typeH); + int hashType); /*! \ingroup Password - \brief この関数は、RFC 7292付録Bに記載されているパスワードベースのキー導出機能(PBKDF)を実装しています。この関数は、入力パスワードを連結ソルトでより安全なキーに変換します。それは、MD5、SHA、SHA256、SHA384、SHA512、およびBLAKE2Bを含む、ユーザーはサポートされているHMACハッシュ関数のいずれかを選択できます。 - \return 0 入力パスワードからキーの派生に正常に戻された - \return BAD_FUNC_ARG 返された無効なハッシュタイプが与えられた場合、繰り返しは1未満、または要求されたキーの長さ(klen)が提供されたハッシュのハッシュ長よりも大きいです。 - \return MEMORY_E 割り当てメモリがある場合は返されます - \return MP_INIT_E キー生成中にエラーがある場合は返却される可能性があります - \return MP_READ_E キー生成中にエラーがある場合は返却される可能性があります - \return MP_CMP_E キー生成中にエラーがある場合は返却される可能性があります - \return MP_INVMOD_E キー生成中にエラーがある場合は返却される可能性があります - \return MP_EXPTMOD_E キー生成中にエラーがある場合は返却される可能性があります - \return MP_MOD_E キー生成中にエラーがある場合は返却される可能性があります - \return MP_MUL_E キー生成中にエラーがある場合は返却される可能性があります - \return MP_ADD_E キー生成中にエラーがある場合は返却される可能性があります - \return MP_MULMOD_E キー生成中にエラーがある場合は返却される可能性があります - \return MP_TO_E キー生成中にエラーがある場合は返却される可能性があります - \return MP_MEM キー生成中にエラーがある場合は返却される可能性があります - \param output 生成されたキーを保存するバッファへのポインタ。klen longにするべきです - \param passwd キーの派生に使用するパスワードを含むバッファへのポインタ - \param pLen キーの派生に使用するパスワードの長さ - \param salt 鍵由来に使用するソルトを含むバッファへのポインター - \param sLen ソルトの長さ - \param iterations ハッシュを処理するための回数 - \param kLen 派生鍵の望ましい長さ - \param hashType 使用するハッシュアルゴリズム有効な選択肢は次のとおりです.MD5、SHA、SHA256、SHA384、SHA512、およびBLAKE2B + + \brief この関数は、RFC 7292付録Bに記述されているパスワードベース鍵導出関数(PBKDF)を実装します。この関数は、連結されたソルトを持つ入力パスワードをより安全な鍵に変換し、それをoutputに格納します。ユーザーは、WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512を含む、サポートされているHMACハッシュ関数のいずれかを選択できます。 + + \return 0 入力パスワードから鍵の導出に成功した場合に返されます + \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合、iterationsが1未満の場合、または要求された鍵の長さ(kLen)が提供されたハッシュのハッシュ長より大きい場合に返されます + \return MEMORY_E メモリ割り当て中にエラーが発生した場合に返されます + \return MP_INIT_E 鍵生成中にエラーが発生した場合に返される可能性があります + \return MP_READ_E 鍵生成中にエラーが発生した場合に返される可能性があります + \return MP_CMP_E 鍵生成中にエラーが発生した場合に返される可能性があります + \return MP_INVMOD_E 鍵生成中にエラーが発生した場合に返される可能性があります + \return MP_EXPTMOD_E 鍵生成中にエラーが発生した場合に返される可能性があります + \return MP_MOD_E 鍵生成中にエラーが発生した場合に返される可能性があります + \return MP_MUL_E 鍵生成中にエラーが発生した場合に返される可能性があります + \return MP_ADD_E 鍵生成中にエラーが発生した場合に返される可能性があります + \return MP_MULMOD_E 鍵生成中にエラーが発生した場合に返される可能性があります + \return MP_TO_E 鍵生成中にエラーが発生した場合に返される可能性があります + \return MP_MEM 鍵生成中にエラーが発生した場合に返される可能性があります + + \param output 生成された鍵を格納するバッファへのポインタ。kLenの長さである必要があります + \param passwd 鍵導出に使用するパスワードを含むバッファへのポインタ + \param passLen 鍵導出に使用するパスワードの長さ + \param salt 鍵導出に使用するソルトを含むバッファへのポインタ + \param saltLen ソルトの長さ + \param iterations ハッシュを処理する回数 + \param kLen 導出される鍵の希望の長さ + \param hashType 使用するハッシュアルゴリズム。有効な選択肢は、WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512です + \param id 鍵生成の目的を示すバイト識別子。鍵出力を多様化するために使用され、次のように割り当てる必要があります。ID=1: 疑似乱数ビットは、暗号化または復号を実行するための鍵材料として使用されます。ID=2: 疑似乱数ビットは、暗号化または復号のためのIV(初期値)として使用されます。ID=3: 疑似乱数ビットは、MAC処理のための完全性鍵として使用されます。 + _Example_ \code int ret; byte key[64]; - byte pass[] = { }; // initialize with password - byte salt[] = { }; // initialize with salt + byte pass[] = { }; // パスワードで初期化 + byte salt[] = { }; // ソルトで初期化 ret = wc_PKCS12_PBKDF(key, pass, sizeof(pass), salt, sizeof(salt), 2048, sizeof(key), SHA512, 1); if ( ret != 0 ) { - // error deriving key from password + // パスワードからの鍵導出エラー } \endcode + \sa wc_PBKDF1 \sa wc_PBKDF2 */ -int wc_PKCS12_PBKDF(byte* output, const byte* passwd, int pLen, - const byte* salt, int sLen, int iterations, - int kLen, int typeH, int purpose); +int wc_PKCS12_PBKDF(byte* output, const byte* passwd, int passLen, + const byte* salt, int saltLen, int iterations, + int kLen, int hashType, int id); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/quic.h b/doc/dox_comments/header_files-ja/quic.h index d3f33b4bd0..d8a14019ec 100644 --- a/doc/dox_comments/header_files-ja/quic.h +++ b/doc/dox_comments/header_files-ja/quic.h @@ -1,603 +1,575 @@ /*! - \ingroup QUIC + \ingroup QUIC - \brief ハンドシェイク中にシークレットが生成されたときに呼び出されるコールバック。 - QUIC プロトコル ハンドラはパケットの暗号化/復号化を実行するため、 - レベル Early_data/handshake/application のネゴシエートされたシークレットが必要です。 + \brief ハンドシェイク中にシークレットが生成されたときに呼び出されるコールバック。 + QUICプロトコルハンドラはパケットの暗号化/復号を実行するため、early_data/handshake/applicationレベルのネゴシエートされたシークレットが必要です。 - コールバックは、ハンドシェイク中に数回呼び出されます。 両方のどちらか - または、読み取りシークレットまたは書き込みシークレットのみが提供される場合があります。 これは、 - 指定された暗号化レベルはすでに有効になっています。 + このコールバックはハンドシェイク中に数回呼び出されます。読み取りまたは書き込みシークレットの両方、または一方のみが提供される場合があります。これは、与えられた暗号化レベルがすでに有効になっていることを意味するものではありません。 - \return 成功すると 1 を返し、失敗すると 0 を返します。 + \return 1 成功時、0 失敗時。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param level - シークレットの暗号化レベル - \param read_secret - 特定のレベルで復号化に使用されるシークレット。NULL の場合があります。 - \param write_secret - 特定のレベルで暗号化に使用されるシークレット。NULL の場合があります。 - \param secret_len - シークレットの長さ + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param level - シークレットが対応する暗号化レベル。 + \param read_secret - 与えられたレベルでの復号に使用されるシークレット、NULLの場合があります。 + \param write_secret - 与えられたレベルでの暗号化に使用されるシークレット、NULLの場合があります。 + \param secret_len - シークレットの長さ。 - \sa wolfSSL_set_quic_method + \sa wolfSSL_set_quic_method */ -int (*set_encryption_secrets)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL レベル, - const uint8_t *read_secret, - const uint8_t *write_secret, size_t secret_len); +int (*set_encryption_secrets)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL level, + const uint8_t *read_secret, + const uint8_t *write_secret, size_t secret_len); /*! - \ingroup QUIC + \ingroup QUIC - \brief ハンドシェイク CRYPTO データをピアに転送するために呼び出されるコールバック。 - この方法で転送されるデータは暗号化されません。 QUICの仕事です - これを行うためのプロトコル実装。 どのシークレットを使用するか - 指定された暗号化レベルによって決まります。 + \brief ハンドシェイクCRYPTOデータをピアに転送するために呼び出されるコールバック。 + この方法で転送されるデータは暗号化されていません。これを行うのはQUICプロトコル実装の役割です。使用するシークレットは、指定された暗号化レベルによって決定されます。 - このコールバックは、ハンドシェイク中またはポスト ハンドシェイク中に数回呼び出される場合があります。 - 処理。 データは完全な CRYPTO レコードをカバーする場合がありますが、 - 部分的であること。 ただし、コールバックは以前にすべてのレコード データを受信しています。 - 別の暗号化レベルを使用しています。 + このコールバックは、ハンドシェイクまたはポストハンドシェイク処理中に数回呼び出される場合があります。データは完全なCRYPTOレコードをカバーする場合もありますが、部分的な場合もあります。ただし、別の暗号化レベルを使用する前に、コールバックはすべてのレコードデータを受信します。 - \return 成功すると 1 を返し、失敗すると 0 を返します。 + \return 1 成功時、0 失敗時。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param level - データの暗号化に使用する暗号化レベル - \param data - データ自体 - \param len - データの長さ + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param level - データの暗号化に使用する暗号化レベル。 + \param data - データ自体。 + \param len - データの長さ。 - \sa wolfSSL_set_quic_method + \sa wolfSSL_set_quic_method */ -int (*add_handshake_data)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL レベル, - const uint8_t *data, size_t len); +int (*add_handshake_data)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL level, + const uint8_t *data, size_t len); /*! - \ingroup QUIC + \ingroup QUIC - \brief 送信するデータのアドバイザリ フラッシュのために呼び出されるコールバック。 + \brief 送信するデータのアドバイザリーフラッシュのために呼び出されるコールバック。 - \return 成功すると 1 を返し、失敗すると 0 を返します。 + \return 1 成功時、0 失敗時。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_set_quic_method + \sa wolfSSL_set_quic_method */ int (*flush_flight)(WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief 処理中に SSL アラートが発生したときに呼び出されるコールバック。 + \brief 処理中にSSLアラートが発生したときに呼び出されるコールバック。 - \return 成功すると 1 を返し、失敗すると 0 を返します。 + \return 1 成功時、0 失敗時。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param level - アラートが発生したときに有効だった暗号化レベル - \param alert - エラー + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param level - アラートが発生したときに有効だった暗号化レベル。 + \param alert - エラー。 - \sa wolfSSL_set_quic_method + \sa wolfSSL_set_quic_method */ -int (*send_alert)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL レベル, uint8_t アラート); +int (*send_alert)(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL level, uint8_t alert); /*! - \ingroup QUIC + \ingroup QUIC - \brief WOLFSSL_CTX および派生したすべての WOLFSSL インスタンスに対して QUIC プロトコルを有効にします - 必要な 4 つのコールバックを提供します。 CTX は TLSv1.3 である必要があります。 + \brief 必要な4つのコールバックを提供することにより、WOLFSSL_CTXおよびすべての派生WOLFSSLインスタンスに対してQUICプロトコルを有効化します。CTXはTLSv1.3である必要があります。 - 渡された quic_method には、SSL インスタンスよりも長い寿命が必要です。 - コピーされません。 すべてのコールバックを提供する必要があります。 + 渡されたquic_methodは、SSLインスタンスよりも長い寿命を持つ必要があります。コピーされません。すべてのコールバックを提供する必要があります。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param ctx - wolfSSL_CTX_new() を使用して作成された WOLFSSL_CTX 構造体へのポインター。 - \param quic_method - コールバック構造 + \param ctx - wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + \param quic_method - コールバック構造体。 - \sa wolfSSL_is_quic - \sa wolfSSL_set_quic_method + \sa wolfSSL_is_quic + \sa wolfSSL_set_quic_method */ int wolfSSL_CTX_set_quic_method(WOLFSSL_CTX *ctx, const WOLFSSL_QUIC_METHOD *quic_method); /*! - \ingroup QUIC + \ingroup QUIC - \brief を提供して、WOLFSSL インスタンスの QUIC プロトコルを有効にします。 - 4 つのコールバックが必要です。 WOLFSSL は TLSv1.3 である必要があります。 + \brief 必要な4つのコールバックを提供することにより、WOLFSSLインスタンスに対してQUICプロトコルを有効化します。WOLFSSLはTLSv1.3である必要があります。 - 渡された quic_method には、SSL インスタンスよりも長い寿命が必要です。 - コピーされません。 すべてのコールバックを提供する必要があります。 + 渡されたquic_methodは、SSLインスタンスよりも長い寿命を持つ必要があります。コピーされません。すべてのコールバックを提供する必要があります。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param quic_method - コールバック構造 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param quic_method - コールバック構造体。 - \sa wolfSSL_is_quic - \sa wolfSSL_CTX_set_quic_method + \sa wolfSSL_is_quic + \sa wolfSSL_CTX_set_quic_method */ int wolfSSL_set_quic_method(WOLFSSL *ssl, const WOLFSSL_QUIC_METHOD *quic_method); /*! - \ingroup QUIC + \ingroup QUIC - \brief QUIC が WOLFSSL インスタンスでアクティブ化されているかどうかを確認します。 + \brief WOLFSSLインスタンスでQUICが有効化されているかどうかを確認します。 - \return WOLFSSL が QUIC を使用している場合は 1 を返します。 + \return 1 WOLFSSLがQUICを使用している場合。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_CTX_quic_method - \sa wolfSSL_CTX_set_quic_method + \sa wolfSSL_CTX_quic_method + \sa wolfSSL_CTX_set_quic_method */ int wolfSSL_is_quic(WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief 現在使用中の読み取りの暗号化レベルを決定します。 場合にのみ意味があります。 - WOLFSSL インスタンスは QUIC を使用しています。 + \brief 現在使用中の読み取り用の暗号化レベルを決定します。WOLFSSLインスタンスがQUICを使用している場合にのみ意味があります。 - 有効レベルは、データを返すときは常にパラメーターであることに注意してください。 - 前方へ。 ピアからのデータは、これを介して報告される以外のレベルで到着する可能性があります - 関数。 + 有効なレベルは、データをやり取りする際に常にパラメータです。ピアからのデータは、この関数で報告されるレベル以外のレベルで到着する可能性があります。 - \return 暗号化レベル。 + \return 暗号化レベル。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_quic_write_level + \sa wolfSSL_quic_write_level */ WOLFSSL_ENCRYPTION_LEVEL wolfSSL_quic_read_level(const WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief 現在使用中の書き込みの暗号化レベルを決定します。 場合にのみ意味があります。 - WOLFSSL インスタンスは QUIC を使用しています。 + \brief 現在使用中の書き込み用の暗号化レベルを決定します。WOLFSSLインスタンスがQUICを使用している場合にのみ意味があります。 - 有効レベルは、データを返すときは常にパラメーターであることに注意してください。 - 前方へ。 ピアからのデータは、これを介して報告される以外のレベルで到着する可能性があります - 関数。 + 有効なレベルは、データをやり取りする際に常にパラメータです。ピアからのデータは、この関数で報告されるレベル以外のレベルで到着する可能性があります。 - \return 暗号化レベル。 + \return 暗号化レベル。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_quic_read_level + \sa wolfSSL_quic_read_level */ WOLFSSL_ENCRYPTION_LEVEL wolfSSL_quic_write_level(const WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief どの QUIC バージョンを使用するかを設定します。 これを呼ばずに、 - WOLFSSL は両方 (draft-27 と v1) をサーバーに提供します。 受け入れる - クライアントからの両方と、最新のものをネゴシエートします。 + \brief 使用するQUICバージョンを設定します。これを呼び出さない場合、WOLFSSLは両方(draft-27とv1)をサーバーに提供し、またはクライアントから両方を受け入れて最新のものをネゴシエートします。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param use_legacy - ドラフト 27 を使用する場合は true、QUICv1 のみを使用する場合は 0。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param use_legacy - draft-27を使用する場合はtrue、QUICv1のみを使用する場合は0。 - \sa wolfSSL_set_quic_transport_version + \sa wolfSSL_set_quic_transport_version */ void wolfSSL_set_quic_use_legacy_codepoint(WOLFSSL *ssl, int use_legacy); /*! - \ingroup QUIC + \ingroup QUIC - \brief どの QUIC バージョンを使用するかを設定します。 + \brief 使用するQUICバージョンを設定します。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param version - QUIC バージョン用に定義された TLS 拡張。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param version - QUICバージョンに定義されたTLS拡張。 - \sa wolfSSL_set_quic_use_legacy_codepoint + \sa wolfSSL_set_quic_use_legacy_codepoint */ -void wolfSSL_set_quic_transport_version(WOLFSSL *ssl, int バージョン); +void wolfSSL_set_quic_transport_version(WOLFSSL *ssl, int version); /*! - \ingroup QUIC + \ingroup QUIC - \brief 構成された QUIC バージョンを取得します。 + \brief 設定されたQUICバージョンを取得します。 - \return 構成されたバージョンの TLS 拡張。 + \return 設定されたバージョンのTLS拡張。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_set_quic_use_legacy_codepoint - \sa wolfSSL_set_quic_transport_version + \sa wolfSSL_set_quic_use_legacy_codepoint + \sa wolfSSL_set_quic_transport_version */ int wolfSSL_get_quic_transport_version(const WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief 使用する QUIC トランスポート パラメータを設定します。 + \brief 使用するQUICトランスポートパラメータを設定します。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param params - 使用するパラメータ バイト - ·param params_len - パラメータの長さ + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param params - 使用するパラメータバイト。 + \param params_len - パラメータの長さ。 - \sa wolfSSL_set_quic_use_legacy_codepoint - \sa wolfSSL_set_quic_transport_version + \sa wolfSSL_set_quic_use_legacy_codepoint + \sa wolfSSL_set_quic_transport_version */ int wolfSSL_set_quic_transport_params(WOLFSSL *ssl, const uint8_t *params, size_t params_len); /*! - \ingroup QUIC + \ingroup QUIC - \brief ネゴシエートされた QUIC トランスポート バージョンを取得します。 これは与えるだけです - それぞれの TLS 拡張機能が有効になった後に呼び出されると、意味のある結果が得られます。 - ピアから見られました。 + \brief ネゴシエートされたQUICトランスポートバージョンを取得します。これは、ピアからの該当するTLS拡張が確認された後に呼び出された場合にのみ意味のある結果を提供します。 - \return ネゴシエートされたバージョンまたは -1 を返します。 + \return ネゴシエートされたバージョンまたは-1。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_set_quic_use_legacy_codepoint - \sa wolfSSL_set_quic_transport_version + \sa wolfSSL_set_quic_use_legacy_codepoint + \sa wolfSSL_set_quic_transport_version */ int wolfSSL_get_peer_quic_transport_version(const WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief ネゴシエートされた QUIC トランスポート パラメータを取得します。 これは与えるだけです - それぞれの TLS 拡張機能が有効になった後に呼び出されると、意味のある結果が得られます。 - ピアから見られました。 + \brief ネゴシエートされたQUICトランスポートパラメータを取得します。これは、ピアからの該当するTLS拡張が確認された後に呼び出された場合にのみ意味のある結果を提供します。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param out_params - ピアに送信されるパラメーター。利用できない場合は NULL に設定されます。 - \param out_params_len - ピアに送信されるパラメータの長さ。利用できない場合は 0 に設定 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param out_params - ピアによって送信されたパラメータ、利用できない場合はNULLに設定されます。 + \param out_params_len - ピアによって送信されたパラメータの長さ、利用できない場合は0に設定されます。 - \sa wolfSSL_get_peer_quic_transport_version + \sa wolfSSL_get_peer_quic_transport_version */ void wolfSSL_get_peer_quic_transport_params(const WOLFSSL *ssl, const uint8_t **out_params, size_t *out_params_len); /*! - \ingroup QUIC + \ingroup QUIC - \brief 初期データを有効にするかどうかを構成します。 サーバーがシグナルを送ることを目的としています - これをクライアントに。 + \brief Early Dataが有効かどうかを設定します。サーバーがクライアントにこれを通知することを目的としています。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param enabled - != 初期データが有効な場合は 0 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param enabled - early dataが有効な場合は!= 0。 */ void wolfSSL_set_quic_early_data_enabled(WOLFSSL *ssl, int enabled); /*! - \ingroup QUIC + \ingroup QUIC - \brief 「飛行中」のデータ量についてアドバイスを得る。 未承認 - 指定された暗号化レベルで。 これはWOLFSSLインスタンスのデータ量です - バッファする準備ができています。 + \brief 与えられた暗号化レベルで「インフライト」であるべき、つまり未確認であるべきデータの量についてのアドバイスを取得します。これは、WOLFSSLインスタンスがバッファリングする準備ができているデータの量です。 - \return 飛行中の推奨最大データを返す + \return 推奨される最大インフライトデータ。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param level - 問い合わせる暗号化レベル + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param level - 問い合わせる暗号化レベル。 */ -size_t wolfSSL_quic_max_handshake_flight_len(const WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL レベル); +size_t wolfSSL_quic_max_handshake_flight_len(const WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL level); /*! - \ingroup QUIC + \ingroup QUIC - \brief 復号化された CRYPTO データを、さらに処理するために WOLFSSL インスタンスに渡します。 - 通話間の暗号化レベルは、すべて増加することが許可されており、 - また、暗号化の変更前にデータレコードが完全であることを確認しました - レベルが受け入れられます。 + \brief 復号されたCRYPTOデータをWOLFSSLインスタンスに渡してさらに処理します。 + 呼び出し間の暗号化レベルは増加することのみが許可され、暗号化レベルの変更が受け入れられる前にデータレコードが完全であることもチェックされます。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 - \param level - データが暗号化されたレベル - \param data - データ自体 - \param len - データの長さ + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param level - データが暗号化されていたレベル。 + \param data - データ自体。 + \param len - データの長さ。 - \sa wolfSSL_process_quic_post_handshake + \sa wolfSSL_process_quic_post_handshake + \sa wolfSSL_quic_read_write + \sa wolfSSL_accept + \sa wolfSSL_connect */ -int wolfSSL_provide_quic_data(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL レベル, const uint8_t *data, size_t len); +int wolfSSL_provide_quic_data(WOLFSSL *ssl, WOLFSSL_ENCRYPTION_LEVEL level, const uint8_t *data, size_t len); /*! - \ingroup QUIC + \ingroup QUIC - \brief ハンドシェイク後に提供されたすべての CRYPTO レコードを処理します - 完了しました。 それより前に呼び出すと失敗します。 + \brief ハンドシェイクが完了した後に提供されたCRYPTOレコードを処理します。それ以前に呼び出された場合は失敗します。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_provide_quic_data - \sa wolfSSL_quic_read_write - \sa wolfSSL_accept - \sa wolfSSL_connect + \sa wolfSSL_provide_quic_data + \sa wolfSSL_quic_read_write + \sa wolfSSL_accept + \sa wolfSSL_connect */ WOLFSSL_API int wolfSSL_process_quic_post_handshake(WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief ハンドシェイク中またはハンドシェイク後に提供されたすべての CRYPTO レコードを処理します。 - ハンドシェイクがまだ完了していない場合は進行し、そうでない場合は次のように機能します - wolfSSL_process_quic_post_handshake()。 + \brief ハンドシェイク中またはハンドシェイク後に提供されたCRYPTOレコードを処理します。 + ハンドシェイクがまだ完了していない場合はハンドシェイクを進行させ、そうでない場合はwolfSSL_process_quic_post_handshake()のように動作します。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_provide_quic_data - \sa wolfSSL_quic_read_write - \sa wolfSSL_accept - \sa wolfSSL_connect + \sa wolfSSL_provide_quic_data + \sa wolfSSL_quic_read_write + \sa wolfSSL_accept + \sa wolfSSL_connect */ int wolfSSL_quic_read_write(WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief TLS ハンドシェイクでネゴシエートされた AEAD 暗号を取得します。 + \brief TLSハンドシェイクでネゴシエートされたAEAD暗号を取得します。 - \return ネゴシエートされた暗号、または決定されない場合は NULL を返します。 + \return ネゴシエートされた暗号、または決定されていない場合はNULL。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_quic_aad_is_gcm - \sa wolfSSL_quic_aad_is_ccm - \sa wolfSSL_quic_aad_is_chacha20 - \sa wolfSSL_quic_get_aad_tag_len - \sa wolfSSL_quic_get_md - \sa wolfSSL_quic_get_hp - \sa wolfSSL_quic_crypt_new - \sa wolfSSL_quic_aad_encrypt - \sa wolfSSL_quic_aad_decrypt + \sa wolfSSL_quic_aead_is_gcm + \sa wolfSSL_quic_aead_is_ccm + \sa wolfSSL_quic_aead_is_chacha20 + \sa wolfSSL_quic_get_aead_tag_len + \sa wolfSSL_quic_get_md + \sa wolfSSL_quic_get_hp + \sa wolfSSL_quic_crypt_new + \sa wolfSSL_quic_aead_encrypt + \sa wolfSSL_quic_aead_decrypt */ -const WOLFSSL_EVP_CIPHER *wolfSSL_quic_get_aad(WOLFSSL *ssl); +const WOLFSSL_EVP_CIPHER *wolfSSL_quic_get_aead(WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief AEAD 暗号が GCM かどうかを確認します。 + \brief AEAD暗号がGCMであるかどうかを確認します。 - \return != 0 (AEAD 暗号が GCM の場合)。 + \return AEAD暗号がGCMの場合は!= 0。 - \param cipher - 暗号 + \param cipher - 暗号。 - \sa wolfSSL_quic_get_aad - \sa wolfSSL_quic_aad_is_ccm - \sa wolfSSL_quic_aad_is_chacha20 - \sa wolfSSL_quic_get_aad_tag_len - \sa wolfSSL_quic_get_md - \sa wolfSSL_quic_get_hp - \sa wolfSSL_quic_crypt_new - \sa wolfSSL_quic_aad_encrypt - \sa wolfSSL_quic_aad_decrypt + \sa wolfSSL_quic_get_aead + \sa wolfSSL_quic_aead_is_ccm + \sa wolfSSL_quic_aead_is_chacha20 + \sa wolfSSL_quic_get_aead_tag_len + \sa wolfSSL_quic_get_md + \sa wolfSSL_quic_get_hp + \sa wolfSSL_quic_crypt_new + \sa wolfSSL_quic_aead_encrypt + \sa wolfSSL_quic_aead_decrypt */ int wolfSSL_quic_aead_is_gcm(const WOLFSSL_EVP_CIPHER *aead_cipher); /*! - \ingroup QUIC + \ingroup QUIC - \brief AEAD 暗号が CCM かどうかを確認します。 + \brief AEAD暗号がCCMであるかどうかを確認します。 - \return != 0 AEAD 暗号が CCM の場合。 + \return AEAD暗号がCCMの場合は!= 0。 - \param cipher - 暗号 + \param cipher - 暗号。 - \sa wolfSSL_quic_get_aad - \sa wolfSSL_quic_aad_is_gcm - \sa wolfSSL_quic_aad_is_chacha20 - \sa wolfSSL_quic_get_aad_tag_len - \sa wolfSSL_quic_get_md - \sa wolfSSL_quic_get_hp - \sa wolfSSL_quic_crypt_new - \sa wolfSSL_quic_aad_encrypt - \sa wolfSSL_quic_aad_decrypt + \sa wolfSSL_quic_get_aead + \sa wolfSSL_quic_aead_is_gcm + \sa wolfSSL_quic_aead_is_chacha20 + \sa wolfSSL_quic_get_aead_tag_len + \sa wolfSSL_quic_get_md + \sa wolfSSL_quic_get_hp + \sa wolfSSL_quic_crypt_new + \sa wolfSSL_quic_aead_encrypt + \sa wolfSSL_quic_aead_decrypt */ int wolfSSL_quic_aead_is_ccm(const WOLFSSL_EVP_CIPHER *aead_cipher); /*! - \ingroup QUIC + \ingroup QUIC - \brief AEAD 暗号が CHACHA20 かどうかを確認します。 + \brief AEAD暗号がCHACHA20であるかどうかを確認します。 - \return != 0 は、AEAD 暗号が CHACHA20 の場合です。 + \return AEAD暗号がCHACHA20の場合は!= 0。 - \param cipher - 暗号 + \param cipher - 暗号。 - \sa wolfSSL_quic_get_aad - \sa wolfSSL_quic_aad_is_ccm - \sa wolfSSL_quic_aad_is_gcm - \sa wolfSSL_quic_get_aad_tag_len - \sa wolfSSL_quic_get_md - \sa wolfSSL_quic_get_hp - \sa wolfSSL_quic_crypt_new - \sa wolfSSL_quic_aad_encrypt - \sa wolfSSL_quic_aad_decrypt + \sa wolfSSL_quic_get_aead + \sa wolfSSL_quic_aead_is_ccm + \sa wolfSSL_quic_aead_is_gcm + \sa wolfSSL_quic_get_aead_tag_len + \sa wolfSSL_quic_get_md + \sa wolfSSL_quic_get_hp + \sa wolfSSL_quic_crypt_new + \sa wolfSSL_quic_aead_encrypt + \sa wolfSSL_quic_aead_decrypt */ int wolfSSL_quic_aead_is_chacha20(const WOLFSSL_EVP_CIPHER *aead_cipher); /*! - \ingroup QUIC + \ingroup QUIC - \brief AEAD 暗号のタグの長さを決定します。 + \brief AEAD暗号のタグ長を決定します。 - \return AEAD 暗号のタグ長。 + \return AEAD暗号のタグ長。 - \param cipher - 暗号 + \param cipher - 暗号。 - \sa wolfSSL_quic_get_aad + \sa wolfSSL_quic_get_aead */ WOLFSSL_API size_t wolfSSL_quic_get_aead_tag_len(const WOLFSSL_EVP_CIPHER *aead_cipher); /*! - \ingroup QUIC + \ingroup QUIC - \brief TLS ハンドシェイクでネゴシエートされたメッセージ ダイジェストを決定します。 + \brief TLSハンドシェイクでネゴシエートされたメッセージダイジェストを決定します。 - \return TLS ハンドシェイクでネゴシエートされたメッセージ ダイジェストを返す + \return TLSハンドシェイクでネゴシエートされたメッセージダイジェスト。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_quic_get_aad - \sa wolfSSL_quic_get_hp + \sa wolfSSL_quic_get_aead + \sa wolfSSL_quic_get_hp */ WOLFSSL_API const WOLFSSL_EVP_MD *wolfSSL_quic_get_md(WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief TLS ハンドシェイクでネゴシエートされたヘッダー保護暗号を決定します。 + \brief TLSハンドシェイクでネゴシエートされたヘッダー保護暗号を決定します。 - \return TLS ハンドシェイクでネゴシエートされたヘッダー保護暗号を返します + \return TLSハンドシェイクでネゴシエートされたヘッダー保護暗号。 - \param ssl - wolfSSL_new() を使用して作成された WOLFSSL 構造体へのポインタ。 + \param ssl - wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 - \sa wolfSSL_quic_get_aad - \sa wolfSSL_quic_get_md + \sa wolfSSL_quic_get_aead + \sa wolfSSL_quic_get_md */ const WOLFSSL_EVP_CIPHER *wolfSSL_quic_get_hp(WOLFSSL *ssl); /*! - \ingroup QUIC + \ingroup QUIC - \brief 暗号化/復号化のための暗号コンテキストを作成します。 + \brief 暗号化/復号用の暗号コンテキストを作成します。 - \return エラーの場合は、作成されたコンテキストまたは NULL を返します。 + \return 作成されたコンテキスト、またはエラーの場合はNULL。 - \param cipher - コンテキストで使用する暗号。 - \param key - コンテキストで使用するキー。 - \param iv - コンテキストで使用する iv。 - \param encrypt - 暗号化の場合は != 0、それ以外の場合は復号化 + \param cipher - コンテキストで使用する暗号。 + \param key - コンテキストで使用する鍵。 + \param iv - コンテキストで使用するiv。 + \param encrypt - 暗号化の場合は!= 0、そうでない場合は復号。 - \sa wolfSSL_quic_get_aad - \sa wolfSSL_quic_get_hp - \sa wolfSSL_quic_aad_encrypt - \sa wolfSSL_quic_aad_decrypt + \sa wolfSSL_quic_get_aead + \sa wolfSSL_quic_get_hp + \sa wolfSSL_quic_aead_encrypt + \sa wolfSSL_quic_aead_decrypt */ WOLFSSL_EVP_CIPHER_CTX *wolfSSL_quic_crypt_new(const WOLFSSL_EVP_CIPHER *cipher, - const uint8_t *key, const uint8_t *iv, int encrypt); + const uint8_t *key, const uint8_t *iv, int encrypt); /*! - \ingroup QUIC + \ingroup QUIC - \brief 指定されたコンテキストでプレーン テキストを暗号化します。 + \brief 与えられたコンテキストで平文を暗号化します。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param dest - 暗号化されたデータの書き込み先 - \param aead_ctx - 使用する暗号コンテキスト - \param plain - 暗号化するプレーン データ - \param plainlen - プレーン データの長さ - \param iv - 使用する iv - \param aad - 使用する追加 - \param aadlen - aad の長さ + \param dest - 暗号化されたデータを書き込む宛先。 + \param aead_ctx - 使用する暗号コンテキスト。 + \param plain - 暗号化する平文データ。 + \param plainlen - 平文データの長さ。 + \param iv - 使用するiv。 + \param aad - 使用するaad。 + \param aadlen - aadの長さ。 - \sa wolfSSL_quic_get_aad - \sa wolfSSL_quic_get_hp - \sa wolfSSL_quic_crypt_new - \sa wolfSSL_quic_aad_decrypt + \sa wolfSSL_quic_get_aead + \sa wolfSSL_quic_get_hp + \sa wolfSSL_quic_crypt_new + \sa wolfSSL_quic_aead_decrypt */ int wolfSSL_quic_aead_encrypt(uint8_t *dest, WOLFSSL_EVP_CIPHER_CTX *aead_ctx, - const uint8_t *plain, size_t plainlen, - const uint8_t *iv, const uint8_t *aad, size_t aadlen); + const uint8_t *plain, size_t plainlen, + const uint8_t *iv, const uint8_t *aad, size_t aadlen); /*! - \ingroup QUIC + \ingroup QUIC - \brief 指定されたコンテキストで暗号文を復号化します。 + \brief 与えられたコンテキストで暗号文を復号します。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param dest - プレーンテキストの書き込み先 - \param ctx - 使用する暗号コンテキスト - \param enc - 復号化する暗号化データ - \param envlen - 暗号化されたデータの長さ - \param iv - 使用する iv - \param aad - 使用する追加 - \param aadlen - aad の長さ + \param dest - 平文を書き込む宛先。 + \param ctx - 使用する暗号コンテキスト。 + \param enc - 復号する暗号化データ。 + \param envlen - 暗号化データの長さ。 + \param iv - 使用するiv。 + \param aad - 使用するaad。 + \param aadlen - aadの長さ。 - \sa wolfSSL_quic_get_aad - \sa wolfSSL_quic_get_hp - \sa wolfSSL_quic_crypt_new - \sa wolfSSL_quic_aad_encrypt + \sa wolfSSL_quic_get_aead + \sa wolfSSL_quic_get_hp + \sa wolfSSL_quic_crypt_new + \sa wolfSSL_quic_aead_encrypt */ -int wolfSSL_quic_aad_decrypt(uint8_t *dest, WOLFSSL_EVP_CIPHER_CTX *ctx, - const uint8_t *enc, size_t enclen, - const uint8_t *iv, const uint8_t *aad, size_t aadlen); +int wolfSSL_quic_aead_decrypt(uint8_t *dest, WOLFSSL_EVP_CIPHER_CTX *ctx, + const uint8_t *enc, size_t enclen, + const uint8_t *iv, const uint8_t *aad, size_t aadlen); /*! - \ingroup QUIC + \ingroup QUIC - \brief 擬似乱数キーを抽出します。 + \brief 疑似ランダム鍵を抽出します。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param dest - キーの書き込み先 - \param md - 使用するメッセージ ダイジェスト - \param secret - 使用するシークレット - \param secretlen - シークレットの長さ - \param salt - 使用するソルト - \param saltlen - ソルトの長さ + \param dest - 鍵を書き込む宛先。 + \param md - 使用するメッセージダイジェスト。 + \param secret - 使用するシークレット。 + \param secretlen - シークレットの長さ。 + \param salt - 使用するソルト。 + \param saltlen - ソルトの長さ。 - \sa wolfSSL_quic_hkdf_expand - \sa wolfSSL_quic_hkdf + \sa wolfSSL_quic_hkdf_expand + \sa wolfSSL_quic_hkdf */ int wolfSSL_quic_hkdf_extract(uint8_t *dest, const WOLFSSL_EVP_MD *md, - const uint8_t *secret, size_t secretlen, - const uint8_t *salt, size_t saltlen); + const uint8_t *secret, size_t secretlen, + const uint8_t *salt, size_t saltlen); /*! - \ingroup QUIC + \ingroup QUIC - \brief 疑似ランダム キーを新しいキーに展開します。 + \brief 疑似ランダム鍵を新しい鍵に拡張します。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param dest - キーの書き込み先 - \param destlen - 展開するキーの長さ - \param md - 使用するメッセージ ダイジェスト - \param secret - 使用するシークレット - \param secretlen - シークレットの長さ - \param info - 使用する情報 - \param infolen - 情報の長さ + \param dest - 鍵を書き込む宛先。 + \param destlen - 拡張する鍵の長さ。 + \param md - 使用するメッセージダイジェスト。 + \param secret - 使用するシークレット。 + \param secretlen - シークレットの長さ。 + \param info - 使用する情報。 + \param infolen - 情報の長さ。 - \sa wolfSSL_quic_hkdf_extract - \sa wolfSSL_quic_hkdf + \sa wolfSSL_quic_hkdf_extract + \sa wolfSSL_quic_hkdf */ int wolfSSL_quic_hkdf_expand(uint8_t *dest, size_t destlen, - const WOLFSSL_EVP_MD *md, - const uint8_t *secret, size_t secretlen, - const uint8_t *info, size_t infolen); + const WOLFSSL_EVP_MD *md, + const uint8_t *secret, size_t secretlen, + const uint8_t *info, size_t infolen); /*! - \ingroup QUIC + \ingroup QUIC - \brief 疑似乱数キーを展開して抽出します。 + \brief 疑似ランダム鍵を拡張および抽出します。 - \return WOLFSSL_SUCCESS 成功した場合。 + \return WOLFSSL_SUCCESS 成功した場合。 - \param dest - キーの書き込み先 - \param destlen - キーの長さ - \param md - 使用するメッセージ ダイジェスト - \param secret - 使用するシークレット - \param secretlen - シークレットの長さ - \param salt - 使用するソルト - \param saltlen - ソルトの長さ - \param info - 使用する情報 - \param infolen - 情報の長さ + \param dest - 鍵を書き込む宛先。 + \param destlen - 鍵の長さ。 + \param md - 使用するメッセージダイジェスト。 + \param secret - 使用するシークレット。 + \param secretlen - シークレットの長さ。 + \param salt - 使用するソルト。 + \param saltlen - ソルトの長さ。 + \param info - 使用する情報。 + \param infolen - 情報の長さ。 - \sa wolfSSL_quic_hkdf_extract - \sa wolfSSL_quic_hkdf_expand + \sa wolfSSL_quic_hkdf_extract + \sa wolfSSL_quic_hkdf_expand */ int wolfSSL_quic_hkdf(uint8_t *dest, size_t destlen, - const WOLFSSL_EVP_MD *md, - const uint8_t *secret, size_t secretlen, - const uint8_t *salt, size_t saltlen, - const uint8_t *info, size_t infolen); + const WOLFSSL_EVP_MD *md, + const uint8_t *secret, size_t secretlen, + const uint8_t *salt, size_t saltlen, + const uint8_t *info, size_t infolen); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/random.h b/doc/dox_comments/header_files-ja/random.h index 3720147087..5f6e7577e7 100644 --- a/doc/dox_comments/header_files-ja/random.h +++ b/doc/dox_comments/header_files-ja/random.h @@ -1,52 +1,69 @@ /*! \ingroup Random - \brief Init Global WhiteWood Netrandomのコンテキスト - \return 0 成功 - \return BAD_FUNC_ARG configfileがnullまたはタイムアウトのどちらかが否定的です。 - \return RNG_FAILURE_E RNGの初期化に失敗しました。 - \param configFile 設定ファイルへのパス - \param hmac_cb HMACコールバックを作成するにはオプションです。 + + \brief グローバルWhitewood netRandomコンテキストを初期化します + + \return 0 成功 + \return BAD_FUNC_ARG configFileがnullまたはtimeoutが負の値の場合。 + \return RNG_FAILURE_E rngの初期化に失敗しました。 + + \param configFile 設定ファイルへのパス + \param hmac_cb HMACコールバックを作成するためのオプション。 + \param timeout タイムアウト期間。 + _Example_ \code char* config = "path/to/config/example.conf"; - int time = // Some sufficient timeout value; + int time = // 十分なタイムアウト値; if (wc_InitNetRandom(config, NULL, time) != 0) { - // Some error occurred + // エラーが発生しました } \endcode + \sa wc_FreeNetRandom */ int wc_InitNetRandom(const char* configFile, wnr_hmac_key hmac_cb, int timeout); /*! \ingroup Random - \brief 無料のGlobal WhiteWood Netrandomコンテキスト。 - \return 0 成功 - \return BAD_MUTEX_E Wnr_Mutexでミューテックスをロックするエラー + + \brief グローバルWhitewood netRandomコンテキストを解放します。 + + \return 0 成功 + \return BAD_MUTEX_E wnr_mutexのミューテックスロックエラー + + \param none 戻り値なし。 + _Example_ \code int ret = wc_FreeNetRandom(); if(ret != 0) { - // Handle the error + // エラーを処理 } \endcode + \sa wc_InitNetRandom */ int wc_FreeNetRandom(void); /*! \ingroup Random - \brief RNGのシード(OSから)とキー暗号を取得します。割り当てられたRNG-> DRBG(決定論的ランダムビットジェネレータ)が割り当てられます(WC_FREERNGで割り当てられている必要があります)。これはブロッキング操作です。 - \return 0 成功しています。 - \return MEMORY_E XMallocに失敗しました - \return WINCRYPT_E WC_GENERATSEED:コンテキストの取得に失敗しました - \return CRYPTGEN_E WC_GENERATSEED:ランダムになりました - \return BAD_FUNC_ARG WC_RNG_GenerateBlock入力はNULLまたはSZがMAX_REQUEST_LENを超えています - \return DRBG_CONT_FIPS_E wc_rng_generateblock:hash_genはdrbg_cont_failureを返しました - \return RNG_FAILURE_E wc_rng_generateBlock:デフォルトエラーです。RNGのステータスはもともとOKではなく、drbg_failedに設定されています + + \brief rng用のシード(OSから)と鍵暗号を取得します。rng->drbg(決定論的乱数ビット生成器)が割り当てられます(wc_FreeRngで割り当て解除する必要があります)。これはブロッキング操作です。 + + \return 0 成功時。 + \return MEMORY_E XMALLOCが失敗しました + \return WINCRYPT_E wc_GenerateSeed: コンテキストの取得に失敗しました + \return CRYPTGEN_E wc_GenerateSeed: ランダムの取得に失敗しました + \return BAD_FUNC_ARG wc_RNG_GenerateBlock入力がnullまたはszがMAX_REQUEST_LENを超えています + \return DRBG_CONT_FIPS_E wc_RNG_GenerateBlock: Hash_genがDRBG_CONT_FAILUREを返しました + \return RNG_FAILURE_E wc_RNG_GenerateBlock: デフォルトエラー。rngのステータスが元々okでないか、DRBG_FAILEDに設定されています + + \param rng シードと鍵暗号で使用するために初期化される乱数生成器 + _Example_ \code RNG rng; @@ -55,16 +72,17 @@ int wc_FreeNetRandom(void); #ifdef HAVE_CAVIUM ret = wc_InitRngCavium(&rng, CAVIUM_DEV_ID); if (ret != 0){ - printf(“RNG Nitrox init for device: %d failed”, CAVIUM_DEV_ID); + printf("RNG Nitrox init for device: %d failed", CAVIUM_DEV_ID); return -1; } #endif ret = wc_InitRng(&rng); if (ret != 0){ - printf(“RNG init failed”); + printf("RNG init failed"); return -1; } \endcode + \sa wc_InitRngCavium \sa wc_RNG_GenerateBlock \sa wc_RNG_GenerateByte @@ -75,13 +93,18 @@ int wc_InitRng(WC_RNG*); /*! \ingroup Random - \brief 疑似ランダムデータのSZバイトを出力にコピーします。必要に応じてRNG(ブロッキング)します。 - \return 0 成功した - \return BAD_FUNC_ARG 入力はNULLまたはSZがMAX_REQUEST_LENを超えています - \return DRBG_CONT_FIPS_E hash_genはdrbg_cont_failureを返しました - \return RNG_FAILURE_E デフォルトのエラーRNGのステータスはもともとOKではなく、drbg_failedに設定されています - \param rng 乱数発生器はWC_INITRNGで初期化された - \param output ブロックがコピーされるバッファ + + \brief 疑似乱数データのszバイトをoutputにコピーします。必要に応じてrngを再シードします(ブロッキング)。 + + \return 0 成功時 + \return BAD_FUNC_ARG 入力がnullまたはszがMAX_REQUEST_LENを超えています + \return DRBG_CONT_FIPS_E Hash_genがDRBG_CONT_FAILUREを返しました + \return RNG_FAILURE_E デフォルトエラー。rngのステータスが元々okでないか、DRBG_FAILEDに設定されています + + \param rng wc_InitRngで初期化された乱数生成器 + \param output ブロックがコピーされるバッファ + \param sz 出力のサイズ(バイト単位) + _Example_ \code RNG rng; @@ -90,14 +113,15 @@ int wc_InitRng(WC_RNG*); int ret = wc_InitRng(&rng); if (ret != 0) { - return -1; //init of rng failed! + return -1; //rngの初期化失敗! } ret = wc_RNG_GenerateBlock(&rng, block, sz); if (ret != 0) { - return -1; //generating block failed! + return -1; //ブロック生成失敗! } \endcode + \sa wc_InitRngCavium, wc_InitRng \sa wc_RNG_GenerateByte \sa wc_FreeRng @@ -107,21 +131,29 @@ int wc_RNG_GenerateBlock(WC_RNG* rng, byte* b, word32 sz); /*! \ingroup Random - \brief 新しいWC_RNG構造を作成します。 - \return WC_RNG 成功の構造 - \return NULL 誤りに - \param heap ヒープ識別子へのポインタ - \param nonce nonceを含むバッファへのポインタ + + \brief 新しいWC_RNG構造体を作成します。 + + + \return WC_RNG 成功時の構造体 + \return NULL エラー時 + + + \param heap ヒープ識別子へのポインタ + \param nonce nonceを含むバッファへのポインタ + \param nonceSz nonceの長さ + _Example_ \code RNG rng; - byte nonce[] = { initialize nonce }; + byte nonce[] = { nonceを初期化 }; word32 nonceSz = sizeof(nonce); wc_rng_new(&nonce, nonceSz, &heap); \endcode + \sa wc_InitRng \sa wc_rng_free \sa wc_FreeRng @@ -131,12 +163,17 @@ WC_RNG* wc_rng_new(byte* nonce, word32 nonceSz, void* heap) /*! \ingroup Random - \brief wc_rng_generateBlockを呼び出して、疑似ランダムデータのバイトをbにコピーします。必要に応じてRNGが再販されます。 - \return 0 成功した - \return BAD_FUNC_ARG 入力はNULLまたはSZがMAX_REQUEST_LENを超えています - \return DRBG_CONT_FIPS_E hash_genはdrbg_cont_failureを返しました - \return RNG_FAILURE_E デフォルトのエラーRNGのステータスはもともとOKではなく、drbg_failedに設定されています - \param rng: 乱数発生器はWC_INITRNGで初期化された + + \brief 疑似乱数データの1バイトをbにコピーするためにwc_RNG_GenerateBlockを呼び出します。必要に応じてrngを再シードします。 + + \return 0 成功時 + \return BAD_FUNC_ARG 入力がnullまたはszがMAX_REQUEST_LENを超えています + \return DRBG_CONT_FIPS_E Hash_genがDRBG_CONT_FAILUREを返しました + \return RNG_FAILURE_E デフォルトエラー。rngのステータスが元々okでないか、DRBG_FAILEDに設定されています + + \param rng: wc_InitRngで初期化された乱数生成器 + \param b ブロックがコピーされる1バイトのバッファ + _Example_ \code RNG rng; @@ -145,14 +182,15 @@ WC_RNG* wc_rng_new(byte* nonce, word32 nonceSz, void* heap) int ret = wc_InitRng(&rng); if (ret != 0) { - return -1; //init of rng failed! + return -1; //rngの初期化失敗! } ret = wc_RNG_GenerateByte(&rng, b); if (ret != 0) { - return -1; //generating block failed! + return -1; //ブロック生成失敗! } \endcode + \sa wc_InitRngCavium \sa wc_InitRng \sa wc_RNG_GenerateBlock @@ -163,23 +201,29 @@ int wc_RNG_GenerateByte(WC_RNG* rng, byte* b); /*! \ingroup Random - \brief RNGがDRGBを安全に解放するために必要なときに呼び出されるべきです。ゼロとXfrees RNG-DRBG。 - \return 0 成功した - \return BAD_FUNC_ARG RNGまたはRNG-> DRGB NULL - \return RNG_FAILURE_E DRBGの割り当て解除に失敗しました + + \brief drgbを安全に解放するために、RNGが不要になったときに呼び出す必要があります。rng-drbgをゼロ化しXFREEします。 + + \return 0 成功時 + \return BAD_FUNC_ARG rngまたはrng->drgbがnull + \return RNG_FAILURE_E drbgの割り当て解除に失敗しました + + \param rng wc_InitRngで初期化された乱数生成器 + _Example_ \code RNG rng; int ret = wc_InitRng(&rng); if (ret != 0) { - return -1; //init of rng failed! + return -1; //rngの初期化失敗! } int ret = wc_FreeRng(&rng); if (ret != 0) { - return -1; //free of rng failed! + return -1; //rngの解放失敗! } \endcode + \sa wc_InitRngCavium \sa wc_InitRng \sa wc_RNG_GenerateBlock @@ -190,20 +234,26 @@ int wc_FreeRng(WC_RNG*); /*! \ingroup Random - \brief RNGを安全に自由に解放するためにRNGが不要になったときに呼び出されるべきです。 + + \brief rngを安全に解放するために、RNGが不要になったときに呼び出す必要があります。 + + + \param rng wc_InitRngで初期化された乱数生成器 + _Example_ \code RNG rng; - byte nonce[] = { initialize nonce }; + byte nonce[] = { nonceを初期化 }; word32 nonceSz = sizeof(nonce); rng = wc_rng_new(&nonce, nonceSz, &heap); - // use rng + // rngを使用 wc_rng_free(&rng); \endcode + \sa wc_InitRng \sa wc_rng_new \sa wc_FreeRng @@ -213,46 +263,50 @@ WC_RNG* wc_rng_free(WC_RNG* rng); /*! \ingroup Random - \brief DRBGの機能を作成しテストします。 - \return 0 成功した - \return BAD_FUNC_ARG ELTOPYAと出力はNULLにしないでください。Reseed Set EntropybがNULLでなければならない場合 - \return -1 テスト失敗 - \param int RESEED:設定されている場合は、Reseed機能をテストします - \param entropyA: DRGBをインスタンス化するエントロピー - \param entropyASz: バイト数のエントロピヤのサイズ - \param entropyB: Reseed Setを設定した場合、DRBGはEntropybでリサイードされます - \param entropyBSz: バイト単位のEntropybのサイズ - \param output: SEADRANDOMが設定されている場合は、Entropybに播種されたランダムなデータに初期化され、それ以外の場合はEntropya + + \brief drbgの機能を作成してテストします。 + + \return 0 成功時 + \return BAD_FUNC_ARG seedAとoutputはnullであってはなりません。reseedが設定されている場合、seedBはnullであってはなりません + \return -1 テスト失敗 + + \param int reseed: 設定されている場合、再シード機能をテストします + \param seedA: drgbをインスタンス化するシード + \param seedASz: seedAのサイズ(バイト単位) + \param seedB: reseedが設定されている場合、drbgはseedBで再シードされます + \param seedBSz: seedBのサイズ(バイト単位) + \param output: seedrandomが設定されている場合はseedBでシードされたランダムデータに初期化され、それ以外の場合はseedAでシードされます + \param outputSz: outputの長さ(バイト単位) + _Example_ \code byte output[SHA256_DIGEST_SIZE * 4]; - const byte test1EntropyB[] = ....; // test input for reseed false - const byte test1Output[] = ....; // testvector: expected output of - // reseed false + const byte test1EntropyB[] = ....; // reseed falseのテスト入力 + const byte test1Output[] = ....; // テストベクター: reseed falseの期待出力 ret = wc_RNG_HealthTest(0, test1Entropy, sizeof(test1Entropy), NULL, 0, output, sizeof(output)); if (ret != 0) - return -1;//healthtest without reseed failed + return -1;//再シードなしのヘルステスト失敗 if (XMEMCMP(test1Output, output, sizeof(output)) != 0) - return -1; //compare to testvector failed: unexpected output + return -1; //テストベクターとの比較失敗: 予期しない出力 - const byte test2EntropyB[] = ....; // test input for reseed - const byte test2Output[] = ....; // testvector expected output of reseed + const byte test2EntropyB[] = ....; // reseedのテスト入力 + const byte test2Output[] = ....; // テストベクターreseedの期待出力 ret = wc_RNG_HealthTest(1, test2EntropyA, sizeof(test2EntropyA), test2EntropyB, sizeof(test2EntropyB), output, sizeof(output)); if (XMEMCMP(test2Output, output, sizeof(output)) != 0) - return -1; //compare to testvector failed + return -1; //テストベクターとの比較失敗 \endcode + \sa wc_InitRngCavium \sa wc_InitRng \sa wc_RNG_GenerateBlock \sa wc_RNG_GenerateByte \sa wc_FreeRng */ -int wc_RNG_HealthTest(int reseed, - const byte* entropyA, word32 entropyASz, - const byte* entropyB, word32 entropyBSz, - byte* output, word32 outputSz); +int wc_RNG_HealthTest(int reseed, const byte* seedA, word32 seedASz, + const byte* seedB, word32 seedBSz, + byte* output, word32 outputSz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/ripemd.h b/doc/dox_comments/header_files-ja/ripemd.h index 73f4e4402a..02c1a087d2 100644 --- a/doc/dox_comments/header_files-ja/ripemd.h +++ b/doc/dox_comments/header_files-ja/ripemd.h @@ -1,17 +1,23 @@ /*! \ingroup RIPEMD - \brief この関数は、RIPemdのダイジェスト、バッファ、LOLEN ,HILENを初期化することによってRIPemd構造を初期化します。 - \return 0 機能の実行に成功したことに戻ります。RIPEMD構造が初期化されます。 - \return BAD_FUNC_ARG RIPEMD構造がNULLの場合に返されます。 + + \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) { - // Failure case. + // 失敗ケース } \endcode + \sa wc_RipeMdUpdate \sa wc_RipeMdFinal */ @@ -19,14 +25,19 @@ int wc_InitRipeMd(RipeMd*); /*! \ingroup RIPEMD - \brief この関数はデータ入力のRIPemdダイジェストを生成し、結果をRIPemd-> Digestバッファに格納します。WC_RIPEMDUPDATEを実行した後、生成されたRIPemd-> Digestを既知の認証タグに比較してメッセージの信頼性を比較する必要があります。 - \return 0 機能の実行に成功したことに戻ります。 - \return BAD_FUNC_ARG RIPEMD構造がNULLの場合、またはデータがNULLで、LENがゼロでない場合に返されます。データがNULLであり、LENが0の場合、この関数は実行されるはずです。 - \param ripemd: WC_INTRIPEMDで初期化されるRIPEMD構造へのポインタ - \param data ハッシュするデータ + + \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; // The data to be hashed + const byte* data; // ハッシュ化されるデータ .... RipeMd md; int ret; @@ -34,8 +45,9 @@ int wc_InitRipeMd(RipeMd*); if (ret == 0) { ret = wc_RipeMdUpdate(&md, plain, sizeof(plain)); if (ret != 0) { - // Failure case … + // 失敗ケース … \endcode + \sa wc_InitRipeMd \sa wc_RipeMdFinal */ @@ -43,28 +55,34 @@ int wc_RipeMdUpdate(RipeMd* ripemd, const byte* data, word32 len); /*! \ingroup RIPEMD - \brief この関数は計算されたダイジェストをハッシュにコピーします。無傷のブロックがある場合、この方法ではブロックを0Sでパッケージし、ハッシュにコピーする前にそのブロックのラウンドをダイジェストに含めます。RIPEMDの状態がリセットされます。 - \return 0 機能の実行に成功したことに戻ります。RIPEMD構造の状態がリセットされました。 - \return BAD_FUNC_ARG RIPEMD構造体またはハッシュパラメータがNULLの場合に返されます。 - \param ripemd WC_INITRIPEMDで初期化するRIPEMD構造へのポインタ、およびWC_RIPEMDUPDATEからハッシュを含む。状態はリセットされます + + \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; // The data to be hashed + const byte* data; // ハッシュ化されるデータ ... ret = wc_InitRipeMd(&md); if (ret == 0) { ret = wc_RipeMdUpdate(&md, plain, sizeof(plain)); if (ret != 0) { - // RipeMd Update Failure Case. + // RipeMd更新失敗ケース } ret = wc_RipeMdFinal(&md, digest); if (ret != 0) { - // RipeMd Final Failure Case. + // RipeMd Final失敗ケース }... \endcode + \sa none */ -int wc_RipeMdFinal(RipeMd* ripemd, byte* hash); +int wc_RipeMdFinal(RipeMd* ripemd, byte* hash); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/rsa.h b/doc/dox_comments/header_files-ja/rsa.h index 2ac0149bdd..4801345e4c 100644 --- a/doc/dox_comments/header_files-ja/rsa.h +++ b/doc/dox_comments/header_files-ja/rsa.h @@ -1,18 +1,26 @@ /*! \ingroup RSA - \brief この関数は提供されたRsaKey構造体を初期化します。また、ユーザー定義メモリオーバーライドで使用するためのヒープ識別子も取ります(XMALLOC、XFREE、XREALLOCを参照)。wc_rsa_blindingが有効な場合、キーはWC_RSASETRNGによってRNGに関連付けられなければなりません。 - \return 0 暗号化と復号化で使用するためのRSA構造の初期化に成功したときに返されます。 - \return BAD_FUNC_ARGS RSAキーポインタがNULLに評価された場合に返されます - \param key 初期化するRSAKEY構造へのポインタ + + \brief この関数は、提供されたRsaKey構造体を初期化します。また、ユーザー定義のメモリオーバーライド(XMALLOC、XFREE、XREALLOCを参照)で使用するために、ヒープ識別子も受け取ります。 + + WC_RSA_BLINDINGが有効になっている場合、キーはwc_RsaSetRNGによってRNGと関連付ける必要があります。 + + \return 0 暗号化と復号に使用するRSA構造体の初期化に成功した場合に返されます + \return BAD_FUNC_ARGS RSAキーポインタがNULLと評価された場合に返されます + + \param key 初期化するRsaKey構造体へのポインタ + \param heap メモリオーバーライドで使用するヒープ識別子へのポインタ。メモリ割り当てのカスタム処理を可能にします。このヒープは、このRSAオブジェクトで使用するメモリを割り当てる際にデフォルトで使用されます + _Example_ \code RsaKey enc; int ret; - ret = wc_InitRsaKey(&enc, NULL); // not using heap hint. No custom memory + ret = wc_InitRsaKey(&enc, NULL); // ヒープヒントを使用しない。カスタムメモリなし if ( ret != 0 ) { - // error initializing RSA key + // RSAキーの初期化エラー } \endcode + \sa wc_FreeRsaKey \sa wc_RsaSetRNG */ @@ -20,31 +28,39 @@ int wc_InitRsaKey(RsaKey* key, void* heap); /*! \ingroup RSA - \brief この関数は提供されたRsaKey構造体を初期化します。IDとLENは、DEVIDがデバイスを識別している間にデバイス上のキーを識別するために使用されます。また、ユーザー定義メモリオーバーライドで使用するためのヒープ識別子も取ります(XMALLOC、XFREE、XREALLOCを参照)。wc_rsa_blindingが有効な場合、キーはWC_RSASETRNGによってRNGに関連付けられなければなりません。 - \return 0 暗号化と復号化で使用するためのRSA構造の初期化に成功したときに返されます。 - \return BAD_FUNC_ARGS RSAキーポインタがNULLに評価された場合に返されます - \return BUFFER_E LENがRSA_MAX_ID_LENよりも小さい場合、または大きい場合は返されます。 - \param key 初期化するRsaKey構造体へのポインタ - \param id デバイス上のキーの識別子 - \param len バイト数の識別子の長さ - \param heap メモリオーバーライドで使用するためのヒープ識別子へのポインタ。メモリ割り当てのカスタム処理を可能にします。このヒープは、このRSAオブジェクトで使用するためにメモリを割り当てるときに使用されるデフォルトになります。 + + \brief この関数は、提供されたRsaKey構造体を初期化します。idとlenは、デバイス上のキーを識別するために使用され、devIdはデバイスを識別します。また、ユーザー定義のメモリオーバーライド(XMALLOC、XFREE、XREALLOCを参照)で使用するために、ヒープ識別子も受け取ります。 + + WC_RSA_BLINDINGが有効になっている場合、キーはwc_RsaSetRNGによってRNGと関連付ける必要があります。 + + \return 0 暗号化と復号に使用するRSA構造体の初期化に成功した場合に返されます + \return BAD_FUNC_ARGS RSAキーポインタがNULLと評価された場合に返されます + \return BUFFER_E lenが0未満またはRSA_MAX_ID_LENより大きい場合に返されます。 + + \param key 初期化するRsaKey構造体へのポインタ + \param id デバイス上のキーの識別子 + \param len 識別子の長さ(バイト単位) + \param heap メモリオーバーライドで使用するヒープ識別子へのポインタ。メモリ割り当てのカスタム処理を可能にします。このヒープは、このRSAオブジェクトで使用するメモリを割り当てる際にデフォルトで使用されます + \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定 + _Example_ \code RsaKey enc; unsigned char* id = (unsigned char*)"RSA2048"; - int len = 6; + int len = 7; int devId = 1; int ret; ret = wc_CryptoDev_RegisterDevice(devId, wc_Pkcs11_CryptoDevCb, &token); if ( ret != 0) { - // error associating callback and token with device id + // コールバックとトークンをデバイスIDに関連付けるエラー } - ret = wc_InitRsaKey_Id(&enc, id, len, NULL, devId); // not using heap hint + ret = wc_InitRsaKey_Id(&enc, id, len, NULL, devId); // ヒープヒントを使用しない if ( ret != 0 ) { - // error initializing RSA key + // RSAキーの初期化エラー } \endcode + \sa wc_InitRsaKey \sa wc_FreeRsaKey \sa wc_RsaSetRNG @@ -54,10 +70,15 @@ int wc_InitRsaKey_Id(RsaKey* key, unsigned char* id, int len, /*! \ingroup RSA - \brief この関数はRNGをキーに関連付けます。WC_RSA_BLINDINGが有効になっている場合は必要です。 - \return 0 成功に戻った - \return BAD_FUNC_ARGS RSAキーの場合、RNGポインタがNULLに評価された場合 - \param key 関連付けられるRsaKey構造体へのポインタ + + \brief この関数は、RNGをキーに関連付けます。WC_RSA_BLINDINGが有効になっている場合に必要です。 + + \return 0 成功時に返されます + \return BAD_FUNC_ARGS RSAキー、rngポインタがNULLと評価された場合に返されます + + \param key 関連付けるRsaKey構造体へのポインタ + \param rng 関連付けるWC_RNG構造体へのポインタ + _Example_ \code ret = wc_InitRsaKey(&key, NULL); @@ -67,6 +88,7 @@ int wc_InitRsaKey_Id(RsaKey* key, unsigned char* id, int len, if (ret == 0) { ret = wc_RsaSetRNG(&key, &rng); \endcode + \sa wc_InitRsaKey \sa wc_RsaSetRNG */ @@ -74,62 +96,112 @@ int wc_RsaSetRNG(RsaKey* key, WC_RNG* rng); /*! \ingroup RSA - \brief この関数は、MP_Clearを使用して提供されたRsaKey構造体を解放します。 - \return 0 キーの解放に成功したら返品されます + + \brief この関数は、mp_clearを使用して提供されたRsaKey構造体を解放します。 + + \return 0 キーの解放に成功した場合に返されます + + \param key 解放するRsaKey構造体へのポインタ + _Example_ \code RsaKey enc; - wc_InitRsaKey(&enc, NULL); // not using heap hint. No custom memory - ... set key, do encryption + wc_InitRsaKey(&enc, NULL); // ヒープヒントを使用しない。カスタムメモリなし + ... キーを設定し、暗号化を実行 wc_FreeRsaKey(&enc); \endcode + \sa wc_InitRsaKey */ int wc_FreeRsaKey(RsaKey* key); /*! \ingroup RSA - \brief この関数はメッセージをINから暗号化し、その結果を格納します。初期化された公開鍵と乱数発生器が必要です。副作用として、この関数はounlenの中で書き込まれたバイトを返します。 - \return Success 入力メッセージの暗号化に成功したら、成功の場合は0を返し、障害の場合はゼロ未満です。また、outlenの値を格納することによって、OUTに書き込まれた数のバイト数を返します。 - \return BAD_FUNC_ARG 入力パラメータのいずれかが無効な場合に返されます - \return RSA_BUFFER_E CipherTextを保存するには、出力バッファが小さすぎる場合は返されます。 - \return RNG_FAILURE_E 提供されたRNG構造体を使用してランダムブロックを生成するエラーがある場合 - \return MP_INIT_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_READ_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_CMP_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_INVMOD_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_EXPTMOD_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_MOD_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_MUL_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_ADD_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_MULMOD_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_TO_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_MEM メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_ZERO_E メッセージの暗号化中に使用されている数学ライブラリにエラーがある場合に返される可能性があります。 - \param in 暗号化する入力メッセージを含むバッファへのポインタ - \param inLen 暗号化するメッセージの長さ - \param out 出力暗号文を保存するバッファへのポインタ - \param outLen 出力バッファの長さ - \param key 暗号化に使用する公開鍵を含むRsaKey構造体へのポインタ + + \brief パディングなしでRSA操作を直接実行する関数。入力サイズはキーサイズと一致する必要があります。通常、これはRSA入力に既にパディングが行われている場合に使用されます。 + + \return size 暗号化に成功した場合、暗号化されたバッファのサイズが返されます + \return RSA_BUFFER_E RSAバッファエラー、出力が小さすぎるか入力が大きすぎます + + \param in 操作を行うバッファ + \param inLen 入力バッファの長さ + \param out 結果を保持するバッファ + \param outSz 結果バッファのサイズに設定されます。出力バッファの長さとして渡す必要があります。ポインタ「out」がnullの場合、outSzは必要な予想バッファサイズに設定され、LENGTH_ONLY_Eが返されます。 + \param key 暗号化/復号に使用する初期化されたRSAキー + \param type 秘密鍵または公開鍵を使用する場合(RSA_PUBLIC_ENCRYPT、RSA_PUBLIC_DECRYPT、RSA_PRIVATE_ENCRYPT、RSA_PRIVATE_DECRYPT) + \param rng 初期化されたWC_RNG構造体 + + _Example_ + \code + int ret; + WC_RNG rng; + RsaKey key; + byte in[256]; + byte out[256]; + word32 outSz = (word32)sizeof(out); + … + + ret = wc_RsaDirect(in, (word32)sizeof(in), out, &outSz, &key, + RSA_PRIVATE_ENCRYPT, &rng); + if (ret < 0) { + // エラーを処理 + } + \endcode + + \sa wc_RsaPublicEncrypt + \sa wc_RsaPrivateDecrypt +*/ +int wc_RsaDirect(const byte* in, word32 inLen, byte* out, word32* outSz, + RsaKey* key, int type, WC_RNG* rng); + +/*! + \ingroup RSA + + \brief この関数は、inからメッセージを暗号化し、結果をoutに格納します。初期化された公開鍵と乱数ジェネレータが必要です。副作用として、この関数はoutに書き込まれたバイト数をoutLenで返します。 + + \return Success 入力メッセージの暗号化に成功した場合、成功時に書き込まれたバイト数を返し、失敗の場合はゼロ未満を返します。 + \return BAD_FUNC_ARG いずれかの入力パラメータが無効な場合に返されます + \return RSA_BUFFER_E 出力バッファが暗号文を格納するには小さすぎる場合に返されます + \return RNG_FAILURE_E 提供されたRNG構造体を使用してランダムブロックを生成する際にエラーがある場合に返されます + \return MP_INIT_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_READ_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_CMP_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_INVMOD_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_MOD_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_MUL_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_ADD_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_MULMOD_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_TO_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_MEM メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_ZERO_E メッセージの暗号化中に使用される数学ライブラリにエラーがある場合に返される可能性があります + + \param in 暗号化する入力メッセージを含むバッファへのポインタ + \param inLen 暗号化するメッセージの長さ + \param out 出力暗号文を格納するバッファへのポインタ + \param outLen 出力バッファの長さ + \param key 暗号化に使用する公開鍵を含むRsaKey構造体へのポインタ + \param rng ランダムブロックパディングを生成するRNG構造体 + _Example_ \code RsaKey pub; int ret = 0; - byte n[] = { // initialize with received n component of public key }; - byte e[] = { // initialize with received e component of public key }; - byte msg[] = { // initialize with plaintext of message to encrypt }; - byte cipher[256]; // 256 bytes is large enough to store 2048 bit RSA - ciphertext + byte n[] = { // 受信した公開鍵のn成分で初期化 }; + byte e[] = { // 受信した公開鍵のe成分で初期化 }; + byte msg[] = { // 暗号化するメッセージの平文で初期化 }; + byte cipher[256]; // 256バイトは2048ビットRSA暗号文を格納するのに十分な大きさ - wc_InitRsaKey(&pub, NULL); // not using heap hint. No custom memory + wc_InitRsaKey(&pub, NULL); // ヒープヒントを使用しない。カスタムメモリなし wc_RsaPublicKeyDecodeRaw(n, sizeof(n), e, sizeof(e), &pub); - // initialize with received public key parameters + // 受信した公開鍵パラメータで初期化 ret = wc_RsaPublicEncrypt(msg, sizeof(msg), out, sizeof(out), &pub, &rng); if ( ret != 0 ) { - // error encrypting message + // メッセージの暗号化エラー } \endcode + \sa wc_RsaPrivateDecrypt */ int wc_RsaPublicEncrypt(const byte* in, word32 inLen, byte* out, @@ -137,16 +209,22 @@ int wc_RsaPublicEncrypt(const byte* in, word32 inLen, byte* out, /*! \ingroup RSA - \brief この関数は復号化のためにWC_RSAPrivateCrypt関数によって利用されます。 - \return Success 復号化データの長さ - \return RSA_PAD_E RSAUNPADエラー、フォーマットの悪いフォーマット - \param in 復号化されるバイト配列。 - \param inLen の長さ - \param out 格納する復号化データのバイト配列。 + + \brief この関数は、復号のためにwc_RsaPrivateDecrypt関数によって使用されます。 + + \return Success 復号されたデータの長さ。 + \return RSA_PAD_E RsaUnPadエラー、フォーマットが不正 + + \param in 復号されるバイト配列。 + \param inLen inの長さ。 + \param out 復号されたデータを格納するバイト配列。 + \param key 復号に使用するキー。 + _Example_ \code - none + なし \endcode + \sa wc_RsaPrivateDecrypt */ int wc_RsaPrivateDecryptInline(byte* in, word32 inLen, byte** out, @@ -154,14 +232,19 @@ int wc_RsaPrivateDecryptInline(byte* in, word32 inLen, byte** out, /*! \ingroup RSA - \brief この関数は秘密のRSA復号化を提供します。 - \return Success 復号化データの長さ - \return MEMORY_E -125、メモリエラーが発生しました - \return BAD_FUNC_ARG -173、関数の不良引数が提供されています - \param in 復号化されるバイト配列。 - \param inLen の長さ - \param out 格納する復号化データのバイト配列。 - \param outLen の長さ + + \brief この関数は、プライベートRSA復号を提供します。 + + \return Success 復号されたデータの長さ。 + \return MEMORY_E -125、メモリ不足エラー + \return BAD_FUNC_ARG -173、不正な関数引数が提供されました + + \param in 復号されるバイト配列。 + \param inLen inの長さ。 + \param out 復号されたデータを格納するバイト配列。 + \param outLen outの長さ。 + \param key 復号に使用するキー。 + _Example_ \code ret = wc_RsaPublicEncrypt(in, inLen, out, sizeof(out), &key, &rng); @@ -173,6 +256,7 @@ int wc_RsaPrivateDecryptInline(byte* in, word32 inLen, byte** out, return -1; } \endcode + \sa RsaUnPad \sa wc_RsaFunction \sa wc_RsaPrivateDecryptInline @@ -182,13 +266,18 @@ int wc_RsaPrivateDecrypt(const byte* in, word32 inLen, byte* out, /*! \ingroup RSA - \brief 提供された配列に秘密鍵と署名します。 - \return RSA_BUFFER_E: -131、RSAバッファエラー、出力が小さすぎたり入力が大きすぎたりする - \param in 暗号化されるバイト配列。 - \param inLen の長さ - \param out 格納する暗号化データのバイト配列。 - \param outLen の長さ - \param key 暗号化に使用する鍵。 + + \brief 秘密鍵で提供された配列に署名します。 + + \return RSA_BUFFER_E: -131、RSAバッファエラー、出力が小さすぎるか入力が大きすぎます + + \param in 暗号化されるバイト配列。 + \param inLen inの長さ。 + \param out 暗号化されたデータを格納するバイト配列。 + \param outLen outの長さ。 + \param key 暗号化に使用するキー。 + \param RNG 乱数の目的で使用するRNG構造体。 + _Example_ \code ret = wc_RsaSSL_Sign(in, inLen, out, sizeof(out), &key, &rng); @@ -200,7 +289,14 @@ int wc_RsaPrivateDecrypt(const byte* in, word32 inLen, byte* out, if (ret < 0) { return -1; } + if (ret != inLen) { + return -1; + } + if (XMEMCMP(in, plain, ret) != 0) { + return -1; + } \endcode + \sa wc_RsaPad */ int wc_RsaSSL_Sign(const byte* in, word32 inLen, byte* out, @@ -208,29 +304,35 @@ int wc_RsaSSL_Sign(const byte* in, word32 inLen, byte* out, /*! \ingroup RSA - \brief メッセージがRSAキーによって署名されたことを確認するために使用されます。出力は入力と同じバイト配列を使用します。 - \return >0 テキストの長さ - \return <0 エラーが発生しました。 - \param in 復号化されるバイト配列。 - \param inLen バッファ入力の長さ。 - \param out 復号化された情報のポインタへのポインタ。 + + \brief メッセージがRSAキーによって署名されたことを検証するために使用されます。出力は入力と同じバイト配列を使用します。 + + \return >0 テキストの長さ。 + \return <0 エラーが発生しました。 + + \param in 復号されるバイト配列。 + \param inLen 入力バッファの長さ。 + \param out 復号された情報へのポインタへのポインタ。 + \param key 使用するRsaKey。 + _Example_ \code RsaKey key; WC_RNG rng; int ret = 0; - long e = 65537; // standard value to use for exponent - wc_InitRsaKey(&key, NULL); // not using heap hint. No custom memory + long e = 65537; // 指数に使用する標準値 + wc_InitRsaKey(&key, NULL); // ヒープヒントを使用しない。カスタムメモリなし wc_InitRng(&rng); wc_MakeRsaKey(&key, 2048, e, &rng); - byte in[] = { // Initialize with some RSA encrypted information } + byte in[] = { // RSA暗号化情報で初期化 } byte* out; if(wc_RsaSSL_VerifyInline(in, sizeof(in), &out, &key) < 0) { - // handle error + // エラーを処理 } \endcode + \sa wc_RsaSSL_Verify \sa wc_RsaSSL_Sign */ @@ -239,13 +341,18 @@ int wc_RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out, /*! \ingroup RSA - \brief メッセージがキーによって署名されたことを確認するために使用されます。 - \return Success エラーのないテキストの長さ。 - \return MEMORY_E メモリ例外 - \param in 復号化されるバイト配列。 - \param inLen の長さ - \param out 格納する復号化データのバイト配列。 - \param outLen の長さ + + \brief メッセージがキーによって署名されたことを検証するために使用されます。 + + \return Success エラーがない場合のテキストの長さ。 + \return MEMORY_E メモリ例外。 + + \param in 復号されるバイト配列。 + \param inLen inの長さ。 + \param out 復号されたデータを格納するバイト配列。 + \param outLen outの長さ。 + \param key 検証に使用するキー。 + _Example_ \code ret = wc_RsaSSL_Sign(in, inLen, out, sizeof(out), &key, &rng); @@ -257,7 +364,14 @@ int wc_RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out, if (ret < 0) { return -1; } + if (ret != inLen) { + return -1; + } + if (XMEMCMP(in, plain, ret) != 0) { + return -1; + } \endcode + \sa wc_RsaSSL_Sign */ int wc_RsaSSL_Verify(const byte* in, word32 inLen, byte* out, @@ -265,14 +379,19 @@ int wc_RsaSSL_Verify(const byte* in, word32 inLen, byte* out, /*! \ingroup RSA - \brief 提供された配列に秘密鍵と署名します。 - \return RSA_BUFFER_E: -131、RSAバッファエラー、出力が小さすぎたり入力が大きすぎたりする - \param in 暗号化されるバイト配列。 - \param inLen の長さ - \param out 格納する暗号化データのバイト配列。 - \param outLen の長さ - \param hash メッセージに入るハッシュ型 - \param mgf マスク生成機能識別子 + + \brief 秘密鍵で提供された配列に署名します。 + + \return RSA_BUFFER_E: -131、RSAバッファエラー、出力が小さすぎるか入力が大きすぎます + + \param in 暗号化されるバイト配列。 + \param inLen inの長さ。 + \param out 暗号化されたデータを格納するバイト配列。 + \param outLen outの長さ。 + \param hash メッセージに含まれるハッシュタイプ + \param mgf マスク生成関数識別子 + \param key 検証に使用するキー。 + _Example_ \code ret = wc_InitRsaKey(&key, NULL); @@ -300,6 +419,7 @@ int wc_RsaSSL_Verify(const byte* in, word32 inLen, byte* out, wc_FreeRsaKey(&key); wc_FreeRng(&rng); \endcode + \sa wc_RsaPSS_Verify \sa wc_RsaSetRNG */ @@ -309,16 +429,21 @@ int wc_RsaPSS_Sign(const byte* in, word32 inLen, byte* out, /*! \ingroup RSA - \brief 入力署名を復号して、メッセージが鍵によって署名されたことを確認します。WC_RSA_BLINDINGが有効な場合、鍵はwc_RsaSetRNGによってRNGに関連付けられなければなりません。 - \return Success エラーのない場合はテキストの長さを返します - \return MEMORY_E メモリ例外 - \return MP_EXPTMOD_E - fastmathを使用する様に構成されている場合にFP_MAX_BITSが鍵サイズの少なくとも2倍に設定されていない(例えば4096-bit長の鍵を使用する場合にはFP_MAX_BITSは8192以上に設定すること)。 - \param in 復号される署名データが格納されているバッファ - \param inLen 署名データの長さ - \param out 復号データの出力先バッファ - \param outLen 出力先バッファサイズ - \param hash メッセージに入るハッシュ型 - \param mgf マスク生成機能識別子 + + \brief メッセージがキーによって署名されたことを検証するために入力署名を復号します。WC_RSA_BLINDINGが有効になっている場合、キーはwc_RsaSetRNGによってRNGと関連付ける必要があります。 + + \return Success エラーがない場合のテキストの長さ。 + \return MEMORY_E メモリ例外。 + \return MP_EXPTMOD_E - fastmathを使用していて、FP_MAX_BITSがキーサイズの少なくとも2倍に設定されていない場合(例:4096ビットキーを使用する場合、FP_MAX_BITSを8192以上の値に設定) + + \param in 復号されるバイト配列。 + \param inLen inの長さ。 + \param out 復号されたデータを格納するバイト配列。 + \param outLen outの長さ。 + \param hash メッセージに含まれるハッシュタイプ + \param mgf マスク生成関数識別子 + \param key 検証に使用するキー。 + _Example_ \code ret = wc_InitRsaKey(&key, NULL); @@ -345,6 +470,7 @@ int wc_RsaPSS_Sign(const byte* in, word32 inLen, byte* out, wc_FreeRsaKey(&key); wc_FreeRng(&rng); \endcode + \sa wc_RsaPSS_Sign \sa wc_RsaPSS_VerifyInline \sa wc_RsaPSS_CheckPadding @@ -356,14 +482,19 @@ int wc_RsaPSS_Verify(byte* in, word32 inLen, byte* out, /*! \ingroup RSA - \brief 入力署名を復号化して、メッセージがRSAキーによって署名されたことを確認します。出力は入力と同じバイト配列を使用します。WC_RSA_BLINDINGが有効な場合、キーはWC_RSASETRNGによってRNGに関連付けられなければなりません。 - \return >0 テキストの長さ - \return <0 エラーが発生しました。 - \param in 復号化されるバイト配列。 - \param inLen バッファ入力の長さ。 - \param out PSSデータを含むアドレスへのポインタ。 - \param hash メッセージに入るハッシュ型 - \param mgf マスク生成機能識別子 + + \brief メッセージがRSAキーによって署名されたことを検証するために入力署名を復号します。出力は入力と同じバイト配列を使用します。WC_RSA_BLINDINGが有効になっている場合、キーはwc_RsaSetRNGによってRNGと関連付ける必要があります。 + + \return >0 テキストの長さ。 + \return <0 エラーが発生しました。 + + \param in 復号されるバイト配列。 + \param inLen 入力バッファの長さ。 + \param out PSSデータを含むアドレスへのポインタ。 + \param hash メッセージに含まれるハッシュタイプ + \param mgf マスク生成関数識別子 + \param key 使用するRsaKey。 + _Example_ \code ret = wc_InitRsaKey(&key, NULL); @@ -389,6 +520,7 @@ int wc_RsaPSS_Verify(byte* in, word32 inLen, byte* out, wc_FreeRsaKey(&key); wc_FreeRng(&rng); \endcode + \sa wc_RsaPSS_Verify \sa wc_RsaPSS_Sign \sa wc_RsaPSS_VerifyCheck @@ -406,17 +538,22 @@ int wc_RsaPSS_VerifyInline(byte* in, word32 inLen, byte** out, RsaKey* key); /*! \ingroup RSA - \brief RSA-PSSで署名されたメッセージを確認してください。ソルトの長さはハッシュ長に等しい。WC_RSA_BLINDINGが有効な場合、キーはWC_RSASETRNGによってRNGに関連付けられなければなりません。 - \return the PSSデータの長さが成功し、負に障害が発生します。 - \return MEMORY_E メモリ例外 - \param in 復号化されるバイト配列。 - \param inLen の長さ - \param out PSSデータを含むアドレスへのポインタ。 - \param outLen の長さ - \param digest 検証中のデータのハッシュ。 - \param digestLen ハッシュの長さ - \param hash ハッシュアルゴリズム - \param mgf マスク生成機能 + + \brief RSA-PSSで署名されたメッセージを検証します。ソルトの長さはハッシュの長さと等しくなります。WC_RSA_BLINDINGが有効になっている場合、キーはwc_RsaSetRNGによってRNGと関連付ける必要があります。 + + \return the length of the PSS data 成功時はPSSデータの長さ、失敗を示す負の値。 + \return MEMORY_E メモリ例外。 + + \param in 復号されるバイト配列。 + \param inLen inの長さ。 + \param out PSSデータを含むアドレスへのポインタ。 + \param outLen outの長さ。 + \param digest 検証されるデータのハッシュ。 + \param digestLen ハッシュの長さ。 + \param hash ハッシュアルゴリズム。 + \param mgf マスク生成関数。 + \param key 公開RSAキー。 + _Example_ \code ret = wc_InitRsaKey(&key, NULL); @@ -451,6 +588,7 @@ int wc_RsaPSS_VerifyInline(byte* in, word32 inLen, byte** out, wc_FreeRsaKey(&key); wc_FreeRng(&rng); \endcode + \sa wc_RsaPSS_Sign \sa wc_RsaPSS_Verify \sa wc_RsaPSS_VerifyCheck_ex @@ -468,18 +606,24 @@ int wc_RsaPSS_VerifyCheck(byte* in, word32 inLen, RsaKey* key); /*! \ingroup RSA - \brief RSA-PSSで署名されたメッセージを確認してください。WC_RSA_BLINDINGが有効な場合、キーはWC_RSASETRNGによってRNGに関連付けられなければなりません。 - \return the PSSデータの長さが成功し、負に障害が発生します。 - \return MEMORY_E メモリ例外 - \param in 復号化されるバイト配列。 - \param inLen の長さ - \param out PSSデータを含むアドレスへのポインタ。 - \param outLen の長さ - \param digest 検証中のデータのハッシュ。 - \param digestLen ハッシュの長さ - \param hash ハッシュアルゴリズム - \param mgf マスク生成機能 - \param saltLen 使用されるソルトの長さ。RSA_PSSS_SALT_LEN_DEFAULT(-1)ソルトの長さはハッシュ長と同じです。RSA_PSS_SALT_LEN_DISCOVERは、ソルトの長さがデータから決定されます。 + + \brief RSA-PSSで署名されたメッセージを検証します。WC_RSA_BLINDINGが有効になっている場合、キーはwc_RsaSetRNGによってRNGと関連付ける必要があります。 + + \return the length of the PSS data 成功時はPSSデータの長さ、失敗を示す負の値。 + \return MEMORY_E メモリ例外。 + + \param in 復号されるバイト配列。 + \param inLen inの長さ。 + \param out PSSデータを含むアドレスへのポインタ。 + \param outLen outの長さ。 + \param digest 検証されるデータのハッシュ。 + \param digestLen ハッシュの長さ。 + \param hash ハッシュアルゴリズム。 + \param mgf マスク生成関数。 + \param saltLen 使用されるソルトの長さ。RSA_PSS_SALT_LEN_DEFAULT(-1)は、ソルトの長さがハッシュの長さと同じであることを示します。RSA_PSS_SALT_LEN_DISCOVERは、ソルトの長さがデータから決定されることを示します。 + + \param key 公開RSAキー。 + _Example_ \code ret = wc_InitRsaKey(&key, NULL); @@ -514,6 +658,7 @@ int wc_RsaPSS_VerifyCheck(byte* in, word32 inLen, wc_FreeRsaKey(&key); wc_FreeRng(&rng); \endcode + \sa wc_RsaPSS_Sign \sa wc_RsaPSS_Verify \sa wc_RsaPSS_VerifyCheck @@ -531,15 +676,22 @@ int wc_RsaPSS_VerifyCheck_ex(byte* in, word32 inLen, /*! \ingroup RSA - \brief RSA-PSSで署名されたメッセージを確認してください。入力バッファは出力バッファに再利用されます。ソルトの長さはハッシュ長に等しい。WC_RSA_BLINDINGが有効な場合、キーはWC_RSASETRNGによってRNGに関連付けられなければなりません。 - \return the PSSデータの長さが成功し、負に障害が発生します。 - \param in 復号化されるバイト配列。 - \param inLen の長さ - \param out 格納する復号化データのバイト配列。 - \param digest 検証中のデータのハッシュ。 - \param digestLen ハッシュの長さ - \param hash メッセージに入るハッシュ型 - \param mgf マスク生成機能識別子 + + \brief RSA-PSSで署名されたメッセージを検証します。入力バッファは出力バッファとして再利用されます。ソルトの長さはハッシュの長さと等しくなります。 + + WC_RSA_BLINDINGが有効になっている場合、キーはwc_RsaSetRNGによってRNGと関連付ける必要があります。 + + \return the length of the PSS data 成功時はPSSデータの長さ、失敗を示す負の値。 + + \param in 復号されるバイト配列。 + \param inLen inの長さ。 + \param out 復号されたデータを格納するバイト配列。 + \param digest 検証されるデータのハッシュ。 + \param digestLen ハッシュの長さ。 + \param hash メッセージに含まれるハッシュタイプ + \param mgf マスク生成関数識別子 + \param key 検証に使用するキー。 + _Example_ \code ret = wc_InitRsaKey(&key, NULL); @@ -574,6 +726,7 @@ int wc_RsaPSS_VerifyCheck_ex(byte* in, word32 inLen, wc_FreeRsaKey(&key); wc_FreeRng(&rng); \endcode + \sa wc_RsaPSS_Sign \sa wc_RsaPSS_Verify \sa wc_RsaPSS_VerifyCheck @@ -589,16 +742,21 @@ int wc_RsaPSS_VerifyCheckInline(byte* in, word32 inLen, byte** out, RsaKey* key); /*! \ingroup RSA - \brief RSA-PSSで署名されたメッセージを確認してください。入力バッファは出力バッファに再利用されます。WC_RSA_BLINDINGが有効な場合、キーはWC_RSASETRNGによってRNGに関連付けられなければなりません。 - \return the PSSデータの長さが成功し、負に障害が発生します。 - \param in 復号化されるバイト配列。 - \param inLen の長さ - \param out 格納する復号化データのバイト配列。 - \param digest 検証中のデータのハッシュ。 - \param digestLen ハッシュの長さ - \param hash メッセージに入るハッシュ型 - \param mgf マスク生成機能識別子 - \param saltLen 使用されるソルトの長さ。RSA_PSSS_SALT_LEN_DEFAULT(-1)ソルトの長さはハッシュ長と同じです。RSA_PSS_SALT_LEN_DISCOVERは、ソルトの長さがデータから決定されます。 + + \brief RSA-PSSで署名されたメッセージを検証します。入力バッファは出力バッファとして再利用されます。WC_RSA_BLINDINGが有効になっている場合、キーはwc_RsaSetRNGによってRNGと関連付ける必要があります。 + + \return the length of the PSS data 成功時はPSSデータの長さ、失敗を示す負の値。 + + \param in 復号されるバイト配列。 + \param inLen inの長さ。 + \param out 復号されたデータを格納するバイト配列。 + \param digest 検証されるデータのハッシュ。 + \param digestLen ハッシュの長さ。 + \param hash メッセージに含まれるハッシュタイプ + \param mgf マスク生成関数識別子 + \param saltLen 使用されるソルトの長さ。RSA_PSS_SALT_LEN_DEFAULT(-1)は、ソルトの長さがハッシュの長さと同じであることを示します。RSA_PSS_SALT_LEN_DISCOVERは、ソルトの長さがデータから決定されることを示します。 + \param key 検証に使用するキー。 + _Example_ \code ret = wc_InitRsaKey(&key, NULL); @@ -633,6 +791,7 @@ int wc_RsaPSS_VerifyCheckInline(byte* in, word32 inLen, byte** out, wc_FreeRsaKey(&key); wc_FreeRng(&rng); \endcode + \sa wc_RsaPSS_Sign \sa wc_RsaPSS_Verify \sa wc_RsaPSS_VerifyCheck @@ -649,13 +808,18 @@ int wc_RsaPSS_VerifyCheckInline_ex(byte* in, word32 inLen, byte** out, /*! \ingroup RSA - \brief PSSデータを確認して、署名が一致するようにします。ソルトの長さはハッシュ長に等しい。WC_RSA_BLINDINGが有効な場合、キーはWC_RSASETRNGによってRNGに関連付けられなければなりません。 - \return BAD_PADDING_E PSSデータが無効な場合、NULLがINまたはSIGまたはINSZに渡されると、BAD_FUNC_ARGはハッシュアルゴリズムの長さと同じではありません。 - \return MEMORY_E メモリ例外 - \param in 検証中のデータのハッシュ。 - \param inSz ハッシュの長さ - \param sig PSSデータを保持するバッファ。 - \param sigSz PSSデータのサイズ。 + + \brief 署名が一致することを確認するためにPSSデータをチェックします。ソルトの長さはハッシュの長さと等しくなります。WC_RSA_BLINDINGが有効になっている場合、キーはwc_RsaSetRNGによってRNGと関連付ける必要があります。 + + \return BAD_PADDING_E PSSデータが無効な場合、BAD_FUNC_ARG inまたはsigにNULLが渡された場合、またはinSzがハッシュアルゴリズムの長さと同じでない場合、成功時は0。 + \return MEMORY_E メモリ例外。 + + \param in 検証されるデータのハッシュ。 + \param inSz ハッシュの長さ。 + \param sig PSSデータを保持するバッファ。 + \param sigSz PSSデータのサイズ。 + \param hashType ハッシュアルゴリズム。 + _Example_ \code ret = wc_InitRsaKey(&key, NULL); @@ -687,6 +851,7 @@ int wc_RsaPSS_VerifyCheckInline_ex(byte* in, word32 inLen, byte** out, wc_FreeRsaKey(&key); wc_FreeRng(&rng); \endcode + \sa wc_RsaPSS_Sign \sa wc_RsaPSS_Verify \sa wc_RsaPSS_VerifyInline @@ -702,15 +867,20 @@ int wc_RsaPSS_CheckPadding(const byte* in, word32 inLen, byte* sig, enum wc_HashType hashType); /*! \ingroup RSA - \brief PSSデータを確認して、署名が一致するようにします。ソルトの長さはハッシュ長に等しい。 - \return BAD_PADDING_E PSSデータが無効な場合、NULLがINまたはSIGまたはINSZに渡されると、BAD_FUNC_ARGはハッシュアルゴリズムの長さと同じではありません。 - \return MEMORY_E メモリ例外 - \param in 検証中のデータのハッシュ。 - \param inSz ハッシュの長さ - \param sig PSSデータを保持するバッファ。 - \param sigSz PSSデータのサイズ。 - \param hashType ハッシュアルゴリズム - \param saltLen 使用されるソルトの長さ。RSA_PSSS_SALT_LEN_DEFAULT(-1)ソルトの長さはハッシュ長と同じです。RSA_PSS_SALT_LEN_DISCOVERは、ソルトの長さがデータから決定されます。 + + \brief 署名が一致することを確認するためにPSSデータをチェックします。ソルトの長さはハッシュの長さと等しくなります。 + + \return BAD_PADDING_E PSSデータが無効な場合、BAD_FUNC_ARG inまたはsigにNULLが渡された場合、またはinSzがハッシュアルゴリズムの長さと同じでない場合、成功時は0。 + \return MEMORY_E メモリ例外。 + + \param in 検証されるデータのハッシュ。 + \param inSz ハッシュの長さ。 + \param sig PSSデータを保持するバッファ。 + \param sigSz PSSデータのサイズ。 + \param hashType ハッシュアルゴリズム。 + \param saltLen 使用されるソルトの長さ。RSA_PSS_SALT_LEN_DEFAULT(-1)は、ソルトの長さがハッシュの長さと同じであることを示します。RSA_PSS_SALT_LEN_DISCOVERは、ソルトの長さがデータから決定されることを示します。 + \param bits FIPSの場合、ソルトサイズの計算に使用できます + _Example_ \code ret = wc_InitRsaKey(&key, NULL); @@ -742,6 +912,7 @@ int wc_RsaPSS_CheckPadding(const byte* in, word32 inLen, byte* sig, wc_FreeRsaKey(&key); wc_FreeRng(&rng); \endcode + \sa wc_RsaPSS_Sign \sa wc_RsaPSS_Verify \sa wc_RsaPSS_VerifyInline @@ -755,12 +926,18 @@ int wc_RsaPSS_CheckPadding_ex(const byte* in, word32 inLen, byte* sig, word32 sigSz, enum wc_HashType hashType, int saltLen, int bits); /*! \ingroup RSA - \brief 提供されたキー構造の暗号化サイズを返します。 - \return Success 提供されたキー構造の暗号化サイズ。 + + \brief 提供されたキー構造体の暗号化サイズを返します。 + + \return Success 提供されたキー構造体の暗号化サイズ。 + + \param key 検証に使用するキー。 + _Example_ \code int sz = wc_RsaEncryptSize(&key); \endcode + \sa wc_InitRsaKey \sa wc_InitRsaKey_ex \sa wc_MakeRsaKey @@ -769,26 +946,32 @@ int wc_RsaEncryptSize(RsaKey* key); /*! \ingroup RSA - \brief この関数はDerフォーマットされたRSA秘密鍵を解析し、秘密鍵を抽出し、それを与えられたResakey構造に格納します。IDXに解析された距離も設定します。 - \return 0 DERエンコード入力から秘密鍵の解析に成功したときに返されます - \return ASN_PARSE_E 入力バッファから秘密鍵を解析するエラーがある場合に返されます。これは、入力秘密鍵がASN.1規格に従って正しくフォーマットされていない場合に発生する可能性があります。 - \return ASN_RSA_KEY_E RSAキー入力の秘密鍵要素を読み取るエラーがある場合 - \param input デコードするDERフォーマット秘密鍵を含むバッファへのポインタ - \param inOutIdx キーが始まるバッファ内のインデックスへのポインタ(通常は0)。この関数の副作用として、InoutIDXは入力バッファを介して解析された距離を記憶します - \param key デコードされた秘密鍵を保存するRSAKEY構造へのポインタ + + \brief この関数は、DER形式のRSA秘密鍵を解析し、秘密鍵を抽出して、指定されたRsaKey構造体に格納します。また、idxに解析された距離を設定します。 + + \return 0 DERエンコードされた入力から秘密鍵を正常に解析した場合に返されます + \return ASN_PARSE_E 入力バッファから秘密鍵を解析する際にエラーがある場合に返されます。これは、入力秘密鍵がASN.1標準に従って適切にフォーマットされていない場合に発生する可能性があります + \return ASN_RSA_KEY_E RSAキー入力の秘密鍵要素を読み取る際にエラーがある場合に返されます + + \param input デコードするDER形式の秘密鍵を含むバッファへのポインタ + \param inOutIdx キーが始まるバッファ内のインデックスへのポインタ(通常は0)。この関数の副作用として、inOutIdxは入力バッファを通じて解析された距離を格納します + \param key デコードされた秘密鍵を格納するRsaKey構造体へのポインタ + \param inSz 入力バッファのサイズ + _Example_ \code RsaKey enc; word32 idx = 0; int ret = 0; - byte der[] = { // initialize with DER-encoded RSA private key }; + byte der[] = { // DERエンコードされたRSA秘密鍵で初期化 }; - wc_InitRsaKey(&enc, NULL); // not using heap hint. No custom memory + wc_InitRsaKey(&enc, NULL); // ヒープヒントを使用しない。カスタムメモリなし ret = wc_RsaPrivateKeyDecode(der, &idx, &enc, sizeof(der)); if( ret != 0 ) { - // error parsing private key + // 秘密鍵の解析エラー } \endcode + \sa wc_RsaPublicKeyDecode \sa wc_MakeRsaKey */ @@ -797,29 +980,35 @@ int wc_RsaPrivateKeyDecode(const byte* input, word32* inOutIdx, /*! \ingroup RSA - \brief この関数はDerフォーマットのRSA公開鍵を解析し、公開鍵を抽出し、それを指定されたRsaKey構造体に格納します。IDXに解析された距離も設定します。 - \return 0 DERエンコード入力から公開鍵の解析に成功したときに返された - \return ASN_PARSE_E 入力バッファから公開鍵を解析したエラーがある場合に返されます。これは、入力公開鍵がASN.1規格に従って正しくフォーマットされていない場合に発生する可能性があります。 - \return ASN_OBJECT_ID_E ASN.1オブジェクトIDがRSA公開鍵のそれと一致しない場合に返されます。 - \return ASN_EXPECT_0_E 入力キーがASN.1規格に従って正しくフォーマットされていない場合 - \return ASN_BITSTR_E 入力キーがASN.1規格に従って正しくフォーマットされていない場合 - \return ASN_RSA_KEY_E RSAキー入力の公開鍵要素を読み取るエラーがある場合 - \param input 復号する入力DERエンコードRSA公開鍵を含むバッファへのポインタ - \param inOutIdx キーが始まるバッファ内のインデックスへのポインタ(通常は0)。この関数の副作用として、InoutIDXは入力バッファを介して解析された距離を記憶します - \param key デコードされた公開鍵を保存するRsaKey構造体へのポインタ + + \brief この関数は、DER形式のRSA公開鍵を解析し、公開鍵を抽出して、指定されたRsaKey構造体に格納します。また、idxに解析された距離を設定します。 + + \return 0 DERエンコードされた入力から公開鍵を正常に解析した場合に返されます + \return ASN_PARSE_E 入力バッファから公開鍵を解析する際にエラーがある場合に返されます。これは、入力公開鍵がASN.1標準に従って適切にフォーマットされていない場合に発生する可能性があります + \return ASN_OBJECT_ID_E ASN.1オブジェクトIDがRSA公開鍵のものと一致しない場合に返されます + \return ASN_EXPECT_0_E 入力キーがASN.1標準に従って正しくフォーマットされていない場合に返されます + \return ASN_BITSTR_E 入力キーがASN.1標準に従って正しくフォーマットされていない場合に返されます + \return ASN_RSA_KEY_E RSAキー入力の公開鍵要素を読み取る際にエラーがある場合に返されます + + \param input デコードする入力DERエンコードされたRSA公開鍵を含むバッファへのポインタ + \param inOutIdx キーが始まるバッファ内のインデックスへのポインタ(通常は0)。この関数の副作用として、inOutIdxは入力バッファを通じて解析された距離を格納します + \param key デコードされた公開鍵を格納するRsaKey構造体へのポインタ + \param inSz 入力バッファのサイズ + _Example_ \code RsaKey pub; word32 idx = 0; int ret = 0; - byte der[] = { // initialize with DER-encoded RSA public key }; + byte der[] = { // DERエンコードされたRSA公開鍵で初期化 }; - wc_InitRsaKey(&pub, NULL); // not using heap hint. No custom memory + wc_InitRsaKey(&pub, NULL); // ヒープヒントを使用しない。カスタムメモリなし ret = wc_RsaPublicKeyDecode(der, &idx, &pub, sizeof(der)); if( ret != 0 ) { - // error parsing public key + // 公開鍵の解析エラー } \endcode + \sa wc_RsaPublicKeyDecodeRaw */ int wc_RsaPublicKeyDecode(const byte* input, word32* inOutIdx, @@ -827,28 +1016,34 @@ int wc_RsaPublicKeyDecode(const byte* input, word32* inOutIdx, /*! \ingroup RSA - \brief この関数は、公開弾性率(n)と指数(e)を撮影して、RSA公開鍵の生の要素を復号します。これらの生の要素を提供されたRsaKey構造体に格納し、暗号化/復号化プロセスで使用することができます。 - \return 0 公開鍵の生の要素をRsaKey構造体に復号したときに返された - \return BAD_FUNC_ARG いずれかの入力引数がNULLに評価された場合に返されます。 - \return MP_INIT_E 複数の精密整数(MP_INT)ライブラリで使用するための整数の初期化中にエラーがある場合 - \return ASN_GETINT_E 提供されたRSAキー要素、nまたはeのいずれかを読むエラーがある場合に返されます - \param n Public RSAキーのRAWモジュラスパラメータを含むバッファへのポインタ - \param nSz Nを含むバッファのサイズ - \param e Public RSAキーのRAW指数パラメータを含むバッファへのポインタ - \param eSz Eを含むバッファのサイズ + + \brief この関数は、RSA公開鍵の生の要素をデコードし、公開モジュラス(n)と指数(e)を受け取ります。これらの生の要素を提供されたRsaKey構造体に格納し、暗号化/復号プロセスでそれらを使用できるようにします。 + + \return 0 公開鍵の生の要素をRsaKey構造体に正常にデコードした場合に返されます + \return BAD_FUNC_ARG いずれかの入力引数がNULLと評価された場合に返されます + \return MP_INIT_E 多精度整数(mp_int)ライブラリで使用するために整数を初期化する際にエラーがある場合に返されます + \return ASN_GETINT_E 提供されたRSAキー要素(nまたはe)のいずれかを読み取る際にエラーがある場合に返されます + + \param n 公開RSAキーの生のモジュラスパラメータを含むバッファへのポインタ + \param nSz nを含むバッファのサイズ + \param e 公開RSAキーの生の指数パラメータを含むバッファへのポインタ + \param eSz eを含むバッファのサイズ + \param key 提供された公開鍵要素で初期化するRsaKey構造体へのポインタ + _Example_ \code RsaKey pub; int ret = 0; - byte n[] = { // initialize with received n component of public key }; - byte e[] = { // initialize with received e component of public key }; + byte n[] = { // 受信した公開鍵のn成分で初期化 }; + byte e[] = { // 受信した公開鍵のe成分で初期化 }; - wc_InitRsaKey(&pub, NULL); // not using heap hint. No custom memory + wc_InitRsaKey(&pub, NULL); // ヒープヒントを使用しない。カスタムメモリなし ret = wc_RsaPublicKeyDecodeRaw(n, sizeof(n), e, sizeof(e), &pub); if( ret != 0 ) { - // error parsing public key elements + // 公開鍵要素の解析エラー } \endcode + \sa wc_RsaPublicKeyDecode */ int wc_RsaPublicKeyDecodeRaw(const byte* n, word32 nSz, @@ -856,29 +1051,34 @@ int wc_RsaPublicKeyDecodeRaw(const byte* n, word32 nSz, /*! \ingroup RSA - \brief この機能はRSAKEYキーをDERフォーマットに変換します。結果は出力に書き込まれ、書き込まれたバイト数を返します。 - \return >0 成功、書かれたバイト数。 - \return BAD_FUNC_ARG キーまたは出力がNULLの場合、またはキー - >タイプがRSA_PRIVATEでない場合、またはINLENが出力バッファに十分な大きさでない場合は返されます。 - \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます。 - \param key 初期化されたRsaKey構造体 - \param output 出力バッファへのポインタ。 + + \brief この関数は、RsaKeyキーをDER形式に変換します。結果はoutputに書き込まれ、書き込まれたバイト数を返します。 + + \return >0 成功、書き込まれたバイト数。 + \return BAD_FUNC_ARG keyまたはoutputがnullの場合、またはkey->typeがRSA_PRIVATEでない場合、またはinLenが出力バッファに対して十分な大きさでない場合に返されます。 + \return MEMORY_E メモリの割り当て中にエラーがある場合に返されます。 + + \param key 初期化されたRsaKey構造体。 + \param output 出力バッファへのポインタ。 + \param inLen 出力バッファのサイズ。 + _Example_ \code byte* der; - // Allocate memory for der - int derSz = // Amount of memory allocated for der; + // derにメモリを割り当て + int derSz = // derに割り当てられたメモリの量; RsaKey key; WC_RNG rng; - long e = 65537; // standard value to use for exponent - ret = wc_MakeRsaKey(&key, 2048, e, &rng); // generate 2048 bit long - private key + long e = 65537; // 指数に使用する標準値 + ret = wc_MakeRsaKey(&key, 2048, e, &rng); // 2048ビット長の秘密鍵を生成 wc_InitRsaKey(&key, NULL); wc_InitRng(&rng); if(wc_RsaKeyToDer(&key, der, derSz) != 0) { - // Handle the error thrown + // スローされたエラーを処理 } \endcode + \sa wc_RsaKeyToPublicDer \sa wc_InitRsaKey \sa wc_MakeRsaKey @@ -888,24 +1088,28 @@ int wc_RsaKeyToDer(RsaKey* key, byte* output, word32 inLen); /*! \ingroup RSA - \brief この機能は、どのパディングを使用するかを選択しながらRSA暗号化を実行します。 - \return size 正常に暗号化されていると、暗号化されたバッファのサイズが返されます - \return RSA_BUFFER_E RSAバッファエラー、出力が小さすぎたり入力が大きすぎたりする - \param in 暗号化のためのバッファへのポインタ - \param inLen 暗号化するバッファの長さ - \param out 暗号化されたMSGが作成されました - \param outLen 暗号化されたMSGを保持するために利用可能なバッファの長さ - \param key 初期化ずみRsaKey構造体 - \param rng 初期化されたWC_RNG構造体 - \param type 使用するパディングの種類(WC_RSA_OAEP_PADまたはWC_RSA_PKCSV15_PAD) - \param hash 使用するハッシュの種類(選択はhash.hにあります) - \param mgf 使用するマスク生成機能の種類 - \param label 暗号化されたメッセージに関連付けるオプションのラベル + + \brief この関数は、使用するパディングを選択できるようにしながら、RSA暗号化を実行します。 + \return size 暗号化に成功した場合、暗号化されたバッファのサイズが返されます + \return RSA_BUFFER_E RSAバッファエラー、出力が小さすぎるか入力が大きすぎます + + \param in 暗号化するバッファへのポインタ + \param inLen 暗号化するバッファの長さ + \param out 作成された暗号化されたメッセージ + \param outLen 暗号化されたメッセージを保持するために利用可能なバッファの長さ + \param key 初期化されたRSAキー構造体 + \param rng 初期化されたWC_RNG構造体 + \param type 使用するパディングのタイプ(WC_RSA_OAEP_PADまたはWC_RSA_PKCSV15_PAD) + \param hash 使用するハッシュのタイプ(選択肢はhash.hにあります) + \param mgf 使用するマスク生成関数のタイプ + \param label 暗号化されたメッセージに関連付けるオプションのラベル + \param labelSz 使用されるオプションのラベルのサイズ + _Example_ \code WC_RNG rng; RsaKey key; - byte in[] = “I use Turing Machines to ask questions” + byte in[] = "I use Turing Machines to ask questions" byte out[256]; int ret; … @@ -913,9 +1117,10 @@ int wc_RsaKeyToDer(RsaKey* key, byte* output, word32 inLen); ret = wc_RsaPublicEncrypt_ex(in, sizeof(in), out, sizeof(out), &key, &rng, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA, WC_MGF1SHA1, NULL, 0); if (ret < 0) { - //handle error + // エラーを処理 } \endcode + \sa wc_RsaPublicEncrypt \sa wc_RsaPrivateDecrypt_ex */ @@ -925,24 +1130,29 @@ int wc_RsaPublicEncrypt_ex(const byte* in, word32 inLen, byte* out, /*! \ingroup RSA - \brief この関数はRSAを使用してメッセージを復号化し、どのパディングタイプのオプションを指定します。 - \return size 復号化が成功すると、復号化されたメッセージのサイズが返されます。 - \return MEMORY_E 必要な配列をMallocにMallocにするのに十分なメモリがない場合は返されます。 - \return BAD_FUNC_ARG 関数に渡された引数が渡された場合に返されます。 - \param in 復号化のためのバッファへのポインタ - \param inLen 復号化するバッファの長さ - \param out 復号化されたMSGが作成されました - \param outLen 復号化されたMSGを保持するために利用可能なバッファの長さ - \param key 初期化ずみRsaKey構造体 - \param type 使用するパディングの種類(WC_RSA_OAEP_PADまたはWC_RSA_PKCSV15_PAD) - \param hash 使用するハッシュの種類(選択はhash.hにあります) - \param mgf 使用するマスク生成機能の種類 - \param label 暗号化されたメッセージに関連付けるオプションのラベル + + \brief この関数は、RSAを使用してメッセージを復号し、どのパディングタイプを使用するかのオプションを提供します。 + + \return size 復号に成功した場合、復号されたメッセージのサイズが返されます。 + \return MEMORY_E 必要な配列をmallocするのに十分なメモリがシステムにない場合に返されます。 + \return BAD_FUNC_ARG 関数に不正な引数が渡された場合に返されます。 + + \param in 復号するバッファへのポインタ + \param inLen 復号するバッファの長さ + \param out 作成された復号されたメッセージ + \param outLen 復号されたメッセージを保持するために利用可能なバッファの長さ + \param key 初期化されたRSAキー構造体 + \param type 使用するパディングのタイプ(WC_RSA_OAEP_PADまたはWC_RSA_PKCSV15_PAD) + \param hash 使用するハッシュのタイプ(選択肢はhash.hにあります) + \param mgf 使用するマスク生成関数のタイプ + \param label 暗号化されたメッセージに関連付けるオプションのラベル + \param labelSz 使用されるオプションのラベルのサイズ + _Example_ \code WC_RNG rng; RsaKey key; - byte in[] = “I use Turing Machines to ask questions” + byte in[] = "I use Turing Machines to ask questions" byte out[256]; byte plain[256]; int ret; @@ -950,17 +1160,18 @@ int wc_RsaPublicEncrypt_ex(const byte* in, word32 inLen, byte* out, ret = wc_RsaPublicEncrypt_ex(in, sizeof(in), out, sizeof(out), &key, &rng, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA, WC_MGF1SHA1, NULL, 0); if (ret < 0) { - //handle error + // エラーを処理 } … ret = wc_RsaPrivateDecrypt_ex(out, ret, plain, sizeof(plain), &key, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA, WC_MGF1SHA1, NULL, 0); if (ret < 0) { - //handle error + // エラーを処理 } \endcode - \sa none + + \sa なし */ int wc_RsaPrivateDecrypt_ex(const byte* in, word32 inLen, byte* out, word32 outLen, RsaKey* key, int type, @@ -968,25 +1179,30 @@ int wc_RsaPrivateDecrypt_ex(const byte* in, word32 inLen, /*! \ingroup RSA - \brief この関数はRSAを使用してメッセージをインラインで復号化し、どのパディングタイプのオプションを示します。INバッファには、呼び出された後に復号化されたメッセージが含まれ、アウトバイトポインタはプレーンテキストがある「IN」バッファ内の場所を指します。 - \return size 復号化が成功すると、復号化されたメッセージのサイズが返されます。 - \return MEMORY_E: 必要な配列をMallocにMallocにするのに十分なメモリがない場合は返されます。 - \return RSA_PAD_E: パディングのエラーが発生した場合に返されます。 - \return BAD_PADDING_E: 過去のパディングの解析中にエラーが発生した場合に返されます。 - \return BAD_FUNC_ARG: 関数に渡された引数が渡された場合に返されます。 - \param in 復号化のためのバッファへのポインタ - \param inLen 復号化するバッファの長さ - \param out "in"バッファの復号化されたメッセージの位置へのポインタ - \param key 初期化ずみRsaKey構造体 - \param type 使用するパディングの種類(WC_RSA_OAEP_PADまたはWC_RSA_PKCSV15_PAD) - \param hash 使用するハッシュの種類(選択はhash.hにあります) - \param mgf 使用するマスク生成機能の種類 - \param label 暗号化されたメッセージに関連付けるオプションのラベル + + \brief この関数は、RSAを使用してメッセージをインラインで復号し、どのパディングタイプを使用するかのオプションを提供します。inバッファは呼び出し後に復号されたメッセージを含み、outバイトポインタは平文がある「in」バッファ内の場所を指します。 + + \return size 復号に成功した場合、復号されたメッセージのサイズが返されます。 + \return MEMORY_E: 必要な配列をmallocするのに十分なメモリがシステムにない場合に返されます。 + \return RSA_PAD_E: パディングにエラーがあった場合に返されます。 + \return BAD_PADDING_E: パディングを解析中にエラーが発生した場合に返されます。 + \return BAD_FUNC_ARG: 関数に不正な引数が渡された場合に返されます。 + + \param in 復号するバッファへのポインタ + \param inLen 復号するバッファの長さ + \param out 「in」バッファ内の復号されたメッセージの場所へのポインタ + \param key 初期化されたRSAキー構造体 + \param type 使用するパディングのタイプ(WC_RSA_OAEP_PADまたはWC_RSA_PKCSV15_PAD) + \param hash 使用するハッシュのタイプ(選択肢はhash.hにあります) + \param mgf 使用するマスク生成関数のタイプ + \param label 暗号化されたメッセージに関連付けるオプションのラベル + \param labelSz 使用されるオプションのラベルのサイズ + _Example_ \code WC_RNG rng; RsaKey key; - byte in[] = “I use Turing Machines to ask questions” + byte in[] = "I use Turing Machines to ask questions" byte out[256]; byte* plain; int ret; @@ -995,17 +1211,18 @@ int wc_RsaPrivateDecrypt_ex(const byte* in, word32 inLen, &rng, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA, WC_MGF1SHA1, NULL, 0); if (ret < 0) { - //handle error + // エラーを処理 } … ret = wc_RsaPrivateDecryptInline_ex(out, ret, &plain, &key, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA, WC_MGF1SHA1, NULL, 0); if (ret < 0) { - //handle error + // エラーを処理 } \endcode - \sa none + + \sa なし */ int wc_RsaPrivateDecryptInline_ex(byte* in, word32 inLen, byte** out, RsaKey* key, int type, enum wc_HashType hash, @@ -1013,20 +1230,25 @@ int wc_RsaPrivateDecryptInline_ex(byte* in, word32 inLen, /*! \ingroup RSA - \brief RSAアルゴリズムに使用されるRsaKey構造体の個々の要素(E、N)をバッファに取り出します。 - \return 0 関数が正常に実行された場合は、エラーなしで返されます。 - \return BAD_FUNC_ARG: いずれかのパラメータがNULL値で渡された場合に返されます。 - \return RSA_BUFFER_E: 渡されたeまたはnバッファが正しいサイズではない場合に返されます。 - \return MP_MEM: 内部関数にメモリエラーがある場合に返されます。 - \return MP_VAL: 内部関数引数が無効な場合に返されます。 - \param key 検証に使用する鍵。 - \param e eの値のバッファー。eはRSAモジュラ演算での大きな正の整数です。 - \param eSz eバッファのサイズ。 - \param n nの値のバッファー。NはRSAモジュラー演算では大きな正の整数です。 + + \brief RsaKey構造体をRSAアルゴリズムに使用される個々の要素(e、n)に展開します。 + + \return 0 関数がエラーなく正常に実行された場合に返されます。 + \return BAD_FUNC_ARG: いずれかのパラメータがnull値で渡された場合に返されます。 + \return RSA_BUFFER_E: 渡されたeまたはnバッファが正しいサイズでない場合に返されます。 + \return MP_MEM: 内部関数にメモリエラーがある場合に返されます。 + \return MP_VAL: 内部関数の引数が無効な場合に返されます。 + + \param key 検証に使用するキー。 + \param e eの値のバッファ。eはRSAモジュラー演算における大きな正の整数です。 + \param eSz eバッファのサイズ。 + \param n nの値のバッファ。nはRSAモジュラー演算における大きな正の整数です。 + \param nSz nバッファのサイズ。 + _Example_ \code - Rsa key; // A valid RSA key. - byte e[ buffer sz E.g. 256 ]; + Rsa key; // 有効なRSAキー。 + byte e[ バッファサイズ 例:256 ]; byte n[256]; int ret; word32 eSz = sizeof(e); @@ -1034,9 +1256,10 @@ int wc_RsaPrivateDecryptInline_ex(byte* in, word32 inLen, ... ret = wc_RsaFlattenPublicKey(&key, e, &eSz, n, &nSz); if (ret != 0) { - // Failure case. + // 失敗ケース。 } \endcode + \sa wc_InitRsaKey \sa wc_InitRsaKey_ex \sa wc_MakeRsaKey @@ -1046,26 +1269,32 @@ int wc_RsaFlattenPublicKey(RsaKey* key, byte* e, word32* eSz, byte* n, /*! \ingroup RSA - \brief RSA公開鍵をDERフォーマットに変換します。出力に書き込み、書き込まれたバイト数を返します。 - \return >0 成功、書かれたバイト数。 - \return BAD_FUNC_ARG キーまたは出力がNULLの場合に返されます。 - \return MEMORY_E エラー割り当てメモリが発生したときに返されます。 - \return <0 エラー - \param key 変換するRsaKey構造体。 - \param output 保留された出力バッファー。(NULLが長さのみを返す場合) + + \brief RSA公開鍵をDER形式に変換します。outputに書き込み、書き込まれたバイト数を返します。 + + \return >0 成功、書き込まれたバイト数。 + \return BAD_FUNC_ARG keyまたはoutputがnullの場合に返されます。 + \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます。 + \return <0 エラー + + \param key 変換するRSAキー構造体。 + \param output DERを保持する出力バッファ。(NULLの場合は長さのみを返します) + \param inLen バッファの長さ。 + _Example_ \code RsaKey key; wc_InitRsaKey(&key, NULL); - // Use key + // キーを使用 - const int BUFFER_SIZE = 1024; // Some adequate size for the buffer + const int BUFFER_SIZE = 1024; // バッファに適切なサイズ byte output[BUFFER_SIZE]; if (wc_RsaKeyToPublicDer(&key, output, sizeof(output)) != 0) { - // Handle Error + // エラーを処理 } \endcode + \sa wc_RsaPublicKeyDerSize \sa wc_RsaKeyToPublicDer_ex \sa wc_InitRsaKey @@ -1074,26 +1303,32 @@ int wc_RsaKeyToPublicDer(RsaKey* key, byte* output, word32 inLen); /*! \ingroup RSA - \brief RSA公開鍵をDERフォーマットに変換します。出力に書き込み、書き込まれたバイト数を返します。with_headerが0の場合(seq + n + e)だけがASN.1 Derフォーマットで返され、ヘッダーを除外します。 - \return >0 成功、書かれたバイト数。 - \return BAD_FUNC_ARG キーまたは出力がNULLの場合に返されます。 - \return MEMORY_E エラー割り当てメモリが発生したときに返されます。 - \return <0 エラー - \param key 変換するRsaKey構造体。 - \param output 保留された出力バッファー。(NULLが長さのみを返す場合) + + \brief RSA公開鍵をDER形式に変換します。outputに書き込み、書き込まれたバイト数を返します。with_headerが0の場合、(seq + n + e)のみがASN.1 DER形式で返され、ヘッダーは除外されます。 + + \return >0 成功、書き込まれたバイト数。 + \return BAD_FUNC_ARG keyまたはoutputがnullの場合に返されます。 + \return MEMORY_E メモリの割り当て中にエラーが発生した場合に返されます。 + \return <0 エラー + + \param key 変換するRSAキー構造体。 + \param output DERを保持する出力バッファ。(NULLの場合は長さのみを返します) + \param inLen バッファの長さ。 + _Example_ \code RsaKey key; wc_InitRsaKey(&key, NULL); - // Use key + // キーを使用 - const int BUFFER_SIZE = 1024; // Some adequate size for the buffer + const int BUFFER_SIZE = 1024; // バッファに適切なサイズ byte output[BUFFER_SIZE]; if (wc_RsaKeyToPublicDer_ex(&key, output, sizeof(output), 0) != 0) { - // Handle Error + // エラーを処理 } \endcode + \sa wc_RsaPublicKeyDerSize \sa wc_RsaKeyToPublicDer \sa wc_InitRsaKey @@ -1103,50 +1338,61 @@ int wc_RsaKeyToPublicDer_ex(RsaKey* key, byte* output, word32 inLen, /*! \ingroup RSA - \brief この関数は、長さサイズ(ビット単位)のRSA秘密鍵を生成し、指数(e)を指定します。次に、このキーを提供されたRsaKey構造体に格納するため、暗号化/復号化に使用できます。Eに使用するセキュア番号は65537です。サイズは、RSA_MIN_SIZEよりも大きく、RSA_MAX_SIZEよりも大きくなる必要があります。この機能が利用可能であるため、コンパイル時にオプションwolfssl_key_genを有効にする必要があります。これは、 - を使用してください./configureを使用する場合は、-enable-keygenで実現できます。 - \return 0 RSA秘密鍵の生成に成功したら返されました - \return BAD_FUNC_ARG 入力引数のいずれかがNULLの場合、サイズパラメータは必要な範囲外にあるか、eが誤って選択されている場合 - \return RNG_FAILURE_E 提供されたRNG構造体を使用してランダムブロックを生成するエラーがある場合 + + \brief この関数は、長さsize(ビット単位)と指定された指数(e)のRSA秘密鍵を生成します。その後、このキーを提供されたRsaKey構造体に格納し、暗号化/復号に使用できるようにします。eに使用する安全な数値は65537です。sizeはRSA_MIN_SIZE以上かつRSA_MAX_SIZE以下である必要があります。この関数を使用するには、コンパイル時にオプションWOLFSSL_KEY_GENを有効にする必要があります。./configureを使用する場合は、--enable-keygenで実現できます。 + + \return 0 RSA秘密鍵の生成に成功した場合に返されます + \return BAD_FUNC_ARG いずれかの入力引数がNULLの場合、sizeパラメータが必要な境界外にある場合、またはeが誤って選択された場合に返されます + \return RNG_FAILURE_E 提供されたRNG構造体を使用してランダムブロックを生成する際にエラーがある場合に返されます \return MP_INIT_E - \return MP_READ_E RSAキーの生成中に使用された数学ライブラリにエラーがある場合に返されたRSAキーの生成中に使用された数学ライブラリにエラーがある場合に返される可能性があります。 - \return MP_CMP_E RSAキーの生成中に使用されている数学ライブラリにエラーがある場合は返される可能性があります。 - \return MP_INVMOD_E RSAキーの生成中に使用されている数学ライブラリにエラーがある場合は返される可能性があります。 - \return MP_EXPTMOD_E RSAキーの生成中に使用されている数学ライブラリにエラーがある場合は返される可能性があります。 - \return MP_MOD_E RSAキーの生成中に使用されている数学ライブラリにエラーがある場合は返される可能性があります。 - \return MP_MUL_E RSAキーの生成中に使用されている数学ライブラリにエラーがある場合は返される可能性があります。 - \return MP_ADD_E RSAキーの生成中に使用されている数学ライブラリにエラーがある場合は返される可能性があります。 - \return MP_MULMOD_E RSAキーの生成中に使用されている数学ライブラリにエラーがある場合は返される可能性があります。 - \return MP_TO_E RSAキーの生成中に使用されている数学ライブラリにエラーがある場合は返される可能性があります。 - \return MP_MEM RSAキーの生成中に使用されている数学ライブラリにエラーがある場合は返される可能性があります。 - \return MP_ZERO_E RSAキーの生成中に使用されている数学ライブラリにエラーがある場合は返される可能性があります。 - \param key 生成された秘密鍵を保存するRSAKEY構造体へのポインタ - \param size ビット単位の希望のキー長。rsa_min_sizeより大きく、rsa_max_sizeよりも大きくなる必要があります。 - \param e キーを生成するために使用する指数パラメータ。安全な選択は65537です + \return MP_READ_E RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_CMP_E RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_INVMOD_E RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_EXPTMOD_E RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_MOD_E RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_MUL_E RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_ADD_E RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_MULMOD_E RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_TO_E RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_MEM RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + \return MP_ZERO_E RSAキーの生成中に使用される数学ライブラリにエラーがある場合に返される可能性があります + + \param key 生成された秘密鍵を格納するRsaKey構造体へのポインタ + \param size 希望するキーの長さ(ビット単位)。RSA_MIN_SIZEより大きくRSA_MAX_SIZEより小さい必要があります + \param e キーを生成するために使用する指数パラメータ。安全な選択肢は65537です + \param rng キーを作成する際の乱数生成に使用するRNG構造体へのポインタ + _Example_ \code RsaKey priv; WC_RNG rng; int ret = 0; - long e = 65537; // standard value to use for exponent + long e = 65537; // 指数に使用する標準値 - wc_InitRsaKey(&priv, NULL); // not using heap hint. No custom memory + wc_InitRsaKey(&priv, NULL); // ヒープヒントを使用しない。カスタムメモリなし wc_InitRng(&rng); - // generate 2048 bit long private key + // 2048ビット長の秘密鍵を生成 ret = wc_MakeRsaKey(&priv, 2048, e, &rng); if( ret != 0 ) { - // error generating private key + // 秘密鍵の生成エラー } \endcode - \sa none + + \sa なし */ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng); /*! \ingroup RSA - \brief この関数は、ブロックされていないRSAコンテキストを設定します。RSANBコンテキストが設定されている場合、RSA関数を多くの小さな操作に分割する高速数学ベースの非ブロッキングEXPTMODが可能になります。wc_rsa_nonblockが定義されているときに有効になっています。 - \return 0 成功 - \return BAD_FUNC_ARG キーまたはNBがNULLの場合に返されます。 - \param key RSAキー構造 + + \brief この関数は、ノンブロッキングRSAコンテキストを設定します。RsaNbコンテキストが設定されると、RSA関数を多くの小さな操作に分割する、高速数学ベースのノンブロッキングexptmodが有効になります。WC_RSA_NONBLOCKが定義されている場合に有効になります。 + + \return 0 成功 + \return BAD_FUNC_ARG keyまたはnbがnullの場合に返されます。 + + \param key RSAキー構造体 + \param nb このRSAキーが使用するRSAノンブロッキング構造体。 + _Example_ \code int ret, count = 0; @@ -1155,35 +1401,41 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng); wc_InitRsaKey(&key, NULL); - // Enable non-blocking RSA mode - provide context + // ノンブロッキングRSAモードを有効化 - コンテキストを提供 ret = wc_RsaSetNonBlock(key, &nb); if (ret != 0) return ret; do { ret = wc_RsaSSL_Sign(in, inLen, out, outSz, key, rng); - count++; // track number of would blocks + count++; // ブロック回数を追跡 if (ret == FP_WOULDBLOCK) { - // do "other" work here + // ここで「その他の」作業を実行 } } while (ret == FP_WOULDBLOCK); if (ret < 0) { return ret; } - printf("RSA non-block sign: size %d, %d times\n", ret, count); + printf("RSAノンブロック署名: サイズ %d、%d回\n", ret, count); \endcode + \sa wc_RsaSetNonBlockTime */ int wc_RsaSetNonBlock(RsaKey* key, RsaNb* nb); /*! \ingroup RSA - \brief この関数は最大ブロック時間の最大ブロック時間をマイクロ秒単位で設定します。それは、メガヘルツのCPU速度と共に事前計算されたテーブル(TFM.cexptModnbinstを参照)を使用して、提供された最大ブロック時間内に次の動作を完了できるかどうかを判断します。wc_rsa_nonblock_timeが定義されているときに有効になります。 - \return 0 成功 - \return BAD_FUNC_ARG キーがNULLの場合、またはWC_RSASETNONBLOCKが以前に呼び出され、キー - > NBはNULLの場合に返されます。 - \param key RsaKey構造体 - \param maxBlockUs マイクロ秒をブロックする最大時間。 + + \brief この関数は、最大ブロッキング時間をマイクロ秒単位で設定します。CPU速度(メガヘルツ単位)とともに事前計算されたテーブル(tfm.c exptModNbInstを参照)を使用して、次の操作が提供された最大ブロッキング時間内に完了できるかどうかを判断します。WC_RSA_NONBLOCK_TIMEが定義されている場合に有効になります。 + + \return 0 成功 + \return BAD_FUNC_ARG keyがnullの場合、またはwc_RsaSetNonBlockが事前に呼び出されておらずkey->nbがnullの場合に返されます。 + + \param key RSAキー構造体。 + \param maxBlockUs 最大ブロック時間(マイクロ秒)。 + \param cpuMHz CPU速度(メガヘルツ単位)。 + _Example_ \code RsaKey key; @@ -1191,10 +1443,11 @@ int wc_RsaSetNonBlock(RsaKey* key, RsaNb* nb); wc_InitRsaKey(&key, NULL); wc_RsaSetNonBlock(key, &nb); - wc_RsaSetNonBlockTime(&key, 4000, 160); // Block Max = 4 ms, CPU = 160MHz + wc_RsaSetNonBlockTime(&key, 4000, 160); // Block Max = 4 ms、CPU = 160MHz \endcode + \sa wc_RsaSetNonBlock */ int wc_RsaSetNonBlockTime(RsaKey* key, word32 maxBlockUs, - word32 cpuMHz); + word32 cpuMHz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/sakke.h b/doc/dox_comments/header_files-ja/sakke.h index 638fa660b0..cc812a5492 100644 --- a/doc/dox_comments/header_files-ja/sakke.h +++ b/doc/dox_comments/header_files-ja/sakke.h @@ -1,112 +1,141 @@ /*! + \ingroup SAKKE_Setup */ int wc_InitSakkeKey(SakkeKey* key, void* heap, int devId); /*! + \ingroup SAKKE_Setup */ int wc_InitSakkeKey_ex(SakkeKey* key, int keySize, int curveId, void* heap, int devId); /*! + \ingroup SAKKE_Setup */ void wc_FreeSakkeKey(SakkeKey* key); /*! + \ingroup SAKKE_Setup */ int wc_MakeSakkeKey(SakkeKey* key, WC_RNG* rng); /*! + \ingroup SAKKE_Setup */ int wc_MakeSakkePublicKey(SakkeKey* key, ecc_point* pub); /*! + \ingroup SAKKE_RSK */ int wc_MakeSakkeRsk(SakkeKey* key, const byte* id, word16 idSz, ecc_point* rsk); /*! + \ingroup SAKKE_RSK */ int wc_ValidateSakkeRsk(SakkeKey* key, const byte* id, word16 idSz, ecc_point* rsk, int* valid); /*! + \ingroup SAKKE_RSK */ int wc_GenerateSakkeRskTable(const SakkeKey* key, const ecc_point* rsk, byte* table, word32* len); /*! + \ingroup SAKKE_Setup */ int wc_ExportSakkeKey(SakkeKey* key, byte* data, word32* sz); /*! + \ingroup SAKKE_Setup */ int wc_ImportSakkeKey(SakkeKey* key, const byte* data, word32 sz); /*! + \ingroup SAKKE_Setup */ int wc_ExportSakkePrivateKey(SakkeKey* key, byte* data, word32* sz); /*! + \ingroup SAKKE_Setup */ int wc_ImportSakkePrivateKey(SakkeKey* key, const byte* data, word32 sz); /*! + \ingroup SAKKE_RSK */ int wc_EncodeSakkeRsk(const SakkeKey* key, ecc_point* rsk, byte* out, word32* sz, int raw); /*! + \ingroup SAKKE_RSK */ int wc_DecodeSakkeRsk(const SakkeKey* key, const byte* data, word32 sz, ecc_point* rsk); /*! + \ingroup SAKKE_RSK */ int wc_ImportSakkeRsk(SakkeKey* key, const byte* data, word32 sz); /*! + \ingroup SAKKE_Setup */ int wc_ExportSakkePublicKey(SakkeKey* key, byte* data, word32* sz, int raw); /*! + \ingroup SAKKE_Setup */ int wc_ImportSakkePublicKey(SakkeKey* key, const byte* data, word32 sz, int trusted); /*! + \ingroup SAKKE_Operations */ int wc_GetSakkeAuthSize(SakkeKey* key, word16* authSz); /*! + \ingroup SAKKE_Setup */ int wc_SetSakkeIdentity(SakkeKey* key, const byte* id, word16 idSz); /*! + \ingroup SAKKE_Operations */ int wc_MakeSakkePointI(SakkeKey* key, const byte* id, word16 idSz); /*! + \ingroup SAKKE_Operations */ int wc_GetSakkePointI(SakkeKey* key, byte* data, word32* sz); /*! + \ingroup SAKKE_Operations */ int wc_SetSakkePointI(SakkeKey* key, const byte* id, word16 idSz, const byte* data, word32 sz); /*! + \ingroup SAKKE_Operations */ int wc_GenerateSakkePointITable(SakkeKey* key, byte* table, word32* len); /*! + \ingroup SAKKE_Operations */ int wc_SetSakkePointITable(SakkeKey* key, byte* table, word32 len); /*! + \ingroup SAKKE_Operations */ int wc_ClearSakkePointITable(SakkeKey* key); /*! + \ingroup SAKKE_Operations */ int wc_MakeSakkeEncapsulatedSSV(SakkeKey* key, enum wc_HashType hashType, byte* ssv, word16 ssvSz, byte* auth, word16* authSz); /*! + \ingroup SAKKE_Operations */ int wc_GenerateSakkeSSV(SakkeKey* key, WC_RNG* rng, byte* ssv, word16* ssvSz); /*! + \ingroup SAKKE_RSK */ int wc_SetSakkeRsk(SakkeKey* key, const ecc_point* rsk, byte* table, word32 len); /*! + \ingroup SAKKE_Operations */ int wc_DeriveSakkeSSV(SakkeKey* key, enum wc_HashType hashType, byte* ssv, word16 ssvSz, const byte* auth, diff --git a/doc/dox_comments/header_files-ja/sha.h b/doc/dox_comments/header_files-ja/sha.h index ce199690e8..e163a251bc 100644 --- a/doc/dox_comments/header_files-ja/sha.h +++ b/doc/dox_comments/header_files-ja/sha.h @@ -1,7 +1,12 @@ /*! \ingroup SHA - \brief この関数はSHAを初期化します。これは自動的にWC_Shahashによって呼び出されます。 - \return 0 初期化に成功したときに返されます + + \brief この関数はSHAを初期化します。これはwc_ShaHashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param sha 暗号化に使用するsha構造体へのポインタ + _Example_ \code Sha sha[1]; @@ -13,6 +18,7 @@ wc_ShaFinal(sha, hash); } \endcode + \sa wc_ShaHash \sa wc_ShaUpdate \sa wc_ShaFinal @@ -21,14 +27,19 @@ int wc_InitSha(wc_Sha*); /*! \ingroup SHA - \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。 - \return 0 データをダイジェストに正常に追加すると返されます。 - \param sha 暗号化に使用するSHA構造へのポインタ - \param data ハッシュするデータ + + \brief 長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。 + + \return 0 ダイジェストへのデータ追加に成功した場合に返されます。 + + \param sha 暗号化に使用するsha構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + _Example_ \code Sha sha[1]; - byte data[] = { // Data to be hashed }; + byte data[] = { // ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha(sha)) != 0) { @@ -39,6 +50,7 @@ int wc_InitSha(wc_Sha*); wc_ShaFinal(sha, hash); } \endcode + \sa wc_ShaHash \sa wc_ShaFinal \sa wc_InitSha @@ -47,13 +59,19 @@ int wc_ShaUpdate(wc_Sha* sha, const byte* data, word32 len); /*! \ingroup SHA - \brief データのハッシュを確定します。結果はハッシュに入れられます。SHA構造体の状態をリセットします。 - \return 0 ファイナライズに成功したときに返されます。 - \param sha 暗号化に使用するSHA構造へのポインタ + + \brief データのハッシュ化を完了します。結果はhashに格納されます。 + sha構造体の状態をリセットします。 + + \return 0 完了に成功した場合に返されます。 + + \param sha 暗号化に使用するsha構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code Sha sha[1]; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha(sha)) != 0) { @@ -64,6 +82,7 @@ int wc_ShaUpdate(wc_Sha* sha, const byte* data, word32 len); wc_ShaFinal(sha, hash); } \endcode + \sa wc_ShaHash \sa wc_InitSha \sa wc_ShaGetHash @@ -72,15 +91,21 @@ int wc_ShaFinal(wc_Sha* sha, byte* hash); /*! \ingroup SHA - \brief 初期化されたSHA構造体によって使用されるメモリをクリーンアップするために使用されます。注:これは、wolfssl_ti_hashが定義されている場合にのみサポートされています。 - \return No 戻り値。 + + \brief 初期化されたSha構造体によって使用されるメモリをクリーンアップするために使用されます。 + + \return 戻り値なし。 + + \param sha 解放するSha構造体へのポインタ。 + _Example_ \code Sha sha; wc_InitSha(&sha); - // Use sha + // shaを使用 wc_ShaFree(&sha); \endcode + \sa wc_InitSha \sa wc_ShaUpdate \sa wc_ShaFinal @@ -89,9 +114,14 @@ void wc_ShaFree(wc_Sha*); /*! \ingroup SHA - \brief ハッシュデータを取得します。結果はハッシュに入れられます。SHA構造体の状態をリセットしません。 - \return 0 ファイナライズに成功したときに返されます。 - \param sha 暗号化に使用するSHA構造へのポインタ + + \brief ハッシュデータを取得します。結果はhashに格納されます。sha構造体の状態はリセットされません。 + + \return 0 完了に成功した場合に返されます。 + + \param sha 暗号化に使用するsha構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code Sha sha[1]; @@ -103,8 +133,9 @@ void wc_ShaFree(wc_Sha*); wc_ShaGetHash(sha, hash); } \endcode + \sa wc_ShaHash \sa wc_ShaFinal \sa wc_InitSha */ -int wc_ShaGetHash(wc_Sha* sha, byte* hash); +int wc_ShaGetHash(wc_Sha* sha, byte* hash); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/sha256.h b/doc/dox_comments/header_files-ja/sha256.h index 6cedcec1e9..308bd8830e 100644 --- a/doc/dox_comments/header_files-ja/sha256.h +++ b/doc/dox_comments/header_files-ja/sha256.h @@ -1,7 +1,12 @@ /*! \ingroup SHA - \brief この関数はSHA256を初期化します。これはWC_SHA256HASHによって自動的に呼び出されます。 - \return 0 初期化に成功したときに返されます + + \brief この関数はSHA256を初期化します。これはwc_Sha256Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param sha256 暗号化に使用するsha256構造体へのポインタ + _Example_ \code Sha256 sha256[1]; @@ -13,6 +18,7 @@ wc_Sha256Final(sha256, hash); } \endcode + \sa wc_Sha256Hash \sa wc_Sha256Update \sa wc_Sha256Final @@ -21,14 +27,19 @@ int wc_InitSha256(wc_Sha256*); /*! \ingroup SHA - \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。 - \return 0 データをダイジェストに正常に追加すると返されます。 - \param sha256 暗号化に使用するSHA256構造へのポインタ - \param data ハッシュするデータ + + \brief 長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。 + + \return 0 ダイジェストへのデータ追加に成功した場合に返されます。 + + \param sha256 暗号化に使用するsha256構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + _Example_ \code Sha256 sha256[1]; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha256(sha256)) != 0) { @@ -39,6 +50,7 @@ int wc_InitSha256(wc_Sha256*); wc_Sha256Final(sha256, hash); } \endcode + \sa wc_Sha256Hash \sa wc_Sha256Final \sa wc_InitSha256 @@ -47,13 +59,18 @@ int wc_Sha256Update(wc_Sha256* sha, const byte* data, word32 len); /*! \ingroup SHA - \brief データのハッシュを確定します。結果はハッシュに入れられます。SHA256構造体の状態をリセットします。 - \return 0 ファイナライズに成功したときに返されます。 - \param sha256 暗号化に使用するSHA256構造へのポインタ + + \brief データのハッシュ化を完了します。結果はhashに格納されます。sha256構造体の状態をリセットします。 + + \return 0 完了に成功した場合に返されます。 + + \param sha256 暗号化に使用するsha256構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code Sha256 sha256[1]; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha256(sha256)) != 0) { @@ -64,6 +81,7 @@ int wc_Sha256Update(wc_Sha256* sha, const byte* data, word32 len); wc_Sha256Final(sha256, hash); } \endcode + \sa wc_Sha256Hash \sa wc_Sha256GetHash \sa wc_InitSha256 @@ -72,12 +90,17 @@ int wc_Sha256Final(wc_Sha256* sha256, byte* hash); /*! \ingroup SHA - \brief SHA256構造をリセットします。注:これは、wolfssl_ti_hashが定義されている場合にのみサポートされています。 - \return none いいえ返します。 + + \brief Sha256構造体をリセットします。注意: これはWOLFSSL_TI_HASHが定義されている場合にのみサポートされます。 + + \return none 戻り値なし。 + + \param sha256 解放するsha256構造体へのポインタ。 + _Example_ \code Sha256 sha256; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha256(&sha256)) != 0) { @@ -89,6 +112,7 @@ int wc_Sha256Final(wc_Sha256* sha256, byte* hash); wc_Sha256Free(&sha256); } \endcode + \sa wc_InitSha256 \sa wc_Sha256Update \sa wc_Sha256Final @@ -97,9 +121,14 @@ void wc_Sha256Free(wc_Sha256*); /*! \ingroup SHA - \brief ハッシュデータを取得します。結果はハッシュに入れられます。SHA256構造体の状態をリセットしません。 - \return 0 ファイナライズに成功したときに返されます。 - \param sha256 暗号化に使用するSHA256構造へのポインタ + + \brief ハッシュデータを取得します。結果はhashに格納されます。sha256構造体の状態はリセットされません。 + + \return 0 完了に成功した場合に返されます。 + + \param sha256 暗号化に使用するsha256構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code Sha256 sha256[1]; @@ -111,6 +140,7 @@ void wc_Sha256Free(wc_Sha256*); wc_Sha256GetHash(sha256, hash); } \endcode + \sa wc_Sha256Hash \sa wc_Sha256Final \sa wc_InitSha256 @@ -119,17 +149,23 @@ int wc_Sha256GetHash(wc_Sha256* sha256, byte* hash); /*! \ingroup SHA - \brief SHA224構造を初期化するために使用されます。 - \return 0 成功 - \return 1 SHA224がNULLなので、エラーが返されました。 + + \brief Sha224構造体を初期化するために使用されます。 + + \return 0 成功 + \return 1 sha224がnullのためにエラーが返されます。 + + \param sha224 初期化するSha224構造体へのポインタ。 + _Example_ \code Sha224 sha224; if(wc_InitSha224(&sha224) != 0) { - // Handle error + // エラーを処理 } \endcode + \sa wc_Sha224Hash \sa wc_Sha224Update \sa wc_Sha224Final @@ -138,16 +174,21 @@ int wc_InitSha224(wc_Sha224*); /*! \ingroup SHA - \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。 - \return 0 成功 - \return 1 関数が失敗した場合はエラーが返されます。 - \return BAD_FUNC_ARG SHA224またはデータがNULLの場合、エラーが返されます。 - \param sha224 暗号化に使用するSHA224構造へのポインタ。 - \param data ハッシュするデータ。 + + \brief 長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。 + + \return 0 成功 + \return 1 関数が失敗した場合にエラーが返されます。 + \return BAD_FUNC_ARG sha224またはdataがnullの場合にエラーが返されます。 + + \param sha224 暗号化に使用するSha224構造体へのポインタ。 + \param data ハッシュ化されるデータ。 + \param len ハッシュ化されるデータの長さ。 + _Example_ \code Sha224 sha224; - byte data[] = { /* Data to be hashed }; + byte data[] = { /* ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha224(&sha224)) != 0) { @@ -158,6 +199,7 @@ int wc_InitSha224(wc_Sha224*); wc_Sha224Final(&sha224, hash); } \endcode + \sa wc_InitSha224 \sa wc_Sha224Final \sa wc_Sha224Hash @@ -166,14 +208,19 @@ int wc_Sha224Update(wc_Sha224* sha224, const byte* data, word32 len); /*! \ingroup SHA - \brief データのハッシュを確定します。結果はハッシュに入れられます。SHA224構造体の状態をリセットします。 - \return 0 成功 - \return <0 エラー - \param sha224 暗号化に使用するSHA224構造へのポインタ + + \brief データのハッシュ化を完了します。結果はhashに格納されます。sha224構造体の状態をリセットします。 + + \return 0 成功 + \return <0 エラー + + \param sha224 暗号化に使用するsha224構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code Sha224 sha224; - byte data[] = { /* Data to be hashed }; + byte data[] = { /* ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha224(&sha224)) != 0) { @@ -184,8 +231,9 @@ int wc_Sha224Update(wc_Sha224* sha224, const byte* data, word32 len); wc_Sha224Final(&sha224, hash); } \endcode + \sa wc_InitSha224 \sa wc_Sha224Hash \sa wc_Sha224Update */ -int wc_Sha224Final(wc_Sha224* sha224, byte* hash); +int wc_Sha224Final(wc_Sha224* sha224, byte* hash); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/sha3.h b/doc/dox_comments/header_files-ja/sha3.h new file mode 100644 index 0000000000..017de344bc --- /dev/null +++ b/doc/dox_comments/header_files-ja/sha3.h @@ -0,0 +1,1212 @@ +/*! + \ingroup SHA + + \brief この関数はSHA3-224を初期化します。これはwc_Sha3_224Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param sha3 暗号化に使用するsha3構造体へのポインタ + + _Example_ + \code + wc_Sha3 sha3[1]; + if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_224 failed"); + } + else { + wc_Sha3_224_Update(sha3, data, len); + wc_Sha3_224_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_224Hash + \sa wc_Sha3_224_Update + \sa wc_Sha3_224_Final +*/ +int wc_InitSha3_224(wc_Sha3* sha3, void* heap, int devId); + +/*! + \ingroup SHA + + \brief 長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。 + + \return 0 ダイジェストへのデータの追加に成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + + _Example_ + \code + wc_Sha3 sha3[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_224 failed"); + } + else { + wc_Sha3_224_Update(sha3, data, len); + wc_Sha3_224_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_224Hash + \sa wc_Sha3_224_Final + \sa wc_InitSha3_224 +*/ +int wc_Sha3_224_Update(wc_Sha3* sha, const byte* data, word32 len); + +/*! + \ingroup SHA + + \brief データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。 + + \return 0 完了に成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Sha3 sha3[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_224 failed"); + } + else { + wc_Sha3_224_Update(sha3, data, len); + wc_Sha3_224_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_224Hash + \sa wc_Sha3_224_GetHash + \sa wc_InitSha3_224 +*/ +int wc_Sha3_224_Final(wc_Sha3* sha3, byte* hash); + +/*! + \ingroup SHA + + \brief wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。 + + \return none 戻り値なし。 + + \param sha3 解放されるsha3構造体へのポインタ。 + + _Example_ + \code + wc_Sha3 sha3; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_224(&sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_224 failed"); + } + else { + wc_Sha3_224_Update(&sha3, data, len); + wc_Sha3_224_Final(&sha3, hash); + wc_Sha3_224_Free(&sha3); + } + \endcode + + \sa wc_InitSha3_224 + \sa wc_Sha3_224_Update + \sa wc_Sha3_224_Final +*/ +void wc_Sha3_224_Free(wc_Sha3*); + +/*! + \ingroup SHA + + \brief ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。 + + \return 0 ハッシュのコピーに成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Sha3 sha3[1]; + if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_224 failed"); + } + else { + wc_Sha3_224_Update(sha3, data, len); + wc_Sha3_224_GetHash(sha3, hash); + } + \endcode + + \sa wc_Sha3_224Hash + \sa wc_Sha3_224_Final + \sa wc_InitSha3_224 + \sa wc_Sha3_224_Copy +*/ +int wc_Sha3_224_GetHash(wc_Sha3* sha3, byte* hash); + +/*! + \ingroup SHA + + \brief ハッシュの状態をコピーします。 + + \return 0 コピーに成功した場合に返されます。 + + \param sha3 コピーするsha3構造体へのポインタ + \param dst コピー先のsha3構造体へのポインタ + + _Example_ + \code + wc_Sha3 sha3[1]; + wc_Sha3 sha3_dup[1]; + if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_224 failed"); + } + else { + wc_Sha3_224_Update(sha3, data, len); + wc_Sha3_224_Copy(sha3, sha3_dup); + } + \endcode + + \sa wc_Sha3_224Hash + \sa wc_Sha3_224_Final + \sa wc_InitSha3_224 + \sa wc_Sha3_224_GetHash +*/ +int wc_Sha3_224_Copy(wc_Sha3* sha3, wc_Sha3* dst); + +/*! + \ingroup SHA + + \brief この関数はSHA3-256を初期化します。これはwc_Sha3_256Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param sha3 暗号化に使用するsha3構造体へのポインタ + + _Example_ + \code + wc_Sha3 sha3[1]; + if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_256 failed"); + } + else { + wc_Sha3_256_Update(sha3, data, len); + wc_Sha3_256_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_256Hash + \sa wc_Sha3_256_Update + \sa wc_Sha3_256_Final +*/ +int wc_InitSha3_256(wc_Sha3* sha3, void* heap, int devId); + +/*! + \ingroup SHA + + \brief 長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。 + + \return 0 ダイジェストへのデータの追加に成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + + _Example_ + \code + wc_Sha3 sha3[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_256 failed"); + } + else { + wc_Sha3_256_Update(sha3, data, len); + wc_Sha3_256_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_256Hash + \sa wc_Sha3_256_Final + \sa wc_InitSha3_256 +*/ +int wc_Sha3_256_Update(wc_Sha3* sha, const byte* data, word32 len); + +/*! + \ingroup SHA + + \brief データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。 + + \return 0 完了に成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Sha3 sha3[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_256 failed"); + } + else { + wc_Sha3_256_Update(sha3, data, len); + wc_Sha3_256_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_256Hash + \sa wc_Sha3_256_GetHash + \sa wc_InitSha3_256 +*/ +int wc_Sha3_256_Final(wc_Sha3* sha3, byte* hash); + +/*! + \ingroup SHA + + \brief wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。 + + \return none 戻り値なし。 + + \param sha3 解放されるsha3構造体へのポインタ。 + + _Example_ + \code + wc_Sha3 sha3; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_256(&sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_256 failed"); + } + else { + wc_Sha3_256_Update(&sha3, data, len); + wc_Sha3_256_Final(&sha3, hash); + wc_Sha3_256_Free(&sha3); + } + \endcode + + \sa wc_InitSha3_256 + \sa wc_Sha3_256_Update + \sa wc_Sha3_256_Final +*/ +void wc_Sha3_256_Free(wc_Sha3*); + +/*! + \ingroup SHA + + \brief ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。 + + \return 0 ハッシュのコピーに成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Sha3 sha3[1]; + if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_256 failed"); + } + else { + wc_Sha3_256_Update(sha3, data, len); + wc_Sha3_256_GetHash(sha3, hash); + } + \endcode + + \sa wc_Sha3_256Hash + \sa wc_Sha3_256_Final + \sa wc_InitSha3_256 + \sa wc_Sha3_256_Copy +*/ +int wc_Sha3_256_GetHash(wc_Sha3* sha3, byte* hash); + +/*! + \ingroup SHA + + \brief ハッシュの状態をコピーします。 + + \return 0 コピーに成功した場合に返されます。 + + \param sha3 コピーするsha3構造体へのポインタ + \param dst コピー先のsha3構造体へのポインタ + + _Example_ + \code + wc_Sha3 sha3[1]; + wc_Sha3 sha3_dup[1]; + if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_256 failed"); + } + else { + wc_Sha3_256_Update(sha3, data, len); + wc_Sha3_256_Copy(sha3, sha3_dup); + } + \endcode + + \sa wc_Sha3_256Hash + \sa wc_Sha3_256_Final + \sa wc_InitSha3_256 + \sa wc_Sha3_256_GetHash +*/ +int wc_Sha3_256_Copy(wc_Sha3* sha3, wc_Sha3* dst); + +/*! + \ingroup SHA + + \brief この関数はSHA3-384を初期化します。これはwc_Sha3_384Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param sha3 暗号化に使用するsha3構造体へのポインタ + + _Example_ + \code + wc_Sha3 sha3[1]; + if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_384 failed"); + } + else { + wc_Sha3_384_Update(sha3, data, len); + wc_Sha3_384_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_384Hash + \sa wc_Sha3_384_Update + \sa wc_Sha3_384_Final +*/ +int wc_InitSha3_384(wc_Sha3* sha3, void* heap, int devId); + +/*! + \ingroup SHA + + \brief 長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。 + + \return 0 ダイジェストへのデータの追加に成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + + _Example_ + \code + wc_Sha3 sha3[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_384 failed"); + } + else { + wc_Sha3_384_Update(sha3, data, len); + wc_Sha3_384_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_384Hash + \sa wc_Sha3_384_Final + \sa wc_InitSha3_384 +*/ +int wc_Sha3_384_Update(wc_Sha3* sha, const byte* data, word32 len); + +/*! + \ingroup SHA + + \brief データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。 + + \return 0 完了に成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Sha3 sha3[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_384 failed"); + } + else { + wc_Sha3_384_Update(sha3, data, len); + wc_Sha3_384_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_384Hash + \sa wc_Sha3_384_GetHash + \sa wc_InitSha3_384 +*/ +int wc_Sha3_384_Final(wc_Sha3* sha3, byte* hash); + +/*! + \ingroup SHA + + \brief wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。 + + \return none 戻り値なし。 + + \param sha3 解放されるsha3構造体へのポインタ。 + + _Example_ + \code + wc_Sha3 sha3; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_384(&sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_384 failed"); + } + else { + wc_Sha3_384_Update(&sha3, data, len); + wc_Sha3_384_Final(&sha3, hash); + wc_Sha3_384_Free(&sha3); + } + \endcode + + \sa wc_InitSha3_384 + \sa wc_Sha3_384_Update + \sa wc_Sha3_384_Final +*/ +void wc_Sha3_384_Free(wc_Sha3*); + +/*! + \ingroup SHA + + \brief ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。 + + \return 0 ハッシュのコピーに成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Sha3 sha3[1]; + if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_38384ailed"); + } + else { + wc_Sha3_384_Update(sha3, data, len); + wc_Sha3_384_GetHash(sha3, hash); + } + \endcode + + \sa wc_Sha3_384Hash + \sa wc_Sha3_384_Final + \sa wc_InitSha3_384 + \sa wc_Sha3_384_Copy +*/ +int wc_Sha3_384_GetHash(wc_Sha3* sha3, byte* hash); + +/*! + \ingroup SHA + + \brief ハッシュの状態をコピーします。 + + \return 0 コピーに成功した場合に返されます。 + + \param sha3 コピーするsha3構造体へのポインタ + \param dst コピー先のsha3構造体へのポインタ + + _Example_ + \code + wc_Sha3 sha3[1]; + wc_Sha3 sha3_dup[1]; + if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_384 failed"); + } + else { + wc_Sha3_384_Update(sha3, data, len); + wc_Sha3_384_Copy(sha3, sha3_dup); + } + \endcode + + \sa wc_Sha3_384Hash + \sa wc_Sha3_384_Final + \sa wc_InitSha3_384 + \sa wc_Sha3_384_GetHash +*/ +int wc_Sha3_384_Copy(wc_Sha3* sha3, wc_Sha3* dst); + +/*! + \ingroup SHA + + \brief この関数はSHA3-512を初期化します。これはwc_Sha3_512Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param sha3 暗号化に使用するsha3構造体へのポインタ + + _Example_ + \code + wc_Sha3 sha3[1]; + if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_512 failed"); + } + else { + wc_Sha3_512_Update(sha3, data, len); + wc_Sha3_512_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_512Hash + \sa wc_Sha3_512_Update + \sa wc_Sha3_512_Final +*/ +int wc_InitSha3_512(wc_Sha3* sha3, void* heap, int devId); + +/*! + \ingroup SHA + + \brief 長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。 + + \return 0 ダイジェストへのデータの追加に成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + + _Example_ + \code + wc_Sha3 sha3[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_512 failed"); + } + else { + wc_Sha3_512_Update(sha3, data, len); + wc_Sha3_512_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_512Hash + \sa wc_Sha3_512_Final + \sa wc_InitSha3_512 +*/ +int wc_Sha3_512_Update(wc_Sha3* sha, const byte* data, word32 len); + +/*! + \ingroup SHA + + \brief データのハッシュ化を完了します。結果はhashに格納されます。sha3構造体の状態をリセットします。 + + \return 0 完了に成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Sha3 sha3[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_512 failed"); + } + else { + wc_Sha3_512_Update(sha3, data, len); + wc_Sha3_512_Final(sha3, hash); + } + \endcode + + \sa wc_Sha3_512Hash + \sa wc_Sha3_512_GetHash + \sa wc_InitSha3_512 +*/ +int wc_Sha3_512_Final(wc_Sha3* sha3, byte* hash); + +/*! + \ingroup SHA + + \brief wc_Sha3構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。 + + \return none 戻り値なし。 + + \param sha3 解放されるsha3構造体へのポインタ。 + + _Example_ + \code + wc_Sha3 sha3; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitSha3_512(&sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_512 failed"); + } + else { + wc_Sha3_512_Update(&sha3, data, len); + wc_Sha3_512_Final(&sha3, hash); + wc_Sha3_512_Free(&sha3); + } + \endcode + + \sa wc_InitSha3_512 + \sa wc_Sha3_512_Update + \sa wc_Sha3_512_Final +*/ +void wc_Sha3_512_Free(wc_Sha3*); + +/*! + \ingroup SHA + + \brief ハッシュデータを取得します。結果はhashに格納されます。sha3構造体の状態をリセットしません。 + + \return 0 ハッシュのコピーに成功した場合に返されます。 + + \param sha3 暗号化に使用するsha3構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Sha3 sha3[1]; + if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_512 failed"); + } + else { + wc_Sha3_512_Update(sha3, data, len); + wc_Sha3_512_GetHash(sha3, hash); + } + \endcode + + \sa wc_Sha3_512Hash + \sa wc_Sha3_512_Final + \sa wc_InitSha3_512 + \sa wc_Sha3_512_Copy +*/ +int wc_Sha3_512_GetHash(wc_Sha3* sha3, byte* hash); + +/*! + \ingroup SHA + + \brief ハッシュの状態をコピーします。 + + \return 0 コピーに成功した場合に返されます。 + + \param sha3 コピーするsha3構造体へのポインタ + \param dst コピー先のsha3構造体へのポインタ + + _Example_ + \code + wc_Sha3 sha3[1]; + wc_Sha3 sha3_dup[1]; + if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitSha3_512 failed"); + } + else { + wc_Sha3_512_Update(sha3, data, len); + wc_Sha3_512_Copy(sha3, sha3_dup); + } + \endcode + + \sa wc_Sha3_512Hash + \sa wc_Sha3_512_Final + \sa wc_InitSha3_512 + \sa wc_Sha3_512_GetHash +*/ +int wc_Sha3_512_Copy(wc_Sha3* sha3, wc_Sha3* dst); + +/*! + \ingroup SHA + + \brief この関数はSHAKE-128を初期化します。これはwc_Shake128Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param shake 暗号化に使用するshake構造体へのポインタ + + _Example_ + \code + wc_Shake shake[1]; + if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake128 failed"); + } + else { + wc_Shake128_Update(shake, data, len); + wc_Shake128_Final(shake, hash); + } + \endcode + + \sa wc_Shake128Hash + \sa wc_Shake128_Update + \sa wc_Shake128_Final +*/ +int wc_InitShake128(wc_Shake* shake, void* heap, int devId); + +/*! + \ingroup SHA + + \brief 長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。 + + \return 0 ダイジェストへのデータの追加に成功した場合に返されます。 + + \param shake 暗号化に使用するshake構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + + _Example_ + \code + wc_Shake shake[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake128 failed"); + } + else { + wc_Shake128_Update(shake, data, len); + wc_Shake128_Final(shake, hash); + } + \endcode + + \sa wc_Shake128Hash + \sa wc_Shake128_Final + \sa wc_InitShake128 +*/ +int wc_Shake128_Update(wc_Shake* sha, const byte* data, word32 len); + +/*! + \ingroup SHA + + \brief データのハッシュ化を完了します。結果はhashに格納されます。shake構造体の状態をリセットします。 + + \return 0 完了に成功した場合に返されます。 + + \param shake 暗号化に使用するshake構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Shake shake[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake128 failed"); + } + else { + wc_Shake128_Update(shake, data, len); + wc_Shake128_Final(shake, hash); + } + \endcode + + \sa wc_Shake128Hash + \sa wc_Shake128_GetHash + \sa wc_InitShake128 +*/ +int wc_Shake128_Final(wc_Shake* shake, byte* hash); + +/*! + \ingroup SHA + + \brief 長さlenの提供されたバイト配列を吸収するために呼び出されます。段階的に呼び出すことはできません。 + + \return 0 データの吸収に成功した場合に返されます。 + + \param shake 暗号化に使用するshake構造体へのポインタ + \param data 吸収されるデータ + \param len 吸収されるデータの長さ + + _Example_ + \code + wc_Shake shake[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + byte out[2 * WC_SHA3_128_BLOCK_SIZE]; + int blocks = 2; + + if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake128 failed"); + } + else { + wc_Shake128_Absorb(shake, data, len); + wc_Shake128_SqueezeBlocks(shake, out, blocks); + } + \endcode + + \sa wc_Shake128_SqueezeBlocks + \sa wc_InitShake128 +*/ +int wc_Shake128_Absorb(wc_Shake* sha, const byte* data, word32 len); + +/*! + \ingroup SHA + + \brief さらに多くのデータブロックを絞り出します。結果はoutに格納されます。段階的に呼び出すことができます。 + + \return 0 絞り出しに成功した場合に返されます。 + + \param shake 暗号化に使用するshake構造体へのポインタ + \param hash 出力を保持するバイト配列。 + \param blocks 絞り出すブロックの数。各ブロックはWC_SHA3_128_BLOCK_SIZEバイトの長さです。 + + _Example_ + \code + wc_Shake shake[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + byte out[2 * WC_SHA3_128_BLOCK_SIZE]; + int blocks = 2; + + if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake128 failed"); + } + else { + wc_Shake128_Absorb(shake, data, len); + wc_Shake128_SqueezeBlocks(shake, out, blocks); + } + \endcode + + \sa wc_Shake128_Absorb + \sa wc_InitShake128 +*/ +int wc_Shake128_SqueezeBlocks(wc_Shake* shake, byte* out, word32 blockCnt); + +/*! + \ingroup SHA + + \brief wc_Shake構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。 + + \return none 戻り値なし。 + + \param shake 解放されるshake構造体へのポインタ。 + + _Example_ + \code + wc_Shake shake; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitShake128(&shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake128 failed"); + } + else { + wc_Shake128_Update(&shake, data, len); + wc_Shake128_Final(&shake, hash); + wc_Shake128_Free(&shake); + } + \endcode + + \sa wc_InitShake128 + \sa wc_Shake128_Update + \sa wc_Shake128_Final +*/ +void wc_Shake128_Free(wc_Shake*); + +/*! + \ingroup SHA + + \brief ハッシュデータを取得します。結果はhashに格納されます。shake構造体の状態をリセットしません。 + + \return 0 ハッシュのコピーに成功した場合に返されます。 + + \param shake 暗号化に使用するshake構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Shake shake[1]; + if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake128 failed"); + } + else { + wc_Shake128_Update(shake, data, len); + wc_Shake128_GetHash(shake, hash); + } + \endcode + + \sa wc_Shake128Hash + \sa wc_Shake128_Final + \sa wc_InitShake128 + \sa wc_Shake128_Copy +*/ +int wc_Shake128_GetHash(wc_Shake* shake, byte* hash); + +/*! + \ingroup SHA + + \brief ハッシュの状態をコピーします。 + + \return 0 コピーに成功した場合に返されます。 + + \param shake コピーするshake構造体へのポインタ + \param dst コピー先のshake構造体へのポインタ + + _Example_ + \code + wc_Shake shake[1]; + wc_Shake shake_dup[1]; + if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake128 failed"); + } + else { + wc_Shake128_Update(shake, data, len); + wc_Shake128_Copy(shake, shake_dup); + } + \endcode + + \sa wc_Shake128Hash + \sa wc_Shake128_Final + \sa wc_InitShake128 + \sa wc_Shake128_GetHash +*/ +int wc_Shake128_Copy(wc_Shake* shake, wc_Shake* dst); + +/*! + \ingroup SHA + + \brief この関数はSHAKE-256を初期化します。これはwc_Shake256Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param shake 暗号化に使用するshake構造体へのポインタ + + _Example_ + \code + wc_Shake shake[1]; + if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake256 failed"); + } + else { + wc_Shake256_Update(shake, data, len); + wc_Shake256_Final(shake, hash, sizeof(hash)); + } + \endcode + + \sa wc_Shake256Hash + \sa wc_Shake256_Update + \sa wc_Shake256_Final +*/ +int wc_InitShake256(wc_Shake* shake, void* heap, int devId); + +/*! + \ingroup SHA + + \brief 長さlenのバイト配列を継続的にハッシュ化するために呼び出すことができます。 + + \return 0 ダイジェストへのデータの追加に成功した場合に返されます。 + + \param shake 暗号化に使用するshake構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + + _Example_ + \code + wc_Shake shake[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake256 failed"); + } + else { + wc_Shake256_Update(shake, data, len); + wc_Shake256_Final(shake, hash, sizeof(hash)); + } + \endcode + + \sa wc_Shake256Hash + \sa wc_Shake256_Final + \sa wc_InitShake256 +*/ +int wc_Shake256_Update(wc_Shake* sha, const byte* data, word32 len); + +/*! + \ingroup SHA + + \brief データのハッシュ化を完了します。結果はhashに格納されます。shake構造体の状態をリセットします。 + + \return 0 完了に成功した場合に返されます。 + + \param shake 暗号化に使用するshake構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + \param hashLen ハッシュのサイズ(バイト単位)。 + + _Example_ + \code + wc_Shake shake[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake256 failed"); + } + else { + wc_Shake256_Update(shake, data, len); + wc_Shake256_Final(shake, hash, sizeof(hash)); + } + \endcode + + \sa wc_Shake256Hash + \sa wc_Shake256_GetHash + \sa wc_InitShake256 +*/ +int wc_Shake256_Final(wc_Shake* shake, byte* hash, word32 hashLen); + +/*! + \ingroup SHA + + \brief 長さlenの提供されたバイト配列を吸収するために呼び出されます。段階的に呼び出すことはできません。 + + \return 0 データの吸収に成功した場合に返されます。 + + \param shake 暗号化に使用するshake構造体へのポインタ + \param data 吸収されるデータ + \param len 吸収されるデータの長さ + + _Example_ + \code + wc_Shake shake[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + byte out[2 * WC_SHA3_256_BLOCK_SIZE]; + int blocks = 2; + + if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake256 failed"); + } + else { + wc_Shake256_Absorb(shake, data, len); + wc_Shake256_SqueezeBlocks(shake, out, blocks); + } + \endcode + + \sa wc_Shake256_SqueezeBlocks + \sa wc_InitShake256 +*/ +int wc_Shake256_Absorb(wc_Shake* sha, const byte* data, word32 len); + +/*! + \ingroup SHA + + \brief さらに多くのデータブロックを絞り出します。結果はoutに格納されます。段階的に呼び出すことができます。 + + \return 0 絞り出しに成功した場合に返されます。 + + \param shake 暗号化に使用するshake構造体へのポインタ + \param hash 出力を保持するバイト配列。 + \param blocks 絞り出すブロックの数。各ブロックはWC_SHA3_256_BLOCK_SIZEバイトの長さです。 + + _Example_ + \code + wc_Shake shake[1]; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + byte out[2 * WC_SHA3_256_BLOCK_SIZE]; + int blocks = 2; + + if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake256 failed"); + } + else { + wc_Shake256_Absorb(shake, data, len); + wc_Shake256_SqueezeBlocks(shake, out, blocks); + } + \endcode + + \sa wc_Shake256_Absorb + \sa wc_InitShake256 +*/ +int wc_Shake256_SqueezeBlocks(wc_Shake* shake, byte* out, word32 blockCnt); + +/*! + \ingroup SHA + + \brief wc_Shake構造体をリセットします。注:これはWOLFSSL_TI_HASHが定義されている場合のみサポートされます。 + + \return none 戻り値なし。 + + \param shake 解放されるshake構造体へのポインタ。 + + _Example_ + \code + wc_Shake shake; + byte data[] = { ハッシュ化されるデータ }; + word32 len = sizeof(data); + + if ((ret = wc_InitShake256(&shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake256 failed"); + } + else { + wc_Shake256_Update(&shake, data, len); + wc_Shake256_Final(&shake, hash, sizeof(hash)); + wc_Shake256_Free(&shake); + } + \endcode + + \sa wc_InitShake256 + \sa wc_Shake256_Update + \sa wc_Shake256_Final +*/ +void wc_Shake256_Free(wc_Shake*); + +/*! + \ingroup SHA + + \brief ハッシュデータを取得します。結果はhashに格納されます。shake構造体の状態をリセットしません。 + + \return 0 ハッシュのコピーに成功した場合に返されます。 + + \param shake 暗号化に使用するshake構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + + _Example_ + \code + wc_Shake shake[1]; + if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake256 failed"); + } + else { + wc_Shake256_Update(shake, data, len); + wc_Shake256_GetHash(shake, hash); + } + \endcode + + \sa wc_Shake256Hash + \sa wc_Shake256_Final + \sa wc_InitShake256 + \sa wc_Shake256_Copy +*/ +int wc_Shake256_GetHash(wc_Shake* shake, byte* hash); + +/*! + \ingroup SHA + + \brief ハッシュの状態をコピーします。 + + \return 0 コピーに成功した場合に返されます。 + + \param shake コピーするshake構造体へのポインタ + \param dst コピー先のshake構造体へのポインタ + + _Example_ + \code + wc_Shake shake[1]; + wc_Shake shake_dup[1]; + if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) { + WOLFSSL_MSG("wc_InitShake256 failed"); + } + else { + wc_Shake256_Update(shake, data, len); + wc_Shake256_Copy(shake, shake_dup); + } + \endcode + + \sa wc_Shake256Hash + \sa wc_Shake256_Final + \sa wc_InitShake256 + \sa wc_Shake256_GetHash +*/ +int wc_Shake256_Copy(wc_Shake* shake, wc_Shake* dst); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/sha512.h b/doc/dox_comments/header_files-ja/sha512.h index 6d8a835d30..3f2e7852b7 100644 --- a/doc/dox_comments/header_files-ja/sha512.h +++ b/doc/dox_comments/header_files-ja/sha512.h @@ -1,7 +1,12 @@ /*! \ingroup SHA - \brief この関数はSHA512を初期化します。これはWC_SHA512HASHによって自動的に呼び出されます。 - \return 0 初期化に成功したときに返されます + + \brief この関数はSHA512を初期化します。これはwc_Sha512Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param sha512 暗号化に使用するsha512構造体へのポインタ + _Example_ \code Sha512 sha512[1]; @@ -13,6 +18,7 @@ wc_Sha512Final(sha512, hash); } \endcode + \sa wc_Sha512Hash \sa wc_Sha512Update \sa wc_Sha512Final @@ -21,14 +27,19 @@ int wc_InitSha512(wc_Sha512*); /*! \ingroup SHA - \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。 - \return 0 データをダイジェストに正常に追加すると返されます。 - \param sha512 暗号化に使用するSHA512構造へのポインタ - \param data ハッシュするデータ + + \brief 長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。 + + \return 0 ダイジェストへのデータ追加に成功した場合に返されます。 + + \param sha512 暗号化に使用するsha512構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + _Example_ \code Sha512 sha512[1]; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha512(sha512)) != 0) { @@ -39,6 +50,7 @@ int wc_InitSha512(wc_Sha512*); wc_Sha512Final(sha512, hash); } \endcode + \sa wc_Sha512Hash \sa wc_Sha512Final \sa wc_InitSha512 @@ -47,13 +59,18 @@ int wc_Sha512Update(wc_Sha512* sha, const byte* data, word32 len); /*! \ingroup SHA - \brief データのハッシュを確定します。結果はハッシュに入れられます。 - \return 0 ハッシュを確定するとうまく返されました。 - \param sha512 暗号化に使用するSHA512構造へのポインタ + + \brief データのハッシュ化を完了します。結果はhashに格納されます。 + + \return 0 ハッシュの完了に成功した場合に返されます。 + + \param sha512 暗号化に使用するsha512構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code Sha512 sha512[1]; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha512(sha512)) != 0) { @@ -64,6 +81,7 @@ int wc_Sha512Update(wc_Sha512* sha, const byte* data, word32 len); wc_Sha512Final(sha512, hash); } \endcode + \sa wc_Sha512Hash \sa wc_Sha512Final \sa wc_InitSha512 @@ -72,8 +90,13 @@ int wc_Sha512Final(wc_Sha512* sha512, byte* hash); /*! \ingroup SHA - \brief この関数はSHA384を初期化します。これはWC_SHA384HASHによって自動的に呼び出されます。 - \return 0 初期化に成功したときに返されます + + \brief この関数はSHA384を初期化します。これはwc_Sha384Hashによって自動的に呼び出されます。 + + \return 0 初期化に成功した場合に返されます + + \param sha384 暗号化に使用するsha384構造体へのポインタ + _Example_ \code Sha384 sha384[1]; @@ -85,6 +108,7 @@ int wc_Sha512Final(wc_Sha512* sha512, byte* hash); wc_Sha384Final(sha384, hash); } \endcode + \sa wc_Sha384Hash \sa wc_Sha384Update \sa wc_Sha384Final @@ -93,14 +117,19 @@ int wc_InitSha384(wc_Sha384*); /*! \ingroup SHA - \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。 - \return 0 データをダイジェストに正常に追加すると返されます。 - \param sha384 暗号化に使用するSHA384構造へのポインタ - \param data ハッシュするデータ + + \brief 長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。 + + \return 0 ダイジェストへのデータ追加に成功した場合に返されます。 + + \param sha384 暗号化に使用するsha384構造体へのポインタ + \param data ハッシュ化されるデータ + \param len ハッシュ化されるデータの長さ + _Example_ \code Sha384 sha384[1]; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha384(sha384)) != 0) { @@ -111,6 +140,7 @@ int wc_InitSha384(wc_Sha384*); wc_Sha384Final(sha384, hash); } \endcode + \sa wc_Sha384Hash \sa wc_Sha384Final \sa wc_InitSha384 @@ -119,13 +149,18 @@ int wc_Sha384Update(wc_Sha384* sha, const byte* data, word32 len); /*! \ingroup SHA - \brief データのハッシュを確定します。結果はハッシュに入れられます。 - \return 0 ファイナライズに成功したときに返されます。 - \param sha384 暗号化に使用するSHA384構造へのポインタ + + \brief データのハッシュ化を完了します。結果はhashに格納されます。 + + \return 0 完了に成功した場合に返されます。 + + \param sha384 暗号化に使用するsha384構造体へのポインタ + \param hash ハッシュ値を保持するバイト配列。 + _Example_ \code Sha384 sha384[1]; - byte data[] = { Data to be hashed }; + byte data[] = { ハッシュ化されるデータ }; word32 len = sizeof(data); if ((ret = wc_InitSha384(sha384)) != 0) { @@ -136,8 +171,9 @@ int wc_Sha384Update(wc_Sha384* sha, const byte* data, word32 len); wc_Sha384Final(sha384, hash); } \endcode + \sa wc_Sha384Hash \sa wc_Sha384Final \sa wc_InitSha384 */ -int wc_Sha384Final(wc_Sha384* sha384, byte* hash); +int wc_Sha384Final(wc_Sha384* sha384, byte* hash); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/signature.h b/doc/dox_comments/header_files-ja/signature.h index 1017faf86b..87898e7967 100644 --- a/doc/dox_comments/header_files-ja/signature.h +++ b/doc/dox_comments/header_files-ja/signature.h @@ -1,21 +1,27 @@ /*! \ingroup Signature - \brief この関数は、結果のシグネチャの最大サイズを返します。 - \return Returns sig_type_e sig_typeがサポートされていない場合sig_typeが無効な場合はbad_func_argを返します。正の戻り値は、署名の最大サイズを示します。 - \param sig_type wc_signature_type_eccまたはwc_signature_type_rsaなどの署名型列挙型値。 - \param key ECC_KEYやRSAKEYなどのキー構造へのポインタ。 + + \brief この関数は、結果の署名の最大サイズを返します。 + + \return sig_typeがサポートされていない場合、SIG_TYPE_Eを返します。sig_typeが無効な場合、BAD_FUNC_ARGを返します。正の戻り値は、署名の最大サイズを示します。 + + \param sig_type WC_SIGNATURE_TYPE_ECCやWC_SIGNATURE_TYPE_RSAなどの署名タイプの列挙値。 + \param key ecc_keyやRsaKeyなどのキー構造体へのポインタ。 + \param key_len キー構造体のサイズ。 + _Example_ \code - // Get signature length + // 署名の長さを取得 enum wc_SignatureType sig_type = WC_SIGNATURE_TYPE_ECC; ecc_key eccKey; word32 sigLen; wc_ecc_init(&eccKey); sigLen = wc_SignatureGetSize(sig_type, &eccKey, sizeof(eccKey)); if (sigLen > 0) { - // Success + // 成功 } \endcode + \sa wc_HashGetDigestSize \sa wc_SignatureGenerate \sa wc_SignatureVerify @@ -25,36 +31,42 @@ int wc_SignatureGetSize(enum wc_SignatureType sig_type, /*! \ingroup Signature - \brief この関数は、データをハッシュし、結果のハッシュとキーを使用して署名を使用して署名を使用して署名を検証します。 - \return 0 成功 - \return SIG_TYPE_E -231、署名タイプが有効/利用可能です - \return BAD_FUNC_ARG -173、関数の不良引数が提供されています - \return BUFFER_E -132、出力バッファが小さすぎたり入力が大きすぎたりします。 - \param hash_type "wc_hash_type_sha256"などの "enum wc_hashtype"からのハッシュ型。 - \param sig_type wc_signature_type_eccまたはwc_signature_type_rsaなどの署名型列挙型値。 - \param data ハッシュへのデータを含むバッファへのポインタ。 - \param data_len データバッファの長さ。 - \param sig 署名を出力するためのバッファへのポインタ。 - \param sig_len シグネチャ出力バッファの長さ。 - \param key ECC_KEYやRSAKEYなどのキー構造へのポインタ。 + + \brief この関数は、データをハッシュ化し、結果のハッシュとキーを使用して署名を検証することで、署名を検証します。 + + \return 0 成功 + \return SIG_TYPE_E -231、署名タイプが有効化されていない/利用できない + \return BAD_FUNC_ARG -173、不正な関数引数が提供された + \return BUFFER_E -132、出力バッファが小さすぎるか、入力が大きすぎる。 + + \param hash_type "WC_HASH_TYPE_SHA256"などの"enum wc_HashType"からのハッシュタイプ。 + \param sig_type WC_SIGNATURE_TYPE_ECCやWC_SIGNATURE_TYPE_RSAなどの署名タイプの列挙値。 + \param data ハッシュ化するデータを含むバッファへのポインタ。 + \param data_len データバッファの長さ。 + \param sig 署名を出力するバッファへのポインタ。 + \param sig_len 署名出力バッファの長さ。 + \param key ecc_keyやRsaKeyなどのキー構造体へのポインタ。 + \param key_len キー構造体のサイズ。 + _Example_ \code int ret; ecc_key eccKey; - // Import the public key + // 公開鍵をインポート wc_ecc_init(&eccKey); ret = wc_ecc_import_x963(eccPubKeyBuf, eccPubKeyLen, &eccKey); - // Perform signature verification using public key + // 公開鍵を使用して署名検証を実行 ret = wc_SignatureVerify( WC_HASH_TYPE_SHA256, WC_SIGNATURE_TYPE_ECC, fileBuf, fileLen, sigBuf, sigLen, &eccKey, sizeof(eccKey)); - printf("Signature Verification: %s - (%d)\n", (ret == 0) ? "Pass" : "Fail", ret); + printf("署名検証: %s + (%d)\n", (ret == 0) ? "合格" : "不合格", ret); wc_ecc_free(&eccKey); \endcode + \sa wc_SignatureGetSize \sa wc_SignatureGenerate */ @@ -66,19 +78,24 @@ int wc_SignatureVerify( /*! \ingroup Signature - \brief この関数は、キーを使用してデータから署名を生成します。まずデータのハッシュを作成し、キーを使用してハッシュに署名します。 - \return 0 成功 - \return SIG_TYPE_E -231、署名タイプが有効/利用可能です - \return BAD_FUNC_ARG -173、関数の不良引数が提供されています - \return BUFFER_E -132、出力バッファが小さすぎたり入力が大きすぎたりします。 - \param hash_type "wc_hash_type_sha256"などの "enum wc_hashtype"からのハッシュ型。 - \param sig_type wc_signature_type_eccまたはwc_signature_type_rsaなどの署名型列挙型値。 - \param data ハッシュへのデータを含むバッファへのポインタ。 - \param data_len データバッファの長さ。 - \param sig 署名を出力するためのバッファへのポインタ。 - \param sig_len シグネチャ出力バッファの長さ。 - \param key ECC_KEYやRSAKEYなどのキー構造へのポインタ。 - \param key_len キー構造のサイズ + + \brief この関数は、キーを使用してデータから署名を生成します。最初にデータのハッシュを作成し、次にキーを使用してハッシュに署名します。 + + \return 0 成功 + \return SIG_TYPE_E -231、署名タイプが有効化されていない/利用できない + \return BAD_FUNC_ARG -173、不正な関数引数が提供された + \return BUFFER_E -132、出力バッファが小さすぎるか、入力が大きすぎる。 + + \param hash_type "WC_HASH_TYPE_SHA256"などの"enum wc_HashType"からのハッシュタイプ。 + \param sig_type WC_SIGNATURE_TYPE_ECCやWC_SIGNATURE_TYPE_RSAなどの署名タイプの列挙値。 + \param data ハッシュ化するデータを含むバッファへのポインタ。 + \param data_len データバッファの長さ。 + \param sig 署名を出力するバッファへのポインタ。 + \param sig_len 署名出力バッファの長さ。 + \param key ecc_keyやRsaKeyなどのキー構造体へのポインタ。 + \param key_len キー構造体のサイズ。 + \param rng 初期化されたRNG構造体へのポインタ。 + _Example_ \code int ret; @@ -88,27 +105,28 @@ int wc_SignatureVerify( wc_InitRng(&rng); wc_ecc_init(&eccKey); - // Generate key + // キーを生成 ret = wc_ecc_make_key(&rng, 32, &eccKey); - // Get signature length and allocate buffer + // 署名の長さを取得してバッファを割り当て sigLen = wc_SignatureGetSize(sig_type, &eccKey, sizeof(eccKey)); sigBuf = malloc(sigLen); - // Perform signature verification using public key + // 公開鍵を使用して署名検証を実行 ret = wc_SignatureGenerate( WC_HASH_TYPE_SHA256, WC_SIGNATURE_TYPE_ECC, fileBuf, fileLen, sigBuf, &sigLen, &eccKey, sizeof(eccKey), &rng); - printf("Signature Generation: %s - (%d)\n", (ret == 0) ? "Pass" : "Fail", ret); + printf("署名生成: %s + (%d)\n", (ret == 0) ? "合格" : "不合格", ret); free(sigBuf); wc_ecc_free(&eccKey); wc_FreeRng(&rng); \endcode + \sa wc_SignatureGetSize \sa wc_SignatureVerify */ @@ -117,4 +135,4 @@ int wc_SignatureGenerate( const byte* data, word32 data_len, byte* sig, word32 *sig_len, const void* key, word32 key_len, - WC_RNG* rng); + WC_RNG* rng); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/siphash.h b/doc/dox_comments/header_files-ja/siphash.h index 59cccf7765..90e01e8c8a 100644 --- a/doc/dox_comments/header_files-ja/siphash.h +++ b/doc/dox_comments/header_files-ja/siphash.h @@ -1,17 +1,21 @@ - /*! \ingroup SipHash - \brief この関数は、MacサイズのキーでSiphashを初期化します。 - \return 0 初期化に成功したときに返されます - \return BAD_FUNC_ARG SiphashまたはキーがNULLのときに返されます - \return BAD_FUNC_ARG OUTSZが8でも16でもない場合に返されます - \param siphash Macingに使用するサイプハッシュ構造へのポインタ - \param key 16バイト配列へのポインタ + + \brief この関数は、MACサイズに対するキーを使用してSipHashを初期化します。 + + \return 0 初期化に成功した場合に返されます + \return BAD_FUNC_ARG sipHashまたはkeyがNULLの場合に返されます + \return BAD_FUNC_ARG outSzが8でも16でもない場合に返されます + + \param siphash MACに使用するSipHash構造体へのポインタ + \param key 16バイト配列へのポインタ + \param outSz MACとして出力するバイト数 + _Example_ \code SipHash siphash[1]; unsigned char key[16] = { ... }; - byte macSz = 8; // 8 or 16 + byte macSz = 8; // 8または16 if ((ret = wc_InitSipHash(siphash, key, macSz)) != 0) { WOLFSSL_MSG("wc_InitSipHash failed"); @@ -23,6 +27,7 @@ WOLFSSL_MSG("wc_SipHashFinal failed"); } \endcode + \sa wc_SipHash \sa wc_SipHashUpdate \sa wc_SipHashFinal @@ -32,16 +37,21 @@ int wc_InitSipHash(SipHash* siphash, const unsigned char* key, /*! \ingroup SipHash - \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。 - \return 0 Macにデータを追加したら、返されます - \return BAD_FUNC_ARG Siphashがnullのとき返されました - \return BAD_FUNC_ARG inneがnullのとき返され、Inszはゼロではありません - \param siphash Macingに使用するサイプハッシュ構造へのポインタ - \param in マイートするデータ + + \brief 長さlenの提供されたバイト配列を継続的にハッシュするために呼び出すことができます。 + + \return 0 MACへのデータ追加に成功した場合に返されます + \return BAD_FUNC_ARG siphashがNULLの場合に返されます + \return BAD_FUNC_ARG inがNULLでinSzがゼロでない場合に返されます + + \param siphash MACに使用するSipHash構造体へのポインタ + \param in MACするデータ + \param inSz MACするデータのサイズ + _Example_ \code SipHash siphash[1]; - byte data[] = { Data to be MACed }; + byte data[] = { MACするデータ }; word32 len = sizeof(data); if ((ret = wc_InitSipHash(siphash, key, macSz)) != 0) { @@ -54,6 +64,7 @@ int wc_InitSipHash(SipHash* siphash, const unsigned char* key, WOLFSSL_MSG("wc_SipHashFinal failed"); } \endcode + \sa wc_SipHash \sa wc_InitSipHash \sa wc_SipHashFinal @@ -63,16 +74,21 @@ int wc_SipHashUpdate(SipHash* siphash, const unsigned char* in, /*! \ingroup SipHash - \brief データのMacingを確定します。結果が出入りする。 - \return 0 ファイナライズに成功したときに返されます。 - \return BAD_FUNC_ARG SiphashのOUTがNULLのときに返されます - \return BAD_FUNC_ARG OUTSZが初期化された値と同じではない場合に返されます - \param siphash Macingに使用するサイプハッシュ構造へのポインタ - \param out MAC値を保持するためのバイト配列 + + \brief データのMAC処理を完了します。結果はoutに格納されます。 + + \return 0 完了に成功した場合に返されます。 + \return BAD_FUNC_ARG siphashまたはoutがNULLの場合に返されます + \return BAD_FUNC_ARG outSzが初期化された値と同じでない場合に返されます + + \param siphash MACに使用するSipHash構造体へのポインタ + \param out MAC値を保持するバイト配列 + \param outSz MACとして出力するバイト数 + _Example_ \code SipHash siphash[1]; - byte mac[8] = { ... }; // 8 or 16 bytes + byte mac[8] = { ... }; // 8または16バイト byte macSz = sizeof(mac); if ((ret = wc_InitSipHash(siphash, key, macSz)) != 0) { @@ -85,6 +101,7 @@ int wc_SipHashUpdate(SipHash* siphash, const unsigned char* in, WOLFSSL_MSG("wc_SipHashFinal failed"); } \endcode + \sa wc_SipHash \sa wc_InitSipHash \sa wc_SipHashUpdate @@ -94,31 +111,36 @@ int wc_SipHashFinal(SipHash* siphash, unsigned char* out, /*! \ingroup SipHash - \brief この機能はSiphashを使用してデータを1ショットして、キーに基づいてMACを計算します。 - \return 0 Macingに成功したときに返されました - \return BAD_FUNC_ARG キーまたはOUTがNULLのときに返されます - \return BAD_FUNC_ARG inneがnullのとき返され、Inszはゼロではありません - \return BAD_FUNC_ARG OUTSZが8でも16でもない場合に返されます - \param key 16バイト配列へのポインタ - \param in マイートするデータ - \param inSz マイクされるデータのサイズ - \param out MAC値を保持するためのバイト配列 + + \brief この関数は、キーに基づいてMACを計算するために、SipHashを使用してデータをワンショットで処理します。 + + \return 0 MACに成功した場合に返されます + \return BAD_FUNC_ARG keyまたはoutがNULLの場合に返されます + \return BAD_FUNC_ARG inがNULLでinSzがゼロでない場合に返されます + \return BAD_FUNC_ARG outSzが8でも16でもない場合に返されます + + \param key 16バイト配列へのポインタ + \param in MACするデータ + \param inSz MACするデータのサイズ + \param out MAC値を保持するバイト配列 + \param outSz MACとして出力するバイト数 + _Example_ \code unsigned char key[16] = { ... }; - byte data[] = { Data to be MACed }; + byte data[] = { MACするデータ }; word32 len = sizeof(data); - byte mac[8] = { ... }; // 8 or 16 bytes + byte mac[8] = { ... }; // 8または16バイト byte macSz = sizeof(mac); if ((ret = wc_SipHash(key, data, len, mac, macSz)) != 0) { WOLFSSL_MSG("wc_SipHash failed"); } \endcode + \sa wc_InitSipHash \sa wc_SipHashUpdate \sa wc_SipHashFinal */ int wc_SipHash(const unsigned char* key, const unsigned char* in, - word32 inSz, unsigned char* out, unsigned char outSz); - + word32 inSz, unsigned char* out, unsigned char outSz); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/srp.h b/doc/dox_comments/header_files-ja/srp.h index 30a136d0a0..2ff3a08699 100644 --- a/doc/dox_comments/header_files-ja/srp.h +++ b/doc/dox_comments/header_files-ja/srp.h @@ -1,24 +1,30 @@ /*! \ingroup SRP - \brief 使用方法のためにSRP構造体を初期化します。 - \return 0 成功しています。 - \return BAD_FUNC_ARG SRPなどの引数がNULLまたはSRPSIDEの問題がある場合は、SRP_CLIENT_SIESまたはSRP_SERVER_SIEDでは問題がある場合に返します。 - \return NOT_COMPILED_IN タイプが引数として渡されたが、WolfCryptビルドに設定されていない場合。 - \return <0 エラー時に。 - \param srp 初期化されるSRP構造。 - \param type 使用するハッシュ型。 + + \brief 使用のためにSrp構造体を初期化します。 + + \return 0 成功時。 + \return BAD_FUNC_ARG srpがnullの場合やSrpSideがSRP_CLIENT_SIDEまたはSRP_SERVER_SIDEでない場合など、引数に問題がある場合に返されます。 + \return NOT_COMPILED_IN 引数として渡された型がwolfCryptビルドで設定されていない場合に返されます。 + \return <0 エラー時。 + + \param srp 初期化するSrp構造体。 + \param type 使用するハッシュタイプ。 + \param side 通信の側。 + _Example_ \code Srp srp; if (wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE) != 0) { - // Initialization error + // 初期化エラー } else { wc_SrpTerm(&srp); } \endcode + \sa wc_SrpTerm \sa wc_SrpSetUsername */ @@ -26,28 +32,39 @@ int wc_SrpInit(Srp* srp, SrpType type, SrpSide side); /*! \ingroup SRP - \brief 使用後にSRP構造リソースを解放します。 - \return none いいえ返します。 + + \brief 使用後にSrp構造体のリソースを解放します。 + + \return none 戻り値なし。 + + \param srp 終了するSrp構造体へのポインタ。 + _Example_ \code Srp srp; wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE); - // Use srp + // srpを使用 wc_SrpTerm(&srp) \endcode + \sa wc_SrpInit */ void wc_SrpTerm(Srp* srp); /*! \ingroup SRP - \brief ユーザー名を設定します。この関数は、wc_srpinitの後に呼び出す必要があります。 - \return 0 ユーザー名は正常に設定されました。 - \return BAD_FUNC_ARG: srpまたはusernameがnullの場合に返します。 - \return MEMORY_E: SRP->ユーザーにメモリを割り当てる問題がある場合 - \return < 0:エラー。 - \param srp SRP構造 - \param username ユーザー名を含むバッファ。 + + \brief ユーザー名を設定します。この関数はwc_SrpInitの後に呼び出す必要があります。 + + \return 0 ユーザー名が正常に設定されました。 + \return BAD_FUNC_ARG: srpまたはusernameがnullの場合に返されます。 + \return MEMORY_E: srp->userのメモリ割り当てに問題がある場合に返されます + \return < 0: エラー。 + + \param srp Srp構造体。 + \param username ユーザー名を含むバッファ。 + \param size ユーザー名のサイズ(バイト単位) + _Example_ \code Srp srp; @@ -57,10 +74,11 @@ void wc_SrpTerm(Srp* srp); wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE); if(wc_SrpSetUsername(&srp, username, usernameSize) != 0) { - // Error occurred setting username. + // ユーザー名の設定エラーが発生しました。 } wc_SrpTerm(&srp); \endcode + \sa wc_SrpInit \sa wc_SrpSetParams \sa wc_SrpTerm @@ -69,26 +87,31 @@ int wc_SrpSetUsername(Srp* srp, const byte* username, word32 size); /*! \ingroup SRP - \brief ユーザー名に基づいてSRPパラメータを設定します.. wc_srpsetuserNameの後に呼び出す必要があります。 - \return 0 成功 - \return BAD_FUNC_ARG SRP、N、G、またはSALTがNULLの場合、またはNSZ sideがsrp_client_sideに設定されていない場合。 - \return SRP_CALL_ORDER_E WC_SRPSETPASSWORDが順不同で呼び出されたときに戻ります。 - \return <0 エラー - \param srp SRP構造 - \param password パスワードを含むバッファ。 + + \brief パスワードを設定します。パスワードの設定は、srp構造体にクリアパスワードデータを永続化しません。クライアントはx = H(salt + H(user:pswd))を計算し、authフィールドに格納します。この関数はwc_SrpSetParamsの後に呼び出す必要があり、クライアント側のみです。 + + \return 0 成功 + \return BAD_FUNC_ARG srpまたはpasswordがnullの場合、またはsrp->sideがSRP_CLIENT_SIDEに設定されていない場合に返されます。 + \return SRP_CALL_ORDER_E wc_SrpSetPasswordが順序外で呼び出された場合に返されます。 + \return <0 エラー + + \param srp Srp構造体。 + \param password パスワードを含むバッファ。 + \param size パスワードのサイズ(バイト単位)。 + _Example_ \code Srp srp; @@ -125,9 +154,9 @@ int wc_SrpSetParams(Srp* srp, const byte* N, word32 nSz, byte password[] = "password"; word32 passwordSize = 8; - byte N[] = { }; // Contents of byte array N - byte g[] = { }; // Contents of byte array g - byte salt[] = { }; // Contents of byte array salt + byte N[] = { }; // バイト配列Nの内容 + byte g[] = { }; // バイト配列gの内容 + byte salt[] = { }; // バイト配列saltの内容 wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE); wc_SrpSetUsername(&srp, username, usernameSize); @@ -135,11 +164,12 @@ int wc_SrpSetParams(Srp* srp, const byte* N, word32 nSz, if(wc_SrpSetPassword(&srp, password, passwordSize) != 0) { - // Error setting password + // パスワード設定エラー } wc_SrpTerm(&srp); \endcode + \sa wc_SrpInit \sa wc_SrpSetUsername \sa wc_SrpSetParams @@ -148,33 +178,39 @@ int wc_SrpSetPassword(Srp* srp, const byte* password, word32 size); /*! \ingroup SRP - \brief 検証者を設定します。この関数は、wc_srpsetparamsの後に呼び出され、サーバー側のみです。 - \return 0 成功 - \return BAD_FUNC_ARG SRPまたはVerifierがNULLまたはSRP-> ISの場合、SRP_SERVER_SIEDではなく返されます。 - \return <0 エラー - \param srp SRP構造 - \param verifier 検証者を含む構造体。 + + \brief 検証子を設定します。この関数はwc_SrpSetParamsの後に呼び出す必要があり、サーバー側のみです。 + + \return 0 成功 + \return BAD_FUNC_ARG srpまたはverifierがnullの場合、またはsrp->sideがSRP_SERVER_SIDEでない場合に返されます。 + \return <0 エラー + + \param srp Srp構造体。 + \param verifier 検証子を含む構造体。 + \param size 検証子のサイズ(バイト単位)。 + _Example_ \code Srp srp; byte username[] = "user"; word32 usernameSize = 4; - byte N[] = { }; // Contents of byte array N - byte g[] = { }; // Contents of byte array g - byte salt[] = { }; // Contents of byte array salt + byte N[] = { }; // バイト配列Nの内容 + byte g[] = { }; // バイト配列gの内容 + byte salt[] = { }; // バイト配列saltの内容 wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_SERVER_SIDE); wc_SrpSetUsername(&srp, username, usernameSize); wc_SrpSetParams(&srp, N, sizeof(N), g, sizeof(g), salt, sizeof(salt)) - byte verifier[] = { }; // Contents of some verifier + byte verifier[] = { }; // 何らかの検証子の内容 if(wc_SrpSetVerifier(&srp, verifier, sizeof(verifier)) != 0) { - // Error setting verifier + // 検証子設定エラー } wc_SrpTerm(&srp); \endcode + \sa wc_SrpInit \sa wc_SrpSetParams \sa wc_SrpGetVerifier @@ -183,13 +219,19 @@ int wc_SrpSetVerifier(Srp* srp, const byte* verifier, word32 size); /*! \ingroup SRP - \brief 検証者を取得します。クライアントはV = g ^ x%Nで検証者を計算します。この関数は、wc_srpsetpasswordの後に呼び出され、クライアント側のみです。 - \return 0 成功 - \return BAD_FUNC_ARG SRP、Verifier、またはSizeがNULLの場合、またはSRP-> SIDEがSRP_CLIENT_SIEDではない場合に返されます。 - \return SRP_CALL_ORDER_E WC_SRPGetverifierが順不同で呼び出された場合に返されます。 - \return <0 エラー - \param srp SRP構造 - \param verifier 検証者を書き込むためのバッファー。 + + \brief 検証子を取得します。クライアントはv = g ^ x % Nで検証子を計算します。 + この関数はwc_SrpSetPasswordの後に呼び出すことができ、クライアント側のみです。 + + \return 0 成功 + \return BAD_FUNC_ARG srp、verifier、またはsizeがnullの場合、またはsrp->sideがSRP_CLIENT_SIDEでない場合に返されます。 + \return SRP_CALL_ORDER_E wc_SrpGetVerifierが順序外で呼び出された場合に返されます。 + \return <0 エラー + + \param srp Srp構造体。 + \param verifier 検証子を書き込むバッファ。 + \param size バッファサイズ(バイト単位)。検証子のサイズで更新されます。 + _Example_ \code Srp srp; @@ -198,9 +240,9 @@ int wc_SrpSetVerifier(Srp* srp, const byte* verifier, word32 size); byte password[] = "password"; word32 passwordSize = 8; - byte N[] = { }; // Contents of byte array N - byte g[] = { }; // Contents of byte array g - byte salt[] = { }; // Contents of byte array salt + byte N[] = { }; // バイト配列Nの内容 + byte g[] = { }; // バイト配列gの内容 + byte salt[] = { }; // バイト配列saltの内容 byte v[64]; word32 vSz = 0; vSz = sizeof(v); @@ -212,10 +254,11 @@ int wc_SrpSetVerifier(Srp* srp, const byte* verifier, word32 size); if( wc_SrpGetVerifier(&srp, v, &vSz ) != 0) { - // Error getting verifier + // 検証子取得エラー } wc_SrpTerm(&srp); \endcode + \sa wc_SrpSetVerifier \sa wc_SrpSetPassword */ @@ -223,50 +266,68 @@ int wc_SrpGetVerifier(Srp* srp, byte* verifier, word32* size); /*! \ingroup SRP - \brief プライベートのエフェラル値を設定します。プライベートの一時的な値は、クライアント側のAとして知られています。サーバー側のand random()b。b = random()この関数は、ユニットテストケース、または開発者が外部ランダムソースを使用してエフェメラル値を設定したい場合は便利です。この関数は、WC_SRPGetPublicの前に呼び出されることがあります。 - \return 0 成功 - \return BAD_FUNC_ARG SRP、Private、またはSizeがNULLの場合に返されます。 - \return SRP_CALL_ORDER_E WC_SRPSetPrivateが順不同で呼び出された場合に返されます。 - \return <0 エラー - \param srp SRP構造 - \param priv 一時的な値。 + + \brief 秘密エフェメラル値を設定します。秘密エフェメラル値は次のように知られています: + クライアント側ではa。a = random() + サーバー側ではb。b = random() + この関数は単体テストケースや、開発者が外部の乱数ソースを使用してエフェメラル値を設定したい場合に便利です。この関数はwc_SrpGetPublicの前に呼び出すことができます。 + + \return 0 成功 + \return BAD_FUNC_ARG srp、private、またはsizeがnullの場合に返されます。 + \return SRP_CALL_ORDER_E wc_SrpSetPrivateが順序外で呼び出された場合に返されます。 + \return <0 エラー + + \param srp Srp構造体。 + \param priv エフェメラル値。 + \param size privateのサイズ(バイト単位)。 + _Example_ \code Srp srp; byte username[] = "user"; word32 usernameSize = 4; - byte N[] = { }; // Contents of byte array N - byte g[] = { }; // Contents of byte array g - byte salt[] = { }; // Contents of byte array salt - byte verifier = { }; // Contents of some verifier + byte N[] = { }; // バイト配列Nの内容 + byte g[] = { }; // バイト配列gの内容 + byte salt[] = { }; // バイト配列saltの内容 + byte verifier = { }; // 何らかの検証子の内容 wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_SERVER_SIDE); wc_SrpSetUsername(&srp, username, usernameSize); wc_SrpSetParams(&srp, N, sizeof(N), g, sizeof(g), salt, sizeof(salt)) wc_SrpSetVerifier(&srp, verifier, sizeof(verifier)) - byte b[] = { }; // Some ephemeral value + byte b[] = { }; // 何らかのエフェメラル値 if( wc_SrpSetPrivate(&srp, b, sizeof(b)) != 0) { - // Error setting private ephemeral + // 秘密エフェメラル設定エラー } wc_SrpTerm(&srp); \endcode + \sa wc_SrpGetPublic */ int wc_SrpSetPrivate(Srp* srp, const byte* priv, word32 size); /*! \ingroup SRP - \brief 公共の一時的な値を取得します。公共の一時的な値は、クライアント側のAとして知られています。サーバ側のA = g ^ A%n b。B =(k * v +(g b%n))%n wc_srpsetpasswordまたはwc_srpsetverifierの後に呼び出す必要があります。関数WC_SRPSetPrivateは、WC_SRPGetPublicの前に呼び出されることがあります。 - \return 0 成功 - \return BAD_FUNC_ARG srp、pub、またはsizeがnullの場合に返されます。 - \return SRP_CALL_ORDER_E WC_SRPGetPublicが順不同で呼び出された場合に返されます。 - \return BUFFER_E サイズキーでキーをアクセスできます。 - \return 0 成功 - \return BAD_FUNC_ARG SRP、ClientPubKey、またはServerPubKeyの場合、またはClientPubkeyszまたはServerPubKeyszが0の場合に返されます。 - \return SRP_CALL_ORDER_E WC_SRPComputeKeyが順不同で呼び出された場合に返されます。 - \return <0 エラー - \param srp SRP構造 - \param clientPubKey クライアントの公共の一時的な価値。 - \param clientPubKeySz クライアントの公共の一時的な値のサイズ。 - \param serverPubKey サーバーの一般の一時的な値。 + + \brief セッション鍵を計算します。鍵は成功後にsrp->keyでアクセスできます。 + + \return 0 成功 + \return BAD_FUNC_ARG srp、clientPubKey、またはserverPubKeyがnullの場合、またはclientPubKeySzまたはserverPubKeySzが0の場合に返されます。 + \return SRP_CALL_ORDER_E wc_SrpComputeKeyが順序外で呼び出された場合に返されます。 + \return <0 エラー + + \param srp Srp構造体。 + \param clientPubKey クライアントの公開エフェメラル値。 + \param clientPubKeySz クライアントの公開エフェメラル値のサイズ。 + \param serverPubKey サーバーの公開エフェメラル値。 + \param serverPubKeySz サーバーの公開エフェメラル値のサイズ。 + _Example_ \code Srp server; @@ -318,11 +385,11 @@ int wc_SrpGetPublic(Srp* srp, byte* pub, word32* size); word32 usernameSize = 4; byte password[] = "password"; word32 passwordSize = 8; - byte N[] = { }; // Contents of byte array N - byte g[] = { }; // Contents of byte array g - byte salt[] = { }; // Contents of byte array salt - byte verifier[] = { }; // Contents of some verifier - byte serverPubKey[] = { }; // Contents of server pub key + byte N[] = { }; // バイト配列Nの内容 + byte g[] = { }; // バイト配列gの内容 + byte salt[] = { }; // バイト配列saltの内容 + byte verifier[] = { }; // 何らかの検証子の内容 + byte serverPubKey[] = { }; // サーバー公開鍵の内容 word32 serverPubKeySize = sizeof(serverPubKey); byte clientPubKey[64]; word32 clientPubKeySize = 64; @@ -337,6 +404,7 @@ int wc_SrpGetPublic(Srp* srp, byte* pub, word32* size); serverPubKey, serverPubKeySize) wc_SrpTerm(&server); \endcode + \sa wc_SrpGetPublic */ int wc_SrpComputeKey(Srp* srp, @@ -345,37 +413,48 @@ int wc_SrpComputeKey(Srp* srp, /*! \ingroup SRP - \brief 証明を取得します。この関数は、wc_srpcomputekeyの後に呼び出す必要があります。 - \return 0 成功 - \return BAD_FUNC_ARG SRP、PROV、またはSIZEがNULLの場合に返します。 - \return BUFFER_E サイズがSRP-> Typeのハッシュサイズより小さい場合に返します。 - \return <0 エラー - \param srp SRP構造 - \param proof ピアプルーフ。 + + \brief 証明を取得します。この関数はwc_SrpComputeKeyの後に呼び出す必要があります。 + + \return 0 成功 + \return BAD_FUNC_ARG srp、proof、またはsizeがnullの場合に返されます。 + \return BUFFER_E sizeがsrp->typeのハッシュサイズより小さい場合に返されます。 + \return <0 エラー + + \param srp Srp構造体。 + \param proof ピアの証明。 + \param size 証明のサイズ(バイト単位)。 + _Example_ \code Srp cli; byte clientProof[SRP_MAX_DIGEST_SIZE]; word32 clientProofSz = SRP_MAX_DIGEST_SIZE; - // Initialize Srp following steps from previous examples + // 前の例のステップに従ってSrpを初期化 if (wc_SrpGetProof(&cli, clientProof, &clientProofSz) != 0) { - // Error getting proof + // 証明取得エラー } \endcode + \sa wc_SrpComputeKey */ int wc_SrpGetProof(Srp* srp, byte* proof, word32* size); /*! \ingroup SRP - \brief ピアプルーフを確認します。この関数は、WC_SRPGetSessionKeyの前に呼び出す必要があります。 - \return 0 成功 - \return <0 エラー - \param srp SRP構造 - \param proof ピアプルーフ。 + + \brief ピアの証明を検証します。この関数はwc_SrpGetSessionKeyの前に呼び出す必要があります。 + + \return 0 成功 + \return <0 エラー + + \param srp Srp構造体。 + \param proof ピアの証明。 + \param size 証明のサイズ(バイト単位)。 + _Example_ \code Srp cli; @@ -383,17 +462,18 @@ int wc_SrpGetProof(Srp* srp, byte* proof, word32* size); byte clientProof[SRP_MAX_DIGEST_SIZE]; word32 clientProofSz = SRP_MAX_DIGEST_SIZE; - // Initialize Srp following steps from previous examples - // First get the proof + // 前の例のステップに従ってSrpを初期化 + // 最初に証明を取得 wc_SrpGetProof(&cli, clientProof, &clientProofSz) if (wc_SrpVerifyPeersProof(&srv, clientProof, clientProofSz) != 0) { - // Error verifying proof + // 証明検証エラー } \endcode + \sa wc_SrpGetSessionKey \sa wc_SrpGetProof \sa wc_SrpTerm */ -int wc_SrpVerifyPeersProof(Srp* srp, byte* proof, word32 size); +int wc_SrpVerifyPeersProof(Srp* srp, byte* proof, word32 size); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/ssl.h b/doc/dox_comments/header_files-ja/ssl.h index c5680fbb35..9daef03bf5 100644 --- a/doc/dox_comments/header_files-ja/ssl.h +++ b/doc/dox_comments/header_files-ja/ssl.h @@ -1768,7 +1768,7 @@ int wolfSSL_read(WOLFSSL* ssl, void* data, int sz); /*! \ingroup IO - \brief この関数はSSLセッション(SSL)内部読み取りバッファからSZバイトをバッファデータにコピーします。この関数は、内部SSLセッション受信バッファ内のデータが削除されていないか変更されていないことを除いて、wolfssl_read()と同じです。必要に応じて、wolfssl_read()のように、wolfssl_peek()はまだwolfssl_connect()またはwolfssl_accept()によってまだ実行されていない場合、wolfssl_peek()はSSL / TLSセッションをネゴシエートします。 SSL/TLSプロトコルは、最大サイズのSSLレコードを使用します(最大レコードサイズは /wolfssl/internal.h)。そのため、WolfSSLは、レコードを処理および復号化することができる前に、SSLレコード全体を内部的に読み取る必要があります。このため、wolfssl_peek()への呼び出しは、呼び出し時に復号化された最大バッファサイズを返すことができます。 wolfssl_peek()/ wolfssl_read()への次の呼び出しで検索および復号化される内部WolfSSL受信バッファ内で待機していない追加の復号化データがあるかもしれません。 SZが内部読み取りバッファ内のバイト数よりも大きい場合、SSL_PEEK()は内部読み取りバッファで使用可能なバイトを返します。バイトが内部読み取りバッファにバッファされていない場合、Wolfssl_peek()への呼び出しは次のレコードの処理をトリガーします。 + \brief この関数はSSLセッション(SSL)内部読み取りバッファからSZバイトをバッファデータにコピーします。この関数は、内部SSLセッション受信バッファ内のデータが削除されていないか変更されていないことを除いて、wolfssl_read()と同じです。必要に応じて、wolfssl_read()のように、wolfssl_peek()はまだwolfssl_connect()またはwolfssl_accept()によってまだ実行されていない場合、wolfssl_peek()はSSL / TLSセッションをネゴシエートします。 SSL/TLSプロトコルは、最大サイズのSSLレコードを使用します(最大レコードサイズは /wolfssl/internal.h)。そのため、WolfSSLは、レコードを処理および復号することができる前に、SSLレコード全体を内部的に読み取る必要があります。このため、wolfssl_peek()への呼び出しは、呼び出し時に復号された最大バッファサイズを返すことができます。 wolfssl_peek()/ wolfssl_read()への次の呼び出しで検索および復号される内部WolfSSL受信バッファ内で待機していない追加の復号データがあるかもしれません。 SZが内部読み取りバッファ内のバイト数よりも大きい場合、SSL_PEEK()は内部読み取りバッファで使用可能なバイトを返します。バイトが内部読み取りバッファにバッファされていない場合、Wolfssl_peek()への呼び出しは次のレコードの処理をトリガーします。 \return 成功時には読み取られたバイト数(1以上)を返します。 \return 0 失敗したときに返されます。これは、クリーン(通知アラートを閉じる)シャットダウンまたはピアが接続を閉じただけであることによって発生する可能性があります。特定のエラーコードについてwolfSSL_get_error()を呼び出します。 \return SSL_FATAL_ERROR エラーが発生したとき、またはノンブロッキングソケットを使用するときに、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが受信され、再度wolfSSL_peek()を呼び出す必要がある場合は、障害が発生します。特定のエラーコードを取得するには、wolfSSL_get_error()を使用してください。 @@ -1944,7 +1944,7 @@ int wolfSSL_send(WOLFSSL* ssl, const void* data, int sz, int flags); SSL/TLSプロトコルは、最大サイズのSSLレコードを使用します(最大レコードサイズは /wolfssl/internal.h)。 そのため、wolfSSLは、レコードを処理および復号することができる前に、SSLレコード全体を内部的に読み取る必要があります。 このため、wolfSSL_recv()への呼び出しは、呼び出し時に復号された最大バッファサイズを返すことができるだけです。 - wolfSSL_recv()への次の呼び出しで検索および復号される内部wolfSSL受信バッファで待機していない追加の復号化されたデータがあるかもしれません。 + wolfSSL_recv()への次の呼び出しで検索および復号される内部wolfSSL受信バッファで待機していない追加の復号されたデータがあるかもしれません。 引数szが内部読み取りバッファ内のバイト数よりも大きい場合、wolfSSL_recv()は内部読み取りバッファで使用可能なバイトを返します。 バイトが内部読み取りバッファにバッファされていない場合は、wolfSSL_recv()への呼び出しは次のレコードの処理をトリガーします。 \return 成功時には読み取られたバイト数(1以上)を返します。 @@ -5353,7 +5353,7 @@ int wolfSSL_connect_cert(WOLFSSL* ssl); /*! \ingroup openSSL - \brief WOLFSSL_D2I_PKCS12_BIO(D2I_PKCS12_BIO)は、WOLFSSL_BIOから構造WC_PKCS12へのPKCS12情報にコピーされます。この情報は、オプションのMAC情報を保持するための構造とともにコンテンツに関する情報のリストとして構造内に分割されています。構造体WC_PKCS12で情報がチャンク(ただし復号化されていない)に分割された後、それはその後、呼び出しによって解析および復号化され得る。 + \brief WOLFSSL_D2I_PKCS12_BIO(D2I_PKCS12_BIO)は、WOLFSSL_BIOから構造WC_PKCS12へのPKCS12情報にコピーされます。この情報は、オプションのMAC情報を保持するための構造とともにコンテンツに関する情報のリストとして構造内に分割されています。構造体WC_PKCS12で情報がチャンク(ただし復号されていない)に分割された後、それはその後、呼び出しによって解析および復号され得る。 \return WC_PKCS12 WC_PKCS12構造へのポインタ。 \return Failure 関数に失敗した場合はNULLを返します。 \param bio PKCS12バッファを読み取るためのWOLFSSL_BIO構造。 @@ -5412,11 +5412,11 @@ WC_PKCS12* wolfSSL_i2d_PKCS12_bio(WOLFSSL_BIO* bio, /*! \ingroup openSSL - \brief pkcs12は、configureコマンドへの-enable-openSSLAXTRAを追加することで有効にできます。それは復号化のためにトリプルDESとRC4を使うことができるので、OpenSSlextra(--enable-des3 -enable-arc4)を有効にするときにもこれらの機能を有効にすることをお勧めします。 wolfsslは現在RC2をサポートしていませんので、RC2での復号化は現在利用できません。これは、.p12ファイルを作成するためにOpenSSLコマンドラインで使用されるデフォルトの暗号化方式では注目すかもしれません。 WOLFSSL_PKCS12_PARSE(PKCS12_PARSE)。この関数が最初に行っているのは、存在する場合はMacが正しいチェックです。 MACが失敗した場合、関数は返され、保存されているコンテンツ情報のいずれかを復号化しようとしません。この関数は、バッグタイプを探している各コンテンツ情報を介して解析します。バッグタイプがわかっている場合は、必要に応じて復号化され、構築されている証明書のリストに格納されているか、見つかったキーとして保存されます。すべてのバッグを介して解析した後、見つかったキーは、一致するペアが見つかるまで証明書リストと比較されます。この一致するペアはキーと証明書として返され、オプションで見つかった証明書リストはstack_of証明書として返されます。瞬間、CRL、秘密または安全なバッグがスキップされ、解析されません。デバッグプリントアウトを見ることで、これらまたは他の「不明」バッグがスキップされているかどうかがわかります。フレンドリー名などの追加の属性は、PKCS12ファイルを解析するときにスキップされます。 + \brief pkcs12は、configureコマンドへの-enable-openSSLAXTRAを追加することで有効にできます。それは復号のためにトリプルDESとRC4を使うことができるので、OpenSSlextra(--enable-des3 -enable-arc4)を有効にするときにもこれらの機能を有効にすることをお勧めします。 wolfsslは現在RC2をサポートしていませんので、RC2での復号は現在利用できません。これは、.p12ファイルを作成するためにOpenSSLコマンドラインで使用されるデフォルトの暗号化方式では注目すかもしれません。 WOLFSSL_PKCS12_PARSE(PKCS12_PARSE)。この関数が最初に行っているのは、存在する場合はMacが正しいチェックです。 MACが失敗した場合、関数は返され、保存されているコンテンツ情報のいずれかを復号しようとしません。この関数は、バッグタイプを探している各コンテンツ情報を介して解析します。バッグタイプがわかっている場合は、必要に応じて復号され、構築されている証明書のリストに格納されているか、見つかったキーとして保存されます。すべてのバッグを介して解析した後、見つかったキーは、一致するペアが見つかるまで証明書リストと比較されます。この一致するペアはキーと証明書として返され、オプションで見つかった証明書リストはstack_of証明書として返されます。瞬間、CRL、秘密または安全なバッグがスキップされ、解析されません。デバッグプリントアウトを見ることで、これらまたは他の「不明」バッグがスキップされているかどうかがわかります。フレンドリー名などの追加の属性は、PKCS12ファイルを解析するときにスキップされます。 \return SSL_SUCCESS PKCS12の解析に成功しました。 \return SSL_FAILURE エラーケースに遭遇した場合 \param pkcs12 wc_pkcs12解析する構造 - \param paswd PKCS12を復号化するためのパスワード。 + \param paswd PKCS12を復号するためのパスワード。 \param pkey PKCS12からデコードされた秘密鍵を保持するための構造。 \param cert PKCS12から復号された証明書を保持する構造 @@ -6591,7 +6591,7 @@ void wolfSSL_SetMacEncryptCtx(WOLFSSL* ssl, void *ctx); void* wolfSSL_GetMacEncryptCtx(WOLFSSL* ssl); /*! - \brief コールバックを復号化/確認します。コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。DECOUTは、復号化の結果を格納する出力バッファです。DECINは暗号化された入力バッファーとDecinszのサイズを注意しています。コンテンツと検証は、WolfSSL_SettlShmacinner()に必要であり、そのまま通過します。PADSZは、パディングの合計値で設定する出力変数です。つまり、MACサイズとパディングバイトとパッドバイトを加えています。コールバックの例は、wolfssl / test.h mydecryptverifycb()を見つけることができます。 + \brief コールバックを復号/確認します。コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。DECOUTは、復号の結果を格納する出力バッファです。DECINは暗号化された入力バッファーとDecinszのサイズを注意しています。コンテンツと検証は、WolfSSL_SettlShmacinner()に必要であり、そのまま通過します。PADSZは、パディングの合計値で設定する出力変数です。つまり、MACサイズとパディングバイトとパッドバイトを加えています。コールバックの例は、wolfssl / test.h mydecryptverifycb()を見つけることができます。 \return none いいえ返します。 _Example_ @@ -6605,7 +6605,7 @@ void wolfSSL_CTX_SetDecryptVerifyCb(WOLFSSL_CTX* ctx, CallbackDecryptVerify cb); /*! - \brief コールバックコンテキストをCTXに復号化/検証します。 + \brief コールバックコンテキストをCTXに復号/検証します。 \return none いいえ返します。 \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ @@ -6619,7 +6619,7 @@ void wolfSSL_CTX_SetDecryptVerifyCb(WOLFSSL_CTX* ctx, void wolfSSL_SetDecryptVerifyCtx(WOLFSSL* ssl, void *ctx); /*! - \brief wolfssl_setdecryptverifyctx()で以前に保存されているコールバックコンテキストを復号化/検証します。 + \brief wolfssl_setdecryptverifyctx()で以前に保存されているコールバックコンテキストを復号/検証します。 \return pointer 正常にコールがコンテキストへの有効なポインタを返します。 \return NULL 空白のコンテキストのために返されます。 @@ -7033,7 +7033,7 @@ void wolfSSL_SetRsaSignCtx(WOLFSSL* ssl, void *ctx); void* wolfSSL_GetRsaSignCtx(WOLFSSL* ssl); /*! - \brief コールバックは、成功のための平文バイト数または<0エラーの場合は<0を返すべきです。SSLとCTXポインタはユーザーの利便性に利用できます。SIGは検証の署名であり、SIGSZは署名の長さを表します。復号化プロセスとパディングの後に検証バッファの先頭に設定する必要があります。keyderはASN1形式のRSA公開鍵であり、Keyszはキーのキーの長さです。コールバックの例は、wolfssl / test.h myrsaverify()を見つけることができます。 + \brief コールバックは、成功のための平文バイト数または<0エラーの場合は<0を返すべきです。SSLとCTXポインタはユーザーの利便性に利用できます。SIGは検証の署名であり、SIGSZは署名の長さを表します。復号プロセスとパディングの後に検証バッファの先頭に設定する必要があります。keyderはASN1形式のRSA公開鍵であり、Keyszはキーのキーの長さです。コールバックの例は、wolfssl / test.h myrsaverify()を見つけることができます。 \return none いいえ返します。 \sa wolfSSL_SetRsaVerifyCtx \sa wolfSSL_GetRsaVerifyCtx @@ -7111,7 +7111,7 @@ void wolfSSL_SetRsaEncCtx(WOLFSSL* ssl, void *ctx); void* wolfSSL_GetRsaEncCtx(WOLFSSL* ssl); /*! - \brief 復号化します。コールバックは、成功のための平文バイト数または<0エラーの場合は<0を返すべきです。SSLとCTXポインタはユーザーの利便性に利用できます。INは、復号化する入力バッファが入力の長さを表します。復号化プロセスおよび任意のパディングの後、復号化バッファの先頭に設定する必要があります。keyderはASN1フォーマットのRSA秘密鍵であり、Keyszはバイト数のキーの長さです。コールバックの例は、wolfssl / test.h myrsadec()を見つけることができます。 + \brief 復号します。コールバックは、成功のための平文バイト数または<0エラーの場合は<0を返すべきです。SSLとCTXポインタはユーザーの利便性に利用できます。INは、復号する入力バッファが入力の長さを表します。復号プロセスおよび任意のパディングの後、復号バッファの先頭に設定する必要があります。keyderはASN1フォーマットのRSA秘密鍵であり、Keyszはバイト数のキーの長さです。コールバックの例は、wolfssl / test.h myrsadec()を見つけることができます。 \return none いいえ返します。 _Example_ @@ -8970,12 +8970,12 @@ int wolfSSL_send_SessionTicket(WOLFSSL* ssl); \return SSL_SUCCESS セッションを正常に設定すると返されます。 \return BAD_FUNC_ARG 失敗した場合に返されます。これは、無効な引数を関数に渡すことによって発生します。 \param ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTXオブジェクトへのポインタ。 - \param cb セッションチケットを暗号化/復号化するためのユーザーコールバック関数 + \param cb セッションチケットを暗号化/復号するためのユーザーコールバック関数 \param ssl(Callback) wolfSSL_new()で作成されたWolfSSLオブジェクトへのポインタ \param key_name(Callback) このチケットコンテキストの一意のキー名はランダムに生成されるべきです \param iv(Callback) ユニークなIVこのチケットの場合、最大128ビット、ランダムに生成されるべきです \param mac(Callback) このチケットの最大256ビットMAC - \param enc(Callback) この暗号化パラメータがtrueの場合、ユーザーはキーコード、IV、Macを記入し、チケットを長さのインレルの範囲内に暗号化し、結果として生じる出力長を* outreenに設定する必要があります。 wolfssl_ticket_ret_okを返す暗号化が成功したことをWolfSSLに指示します。この暗号化パラメータがfalseの場合、key_name、iv、およびmacを使用して、リングインレーンの範囲内のチケットの復号化を実行する必要があります。結果の復号長は* outreenに設定する必要があります。 wolfssl_ticket_ret_okを返すと、復号化されたチケットの使用を続行するようにWolfSSLに指示します。 wolfssl_ticket_ret_createを返すと、復号化されたチケットを使用するだけでなく、クライアントに送信するための新しいものを生成するように指示し、最近ロールされている場合に役立つ、フルハンドシェイクを強制したくない。 wolfssl_ticket_ret_rejectを返すと、WolfSSLにこのチケットを拒否し、フルハンドシェイクを実行し、通常のセッション再開のための新しい標準セッションIDを作成します。 wolfssl_ticket_ret_fatalを返すと、致命的なエラーで接続の試みを終了するようにWolfSSLに指示します。 + \param enc(Callback) この暗号化パラメータがtrueの場合、ユーザーはキーコード、IV、Macを記入し、チケットを長さのインレルの範囲内に暗号化し、結果として生じる出力長を* outreenに設定する必要があります。 wolfssl_ticket_ret_okを返す暗号化が成功したことをWolfSSLに指示します。この暗号化パラメータがfalseの場合、key_name、iv、およびmacを使用して、リングインレーンの範囲内のチケットの復号を実行する必要があります。結果の復号長は* outreenに設定する必要があります。 wolfssl_ticket_ret_okを返すと、復号されたチケットの使用を続行するようにWolfSSLに指示します。 wolfssl_ticket_ret_createを返すと、復号されたチケットを使用するだけでなく、クライアントに送信するための新しいものを生成するように指示し、最近ロールされている場合に役立つ、フルハンドシェイクを強制したくない。 wolfssl_ticket_ret_rejectを返すと、WolfSSLにこのチケットを拒否し、フルハンドシェイクを実行し、通常のセッション再開のための新しい標準セッションIDを作成します。 wolfssl_ticket_ret_fatalを返すと、致命的なエラーで接続の試みを終了するようにWolfSSLに指示します。 \param ticket(Callback) 暗号化チケットの入出力バッファ。ENCパラメータを参照してください \param inLen(Callback) チケットパラメータの入力長 \param outLen(Callback) チケットパラメータの結果の出力長。コールバックoutlenを入力すると、チケットバッファで使用可能な最大サイズが表示されます。 @@ -10110,7 +10110,7 @@ int wolfSSL_no_dhe_psk(WOLFSSL* ssl); /*! \ingroup IO - \brief この関数は、TLS v1.3クライアントまたはサーバーのwolfsslで呼び出されて、キーのロールオーバーを強制します。KeyUpdateメッセージがピアに送信され、新しいキーが暗号化のために計算されます。ピアはKeyUpdateメッセージを送り、新しい復号化キーWILを計算します。この機能は、ハンドシェイクが完了した後にのみ呼び出すことができます。 + \brief この関数は、TLS v1.3クライアントまたはサーバーのwolfsslで呼び出されて、キーのロールオーバーを強制します。KeyUpdateメッセージがピアに送信され、新しいキーが暗号化のために計算されます。ピアはKeyUpdateメッセージを送り、新しい復号キーWILを計算します。この機能は、ハンドシェイクが完了した後にのみ呼び出すことができます。 \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 \return BAD_FUNC_ARG sslがNULLの場合、またはTLS v1.3を使用していない場合。 \return WANT_WRITE 書き込みが準備ができていない場合 @@ -10134,7 +10134,7 @@ int wolfSSL_update_keys(WOLFSSL* ssl); /*! \ingroup IO - \brief この関数は、TLS v1.3クライアントまたはサーバーのwolfsslで呼び出され、キーのロールオーバーが進行中かどうかを判断します。wolfssl_update_keys()が呼び出されると、KeyUpdateメッセージが送信され、暗号化キーが更新されます。復号化キーは、応答が受信されたときに更新されます。 + \brief この関数は、TLS v1.3クライアントまたはサーバーのwolfsslで呼び出され、キーのロールオーバーが進行中かどうかを判断します。wolfssl_update_keys()が呼び出されると、KeyUpdateメッセージが送信され、暗号化キーが更新されます。復号キーは、応答が受信されたときに更新されます。 \param [in] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 \param [out] キー更新応答が必要ない場合は必須0。1キー更新応答が必要ない場合。 \return 0 成功した。 diff --git a/doc/dox_comments/header_files-ja/tfm.h b/doc/dox_comments/header_files-ja/tfm.h index 63412d026e..42da8e9b86 100644 --- a/doc/dox_comments/header_files-ja/tfm.h +++ b/doc/dox_comments/header_files-ja/tfm.h @@ -1,17 +1,22 @@ /*! \ingroup Math - \brief この関数は、整数の最大サイズのランタイムFastMath設定をチェックします。FP_SIZEが正しく機能するために、FP_SIZEが各ライブラリーに一致しなければならないため、ユーザーがWolfCryptライブラリを独立して使用している場合に重要です。このチェックはCheckFastMathSettings()として定義されています。これは、CheckRuntimeFastMathとFP_SIZEを比較するだけで、ミスマッチがある場合は0を返します。 - \return FP_SIZE 数学ライブラリで利用可能な最大サイズに対応するFP_SIZEを返します。 + + \brief この関数は、整数の最大サイズに関するランタイムfastmath設定をチェックします。ユーザーがwolfCryptライブラリを独立して使用している場合に重要です。数学が正しく動作するためには、各ライブラリのFP_SIZEが一致している必要があります。このチェックはCheckFastMathSettings()として定義されており、CheckRunTimeFastMathとFP_SIZEを単純に比較し、不一致の場合は0を、一致する場合は1を返します。 + + \return FP_SIZE 数学ライブラリで使用可能な最大サイズに対応するFP_SIZEを返します。 + + \param none パラメータなし。 + _Example_ \code if (CheckFastMathSettings() != 1) { - return err_sys("Build vs. runtime fastmath FP_MAX_BITS mismatch\n"); + return err_sys("Build vs. runtime fastmath FP_MAX_BITS mismatch\n"); } - // This is converted by the preprocessor to: + // これはプリプロセッサによって次のように変換されます: // if ( (CheckRunTimeFastMath() == FP_SIZE) != 1) { - // and confirms that the fast math settings match - // the compile time settings + // そしてfastmath設定がコンパイル時の設定と一致することを確認します \endcode + \sa CheckRunTimeSettings */ -word32 CheckRunTimeFastMath(void); +word32 CheckRunTimeFastMath(void); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/types.h b/doc/dox_comments/header_files-ja/types.h index b8f64b5892..b418955c89 100644 --- a/doc/dox_comments/header_files-ja/types.h +++ b/doc/dox_comments/header_files-ja/types.h @@ -1,18 +1,40 @@ /*! \ingroup Memory - \brief これは実際には関数ではなく、むしろプリプロセッサマクロであり、ユーザーは自分のMalloc、Realloc、および標準のCメモリ関数の代わりに自由な関数に置き換えることができます。外部メモリ機能を使用するには、xmalloc_userを定義します。これにより、メモリ機能をフォームの外部関数に置き換えます.extern void * xmalloc(size_t n、void * heap、int型); extern void * XrealLoc(void * p、size_t n、void *ヒープ、int型)。 extern void xfree(void * p、void * heap、int型); wolfssl_malloc、wolfssl_realloc、wolfssl_freeの代わりに基本的なCメモリ機能を使用するには、NO_WOLFSSL_MEMORYを定義します。これにより、メモリ関数が次のものに置き換えられます。#define Xmalloc(s、h、t)((void)h、(void)t、malloc((s)))#define xfree(p、h、t){void * xp =(p); if((xp))free((xp)); #define xrealloc(p、n、h、t)Realloc((p)、(n))これらのオプションのどれも選択されていない場合、システムはデフォルトで使用されます。 WolfSSLメモリ機能ユーザーはコールバックフックを介してカスタムメモリ機能を設定できます(Wolfssl_Malloc、WolfSSL_Realloc、wolfssl_freeを参照)。このオプションは、メモリ関数を次のものに置き換えます。#define xmalloc(s、h、t)((void)H、(Void)T、wolfssl_malloc((s)))#define xfree(p、h、t){void * XP =(P); if((xp))wolfssl_free((xp)); #define xrealloc(p、n、h、t)wolfssl_realloc((p)、(n)) - \return pointer 成功したメモリへのポインタを返します - \return NULL 失敗した - \param s 割り当てるメモリのサイズ - \param h (カスタムXMalloc関数で使用されています)使用するヒープへのポインタ + + \brief これは実際には関数ではなく、プリプロセッサマクロです。 + ユーザーが標準のCメモリ関数の代わりに独自のmalloc、realloc、free関数を置き換えることを可能にします。 + 外部メモリ関数を使用するには、XMALLOC_USERを定義します。これにより、メモリ関数は次の形式の外部関数に置き換えられます: + extern void *XMALLOC(size_t n, void* heap, int type); + extern void *XREALLOC(void *p, size_t n, void* heap, int type); + extern void XFREE(void *p, void* heap, int type); + wolfSSL_Malloc、wolfSSL_Realloc、wolfSSL_Freeの代わりに基本的なCメモリ関数を使用するには、NO_WOLFSSL_MEMORYを定義します。 + これにより、メモリ関数は次のように置き換えられます: + #define XMALLOC(s, h, t) ((void)h, (void)t, malloc((s))) + #define XFREE(p, h, t) {void* xp = (p); if((xp)) free((xp));} + #define XREALLOC(p, n, h, t) realloc((p), (n)) + これらのオプションのいずれも選択されていない場合、システムはデフォルトでwolfSSLメモリ関数を使用します。 + ユーザーはコールバックフックを通じてカスタムメモリ関数を設定できます(wolfSSL_Malloc、wolfSSL_Realloc、wolfSSL_Freeを参照)。 + このオプションは、メモリ関数を次のように置き換えます: + #define XMALLOC(s, h, t) ((void)h, (void)t, wolfSSL_Malloc((s))) + #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp));} + #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n)) + + \return pointer 成功時に割り当てられたメモリへのポインタを返します + \return NULL 失敗時 + + \param s 割り当てるメモリのサイズ + \param h (カスタムXMALLOC関数で使用)使用するヒープへのポインタ + \param t ユーザーヒント用のメモリ割り当てタイプ。types.hの列挙型を参照 + _Example_ \code int* tenInts = XMALLOC(sizeof(int)*10, NULL, DYNAMIC_TYPE_TMP_BUFFER); if (tenInts == NULL) { - // error allocating space + // スペース割り当てエラー return MEMORY_E; } \endcode + \sa wolfSSL_Malloc \sa wolfSSL_Realloc \sa wolfSSL_Free @@ -22,18 +44,40 @@ void* XMALLOC(size_t n, void* heap, int type); /*! \ingroup Memory - \brief これは実際には関数ではなく、むしろプリプロセッサマクロであり、ユーザーは自分のMalloc、Realloc、および標準のCメモリ関数の代わりに自由な関数に置き換えることができます。外部メモリ機能を使用するには、xmalloc_userを定義します。これにより、メモリ機能をフォームの外部関数に置き換えます.extern void * xmalloc(size_t n、void * heap、int型); extern void * XrealLoc(void * p、size_t n、void *ヒープ、int型)。 extern void xfree(void * p、void * heap、int型); wolfssl_malloc、wolfssl_realloc、wolfssl_freeの代わりに基本的なCメモリ機能を使用するには、NO_WOLFSSL_MEMORYを定義します。これにより、メモリ関数が次のものに置き換えられます。#define Xmalloc(s、h、t)((void)h、(void)t、malloc((s)))#define xfree(p、h、t){void * xp =(p); if((xp))free((xp)); #define xrealloc(p、n、h、t)Realloc((p)、(n))これらのオプションのどれも選択されていない場合、システムはデフォルトで使用されます。 WolfSSLメモリ機能ユーザーはコールバックフックを介してカスタムメモリ機能を設定できます(Wolfssl_Malloc、WolfSSL_Realloc、wolfssl_freeを参照)。このオプションは、メモリ関数を次のものに置き換えます。#define xmalloc(s、h、t)((void)H、(Void)T、wolfssl_malloc((s)))#define xfree(p、h、t){void * XP =(P); if((xp))wolfssl_free((xp)); #define xrealloc(p、n、h、t)wolfssl_realloc((p)、(n)) - \return Return 成功したメモリを割り当てるポインタ - \return NULL 失敗した - \param p Reallocateへのアドレスへのポインタ - \param n 割り当てるメモリのサイズ - \param h (カスタムXrealloc関数で使用されています)使用するヒープへのポインタ + + \brief これは実際には関数ではなく、プリプロセッサマクロです。 + ユーザーが標準のCメモリ関数の代わりに独自のmalloc、realloc、free関数を置き換えることを可能にします。 + 外部メモリ関数を使用するには、XMALLOC_USERを定義します。これにより、メモリ関数は次の形式の外部関数に置き換えられます: + extern void *XMALLOC(size_t n, void* heap, int type); + extern void *XREALLOC(void *p, size_t n, void* heap, int type); + extern void XFREE(void *p, void* heap, int type); + wolfSSL_Malloc、wolfSSL_Realloc、wolfSSL_Freeの代わりに基本的なCメモリ関数を使用するには、NO_WOLFSSL_MEMORYを定義します。 + これにより、メモリ関数は次のように置き換えられます: + #define XMALLOC(s, h, t) ((void)h, (void)t, malloc((s))) + #define XFREE(p, h, t) {void* xp = (p); if((xp)) free((xp));} + #define XREALLOC(p, n, h, t) realloc((p), (n)) + これらのオプションのいずれも選択されていない場合、システムはデフォルトでwolfSSLメモリ関数を使用します。 + ユーザーはコールバックフックを通じてカスタムメモリ関数を設定できます(wolfSSL_Malloc、wolfSSL_Realloc、wolfSSL_Freeを参照)。 + このオプションは、メモリ関数を次のように置き換えます: + #define XMALLOC(s, h, t) ((void)h, (void)t, wolfSSL_Malloc((s))) + #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp));} + #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n)) + + \return 成功時に割り当てられたメモリへのポインタを返します + \return NULL 失敗時 + + \param p 再割り当てするアドレスへのポインタ + \param n 割り当てるメモリのサイズ + \param h (カスタムXREALLOC関数で使用)使用するヒープへのポインタ + \param t ユーザーヒント用のメモリ割り当てタイプ。types.hの列挙型を参照 + _Example_ \code int* tenInts = (int*)XMALLOC(sizeof(int)*10, NULL, DYNAMIC_TYPE_TMP_BUFFER); int* twentyInts = (int*)XREALLOC(tenInts, sizeof(int)*20, NULL, DYNAMIC_TYPE_TMP_BUFFER); \endcode + \sa wolfSSL_Malloc \sa wolfSSL_Realloc \sa wolfSSL_Free @@ -43,18 +87,41 @@ void* XREALLOC(void *p, size_t n, void* heap, int type); /*! \ingroup Memory - \brief これは実際には関数ではなく、むしろプリプロセッサマクロであり、ユーザーは自分のMalloc、Realloc、および標準のCメモリ関数の代わりに自由な関数に置き換えることができます。外部メモリ機能を使用するには、xmalloc_userを定義します。これにより、メモリ機能をフォームの外部関数に置き換えます.extern void * xmalloc(size_t n、void * heap、int型); extern void * XrealLoc(void * p、size_t n、void *ヒープ、int型)。 extern void xfree(void * p、void * heap、int型); wolfssl_malloc、wolfssl_realloc、wolfssl_freeの代わりに基本的なCメモリ機能を使用するには、NO_WOLFSSL_MEMORYを定義します。これにより、メモリ関数が次のものに置き換えられます。#define Xmalloc(s、h、t)((void)h、(void)t、malloc((s)))#define xfree(p、h、t){void * xp =(p); if((xp))free((xp)); #define xrealloc(p、n、h、t)Realloc((p)、(n))これらのオプションのどれも選択されていない場合、システムはデフォルトで使用されます。 WolfSSLメモリ機能ユーザーはコールバックフックを介してカスタムメモリ機能を設定できます(Wolfssl_Malloc、WolfSSL_Realloc、wolfssl_freeを参照)。このオプションは、メモリ関数を次のものに置き換えます。#define xmalloc(s、h、t)((void)H、(Void)T、wolfssl_malloc((s)))#define xfree(p、h、t){void * XP =(P); if((xp))wolfssl_free((xp)); #define xrealloc(p、n、h、t)wolfssl_realloc((p)、(n)) - \return none いいえ返します。 - \param p 無料のアドレスへのポインタ - \param h 使用するヒープへの(カスタムXFree関数で使用されています)。 + + \brief これは実際には関数ではなく、プリプロセッサマクロです。 + ユーザーが標準のCメモリ関数の代わりに独自のmalloc、realloc、free関数を置き換えることを可能にします。 + 外部メモリ関数を使用するには、XMALLOC_USERを定義します。 + これにより、メモリ関数は次の形式の外部関数に置き換えられます: + extern void *XMALLOC(size_t n, void* heap, int type); + extern void *XREALLOC(void *p, size_t n, void* heap, int type); + extern void XFREE(void *p, void* heap, int type); + wolfSSL_Malloc、wolfSSL_Realloc、wolfSSL_Freeの代わりに基本的なCメモリ関数を使用するには、NO_WOLFSSL_MEMORYを定義します。 + これにより、メモリ関数は次のように置き換えられます: + #define XMALLOC(s, h, t) ((void)h, (void)t, malloc((s))) + #define XFREE(p, h, t) {void* xp = (p); if((xp)) free((xp));} + #define XREALLOC(p, n, h, t) realloc((p), (n)) + これらのオプションのいずれも選択されていない場合、システムはデフォルトでwolfSSLメモリ関数を使用します。 + ユーザーはコールバックフックを通じてカスタムメモリ関数を設定できます(wolfSSL_Malloc、wolfSSL_Realloc、wolfSSL_Freeを参照)。 + このオプションは、メモリ関数を次のように置き換えます: + #define XMALLOC(s, h, t) ((void)h, (void)t, wolfSSL_Malloc((s))) + #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp));} + #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n)) + + \return none 戻り値なし。 + + \param p 解放するアドレスへのポインタ + \param h (カスタムXFREE関数で使用)使用するヒープへのポインタ + \param t ユーザーヒント用のメモリ割り当てタイプ。types.hの列挙型を参照 + _Example_ \code int* tenInts = XMALLOC(sizeof(int) * 10, NULL, DYNAMIC_TYPE_TMP_BUFFER); if (tenInts == NULL) { - // error allocating space + // スペース割り当てエラー return MEMORY_E; } \endcode + \sa wolfSSL_Malloc \sa wolfSSL_Realloc \sa wolfSSL_Free @@ -64,18 +131,26 @@ void XFREE(void *p, void* heap, int type); /*! \ingroup Math - \brief この関数はコンパイル時クラスの設定をチェックします。設定が正しく機能するためのライブラリ間のライブラリ間で一致する必要があるため、ユーザーがWolfCryptライブラリを独立して使用している場合は重要です。このチェックはCheckCtcSettings()として定義されています。これは、CheckRuntimeSettingsとCTC_Settingsを比較するだけで、ミスマッチがある場合は0、または1が一致した場合は1を返します。 - \return settings 実行時CTC_SETTINGS(コンパイル時設定)を返します。 + + \brief この関数は、コンパイル時のクラス設定をチェックします。 + ユーザーがwolfCryptライブラリを独立して使用している場合に重要です。 + 数学が正しく動作するためには、ライブラリ間で設定が一致している必要があります。 + このチェックはCheckCtcSettings()として定義されており、CheckRunTimeSettingsとCTC_SETTINGSを単純に比較し、不一致の場合は0を、一致する場合は1を返します。 + + \return settings ランタイムCTC_SETTINGS(コンパイル時設定)を返します + + \param none パラメータなし。 + _Example_ \code if (CheckCtcSettings() != 1) { return err_sys("Build vs. runtime math mismatch\n"); } - // This is converted by the preprocessor to: + // これはプリプロセッサによって次のように変換されます: // if ( (CheckCtcSettings() == CTC_SETTINGS) != 1) { - // and will compare whether the compile time class settings - // match the current settings + // そしてコンパイル時のクラス設定が現在の設定と一致するかどうかを比較します \endcode + \sa CheckRunTimeFastMath */ -word32 CheckRunTimeSettings(void); +word32 CheckRunTimeSettings(void); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/wc_encrypt.h b/doc/dox_comments/header_files-ja/wc_encrypt.h index e209928b27..ef172b37eb 100644 --- a/doc/dox_comments/header_files-ja/wc_encrypt.h +++ b/doc/dox_comments/header_files-ja/wc_encrypt.h @@ -1,28 +1,32 @@ /*! \ingroup AES - \brief 入力バッファーから暗号を復号化し、AESでCipher Block Chainingを使用して出力バッファに出力バッファーに入れます。この関数は、AES構造を初期化する必要はありません。代わりに、キーとIV(初期化ベクトル)を取り、これらを使用してAESオブジェクトを初期化してから暗号テキストを復号化します。 - \return 0 メッセージの復号化に成功しました - \return BAD_ALIGN_E ブロック整列エラーに戻りました - \return BAD_FUNC_ARG aesetivの間にキーの長さが無効な場合、またはAESオブジェクトがNULLの場合 - \return MEMORY_E wolfssl_small_stackが有効になっていて、xmallocがAESオブジェクトのインスタンス化に失敗した場合に返されます。 - \param out 復号化されたメッセージのプレーンテキストを保存する出力バッファへのポインタ - \param in 復号化される暗号テキストを含む入力バッファへのポインタ - \param inSz 入力メッセージのサイズ - \param key 復号化のための16,24、または32バイトの秘密鍵 + \brief 入力バッファinから暗号を復号し、結果の平文をAESを使用した暗号ブロック連鎖を使用して出力バッファoutに格納します。この関数は、AES構造体を初期化する必要はありません。代わりに、キーとiv(初期化ベクトル)を受け取り、これらを使用してAESオブジェクトを初期化し、暗号文を復号します。 + + \return 0 メッセージの復号に成功した場合 + \return BAD_ALIGN_E ブロックアライメントエラーが発生した場合に返されます + \return BAD_FUNC_ARG AesSetIV中にキー長が無効またはAESオブジェクトがnullの場合に返されます + \return MEMORY_E WOLFSSL_SMALL_STACKが有効で、XMALLOCがAESオブジェクトのインスタンス化に失敗した場合に返されます。 + + \param out 復号されたメッセージの平文を格納する出力バッファへのポインタ + \param in 復号する暗号文を含む入力バッファへのポインタ + \param inSz 入力メッセージのサイズ + \param key 復号用の16、24、または32バイトの秘密鍵 + \param keySz 復号に使用するキーのサイズ + _Example_ \code int ret = 0; - byte key[] = { some 16, 24, or 32 byte key }; - byte iv[] = { some 16 byte iv }; - byte cipher[AES_BLOCK_SIZE * n]; //n being a positive integer making - cipher some multiple of 16 bytes - // fill cipher with cipher text + byte key[] = { 16、24、または32バイトのキー }; + byte iv[] = { 16バイトのiv }; + byte cipher[AES_BLOCK_SIZE * n]; //nは正の整数で、cipherを16バイトの倍数にする + // cipherを暗号文で埋める byte plain [AES_BLOCK_SIZE * n]; if ((ret = wc_AesCbcDecryptWithKey(plain, cipher, AES_BLOCK_SIZE, key, AES_BLOCK_SIZE, iv)) != 0 ) { - // Decrypt Error + // 復号エラー } \endcode + \sa wc_AesSetKey \sa wc_AesSetIV \sa wc_AesCbcEncrypt @@ -34,27 +38,33 @@ int wc_AesCbcDecryptWithKey(byte* out, const byte* in, word32 inSz, /*! \ingroup 3DES - \brief この関数は入力暗号文を復号化し、結果の平文を出力バッファーに出力します。暗号ブロックチェーンチェーン(CBC)モードでDES暗号化を使用します。この関数は、wc_des_cbcdecryptの代わりに、ユーザーがDES構造体を直接インスタンス化せずにメッセージを復号化できるようにします。 - \return 0 与えられた暗号文を正常に復号化したときに返されました - \return MEMORY_E DES構造体の割り当てスペースが割り当てられている場合に返された - \param out 復号化された平文を保存するバッファへのポインタ - \param in 暗号化された暗号文を含む入力バッファへのポインタ - \param sz 復号化する暗号文の長さ - \param key 復号化に使用する8バイトのキーを含むバッファへのポインタ + + \brief この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。この関数はwc_Des_CbcDecryptの代替で、ユーザーがDes構造体を直接インスタンス化せずにメッセージを復号できるようにします。 + + \return 0 指定された暗号文の復号に成功した場合に返されます + \return MEMORY_E Des構造体用のスペース割り当て中にエラーが発生した場合に返されます + + \param out 復号された平文を格納するバッファへのポインタ + \param in 暗号化された暗号文を含む入力バッファへのポインタ + \param sz 復号する暗号文の長さ + \param key 復号に使用する8バイトのキーを含むバッファへのポインタ + \param iv 復号に使用する8バイトのivを含むバッファへのポインタ。ivが提供されない場合、ivはデフォルトで0になります + _Example_ \code int ret; - byte key[] = { // initialize with 8 byte key }; - byte iv[] = { // initialize with 8 byte iv }; + byte key[] = { // 8バイトのキーで初期化 }; + byte iv[] = { // 8バイトのivで初期化 }; - byte cipher[] = { // initialize with ciphertext }; + byte cipher[] = { // 暗号文で初期化 }; byte decoded[sizeof(cipher)]; if ( wc_Des_CbcDecryptWithKey(decoded, cipher, sizeof(cipher), key, iv) != 0) { - // error decrypting message + // メッセージの復号エラー } \endcode + \sa wc_Des_CbcDecrypt */ int wc_Des_CbcDecryptWithKey(byte* out, @@ -63,25 +73,31 @@ int wc_Des_CbcDecryptWithKey(byte* out, /*! \ingroup 3DES - \brief この関数は入力平文を暗号化し、結果の暗号文を出力バッファーに出力します。暗号ブロックチェーンチェーン(CBC)モードでDES暗号化を使用します。この関数は、WC_DES_CBCENCRYPTの代わりになり、ユーザーがDES構造を直接インスタンス化せずにメッセージを暗号化できます。 - \return 0 データの暗号化に成功した後に返されます。 - \return MEMORY_E DES構造体にメモリを割り当てるエラーがある場合は返されます。 - \return <0 暗号化中に任意のエラーに戻ります。 - \param out 最終暗号化データ - \param in 暗号化されるデータは、DESブロックサイズに埋められなければなりません。 - \param sz 入力バッファのサイズ - \param key 暗号化に使用するキーへのポインタ。 + + \brief この関数は、入力平文inを暗号化し、結果の暗号文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのDES暗号化を使用します。この関数はwc_Des_CbcEncryptの代替で、ユーザーがDes構造体を直接インスタンス化せずにメッセージを暗号化できるようにします。 + + \return 0 データの暗号化に成功した後に返されます。 + \return MEMORY_E Des構造体用のメモリ割り当て中にエラーが発生した場合に返されます。 + \return <0 暗号化中の任意のエラーで返されます。 + + \param out 最終的に暗号化されたデータ + \param in 暗号化されるデータ。Desブロックサイズにパディングされている必要があります。 + \param sz 入力バッファのサイズ。 + \param key 暗号化に使用するキーへのポインタ。 + \param iv 初期化ベクトル + _Example_ \code - byte key[] = { // initialize with 8 byte key }; - byte iv[] = { // initialize with 8 byte iv }; - byte in[] = { // Initialize with plaintext }; + byte key[] = { // 8バイトのキーで初期化 }; + byte iv[] = { // 8バイトのivで初期化 }; + byte in[] = { // 平文で初期化 }; byte out[sizeof(in)]; if ( wc_Des_CbcEncryptWithKey(&out, in, sizeof(in), key, iv) != 0) { - // error encrypting message + // メッセージの暗号化エラー } \endcode + \sa wc_Des_CbcDecryptWithKey \sa wc_Des_CbcEncrypt */ @@ -91,27 +107,33 @@ int wc_Des_CbcEncryptWithKey(byte* out, /*! \ingroup 3DES - \brief この関数は入力平文を暗号化し、結果の暗号文を出力バッファーに出力します。暗号ブロックチェーン(CBC)モードでトリプルDES(3DES)暗号化を使用します。この関数は、WC_DES3_CBCENCRYPTの代わりになり、ユーザーがDES3構造を直接インスタンス化せずにメッセージを暗号化できます。 - \return 0 データの暗号化に成功した後に返されます。 - \return MEMORY_E DES構造体にメモリを割り当てるエラーがある場合は返されます。 - \return <0 暗号化中に任意のエラーに戻ります。 - \param out 最終暗号化データ - \param in 暗号化されるデータは、DESブロックサイズに埋められなければなりません。 - \param sz 入力バッファのサイズ - \param key 暗号化に使用するキーへのポインタ。 + + \brief この関数は、入力平文inを暗号化し、結果の暗号文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDES(3DES)暗号化を使用します。この関数はwc_Des3_CbcEncryptの代替で、ユーザーがDes3構造体を直接インスタンス化せずにメッセージを暗号化できるようにします。 + + \return 0 データの暗号化に成功した後に返されます。 + \return MEMORY_E Des構造体用のメモリ割り当て中にエラーが発生した場合に返されます。 + \return <0 暗号化中の任意のエラーで返されます。 + + \param out 最終的に暗号化されたデータ + \param in 暗号化されるデータ。Desブロックサイズにパディングされている必要があります。 + \param sz 入力バッファのサイズ。 + \param key 暗号化に使用するキーへのポインタ。 + \param iv 初期化ベクトル + _Example_ \code - byte key[] = { // initialize with 8 byte key }; - byte iv[] = { // initialize with 8 byte iv }; + byte key[] = { // 8バイトのキーで初期化 }; + byte iv[] = { // 8バイトのivで初期化 }; - byte in[] = { // Initialize with plaintext }; + byte in[] = { // 平文で初期化 }; byte out[sizeof(in)]; if ( wc_Des3_CbcEncryptWithKey(&out, in, sizeof(in), key, iv) != 0) { - // error encrypting message + // メッセージの暗号化エラー } \endcode + \sa wc_Des3_CbcDecryptWithKey \sa wc_Des_CbcEncryptWithKey \sa wc_Des_CbcDecryptWithKey @@ -122,29 +144,35 @@ int wc_Des3_CbcEncryptWithKey(byte* out, /*! \ingroup 3DES - \brief この関数は入力暗号文を復号化し、結果の平文を出力バッファーに出力します。暗号ブロックチェーン(CBC)モードでトリプルDES(3DES)暗号化を使用します。この関数は、wc_des3_cbcdecryptの代わりに、ユーザーがDES3構造を直接インスタンス化せずにメッセージを復号化できるようにします。 - \return 0 与えられた暗号文を正常に復号化したときに返されました - \return MEMORY_E DES構造体の割り当てスペースが割り当てられている場合に返された - \param out 復号化された平文を保存するバッファへのポインタ - \param in 暗号化された暗号文を含む入力バッファへのポインタ - \param sz 復号化する暗号文の長さ - \param key 復号化に使用する24バイトのキーを含むバッファへのポインタ + + \brief この関数は、入力暗号文inを復号し、結果の平文を出力バッファoutに格納します。暗号ブロック連鎖(CBC)モードのトリプルDes(3DES)暗号化を使用します。この関数はwc_Des3_CbcDecryptの代替で、ユーザーがDes3構造体を直接インスタンス化せずにメッセージを復号できるようにします。 + + \return 0 指定された暗号文の復号に成功した場合に返されます + \return MEMORY_E Des構造体用のスペース割り当て中にエラーが発生した場合に返されます + + \param out 復号された平文を格納するバッファへのポインタ + \param in 暗号化された暗号文を含む入力バッファへのポインタ + \param sz 復号する暗号文の長さ + \param key 復号に使用する24バイトのキーを含むバッファへのポインタ + \param iv 復号に使用する8バイトのivを含むバッファへのポインタ。ivが提供されない場合、ivはデフォルトで0になります + _Example_ \code int ret; - byte key[] = { // initialize with 24 byte key }; - byte iv[] = { // initialize with 8 byte iv }; + byte key[] = { // 24バイトのキーで初期化 }; + byte iv[] = { // 8バイトのivで初期化 }; - byte cipher[] = { // initialize with ciphertext }; + byte cipher[] = { // 暗号文で初期化 }; byte decoded[sizeof(cipher)]; if ( wc_Des3_CbcDecryptWithKey(decoded, cipher, sizeof(cipher), key, iv) != 0) { - // error decrypting message + // メッセージの復号エラー } \endcode + \sa wc_Des3_CbcDecrypt */ int wc_Des3_CbcDecryptWithKey(byte* out, const byte* in, word32 sz, - const byte* key, const byte* iv); + const byte* key, const byte* iv); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/wc_port.h b/doc/dox_comments/header_files-ja/wc_port.h index 9d0c370c61..c1762024c0 100644 --- a/doc/dox_comments/header_files-ja/wc_port.h +++ b/doc/dox_comments/header_files-ja/wc_port.h @@ -1,8 +1,13 @@ /*! \ingroup wolfCrypt - \brief WolfCryptによって使用されるリソースを初期化するために使用されます。 - \return 0 成功すると。 - \return <0 initリソースが失敗すると。 + + \brief wolfCryptで使用されるリソースを初期化するために使用されます。 + + \return 0 成功時。 + \return <0 リソースの初期化に失敗した場合。 + + \param none パラメータなし。 + _Example_ \code ... @@ -10,15 +15,21 @@ WOLFSSL_MSG("Error with wolfCrypt_Init call"); } \endcode + \sa wolfCrypt_Cleanup */ int wolfCrypt_Init(void); /*! \ingroup wolfCrypt - \brief WolfCryptによって使用されるリソースをクリーンアップするために使用されます。 - \return 0 成功すると。 - \return <0 リソースのクリーンアップが失敗したとき。 + + \brief wolfCryptで使用されるリソースをクリーンアップするために使用されます。 + + \return 0 成功時。 + \return <0 リソースのクリーンアップに失敗した場合。 + + \param none パラメータなし。 + _Example_ \code ... @@ -26,6 +37,7 @@ int wolfCrypt_Init(void); WOLFSSL_MSG("Error with wolfCrypt_Cleanup call"); } \endcode + \sa wolfCrypt_Init */ -int wolfCrypt_Cleanup(void); +int wolfCrypt_Cleanup(void); \ No newline at end of file diff --git a/doc/dox_comments/header_files-ja/wolfio.h b/doc/dox_comments/header_files-ja/wolfio.h index 135af87aab..0047ac28ac 100644 --- a/doc/dox_comments/header_files-ja/wolfio.h +++ b/doc/dox_comments/header_files-ja/wolfio.h @@ -1,16 +1,20 @@ /*! - \brief - \return Success この関数は、読み取られたバイト数を返します。 - \return WOLFSSL_CBIO_ERR_WANT_READ 最後のエラーがsocket_ewouldbolcokまたはsocket_eagainであれば、メッセージを返されます。 - \return WOLFSSL_CBIO_ERR_TIMEOUT "Socket Timeout"メッセージを返しました。 - \return WOLFSSL_CBIO_ERR_CONN_RST 最後のエラーがsocket_econnresetの場合、 "Connection Reset"メッセージで返されます。 - \return WOLFSSL_CBIO_ERR_ISR 最後のエラーがsocket_eintrの場合、 "Socket Interrupted"メッセージが返されます。 - \return WOLFSSL_CBIO_ERR_WANT_READ 最後のエラーがsocket_econneRefusedの場合、「接続拒否」メッセージを返しました。 - \return WOLFSSL_CBIO_ERR_CONN_CLOSE 最後のエラーがSOCKET_ECONNABORTEDの場合、「接続中止」メッセージで返されます。 - \return WOLFSSL_CBIO_ERR_GENERAL 最後のエラーが指定されていない場合は、「一般的なエラー」メッセージで返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param buf バッファのチャーポインタ表現。 - \param sz バッファのサイズ。 + \brief この関数は受信埋め込みコールバックです。 + + \return Success この関数は読み取られたバイト数を返します。 + \return WOLFSSL_CBIO_ERR_WANT_READ 最後のエラーがSOCKET_EWOULDBLCOKまたはSOCKET_EAGAINの場合、"Would block"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_TIMEOUT "Socket timeout"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_CONN_RST 最後のエラーがSOCKET_ECONNRESETの場合、"Connection reset"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_ISR 最後のエラーがSOCKET_EINTRの場合、"Socket interrupted"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_WANT_READ 最後のエラーがSOCKET_ECONNREFUSEDの場合、"Connection refused"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_CONN_CLOSE 最後のエラーがSOCKET_ECONNABORTEDの場合、"Connection aborted"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_GENERAL 最後のエラーが指定されていない場合、"General error"メッセージとともに返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param buf バッファのchar型ポインタ表現。 + \param sz バッファのサイズ。 + \param ctx ユーザー登録コンテキストへのvoid型ポインタ。デフォルトの場合、ctxはソケット記述子ポインタです。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -20,9 +24,10 @@ void* ctx; int bytesRead = EmbedReceive(ssl, buf, sz, ctx); if(bytesRead <= 0){ - // There were no bytes read. Failure case. + // バイトが読み取られませんでした。失敗ケース。 } \endcode + \sa EmbedSend \sa wolfSSL_CTX_SetIORecv \sa wolfSSL_SSLSetIORecv @@ -30,16 +35,20 @@ int EmbedReceive(WOLFSSL* ssl, char* buf, int sz, void* ctx); /*! - \brief - \return Success この関数は送信されたバイト数を返します。 - \return WOLFSSL_CBIO_ERR_WANT_WRITE 最後のエラーがsocket_ewouldblockまたはsocket_eagainであれば、 "Block"メッセージを返します。 - \return WOLFSSL_CBIO_ERR_CONN_RST 最後のエラーがsocket_econnresetの場合、 "Connection Reset"メッセージで返されます。 - \return WOLFSSL_CBIO_ERR_ISR 最後のエラーがsocket_eintrの場合、 "Socket Interrupted"メッセージが返されます。 - \return WOLFSSL_CBIO_ERR_CONN_CLOSE 最後のエラーがsocket_epipeの場合、 "Socket Epipe"メッセージを返しました。 - \return WOLFSSL_CBIO_ERR_GENERAL 最後のエラーが指定されていない場合は、「一般的なエラー」メッセージで返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param buf バッファを表す文字ポインタ。 - \param sz バッファのサイズ。 + \brief この関数は送信埋め込みコールバックです。 + + \return Success この関数は送信されたバイト数を返します。 + \return WOLFSSL_CBIO_ERR_WANT_WRITE 最後のエラーがSOCKET_EWOULDBLOCKまたはSOCKET_EAGAINの場合、"Would block"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_CONN_RST 最後のエラーがSOCKET_ECONNRESETの場合、"Connection reset"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_ISR 最後のエラーがSOCKET_EINTRの場合、"Socket interrupted"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_CONN_CLOSE 最後のエラーがSOCKET_EPIPEの場合、"Socket EPIPE"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_GENERAL 最後のエラーが指定されていない場合、"General error"メッセージとともに返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param buf バッファを表すchar型ポインタ。 + \param sz バッファのサイズ。 + \param ctx ユーザー登録コンテキストへのvoid型ポインタ。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -48,9 +57,10 @@ int EmbedReceive(WOLFSSL* ssl, char* buf, int sz, void* ctx); void* ctx; int dSent = EmbedSend(ssl, buf, sz, ctx); if(dSent <= 0){ - // No byes sent. Failure case. + // バイトが送信されませんでした。失敗ケース。 } \endcode + \sa EmbedReceive \sa wolfSSL_CTX_SetIOSend \sa wolfSSL_SSLSetIOSend @@ -58,16 +68,20 @@ int EmbedReceive(WOLFSSL* ssl, char* buf, int sz, void* ctx); int EmbedSend(WOLFSSL* ssl, char* buf, int sz, void* ctx); /*! - \brief - \return Success この関数は、実行が成功した場合に読み込まれたNBバイトを返します。 - \return WOLFSSL_CBIO_ERR_WANT_READ 接続が拒否された場合、または「ブロック」エラーが発生した場合は機能にスローされました。 - \return WOLFSSL_CBIO_ERR_TIMEOUT ソケットがタイムアウトした場合は返されます。 - \return WOLFSSL_CBIO_ERR_CONN_RST 接続がリセットされている場合は返されます。 - \return WOLFSSL_CBIO_ERR_ISR ソケットが中断された場合は返されます。 - \return WOLFSSL_CBIO_ERR_GENERAL 一般的なエラーがあった場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param buf バッファへの定数の文字ポインタ。 - \param sz バッファのサイズを表すint型。 + \brief この関数は受信埋め込みコールバックです。 + + \return Success 実行が成功した場合、この関数は読み取られたnbバイト数を返します。 + \return WOLFSSL_CBIO_ERR_WANT_READ 接続が拒否された場合、または関数で'would block'エラーがスローされた場合に返されます。 + \return WOLFSSL_CBIO_ERR_TIMEOUT ソケットがタイムアウトした場合に返されます。 + \return WOLFSSL_CBIO_ERR_CONN_RST 接続がリセットされた場合に返されます。 + \return WOLFSSL_CBIO_ERR_ISR ソケットが中断された場合に返されます。 + \return WOLFSSL_CBIO_ERR_GENERAL 一般的なエラーがあった場合に返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param buf バッファへのconst char型ポインタ。 + \param sz バッファのサイズを表すint型。 + \param ctx WOLFSSL_CTXコンテキストへのvoid型ポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -78,9 +92,10 @@ int EmbedSend(WOLFSSL* ssl, char* buf, int sz, void* ctx); … int nb = EmbedReceiveFrom(ssl, buf, sz, ctx); if(nb > 0){ - // nb is the number of bytes written and is positive + // nbは書き込まれたバイト数で正の値です } \endcode + \sa EmbedSendTo \sa wolfSSL_CTX_SetIORecv \sa wolfSSL_SSLSetIORecv @@ -89,16 +104,20 @@ int EmbedSend(WOLFSSL* ssl, char* buf, int sz, void* ctx); int EmbedReceiveFrom(WOLFSSL* ssl, char* buf, int sz, void*); /*! - \brief - \return Success この関数は送信されたバイト数を返します。 - \return WOLFSSL_CBIO_ERR_WANT_WRITE 最後のエラーがsocket_ewouldblockまたはsocket_eagainエラーの場合、 "Block"メッセージを返します。 - \return WOLFSSL_CBIO_ERR_CONN_RST 最後のエラーがsocket_econnresetの場合、 "Connection Reset"メッセージで返されます。 - \return WOLFSSL_CBIO_ERR_ISR 最後のエラーがsocket_eintrの場合、 "Socket Interrupted"メッセージが返されます。 - \return WOLFSSL_CBIO_ERR_CONN_CLOSE 最後のエラーがwolfssl_cbio_err_conn_croseの場合、 "Socket Epipe"メッセージを返しました。 - \return WOLFSSL_CBIO_ERR_GENERAL 最後のエラーが指定されていない場合は、「一般的なエラー」メッセージで返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param buf バッファを表す文字ポインタ。 - \param sz バッファのサイズ。 + \brief この関数は送信埋め込みコールバックです。 + + \return Success この関数は送信されたバイト数を返します。 + \return WOLFSSL_CBIO_ERR_WANT_WRITE 最後のエラーがSOCKET_EWOULDBLOCKまたはSOCKET_EAGAINエラーの場合、"Would Block"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_CONN_RST 最後のエラーがSOCKET_ECONNRESETの場合、"Connection reset"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_ISR 最後のエラーがSOCKET_EINTRの場合、"Socket interrupted"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_CONN_CLOSE 最後のエラーがWOLFSSL_CBIO_ERR_CONN_CLOSEの場合、"Socket EPIPE"メッセージとともに返されます。 + \return WOLFSSL_CBIO_ERR_GENERAL 最後のエラーが指定されていない場合、"General error"メッセージとともに返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param buf バッファを表すchar型ポインタ。 + \param sz バッファのサイズ。 + \param ctx ユーザー登録コンテキストへのvoid型ポインタ。デフォルトの場合はWOLFSSL_DTLS_CTX構造体です。 + _Example_ \code WOLFSSL* ssl; @@ -109,9 +128,10 @@ int EmbedReceiveFrom(WOLFSSL* ssl, char* buf, int sz, void*); int sEmbed = EmbedSendto(ssl, buf, sz, ctx); if(sEmbed <= 0){ - // No bytes sent. Failure case. + // バイトが送信されませんでした。失敗ケース。 } \endcode + \sa EmbedReceiveFrom \sa wolfSSL_CTX_SetIOSend \sa wolfSSL_SSLSetIOSend @@ -119,12 +139,16 @@ int EmbedReceiveFrom(WOLFSSL* ssl, char* buf, int sz, void*); int EmbedSendTo(WOLFSSL* ssl, char* buf, int sz, void* ctx); /*! - \brief - \return Success この関数は、バッファにコピーされたバイト数を返します。 - \return GEN_COOKIE_E getPeernameがEmbedGenerateCookieに失敗した場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param buf バッファを表すバイトポインタ。xmemcpy()からの宛先です。 - \param sz バッファのサイズ。 + \brief この関数はDTLS Generate Cookieコールバックです。 + + \return Success この関数はバッファにコピーされたバイト数を返します。 + \return GEN_COOKIE_E EmbedGenerateCookieでgetpeernameが失敗した場合に返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param buf バッファを表すbyte型ポインタ。XMEMCPY()の宛先です。 + \param sz バッファのサイズ。 + \param ctx ユーザー登録コンテキストへのvoid型ポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -136,25 +160,31 @@ int EmbedSendTo(WOLFSSL* ssl, char* buf, int sz, void* ctx); int ret = EmbedGenerateCookie(ssl, buffer, sz, ctx); if(ret > 0){ - // EmbedGenerateCookie code block for success + // EmbedGenerateCookieの成功コードブロック } \endcode + \sa wolfSSL_CTX_SetGenCookie */ int EmbedGenerateCookie(WOLFSSL* ssl, unsigned char* buf, int sz, void*); /*! - \brief - \return none いいえ返します。 - \param ctx ヒープヒントへのvoidポインタ。 + \brief この関数は応答バッファを解放します。 + + \return none 戻り値なし。 + + \param ctx ヒープヒントへのvoid型ポインタ。 + \param resp 応答を表すbyte型ポインタ。 + _Example_ \code void* ctx; - byte* resp; // Response buffer. + byte* resp; // 応答バッファ … EmbedOcspRespFree(ctx, resp); \endcode + \sa wolfSSL_CertManagerSetOCSP_Cb \sa wolfSSL_CertManagerEnableOCSPStapling \sa wolfSSL_CertManagerEnableOCSP @@ -162,21 +192,30 @@ int EmbedGenerateCookie(WOLFSSL* ssl, unsigned char* buf, void EmbedOcspRespFree(void* ctx, byte* resp); /*! - \brief データ。デフォルトでは、WolfSSLはシステムのTCP RECV()関数を使用するコールバックとしてEmbedReceive()を使用します。ユーザは、メモリ、他のネットワークモジュール、またはどこからでも入力するように機能を登録できます。関数の機能とエラーコードのためのガイドとして、src / io.cの埋め込みReceive()関数を参照してください。特に、データが準備ができていないときに、IO_ERR_WANT_READを非ブロック受信用に返す必要があります。 - \return none いいえ返します。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \brief この関数は、wolfSSLが入力データを取得するための受信コールバックを登録します。 + デフォルトでは、wolfSSLはシステムのTCP recv()関数を使用するコールバックとしてEmbedReceive()を使用します。 + ユーザーは、メモリ、他のネットワークモジュール、または任意の場所から入力を取得する関数を登録できます。 + 関数の動作方法とエラーコードについては、src/io.cのEmbedReceive()関数をガイドとして参照してください。 + 特に、データの準備ができていないノンブロッキング受信の場合はIO_ERR_WANT_READを返す必要があります。 + + \return none 戻り値なし。 + + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + \param callback wolfSSLコンテキストctxの受信コールバックとして登録される関数。この関数のシグネチャは、上記のSynopsisセクションに示されているものに従う必要があります。 + _Example_ \code WOLFSSL_CTX* ctx = 0; - // Receive callback prototype + // 受信コールバックのプロトタイプ int MyEmbedReceive(WOLFSSL* ssl, char* buf, int sz, void* ctx); - // Register the custom receive callback with wolfSSL + // カスタム受信コールバックをwolfSSLに登録 wolfSSL_CTX_SetIORecv(ctx, MyEmbedReceive); int MyEmbedReceive(WOLFSSL* ssl, char* buf, int sz, void* ctx) { - // custom EmbedReceive function + // カスタムEmbedReceive関数 } \endcode + \sa wolfSSL_CTX_SetIOSend \sa wolfSSL_SetIOReadCtx \sa wolfSSL_SetIOWriteCtx @@ -184,18 +223,26 @@ void EmbedOcspRespFree(void* ctx, byte* resp); void wolfSSL_CTX_SetIORecv(WOLFSSL_CTX* ctx, CallbackIORecv CBIORecv); /*! - \brief コールバック関数デフォルトでは、WolfSSLは、WolfSSLがシステムのTCPライブラリを使用している場合、wolfssl_set_fd()に渡されたファイル記述子をコンテキストとして設定します。自分の受信コールバックを登録した場合は、セッションの特定のコンテキストを設定することができます。たとえば、メモリバッファを使用している場合、コンテキストは、メモリバッファーのどこにありかを説明する構造へのポインタであり得る。 - \return none いいえ返します。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + \brief この関数は、SSLセッションの受信コールバック関数のコンテキストを登録します。 + デフォルトでは、wolfSSLがシステムのTCPライブラリを使用している場合、wolfSSLはwolfSSL_set_fd()に渡されたファイル記述子をコンテキストとして設定します。 + 独自の受信コールバックを登録した場合、セッションの特定のコンテキストを設定することができます。 + たとえば、メモリバッファを使用している場合、コンテキストはメモリバッファへのアクセス方法と場所を記述する構造体へのポインタになる可能性があります。 + + \return none 戻り値なし。 + + \param ssl wolfSSL_new()で作成されたSSLセッションへのポインタ。 + \param rctx SSLセッション(ssl)の受信コールバック関数に登録されるコンテキストへのポインタ。 + _Example_ \code int sockfd; WOLFSSL* ssl = 0; ... - // Manually setting the socket fd as the receive CTX, for example + // 例として、受信CTXとしてソケットfdを手動で設定 wolfSSL_SetIOReadCtx(ssl, &sockfd); ... \endcode + \sa wolfSSL_CTX_SetIORecv \sa wolfSSL_CTX_SetIOSend \sa wolfSSL_SetIOWriteCtx @@ -203,18 +250,26 @@ void wolfSSL_CTX_SetIORecv(WOLFSSL_CTX* ctx, CallbackIORecv CBIORecv); void wolfSSL_SetIOReadCtx( WOLFSSL* ssl, void *ctx); /*! - \brief コールバック関数デフォルトでは、WolfSSLは、WolfSSLがシステムのTCPライブラリを使用している場合、wolfssl_set_fd()に渡されたファイル記述子をコンテキストとして設定します。独自の送信コールバックを登録した場合は、セッションの特定のコンテキストを設定することができます。たとえば、メモリバッファを使用している場合、コンテキストは、メモリバッファーのどこにありかを説明する構造へのポインタであり得る。 - \return none いいえ返します。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + \brief この関数は、SSLセッションの送信コールバック関数のコンテキストを登録します。 + デフォルトでは、wolfSSLがシステムのTCPライブラリを使用している場合、wolfSSLはwolfSSL_set_fd()に渡されたファイル記述子をコンテキストとして設定します。 + 独自の送信コールバックを登録した場合、セッションの特定のコンテキストを設定することができます。 + たとえば、メモリバッファを使用している場合、コンテキストはメモリバッファへのアクセス方法と場所を記述する構造体へのポインタになる可能性があります。 + + \return none 戻り値なし。 + + \param ssl wolfSSL_new()で作成されたSSLセッションへのポインタ。 + \param wctx SSLセッション(ssl)の送信コールバック関数に登録されるコンテキストへのポインタ。 + _Example_ \code int sockfd; WOLFSSL* ssl = 0; ... - // Manually setting the socket fd as the send CTX, for example + // 例として、送信CTXとしてソケットfdを手動で設定 wolfSSL_SetIOWriteCtx(ssl, &sockfd); ... \endcode + \sa wolfSSL_CTX_SetIORecv \sa wolfSSL_CTX_SetIOSend \sa wolfSSL_SetIOReadCtx @@ -223,9 +278,14 @@ void wolfSSL_SetIOWriteCtx(WOLFSSL* ssl, void *ctx); /*! \ingroup IO - \brief この関数は、WolfSSL構造体のIOCB_READCTXメンバーを返します。 - \return pointer この関数は、wolfssl構造体のiocb_readctxメンバーへのvoidポインタを返します。 - \return NULL wolfssl構造体がNULLの場合に返されます。 + + \brief この関数はWOLFSSL構造体のIOCB_ReadCtxメンバーを返します。 + + \return pointer この関数はWOLFSSL構造体のIOCB_ReadCtxメンバーへのvoid型ポインタを返します。 + \return NULL WOLFSSL構造体がNULLの場合に返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -233,9 +293,10 @@ void wolfSSL_SetIOWriteCtx(WOLFSSL* ssl, void *ctx); ... ioRead = wolfSSL_GetIOReadCtx(ssl); if(ioRead == NULL){ - // Failure case. The ssl object was NULL. + // 失敗ケース。sslオブジェクトがNULLでした。 } \endcode + \sa wolfSSL_GetIOWriteCtx \sa wolfSSL_SetIOReadFlags \sa wolfSSL_SetIOWriteCtx @@ -246,9 +307,14 @@ void* wolfSSL_GetIOReadCtx( WOLFSSL* ssl); /*! \ingroup IO - \brief この関数は、WolfSSL構造のIOCB_WRITECTXメンバーを返します。 - \return pointer この関数は、WolfSSL構造のIOCB_WRITECTXメンバーへのvoidポインタを返します。 - \return NULL wolfssl構造体がNULLの場合に返されます。 + + \brief この関数はWOLFSSL構造体のIOCB_WriteCtxメンバーを返します。 + + \return pointer この関数はWOLFSSL構造体のIOCB_WriteCtxメンバーへのvoid型ポインタを返します。 + \return NULL WOLFSSL構造体がNULLの場合に返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + _Example_ \code WOLFSSL* ssl; @@ -256,9 +322,10 @@ void* wolfSSL_GetIOReadCtx( WOLFSSL* ssl); ... ioWrite = wolfSSL_GetIOWriteCtx(ssl); if(ioWrite == NULL){ - // The function returned NULL. + // 関数がNULLを返しました。 } \endcode + \sa wolfSSL_GetIOReadCtx \sa wolfSSL_SetIOWriteCtx \sa wolfSSL_SetIOReadCtx @@ -267,17 +334,34 @@ void* wolfSSL_GetIOReadCtx( WOLFSSL* ssl); void* wolfSSL_GetIOWriteCtx(WOLFSSL* ssl); /*! - \brief 与えられたSSLセッション受信コールバックは、デフォルトのwolfssl埋め込み受信コールバック、またはユーザによって指定されたカスタムコールバックであり得る(wolfssl_ctx_setiorecvを参照)。デフォルトのフラグ値は、WolfSSLによってwolfsslによって0の値に設定されます。デフォルトのWolfSSL受信コールバックはRECV()関数を使用してソケットからデータを受信します。 「Recv()」ページから:「Recv()関数へのflags引数は、1つ以上の値をOR処理するか、MSG_OOBプロセス帯域外データ、MSG_PEEK PEEK、MSG_PEEK PEEK、MSG_WAITALLがフルを待っています要求またはエラー。 MSG_OOBフラグは、通常のデータストリームで受信されないであろう帯域外データの受信を要求します。一部のプロトコルは通常のデータキューの先頭に迅速なデータを配置し、このフラグをそのようなプロトコルで使用することはできません。 MSG_PEEKフラグは、受信操作によって受信キューの先頭からのデータをキューから削除することなくデータを返します。したがって、以降の受信呼び出しは同じデータを返します。 MSG_WAITALLフラグは、完全な要求が満たされるまで操作ブロックを要求します。ただし、信号がキャッチされている場合は、呼び出し側よりも少ないデータが少なく、エラーまたは切断が発生するか、または受信されるデータが返されるものとは異なるタイプのデータを返します。 - \return none いいえ返します。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + \brief この関数は、指定されたSSLセッションの受信コールバックで使用するフラグを設定します。 + 受信コールバックは、デフォルトのwolfSSL EmbedReceiveコールバック、またはユーザーが指定したカスタムコールバックのいずれかです(wolfSSL_CTX_SetIORecvを参照)。 + デフォルトのフラグ値は、wolfSSL内部で0の値に設定されます。 + デフォルトのwolfSSL受信コールバックは、recv()関数を使用してソケットからデータを受信します。 + recv()のmanページより: + 「recv()関数のflagsパラメータは、次の値の1つ以上をORして形成されます: + MSG_OOB 帯域外データを処理、MSG_PEEK 受信メッセージを覗き見、MSG_WAITALL 完全なリクエストまたはエラーを待機。 + MSG_OOBフラグは、通常のデータストリームでは受信されない帯域外データの受信を要求します。 + 一部のプロトコルは、通常のデータキューの先頭に緊急データを配置するため、このフラグはそのようなプロトコルでは使用できません。 + MSG_PEEKフラグは、受信操作が受信キューの先頭からデータを返すようにしますが、そのデータをキューから削除しません。 + したがって、後続の受信呼び出しは同じデータを返します。 + MSG_WAITALLフラグは、完全なリクエストが満たされるまで操作をブロックするよう要求します。 + ただし、シグナルがキャッチされた場合、エラーまたは切断が発生した場合、または次に受信されるデータが返されたデータとは異なるタイプの場合、呼び出しは要求されたデータよりも少ないデータを返す可能性があります。」 + + \return none 戻り値なし。 + + \param ssl wolfSSL_new()で作成されたSSLセッションへのポインタ。 + \param flags 指定されたSSLセッション(ssl)のI/O読み取りフラグの値。 + _Example_ \code WOLFSSL* ssl = 0; ... - // Manually setting recv flags to 0 + // recvフラグを手動で0に設定 wolfSSL_SetIOReadFlags(ssl, 0); ... \endcode + \sa wolfSSL_CTX_SetIORecv \sa wolfSSL_CTX_SetIOSend \sa wolfSSL_SetIOReadCtx @@ -285,17 +369,32 @@ void* wolfSSL_GetIOWriteCtx(WOLFSSL* ssl); void wolfSSL_SetIOReadFlags( WOLFSSL* ssl, int flags); /*! - \brief SSLセッションを考えると送信コールバックは、デフォルトのWolfSSL EmbedEndコールバック、またはユーザーによって指定されたカスタムコールバックのいずれかです(WolfSSL_CTX_SetiosEndを参照)。デフォルトのフラグ値は、wolfsslによって0の値に設定されます。デフォルトのWolfSSL Send Callbackはsend()関数を使用してソケットからデータを送信します。send()manページから: "flagsパラメータには、次のうち1つ以上が含まれていてもよい。フラグMSG_OOBは、この概念(例えばSOCK_STREAM)をサポートするソケットに「帯域外」データを送信するために使用される。基礎となるプロトコルは、「帯域外」のデータもサポートする必要があります。MSG_DONTROUTEは通常、診断プログラムまたはルーティングプログラムによってのみ使用されます。」 - \return none いいえ返します。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + \brief この関数は、指定されたSSLセッションの送信コールバックで使用するフラグを設定します。 + 送信コールバックは、デフォルトのwolfSSL EmbedSendコールバック、またはユーザーが指定したカスタムコールバックのいずれかです(wolfSSL_CTX_SetIOSendを参照)。 + デフォルトのフラグ値は、wolfSSL内部で0の値に設定されます。 + デフォルトのwolfSSL送信コールバックは、send()関数を使用してソケットからデータを送信します。 + send()のmanページより: + 「flagsパラメータには、次の1つ以上が含まれる場合があります: + #define MSG_OOB 0x1 // 帯域外データを処理、 + #define MSG_DONTROUTE 0x4 // ルーティングをバイパス、直接インターフェースを使用。 + フラグMSG_OOBは、この概念をサポートするソケット(例:SOCK_STREAM)で「帯域外」データを送信するために使用されます。 + 基礎となるプロトコルも「帯域外」データをサポートする必要があります。 + MSG_DONTROUTEは通常、診断またはルーティングプログラムによってのみ使用されます。」 + + \return none 戻り値なし。 + + \param ssl wolfSSL_new()で作成されたSSLセッションへのポインタ。 + \param flags 指定されたSSLセッション(ssl)のI/O送信フラグの値。 + _Example_ \code WOLFSSL* ssl = 0; ... - // Manually setting send flags to 0 + // 送信フラグを手動で0に設定 wolfSSL_SetIOWriteFlags(ssl, 0); ... \endcode + \sa wolfSSL_CTX_SetIORecv \sa wolfSSL_CTX_SetIOSend \sa wolfSSL_SetIOReadCtx @@ -304,10 +403,15 @@ void wolfSSL_SetIOWriteFlags(WOLFSSL* ssl, int flags); /*! \ingroup IO - \brief この関数は、wolfssl構造内のnxctx構造体のNxSocketメンバーとNXWAITメンバーを設定します。 - \return none いいえ返します。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param nxSocket NXCTX構造のNXSOCTOCKメンバーに設定されているNX_TCP_SOCKETを入力するためのポインタ。 + + \brief この関数は、WOLFSSL構造体内のnxCtx構造体のnxSocketおよびnxWaitメンバーを設定します。 + + \return none 戻り値なし。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param nxSocket nxCTX構造体のnxSocketメンバーに設定されるNX_TCP_SOCKET型へのポインタ。 + \param waitOption nxCtx構造体のnxWaitメンバーに設定されるULONG型。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -317,9 +421,10 @@ void wolfSSL_SetIOWriteFlags(WOLFSSL* ssl, int flags); if(ssl != NULL || nxSocket != NULL || waitOption <= 0){ wolfSSL_SetIO_NetX(ssl, nxSocket, waitOption); } else { - // You need to pass in good parameters. + // 適切なパラメータを渡す必要があります。 } \endcode + \sa set_fd \sa NetX_Send \sa NetX_Receive @@ -328,29 +433,41 @@ void wolfSSL_SetIO_NetX(WOLFSSL* ssl, NX_TCP_SOCKET* nxsocket, ULONG waitoption); /*! - \brief wolfssl_ctx構造CallBackGencookie Typeは関数ポインタで、署名:int(* callbackgencookie)(wolfssl * ssl、unsigned char * buf、int sz、void * ctx)を持っています。 - \return none いいえ返します。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \brief この関数は、WOLFSSL_CTX構造体のCBIOCookieメンバーのコールバックを設定します。 + CallbackGenCookie型は関数ポインタで、次のシグネチャを持ちます: + int (*CallbackGenCookie)(WOLFSSL* ssl, unsigned char* buf, int sz, void* ctx); + + \return none 戻り値なし。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param cb CallbackGenCookieのシグネチャを持つCallbackGenCookie型の関数ポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); WOLFSSL* ssl = wolfSSL_new(ctx); … int SetGenCookieCB(WOLFSSL* ssl, unsigned char* buf, int sz, void* ctx){ - // Callback function body. + // コールバック関数本体 } … wolfSSL_CTX_SetGenCookie(ssl->ctx, SetGenCookieCB); \endcode + \sa CallbackGenCookie */ void wolfSSL_CTX_SetGenCookie(WOLFSSL_CTX* ctx, CallbackGenCookie cb); /*! \ingroup Setup - \brief この関数は、WolfSSL構造のIOCB_COOKIECTXメンバーを返します。 - \return pointer この関数は、iocb_cookiectxに格納されているvoidポインタ値を返します。 - \return NULL WolfSSL構造体がNULLの場合 + + \brief この関数はWOLFSSL構造体のIOCB_CookieCtxメンバーを返します。 + + \return pointer 関数はIOCB_CookieCtxに保存されているvoid型ポインタ値を返します。 + \return NULL WOLFSSL構造体がNULLの場合。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -359,9 +476,10 @@ void wolfSSL_CTX_SetGenCookie(WOLFSSL_CTX* ctx, CallbackGenCookie cb); ... cookie = wolfSSL_GetCookieCtx(ssl); if(cookie != NULL){ - // You have the cookie + // cookieを取得しました } \endcode + \sa wolfSSL_SetCookieCtx \sa wolfSSL_CTX_SetGenCookie */ @@ -370,16 +488,21 @@ void* wolfSSL_GetCookieCtx(WOLFSSL* ssl); /*! \ingroup Setup - \brief この関数は、WolfSSLがWolfSSL_ISOTPでコンパイルされている場合に使用する場合は、WolfSSLの場合はISO-TPコンテキストを設定します。 - \return 0 成功すると、故障のwolfssl_cbio_err_general - \param ssl wolfsslコンテキスト - \param ctx ユーザーはこの関数が初期化されるISOTPコンテキストを作成しました - \param recv_fn ユーザーはバスを受信できます - \param send_fn ユーザーはバスを送ることができます - \param delay_fn ユーザーマイクロ秒の粒度遅延関数 - \param receive_delay 各CANバスパケットを遅らせるためのマイクロ秒のセット数 - \param receive_buffer ユーザーがデータを受信するためのバッファーが提供され、ISOTP_DEFAULT_BUFFER_SIZEバイトに割り当てられていることをお勧めします。 - \param receive_buffer_size - receive_bufferのサイズ + + \brief この関数は、wolfSSLがWOLFSSL_ISOTPでコンパイルされている場合に使用するために、wolfSSLのISO-TPコンテキストを設定します。 + + \return 0 成功時、WOLFSSL_CBIO_ERR_GENERAL 失敗時。 + + \param ssl wolfSSLコンテキスト。 + \param ctx この関数が初期化するユーザー作成のISOTPコンテキスト。 + \param recv_fn ユーザーのCANバス受信コールバック。 + \param send_fn ユーザーのCANバス送信コールバック。 + \param delay_fn ユーザーのマイクロ秒粒度遅延関数。 + \param receive_delay 各CANバスパケットを遅延させる設定マイクロ秒数。 + \param receive_buffer データを受信するためのユーザー提供バッファ、ISOTP_DEFAULT_BUFFER_SIZEバイトに割り当てることを推奨。 + \param receive_buffer_size - receive_bufferのサイズ。 + \param arg recv_fnとsend_fnに送信される任意のポインタ。 + _Example_ \code struct can_info can_con_info; @@ -396,3 +519,46 @@ int wolfSSL_SetIO_ISOTP(WOLFSSL *ssl, isotp_wolfssl_ctx *ctx, can_recv_fn recv_fn, can_send_fn send_fn, can_delay_fn delay_fn, word32 receive_delay, char *receive_buffer, int receive_buffer_size, void *arg); + +/*! + \ingroup Setup + + \brief この関数はIOレイヤーからの読み取りを無効にします。 + + \param ssl wolfSSLコンテキスト。 + + _Example_ + \code + WOLFSSL_CTX* ctx = wolfSSL_CTX_new(method); + WOLFSSL* ssl = wolfSSL_new(ctx); + wolfSSL_SSLDisableRead(ssl); + \endcode + + \sa wolfSSL_CTX_SetIORecv + \sa wolfSSL_SSLSetIORecv + \sa wolfSSL_SSLEnableRead + */ +void wolfSSL_SSLDisableRead(WOLFSSL *ssl); + +/*! + \ingroup Setup + + \brief この関数はIOレイヤーからの読み取りを有効にします。 + 読み取りはデフォルトで有効になっており、wolfSSL_SSLDisableRead()を元に戻すために使用する必要があります。 + + \param ssl wolfSSLコンテキスト。 + + _Example_ + \code + WOLFSSL_CTX* ctx = wolfSSL_CTX_new(method); + WOLFSSL* ssl = wolfSSL_new(ctx); + wolfSSL_SSLDisableRead(ssl); + ... + wolfSSL_SSLEnableRead(ssl); + \endcode + + \sa wolfSSL_CTX_SetIORecv + \sa wolfSSL_SSLSetIORecv + \sa wolfSSL_SSLEnableRead + */ +void wolfSSL_SSLEnableRead(WOLFSSL *ssl); \ No newline at end of file