diff --git a/doc/dox_comments/header_files-ja/asn_public.h b/doc/dox_comments/header_files-ja/asn_public.h index 5d3a50dc9..dda3c3d29 100644 --- a/doc/dox_comments/header_files-ja/asn_public.h +++ b/doc/dox_comments/header_files-ja/asn_public.h @@ -1,7 +1,8 @@ /*! - \ingroup ASN - \brief この関数はデフォルトの証明書を初期化します。デフォルトのオプション:version = 3(0x2)、sigtype = sha_with_rsa、issuer =空白、dayValid = 500、selfsigned = 1(true)発行者としての件名=空白 - \return none いいえ返します。 + \ingroup ASN + \brief この関数はCert構造体をデフォルトの値で初期化します。デフォルトのオプション:version = 3(0x2)、sigtype = sha_with_rsa、issuer =空白、dayValid = 500、selfsigned = 1(true)発行者としての件名=空白 + \return 成功した場合0を返します。 + _Example_ \code Cert myCert; @@ -13,17 +14,78 @@ int wc_InitCert(Cert*); /*! - \ingroup ASN - \brief CA署名付き証明書を作成するために使用されます。被写体情報が入力された後に呼び出されました。この関数は、証明書入力からX509証明書V3 RSAまたはECCを作成します。その後、この証明書をDerbufferに書き込みます。証明書を生成するためのRSAKEYまたはECCKEYのいずれかを取ります。このメソッドが呼び出される前に、証明書をWC_INITCERTで初期化する必要があります。 - \return Success 指定された入力証明書からX509証明書を正常に行うと、生成された証明書のサイズを返します。 - \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合 - \return BUFFER_E 提供されたDerbufferが生成された証明書を保存するには小さすぎる場合に返されます + \ingroup ASN + + \brief この関数は証明書操作の為に新たなCert構造体を割り当てます。 + 割り当てたCert構造体はこの関数内で初期化されるので、wc_InitCert()を呼び出す必要はありません。 + アプリケーションがこのCert構造体の使用を終了する際にはwc_CertFree()を呼び出す必要があります。 + + \return 処理が成功した際には新に割り当てられたCert構造体へのポインタを返します。 + \return メモリ確保に失敗した場合にはNULLを返します。 + + \param メモリの動的確保で使用されるヒープへのポインタ。NULLの指定も可。 + + _Example_ + \code + Cert* myCert; + + myCert = wc_CertNew(NULL); + if (myCert == NULL) { + // Cert creation failure + } + \endcode + + \sa wc_InitCert + \sa wc_MakeCert + \sa wc_CertFree + +*/ +Cert* wc_CertNew(void* heap); + + +/*! + \ingroup ASN + + \brief この関数はwc_CertNew()で確保されたCert構造体を解放します。 + \return 無し + \param 解放すべきCert構造体へのポインタ + + _Example_ + \code + Cert* myCert; + + myCert = wc_CertNew(NULL); + + // Perform cert operations. + + wc_CertFree(myCert); + \endcode + + \sa wc_InitCert + \sa wc_MakeCert + \sa wc_CertNew + +*/ +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 初期化された証明書構造へのポインタ + \param cert 初期化されたCert構造体へのポインタ \param derBuffer 生成された証明書を保持するバッファへのポインタ \param derSz 証明書を保存するバッファのサイズ - \param rsaKey 証明書の生成に使用されるRSAキーを含むRSAKEY構造体へのポインタ - \param eccKey 証明書の生成に使用されるECCキーを含むECCKEY構造体へのポインタ + \param rsaKey 証明書の生成に使用されるRSA鍵を含むRsaKey構造体へのポインタ + \param eccKey 証明書の生成に使用されるECC鍵を含むEccKey構造体へのポインタ + _Example_ \code Cert myCert; @@ -43,16 +105,21 @@ int wc_MakeCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* rsaKey, ecc_key* eccKey, WC_RNG* rng); /*! - \ingroup ASN - \brief この関数は、入力証明書を使用して証明書署名要求を行い、出力をDerbufferに書き込みます。証明書要求を生成するRSAKEYまたはECCKEYのどちらかを取ります。この関数が証明書要求に署名するためにwc_signcert()を呼び出す必要があります。この関数の使用例については、WolfCryptテストアプリケーション(./wolfcrypt/test/test.c)を参照してください。 - \return Success 指定された入力証明書からX.509証明書要求を正常に行うと、生成された証明書要求のサイズを返します。 - \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合 - \return BUFFER_E 提供されたDerbufferが生成された証明書を保存するには小さすぎる場合に返されます - \return Other 証明書要求生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。 - \param cert 初期化された証明書構造へのポインタ - \param derBuffer 生成された証明書要求を保持するバッファへのポインタ - \param derSz 証明書要求を保存するバッファのサイズ - \param rsaKey 証明書要求を生成するために使用されるRSAキーを含む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構造体へのポインタ + _Example_ \code Cert myCert; @@ -71,18 +138,21 @@ int wc_MakeCertReq(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* rsaKey, ecc_key* eccKey); /*! - \ingroup ASN - \brief この関数はバッファーに署名し、署名をバッファの最後に追加します。署名の種類を取ります。CA署名付き証明書を作成する場合は、wc_makecert()またはwc_makecertreq()の後に呼び出す必要があります。 - \return Success 証明書に正常に署名する場合は、CERTの新しいサイズ(署名を含む)を返します。 - \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合 + \ingroup ASN + \brief この関数はバッファーの内容に署名し、署名をバッファの最後に追加します。署名の種類を取ります。 + CA署名付き証明書を作成する場合は、wc_MakeCert()またはwc_MakeCertReq()の後に呼び出す必要があります。 + \return 証明書への署名に成功した場合は、証明書の新しいサイズ(署名を含む)を返します。 + \return MEMORY_E xmallocでのメモリを割り当てでエラーがある場合 \return BUFFER_E 提供された証明書を保存するには提供されたバッファが小さすぎる場合に返されます。 \return Other 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。 - \param requestSz 署名したことを要求している証明書本文のサイズ - \param sType 作成する署名の種類。有効なオプションは次のとおりです.CTC_MD5WRSA、CTC_SHAWRSA、CTC_SHAWECDSA、CTC_SHA256WECDSA、ANDCTC_SHA256WRSA - \param buffer 署名する証明書を含むバッファへのポインタ。成功:新たに署名された証明書を保持します - \param buffSz 新たに署名された証明書を保存するバッファの(合計)サイズ - \param rsaKey 証明書に署名するために使用されるRSAキーを含むRSAKEY構造体へのポインタ - \param eccKey 証明書に署名するために使用されるECCキーを含むECCKey構造体へのポインタ + \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構造体)へのポインタ + _Example_ \code Cert myCert; @@ -94,9 +164,8 @@ int wc_MakeCertReq(Cert* cert, byte* derBuffer, word32 derSz, // initialize 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 @@ -105,16 +174,19 @@ int wc_SignCert(int requestSz, int sigType, byte* derBuffer, word32 derSz, RsaKey* rsaKey, ecc_key* eccKey, WC_RNG* rng); /*! - \ingroup ASN - \brief この関数は、以前の2つの関数、wc_makecert、および自己署名のためのwc_signcertの組み合わせです(前の関数はCA要求に使用される場合があります)。証明書を作成してから、それに署名し、自己署名証明書を生成します。 - \return Success 証明書に正常に署名する場合は、CERTの新しいサイズを返します。 - \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合 + \ingroup ASN + \brief この関数は、以前の2つの関数、wc_MakeCert、および自己署名のためのwc_SignCertの組み合わせです(前の関数はCA要求に使用される場合があります)。 + 証明書を作成してから、それに署名し、自己署名証明書を生成します。 + \return 証明書への署名が成功した場合は、証明書の新しいサイズを返します。 + \return MEMORY_E xmallocでのメモリを割り当てでエラーがある場合 \return BUFFER_E 提供された証明書を保存するには提供されたバッファが小さすぎる場合に返されます。 \return Other 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。 - \param cert 作成して署名する証明書へのポインタ - \param buffer 署名付き証明書を保持するためのバッファへのポインタ - \param buffSz 署名付き証明書を保存するバッファのサイズ - \param key 証明書に署名するために使用されるRSAキーを含むRSAKEY構造体へのポインタ + \param cert 署名する対象のCert構造体へのポインタ + \param derBuffer 署名付き証明書を保持するためのバッファへのポインタ + \param derSz 署名付き証明書を保存するバッファのサイズ + \param key 証明書に署名するために使用されるRSA鍵を含むRsaKey構造体へのポインタ + \param rng 署名に使用する乱数生成器(WC_RNG構造体)へのポインタ + _Example_ \code Cert myCert; @@ -134,3 +206,1777 @@ int wc_SignCert(int requestSz, int sigType, byte* derBuffer, */ int wc_MakeSelfCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* key, WC_RNG* rng); + +/*! + \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形式の証明書ファイルへのファイルパス + + _Example_ + \code + Cert myCert; + // initialize myCert + if(wc_SetIssuer(&myCert, ”./path/to/ca-cert.pem”) != 0) { + // error setting issuer + } + \endcode + + \sa wc_InitCert + \sa wc_SetSubject + \sa wc_SetIssuerBuffer +*/ +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形式の証明書ファイルへのファイルパス + + _Example_ + \code + Cert myCert; + // initialize myCert + if(wc_SetSubject(&myCert, ”./path/to/ca-cert.pem”) != 0) { + // error setting subject + } + \endcode + + \sa wc_InitCert + \sa wc_SetIssuer +*/ +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形式の証明書を格納しているバッファのサイズ + + _Example_ + \code + Cert myCert; + // initialize myCert + byte* der; + der = (byte*)malloc(FOURK_BUF); + // initialize der + if(wc_SetSubjectRaw(&myCert, der, FOURK_BUF) != 0) { + // error setting subject + } + \endcode + + \sa wc_InitCert + \sa wc_SetSubject +*/ +int wc_SetSubjectRaw(Cert* cert, const byte* der, int derSz); + +/*! + \ingroup ASN + + \brief この関数はCert構造体からRaw-Subject情報を取り出します。 + + \return 0 証明書のRaw-Subject情報の取得に成功した場合に返されます。 + \return BAD_FUNC_ARG 証明書の拡張情報の解析でエラーが発生した際に返されます。 + + \param subjectRaw 処理が成功した際に返されるRaw-Subject情報を格納するバッファへのポインタのポインタ + \param cert Raw-Subject情報を保持するCert構造体へのポインタ + + _Example_ + \code + Cert myCert; + byte *subjRaw; + // initialize myCert + + if(wc_GetSubjectRaw(&subjRaw, &myCert) != 0) { + // error setting subject + } + \endcode + + \sa wc_InitCert + \sa wc_SetSubjectRaw +*/ +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形式の証明書を格納しているバッファへのポインタ。 + + _Example_ + \code + Cert myCert; + // initialize myCert + if(wc_SetSubject(&myCert, ”./path/to/ca-cert.pem”) != 0) { + // error setting alt names + } + \endcode + + \sa wc_InitCert + \sa wc_SetIssuer +*/ +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形式の証明書を格納しているバッファのサイズ + + _Example_ + \code + Cert myCert; + // initialize myCert + byte* der; + der = (byte*)malloc(FOURK_BUF); + // initialize der + if(wc_SetIssuerBuffer(&myCert, der, FOURK_BUF) != 0) { + // error setting issuer + } + \endcode + + \sa wc_InitCert + \sa wc_SetIssuer +*/ +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形式の証明書を格納しているバッファのサイズ + + _Example_ + \code + Cert myCert; + // initialize myCert + byte* der; + der = (byte*)malloc(FOURK_BUF); + // initialize der + if(wc_SetIssuerRaw(&myCert, der, FOURK_BUF) != 0) { + // error setting subject + } + \endcode + + \sa wc_InitCert + \sa wc_SetIssuer +*/ +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形式の証明書を格納しているバッファのサイズ + + _Example_ + \code + Cert myCert; + // initialize myCert + byte* der; + der = (byte*)malloc(FOURK_BUF); + // initialize der + if(wc_SetSubjectBuffer(&myCert, der, FOURK_BUF) != 0) { + // error setting subject + } + \endcode + + \sa wc_InitCert + \sa wc_SetSubject +*/ +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形式の証明書を格納しているバッファのサイズ + + _Example_ + \code + Cert myCert; + // initialize myCert + byte* der; + der = (byte*)malloc(FOURK_BUF); + // initialize der + if(wc_SetAltNamesBuffer(&myCert, der, FOURK_BUF) != 0) { + // error setting subject + } + \endcode + + \sa wc_InitCert + \sa wc_SetAltNames +*/ +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形式の証明書を格納しているバッファのサイズ + + _Example_ + \code + Cert myCert; + // initialize myCert + byte* der; + der = (byte*)malloc(FOURK_BUF); + // initialize der + if(wc_SetDatesBuffer(&myCert, der, FOURK_BUF) != 0) { + // error setting subject + } + \endcode + + \sa wc_InitCert +*/ +int wc_SetDatesBuffer(Cert* cert, const byte* der, int derSz); + +/*! + \ingroup ASN + + \brief この関数は指定されたRSAあるいはECC公開鍵の一方から得たAKID(認証者鍵ID)を証明書のAKIDとして設定します。 + + \return 0 証明書のAKIDの設定に成功した場合に返されます。 + \return BAD_FUNC_ARG Cert構造体へのポインタ(cert)がNULLかRsaKey構造体へのポインタ(rsakey)とecc_key構造体へのポインタ(eckey)の両方がNULLである場合に返されます。 + \return MEMORY_E メモリの確保に失敗した際に返されます。 + \return PUBLIC_KEY_E 公開鍵の取得に失敗した際に返されます。 + + \param cert AKIDを設定する対象のCert構造体へのポインタ + \param rsakey RsaKey構造体へのポインタ + \param eckey ecc_key構造体へのポインタ + + _Example_ + \code + Cert myCert; + RsaKey keypub; + + wc_InitRsaKey(&keypub, 0); + + if (wc_SetAuthKeyIdFromPublicKey(&myCert, &keypub, NULL) != 0) + { + // Handle error + } + \endcode + + \sa wc_SetSubjectKeyId + \sa wc_SetAuthKeyId + \sa wc_SetAuthKeyIdFromCert +*/ +int wc_SetAuthKeyIdFromPublicKey(Cert *cert, RsaKey *rsakey, + ecc_key *eckey); + +/*! + \ingroup ASN + + \brief この関数はDER形式でバッファに格納された証明書から得たAKID(認証者鍵ID)を証明書のAKIDとして設定します。 + + \return 0 証明書のAKIDの設定に成功した場合に返されます。 + \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形式の証明書を格納しているバッファのサイズ。 + + _Example_ + \code + Cert some_cert; + byte some_der[] = { // Initialize a DER buffer }; + wc_InitCert(&some_cert); + if(wc_SetAuthKeyIdFromCert(&some_cert, some_der, sizeof(some_der) != 0) + { + // Handle error + } + \endcode + + \sa wc_SetAuthKeyIdFromPublicKey + \sa wc_SetAuthKeyId +*/ +int wc_SetAuthKeyIdFromCert(Cert *cert, const byte *der, int derSz); + +/*! + \ingroup ASN + + \brief この関数はPEM形式の証明書から得たAKID(認証者鍵ID)を証明書のAKIDとして設定します。 + + \return 0 証明書のAKIDの設定に成功した場合に返されます。 + \return BAD_FUNC_ARG 引数のいずれかがNULLの場合に返されます。 + \return MEMORY_E メモリの確保に失敗した際に返されます。 + + \param cert AKIDを設定する対象のCert構造体へのポインタ。 + \param file PEM形式の証明書ファイルへのファイルパス + + _Example_ + \code + char* file_name = "/path/to/file"; + cert some_cert; + wc_InitCert(&some_cert); + + if(wc_SetAuthKeyId(&some_cert, file_name) != 0) + { + // Handle Error + } + \endcode + + \sa wc_SetAuthKeyIdFromPublicKey + \sa wc_SetAuthKeyIdFromCert +*/ +int wc_SetAuthKeyId(Cert *cert, const char* file); + +/*! + \ingroup ASN + + \brief この関数は指定されたRSAあるいはECC公開鍵の一方から得たSKID(主体者鍵ID)を証明書のSKIDとして設定します。 + + \return 0 証明書のSKIDの設定に成功した場合に返されます。 + \return BAD_FUNC_ARG Cert構造体へのポインタ(cert)がNULLかRsaKey構造体へのポインタ(rsakey)とecc_key構造体へのポインタ(eckey)の両方がNULLである場合に返されます。 + \return MEMORY_E メモリの確保に失敗した際に返されます。 + \return PUBLIC_KEY_E 公開鍵の取得に失敗した際に返されます。 + + \param cert SKIDを設定する対象のCert構造体へのポインタ + \param rsakey RsaKey構造体へのポインタ + \param eckey ecc_key構造体へのポインタ + + _Example_ + \code + Cert some_cert; + RsaKey some_key; + wc_InitCert(&some_cert); + wc_InitRsaKey(&some_key); + + if(wc_SetSubjectKeyIdFromPublicKey(&some_cert,&some_key, NULL) != 0) + { + // Handle Error + } + \endcode + + \sa wc_SetSubjectKeyId +*/ +int wc_SetSubjectKeyIdFromPublicKey(Cert *cert, RsaKey *rsakey, + ecc_key *eckey); + +/*! + \ingroup ASN + + \brief この関数はPEM形式の証明書から得たSKID(主体者鍵ID)を証明書のSKIDとして設定します。 + 引数は両方が与えられることが必要です。 + + \return 0 証明書のSKIDの設定に成功した場合に返されます。 + \return BAD_FUNC_ARG 引数のいずれかがNULLの場合に返されます。 + \return MEMORY_E メモリの確保に失敗した際に返されます。 + \return PUBLIC_KEY_E 公開鍵のデコードに失敗した際に返されます。 + + \param cert SKIDを設定する対象のCert構造体へのポインタ。 + \param file PEM形式の証明書ファイルへのファイルパス + + _Example_ + \code + const char* file_name = "path/to/file"; + Cert some_cert; + wc_InitCert(&some_cert); + + if(wc_SetSubjectKeyId(&some_cert, file_name) != 0) + { + // Handle Error + } + \endcode + + \sa wc_SetSubjectKeyIdFromPublicKey +*/ +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 は同じ用途を意味します。 + + \return 0 証明書の用途の設定に成功した場合に返されます。 + \return BAD_FUNC_ARG 引数のいずれかがNULLの場合に返されます。 + \return MEMORY_E メモリの確保に失敗した際に返されます。 + \return KEYUSAGE_E 未知のトークンが検出された際に返されます。 + + \param cert 鍵の用途を設定する対象の初期化済みCert構造体へのポインタ。 + \param value 鍵の用途を意味するコンマ区切りトークン文字列へのポインタ + + _Example_ + \code + Cert cert; + wc_InitCert(&cert); + + if(wc_SetKeyUsage(&cert, "cRLSign,keyCertSign") != 0) + { + // Handle error + } + \endcode + + \sa wc_InitCert + \sa wc_MakeRsaKey +*/ +int wc_SetKeyUsage(Cert *cert, const char *value); + +/*! + \ingroup ASN + + \brief PEM形式の鍵ファイルをロードしDER形式に変換してバッファに出力します。 + + \return 0 処理成功時に返されます。 + \return <0 エラー発生時に返されます。 + \return SSL_BAD_FILE ファイルのオープンに問題が生じた際に返されます。 + \return MEMORY_E メモリの確保に失敗した際に返されます。 + \return BUFFER_E 与えられた出力バッファderBufが結果を保持するのに十分な大きさがない場合に返されます。 + + \param fileName PEM形式のファイルパス + \param derBuf DER形式鍵を出力する先のバッファ + \param derSz 出力先バッファのサイズ + + _Example_ + \code + char* some_file = "filename"; + unsigned char der[]; + + if(wc_PemPubKeyToDer(some_file, der, sizeof(der)) != 0) + { + //Handle Error + } + \endcode + + \sa wc_PubKeyPemToDer +*/ +int wc_PemPubKeyToDer(const char* fileName, + unsigned char* derBuf, int derSz); + +/*! + \ingroup ASN + + \brief PEM形式の鍵データをDER形式に変換してバッファに出力し、出力バイト数あるいは負のエラー値を返します。 + + \return >0 処理成功時には出力したバイト数が返されます。 + \return BAD_FUNC_ARG 引数のpem, buff, あるいは buffSz のいずれかばNULLの場合に返されます。 + \return <0 エラーが発生した際に返されます。 + + \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 + + if(wc_PubKeyPemToDer(some_pem, sizeof(some_pem), out_buffer, + sizeof(out_buffer)) < 0) + { + // Handle error + } + \endcode + + \sa wc_PemPubKeyToDer +*/ +int wc_PubKeyPemToDer(const unsigned char* pem, int pemSz, + unsigned char* buff, int buffSz); + +/*! + \ingroup ASN + + \brief この関数はPEM形式の証明書をDER形式に変換し、与えられたバッファに出力します。 + + \return 処理成功時には出力したバイト数が返されます。 + \return BUFFER_E 与えられた出力バッファderBufが結果を保持するのに十分な大きさがない場合に返されます。 + \return MEMORY_E メモリの確保に失敗した際に返されます。 + + \param fileName PEM形式のファイルパス + \param derBuf DER形式証明書を出力する先のバッファ + \param derSz DER形式証明書を出力する先のバッファのサイズ + + _Example_ + \code + 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 + } + \endcode + + \sa none +*/ + +int wc_PemCertToDer(const char* fileName, unsigned char* derBuf, int derSz); + +/*! + \ingroup ASN + + \brief この関数はバッファで与えられたDER形式の証明書をPEM形式に変換し、与えられた出力用バッファに出力します。 + この関数は入力バッファと出力バッファを共用することはできません。両バッファは必ず別のものを用意してください。 + + \return 処理成功時には変換後のPEM形式データのサイズを返します。 + \return BAD_FUNC_ARG DER形式証明書データの解析中にエラーが発生した際、あるいはPEM形式に変換の際にエラーが発生した際に返されます。 + \return MEMORY_E メモリの確保に失敗した際に返されます。 + \return ASN_INPUT_E Base64エンコーディングエラーが検出された際に返されます。 + \return BUFFER_E 与えられた出力バッファが結果を保持するのに十分な大きさがない場合に返されます。 + + \param der DER形式証明書データを保持するバッファへのポインタ + \param derSz DER形式証明書データのサイズ + \param output PEM形式証明書データを出力する先のバッファへのポインタ + \param outSz PEM形式証明書データを出力する先のバッファのサイズ + \param type 変換する証明書のタイプ。次のタイプが指定可: CERT_TYPE, PRIVATEKEY_TYPE, ECC_PRIVATEKEY_TYPE, and CERTREQ_TYPE. + + _Example_ + \code + byte* der; + // initialize der with certificate + byte* pemFormatted[FOURK_BUF]; + + word32 pemSz; + pemSz = wc_DerToPem(der, derSz,pemFormatted,FOURK_BUF, CERT_TYPE); + \endcode + + \sa wc_PemCertToDer +*/ +int wc_DerToPem(const byte* der, word32 derSz, byte* output, + word32 outputSz, int type); + +/*! + \ingroup ASN + + \brief この関数はDER形式証明書を入力バッファから読み出し、PEM形式に変換して出力バッファに出力します。 + この関数は入力バッファと出力バッファを共用することはできません。両バッファは必ず別のものを用意してください。 + 追加の暗号情報を指定することができます。 + + \return 処理成功時には変換後のPEM形式データのサイズを返します。 + \return BAD_FUNC_ARG Returned DER形式証明書データの解析中にエラーが発生した際、あるいはPEM形式に変換の際にエラーが発生した際に返されます。 + \return MEMORY_E メモリの確保に失敗した際に返されます。 + \return ASN_INPUT_E Base64エンコーディングエラーが検出された際に返されます。 + \return BUFFER_E 与えられた出力バッファが結果を保持するのに十分な大きさがない場合に返されます。 + + \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 + + _Example_ + \code + byte* der; + // initialize der with certificate + byte* pemFormatted[FOURK_BUF]; + + word32 pemSz; + byte* cipher_info[] { Additional 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); + +/*! + \ingroup CertsKeys + + \brief PEM形式の鍵をDER形式に変換します。 + + \return 変換に成功した際には出力バッファに書き込んだデータサイズを返します。 + \return エラー発生時には負の整数値を返します。 + + \param pem PEM形式の証明書データへのポインタ + \param pemSz PEM形式の証明書データのサイズ + \param buff DerBuffer構造体のbufferメンバーのコピーへのポインタ + \param buffSz DerBuffer構造体のbufferメンバーへ確保されたバッファのサイズ + \param pass パスワード + + _Example_ + \code + byte* loadBuf; + long fileSz = 0; + byte* bufSz; + static int LoadKeyFile(byte** keyBuf, word32* keyBufSz, + const char* keyFile, + int typeKey, const char* password); + … + bufSz = wc_KeyPemToDer(loadBuf, (int)fileSz, saveBuf, + (int)fileSz, password); + + if(saveBufSz > 0){ + // Bytes were written to the buffer. + } + \endcode + + \sa wc_PemToDer +*/ +int wc_KeyPemToDer(const unsigned char* pem, int pemSz, + unsigned char* buff, int buffSz, const char* pass); + +/*! + \ingroup CertsKeys + + \brief この関数はPEM形式の証明書をDER形式に変換します。内部ではOpenSSL互換APIのPemToDerを呼び出します。 + + \return バッファに出力したサイズを返します。 + + \param pem PEM形式の証明書を含むバッファへのポインタ + \param pemSz PEM形式の証明書を含むバッファのサイズ + \param buff DER形式に変換した証明書データの出力先バッファへのポインタ + \param buffSz 出力先バッファのサイズ + \param type 証明書のタイプ。asn_public.h で定義のenum CertTypeの値。 + + _Example_ + \code + const unsigned char* pem; + int pemSz; + unsigned char buff[BUFSIZE]; + int buffSz = sizeof(buff)/sizeof(char); + int type; + ... + if(wc_CertPemToDer(pem, pemSz, buff, buffSz, type) <= 0) { + // There were bytes written to buffer + } + \endcode + + \sa wc_PemToDer +*/ +int wc_CertPemToDer(const unsigned char* pem, int pemSz, + unsigned char* buff, int buffSz, int type); + +/*! + \ingroup CertsKeys + + \brief この関数は公開鍵をDER形式でDecodedCert構造体から取り出します。 + wc_InitDecodedCert()とwc_ParseCert()を事前に呼び出しておく必要があります。 + wc_InitDecodedCert()はDER/ASN.1エンコードされた証明書を受け付けます。 + PEM形式の鍵をDER形式で取得する場合には、wc_InitDecodedCert()より先にwc_CertPemToDer()を呼び出してください。 + + \return 成功時に0を返します。エラー発生時には負の整数を返します。 + \return LENGTH_ONLY_E derKeyがNULLの際に返されます。 + + \param cert X.509証明書を保持したDecodedCert構造体へのポインタ + \param derKey DER形式の公開鍵を出力する先のバッファへのポインタ + \param derKeySz [IN/OUT] 入力時にはderKeyで与えられるバッファのサイズ,出力時には公開鍵のサイズを保持します。 + もし、derKeyがNULLで渡された場合には, derKeySzには必要なバッファサイズが格納され、LENGTH_ONLY_Eが戻り値として返されます。 + + \sa wc_GetPubKeyDerFromCert +*/ +int wc_GetPubKeyDerFromCert(struct DecodedCert* cert, + byte* derKey, word32* derKeySz); + +/*! + \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 秘密鍵を含んでいる入力バッファのサイズ + + _Example_ + \code + int ret, idx=0; + ecc_key key; // to store key in + + byte* tmp; // tmp buffer to read key from + tmp = (byte*) malloc(FOURK_BUF); + + int inSz; + inSz = fread(tmp, 1, FOURK_BUF, privateKeyFile); + // read key into tmp buffer + + wc_ecc_init(&key); // initialize key + ret = wc_EccPrivateKeyDecode(tmp, &idx, &key, (word32)inSz); + if(ret < 0) { + // error decoding ecc key + } + \endcode + + \sa wc_RSA_PrivateKeyDecode +*/ +int wc_EccPrivateKeyDecode(const byte* input, word32* inOutIdx, + ecc_key* key, word32 inSz); + +/*! + \ingroup ASN + + \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 秘密鍵の解析で使用される数学ライブラリがエラーを検出した場合に返されます。 + + \param key 入力となるECC秘密鍵データを含んでいるバッファへのポインタ + \param output DER形式のECC秘密鍵を出力する先のバッファへのポインタ + \param inLen DER形式のECC秘密鍵を出力する先のバッファのサイズ + + _Example_ + \code + int derSz; + ecc_key key; + // initialize and make key + byte der[FOURK_BUF]; + // store der formatted key here + + derSz = wc_EccKeyToDer(&key, der, FOURK_BUF); + if(derSz < 0) { + // error converting ecc key to der buffer + } + \endcode + + \sa wc_RsaKeyToDer +*/ +int wc_EccKeyToDer(ecc_key* key, byte* output, word32 inLen); + +/*! + \ingroup ASN + + \brief この関数は入力バッファのECC公開鍵をASNシーケンスをデコードして取り出します。 + + \return 0 処理成功時に返します。 + \return BAD_FUNC_ARG Returns いずれかの引数が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 入力バッファのサイズ + + _Example_ + \code + int ret; + word32 idx = 0; + byte buff[] = { // initialize with key }; + ecc_key pubKey; + wc_ecc_init(&pubKey); + if ( wc_EccPublicKeyDecode(buff, &idx, &pubKey, sizeof(buff)) != 0) { + // error decoding key + } + \endcode + + \sa wc_ecc_import_x963 +*/ +int wc_EccPublicKeyDecode(const byte* input, word32* inOutIdx, + ecc_key* key, word32 inSz); + +/*! + \ingroup ASN + + \brief この関数はECC公開鍵をDER形式に変換します。 + 処理したバッファのサイズを返します。変換して得られるDER形式のECC公開鍵は出力バッファに格納されます。 + AlgCurveフラグの指定により、アルゴリズムと曲線情報をヘッダーに含めることができます。 + + \return >0 成功時には処理したバッファのサイズを返します。 + \return BAD_FUNC_ARG 出力バッファoutputあるいはecc_key構造体keyがNULLの場合に返します。 + \return LENGTH_ONLY_E ECC公開鍵のサイズ取得に失敗した場合に返します。 + \return BUFFER_E 出力バッファが必要量より小さい場合に返します。 + + \param key ecc_key構造体へのポインタ + \param output 出力バッファへのポインタ + \param inLen 出力バッファのサイズ + \param with_AlgCurve アルゴリズムと曲線情報をヘッダーに含める際には1を指定 + + _Example_ + \code + ecc_key key; + wc_ecc_init(&key); + WC_RNG rng; + wc_InitRng(&rng); + wc_ecc_make_key(&rng, 32, &key); + int derSz = // Some appropriate size for der; + byte der[derSz]; + + if(wc_EccPublicKeyToDer(&key, der, derSz, 1) < 0) + { + // Error converting ECC public key to der + } + \endcode + + \sa wc_EccKeyToDer + \sa wc_EccPrivateKeyDecode +*/ +int wc_EccPublicKeyToDer(ecc_key* key, byte* output, + word32 inLen, int with_AlgCurve); + +/*! + \ingroup ASN + + \brief この関数はECC公開鍵をDER形式に変換します。 + 処理したバッファサイズを返します。変換されたDER形式のECC公開鍵は出力バッファに格納されます。 + AlgCurveフラグの指定により、アルゴリズムと曲線情報をヘッダーに含めることができます。 + compパラメータは公開鍵を圧縮して出力するか否かを指定します。 + + \return >0 成功時には処理したバッファのサイズを返します。 + \return BAD_FUNC_ARG 出力バッファoutputあるいはecc_key構造体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公開鍵は圧縮形式で出力されます。ゼロが指定された場合には非圧縮で出力されます。 + + _Example_ + \code + ecc_key key; + wc_ecc_init(&key); + WC_RNG rng; + wc_InitRng(&rng); + wc_ecc_make_key(&rng, 32, &key); + int derSz = // Some appropriate size for der; + byte der[derSz]; + + // Write out a compressed ECC key + if(wc_EccPublicKeyToDer_ex(&key, der, derSz, 1, 1) < 0) + { + // Error converting ECC public key to der + } + \endcode + + \sa wc_EccKeyToDer + \sa wc_EccPublicKeyDecode +*/ +int wc_EccPublicKeyToDer_ex(ecc_key* key, byte* output, + word32 inLen, int with_AlgCurve, int comp); + +/*! + \ingroup ASN + + \brief この関数はデジタル署名をエンコードして出力バッファに出力し、生成された署名のサイズを返します。 + + \return 成功時には署名を出力バッファに出力し、出力したサイズを返します。 + + \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。 + + \endcode + \code + int signSz; + byte encodedSig[MAX_ENCODED_SIG_SZ]; + Sha256 sha256; + // initialize sha256 for hashing + + 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) + signSz = wc_EncodeSignature(encodedSig, dig, WC_SHA256_DIGEST_SIZE, SHA256h); + \endcode + + \sa none +*/ +word32 wc_EncodeSignature(byte* out, const byte* digest, + word32 digSz, int hashOID); + +/*! + \ingroup ASN + + \brief この関数はハッシュタイプに対応したハッシュOIDを返します。 + 例えば、ハッシュタイプが"WC_SHA512"の場合、この関数は"SHA512h"を対応するハッシュOIDとして返します。 + + \return 成功時には指定されたハッシュタイプと対応するハッシュ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 + + _Example_ + \code + int hashOID; + + hashOID = wc_GetCTC_HashOID(WC_SHA512); + if (hashOID == 0) { + // WOLFSSL_SHA512 not defined + } + \endcode + + \sa none +*/ +int wc_GetCTC_HashOID(int type); + +/*! + \ingroup ASN + + \brief この関数はキャッシュされていたCert構造体で使用されたメモリとリソースをクリーンアップします。 + WOLFSSL_CERT_GEN_CACHEが定義されている場合にはDecodedCert構造体がCert構造体内部にキャッシュされ、後続するset系関数の呼び出しの都度DecodedCert構造体がパースされることを防ぎます。 + + \return 0 成功時に返されます。 + \return BAD_FUNC_ARG 引数として無効な値が渡された場合に返されます。 + + \param cert 未初期化のCert構造体へのポインタ + + _Example_ + \code + Cert cert; // Initialized certificate structure + + wc_SetCert_Free(&cert); + \endcode + + \sa wc_SetAuthKeyIdFromCert + \sa wc_SetIssuerBuffer + \sa wc_SetSubjectBuffer + \sa wc_SetSubjectRaw + \sa wc_SetIssuerRaw + \sa wc_SetAltNamesBuffer + \sa wc_SetDatesBuffer +*/ +void wc_SetCert_Free(Cert* cert); + +/*! + \ingroup ASN + + \brief この関数はPKCS#8の暗号化されていないバッファ内部の従来の秘密鍵の開始位置を検出して返します。 + + \return 成功時には従来の秘密鍵の長さを返します。 + \return エラー時には負の整数値を返します。 + + \param input PKCS#8の暗号化されていない秘密鍵を保持するバッファへのポインタ + \param inOutIdx バッファのインデクス位置を保持する変数へのポインタ。入力時にはこの変数の内容はバッファ内部のPKCS#8の開始位置を示します。出力時には、秘密鍵の先頭位置を保持します。 + \param sz 入力バッファのサイズ + + _Example_ + \code + byte* pkcs8Buf; // Buffer containing PKCS#8 key. + word32 idx = 0; + word32 sz; // Size of pkcs8Buf. + ... + ret = wc_GetPkcs8TraditionalOffset(pkcs8Buf, &idx, sz); + // pkcs8Buf + idx is now the beginning of the traditional private key bytes. + \endcode + + \sa wc_CreatePKCS8Key + \sa wc_EncryptPKCS8Key + \sa wc_DecryptPKCS8Key + \sa wc_CreateEncryptedPKCS8Key +*/ +int wc_GetPkcs8TraditionalOffset(byte* input, + word32* inOutIdx, word32 sz); + +/*! + \ingroup ASN + + \brief この関数はDER形式の秘密鍵を入力とし、RKCS#8形式に変換します。 + また、PKCS#12のシュロ―ディットキーバッグの作成にも使用できます。RFC5208を参照のこと。 + + \return 成功時には出力されたPKCS#8 鍵のサイズを返します。 + \return LENGTH_ONLY_E 出力先バッファoutがNULLとして渡された場合にはこのエラーコードが返され、outSzに必要な出力バッファのサイズが格納されます。 + \return エラー時には負の整数値が返されます。 + + \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にすること。 + + _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. + + derSize = wc_EccKeyDerSize(&eccKey, 1); + ... + derSize = wc_EccKeyToDer(&eccKey, der, derSize); + ... + 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. + ... + ret = wc_CreatePKCS8Key(pkcs8, &pkcs8Sz, der, + derSize, ECDSAk, curveOid, curveOidSz); + \endcode + + \sa wc_GetPkcs8TraditionalOffset + \sa wc_EncryptPKCS8Key + \sa wc_DecryptPKCS8Key + \sa wc_CreateEncryptedPKCS8Key +*/ +int wc_CreatePKCS8Key(byte* out, word32* outSz, + byte* key, word32 keySz, int algoID, const byte* curveOID, + word32 oidSz); + +/*! + \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指定も可。 + + _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). + 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. + ret = wc_EncryptPKCS8Key(pkcs8, pkcs8Sz, pkcs8Enc, &pkcs8EncSz, password, + passwordSz, PKCS5, PBES2, AES256CBCb, NULL, 0, + WC_PKCS12_ITT_DEFAULT, &rng, NULL); + \endcode + + \sa wc_GetPkcs8TraditionalOffset + \sa wc_CreatePKCS8Key + \sa wc_DecryptPKCS8Key + \sa wc_CreateEncryptedPKCS8Key +*/ +int wc_EncryptPKCS8Key(byte* key, word32 keySz, byte* out, + word32* outSz, const char* password, int passwordSz, int vPKCS, + int pbeOid, int encAlgId, byte* salt, word32 saltSz, int itt, + WC_RNG* rng, void* heap); + +/*! + \ingroup ASN + + \brief この関数は暗号化されたPKCS#8のDER形式の鍵を受け取り、復号してPKCS#8 非暗号化DER形式に変換します。 + wc_EncryptPKCS8Keyによって行われた暗号化を元に戻します。RFC5208を参照してください。 + 入力データは復号データによって上書きされます。 + + \return 成功時には復号データの長さを返します。 + \return エラー発生時には負の整数値を返します。 + + \param input 入力時には暗号化されたPKCS#8鍵データを含みます。出力時には復号された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). + + ret = wc_DecryptPKCS8Key(pkcs8Enc, pkcs8EncSz, password, passwordSz); + \endcode + + \sa wc_GetPkcs8TraditionalOffset + \sa wc_CreatePKCS8Key + \sa wc_EncryptPKCS8Key + \sa wc_CreateEncryptedPKCS8Key +*/ +int wc_DecryptPKCS8Key(byte* input, word32 sz, const char* password, + int passwordSz); + +/*! + \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指定も可。 + + _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). + 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. + ret = wc_CreateEncryptedPKCS8Key(key, keySz, pkcs8Enc, &pkcs8EncSz, + password, passwordSz, PKCS5, PBES2, AES256CBCb, NULL, 0, + WC_PKCS12_ITT_DEFAULT, &rng, NULL); + \endcode + + \sa wc_GetPkcs8TraditionalOffset + \sa wc_CreatePKCS8Key + \sa wc_EncryptPKCS8Key + \sa wc_DecryptPKCS8Key +*/ +int wc_CreateEncryptedPKCS8Key(byte* key, word32 keySz, byte* out, + word32* outSz, const char* password, int passwordSz, int vPKCS, + int pbeOid, int encAlgId, byte* salt, word32 saltSz, int itt, + WC_RNG* rng, void* heap); + +/*! + \ingroup ASN + + \brief この関数はcert引数で与えられたDecodedCert構造体を初期化します。 + DER形式の証明書を含んでいるsource引数の指すポインタから証明書サイズinSzの長さを内部に保存します。 + この関数の後に呼び出されるwc_ParseCertによって証明書が解析されます。 + + \param cert DecodedCert構造体へのポインタ + \param source DER形式の証明書データへのポインタ + \param inSz 証明書データのサイズ(バイト数) + \param heap 動的メモリ確保のためのヒープ。NULL指定も可。 + + _Example_ + \code + DecodedCert decodedCert; // Decoded certificate object. + byte* certBuf; // DER-encoded certificate buffer. + word32 certBufSz; // Size of certBuf in bytes. + + wc_InitDecodedCert(&decodedCert, certBuf, certBufSz, NULL); + \endcode + + \sa wc_ParseCert + \sa wc_FreeDecodedCert +*/ +void wc_InitDecodedCert(struct DecodedCert* cert, + const byte* source, word32 inSz, void* heap); + +/*! + \ingroup ASN + + \brief この関数はDecodedCert構造体に保存されているDER形式の証明書を解析し、その構造体に各種フィールドを設定します。 + DecodedCert構造体はwc_InitDecodedCertを呼び出して初期化しておく必要があります。 + この関数はオプションでCertificateManager構造体へのポインタを受け取り、CAが証明書マネジャーで検索できた場合には、 + そのCAに関する情報もDecodedCert構造体に追加設定します。 + + \return 0 成功時に返します。 + \return エラー発生時には負の整数値を返します。 + + \param cert 初期化済みのDecodedCert構造体へのポインタ。 + \param type 証明書タイプ。タイプの設定値についてはasn_public.hのCertType enum定義を参照してください。 + \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. + + wc_InitDecodedCert(&decodedCert, certBuf, certBufSz, NULL); + ret = wc_ParseCert(&decodedCert, CERT_TYPE, NO_VERIFY, NULL); + if (ret != 0) { + fprintf(stderr, "wc_ParseCert failed.\n"); + } + \endcode + + \sa wc_InitDecodedCert + \sa wc_FreeDecodedCert +*/ +int wc_ParseCert(DecodedCert* cert, int type, int verify, void* cm); + +/*! + \ingroup ASN + + \brief この関数はwc_InitDecodedCertで初期化済みの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. + + wc_InitDecodedCert(&decodedCert, certBuf, certBufSz, NULL); + ret = wc_ParseCert(&decodedCert, CERT_TYPE, NO_VERIFY, NULL); + if (ret != 0) { + fprintf(stderr, "wc_ParseCert failed.\n"); + } + wc_FreeDecodedCert(&decodedCert); + \endcode + + \sa wc_InitDecodedCert + \sa wc_ParseCert +*/ +void wc_FreeDecodedCert(struct DecodedCert* cert); + +/*! + \ingroup ASN + + \brief この関数はタイムコールバック関数を登録します。wolfSSLが現在時刻を必要としたタイミングでこのコールバックを呼び出します。 + このタイムコールバック関数のプロトタイプ(シグネチャ)はC標準ライブラリの"time"関数と同一です。 + + + \return 0 成功時に返します。 + + \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 + + \sa wc_Time +*/ +int wc_SetTimeCb(wc_time_cb f); + +/*! + \ingroup ASN + + \brief この関数は現在時刻を取得します。デフォルトでXTIMEマクロ関数を使います。このマクロ関数はプラットフォーム依存です。 + ユーザーはこのマクロの代わりにwc_SetTimeCbでタイムコールバック関数を使うように設定することができます + + \return 成功時には現在時刻を返します。 + + \param t 現在時刻を返却するオプションのtime_t型変数。 + + _Example_ + \code + time_t currentTime = 0; + currentTime = wc_Time(NULL); + wc_Time(¤tTime); + \endcode + + \sa wc_SetTimeCb +*/ +time_t wc_Time(time_t* t); + +/*! + \ingroup ASN + + \brief この関数はX.509証明書にカスタム拡張を追加します。 + 注: この関数に渡すポインタ引数が保持する内容は証明書が生成されるまで変更されてはいけません。 + この関数ではポインタが指す先の内容は別のバッファには複製しません。 + + \return 0 成功時に返します。 + \return エラー発生時には負の整数値を返します。 + + \param cert 初期化済みのDecodedCert構造体へのポインタ。 + \param critical 0が指定された場合には追加する拡張はクリティカルとはマークされません。 + 0以外が指定された場合にはクリティカルとマークされます。 + \param oid ドット区切りのoid文字列。例えば、"1.2.840.10045.3.1.7" + \param der 拡張情報のDERエンコードされた内容を含むバッファへのポインタ。 + \param derSz DERエンコードされた内容を含むバッファのサイズ + + + _Example_ + \code + int ret = 0; + Cert newCert; + wc_InitCert(&newCert); + + // Code to setup subject, public key, issuer, and other things goes here. + + 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 + + \sa wc_InitCert + \sa wc_SetUnknownExtCallback +*/ +int wc_SetCustomExtension(Cert *cert, int critical, const char *oid, + const byte *der, word32 derSz); + +/*! + \ingroup ASN + + \brief この関数はwolfSSLが証明書の解析中に未知のX.509拡張に遭遇した際に呼び出すコールバック関数を登録します。 + コールバック関数のプロトタイプは使用例を参照してください。 + + \return 0 成功時に返します。 + \return エラー発生時には負の整数値を返します。 + + \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: Array of integers that are the dot separated values in an oid. + // oidSz: Number of values in oid. + // crit: Whether the extension was mark critical. + // der: The der encoding of the content of the extension. + // derSz: The size in bytes of the der encoding. + int myCustomExtCallback(const word16* oid, word32 oidSz, int crit, + const unsigned char* der, word32 derSz) { + + // 拡張を解析するロジックはここに記述します + + // NOTE: コールバック関数から0を返すとwolfSSLに対してこの拡張を受け入れ可能と + // 表明することになります。この拡張を処理できると判断できない場合にはエラーを + // 返してください。クリティカルとマークされている未知の拡張に遭遇した際の標準的 + // な振る舞いはASN_CRIT_EXT_Eを返すことです。 + return 0; + } + \endcode + + \sa ParseCert + \sa wc_SetCustomExtension +*/ +int wc_SetUnknownExtCallback(DecodedCert* cert, + wc_UnknownExtCallback cb); +/*! + \ingroup ASN + + \brief この関数はDER形式のX.509 証明書の署名を与えられた公開鍵を使って検証します。 + 公開鍵はDER形式で全公開鍵情報を含んだものが求められます。 + + \return 0 成功時に返します。 + \return エラー発生時には負の整数値を返します。 + + \param cert DER形式のX.509証明書を含んだバッファへのポインタ + \param certSz 証明書を含んだバッファのサイズ + \param heap 動的メモリ確保のためのヒープ。NULL指定も可。 + \param pubKey DER形式の公開鍵を含んだバッファへのポインタ + \param pubKeySz 公開鍵を含んだバッファのサイズ + \param pubKeyOID 公開鍵のアルゴリズムを特定するOID(すなわち: ECDSAk, DSAk や RSAk) +*/ +int wc_CheckCertSigPubKey(const byte* cert, word32 certSz, + void* heap, const byte* pubKey, + word32 pubKeySz, int pubKeyOID); + +/*! + \ingroup ASN + + \brief この関数はAsn1PrintOptions構造体を初期化します。 + + \return 0 成功時に返します。 + \return BAD_FUNC_ARG asn1がNULLの場合に返されます。 + + \param opts プリントのためのAsn1PrintOptions構造体へのポインタ + + _Example_ + \code + Asn1PrintOptions opt; + + // Initialize ASN.1 print options before use. + wc_Asn1PrintOptions_Init(&opt); + \endcode + + \sa wc_Asn1PrintOptions_Set + \sa wc_Asn1_PrintAll +*/ +int wc_Asn1PrintOptions_Init(Asn1PrintOptions* opts); + +/*! + \ingroup ASN + + \brief この関数はAsn1PrintOptions構造体にプリント情報を設定します。 + + \return 0 成功時に返します。 + \return BAD_FUNC_ARG asn1がNULLの場合に返されます。 + \return BAD_FUNC_ARG valが範囲外の場合に返されます。 + + \param opts Asn1PrintOptions構造体へのポインタ + \param opt 設定する情報へのポインタ + \param val 設定値 + + _Example_ + \code + Asn1PrintOptions opt; + + // Initialize ASN.1 print options before use. + wc_Asn1PrintOptions_Init(&opt); + // Set the number of indents when printing tag name to be 1. + wc_Asn1PrintOptions_Set(&opt, ASN1_PRINT_OPT_INDENT, 1); + \endcode + + \sa wc_Asn1PrintOptions_Init + \sa wc_Asn1_PrintAll +*/ +int wc_Asn1PrintOptions_Set(Asn1PrintOptions* opts, enum Asn1PrintOpt opt, + word32 val); + +/*! + \ingroup ASN + + \brief この関数はAsn1構造体を初期化します。 + + \return 0 成功時に返します。 + \return BAD_FUNC_ARG asn1がNULLの場合に返されます。 + + \param asn1 Asn1構造体へのポインタ + + _Example_ + \code + Asn1 asn1; + + // Initialize ASN.1 parse object before use. + wc_Asn1_Init(&asn1); + \endcode + + \sa wc_Asn1_SetFile + \sa wc_Asn1_PrintAll + */ +int wc_Asn1_Init(Asn1* asn1); + +/*! + \ingroup ASN + + \brief この関数は出力先として使用するファイルをAsn1構造体にセットします。 + + \return 0 成功時に返します。 + \return BAD_FUNC_ARG asn1がNULLの場合に返されます。 + \return BAD_FUNC_ARG fileがXBADFILEの場合に返されます。. + + \param asn1 Asn1構造体へのポインタ + \param file プリント先のファイル + + _Example_ + \code + Asn1 asn1; + + // Initialize ASN.1 parse object before use. + wc_Asn1_Init(&asn1); + // Set standard out to be the file descriptor to write to. + wc_Asn1_SetFile(&asn1, stdout); + \endcode + + \sa wc_Asn1_Init + \sa wc_Asn1_PrintAll + */ +int wc_Asn1_SetFile(Asn1* asn1, XFILE file); + +/*! + \ingroup ASN + + \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アイテムの解析が完了できなかった場合に返されます。 + + \param asn1 Asn1構造体へのポインタ + \param opts Asn1PrintOptions構造体へのポインタ + \param data BER/DER形式のプリント対象データへのポインタ + \param len プリント対象データのサイズ(バイト数) + + \code + Asn1PrintOptions opts; + Asn1 asn1; + unsigned char data[] = { Initialize with DER/BER data }; + word32 len = sizeof(data); + + // Initialize ASN.1 print options before use. + wc_Asn1PrintOptions_Init(&opt); + // Set the number of indents when printing tag name to be 1. + wc_Asn1PrintOptions_Set(&opt, ASN1_PRINT_OPT_INDENT, 1); + + // Initialize ASN.1 parse object before use. + 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. + wc_Asn1_PrintAll(&asn1, &opts, data, len); + \endcode + + \sa wc_Asn1_Init + \sa wc_Asn1_SetFile + */ +int wc_Asn1_PrintAll(Asn1* asn1, Asn1PrintOptions* opts, unsigned char* data, + word32 len); + diff --git a/doc/dox_comments/header_files-ja/cmac.h b/doc/dox_comments/header_files-ja/cmac.h index cd880939b..95612f6c2 100644 --- a/doc/dox_comments/header_files-ja/cmac.h +++ b/doc/dox_comments/header_files-ja/cmac.h @@ -1,21 +1,21 @@ /*! \ingroup CMAC - \brief Cmac 構造体をデフォルトで初期化する - \return 成功したら 0 を返す - \param cmac Cmac 構造体へのポインタ - \param キー キー ポインタ - \param keySz キー ポインタのサイズ (16、24、または 32) - \param type 常に WC_CMAC_AES = 1 - \param 未使用 使用されていません。互換性に関する将来の潜在的な使用のために存在します + \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、キー、keySz、WC_CMAC_AES、NULL); - もし (ret == 0) { + ret = wc_InitCmac(cmac、key、keySz、WC_CMAC_AES、NULL); + if (ret == 0) { ret = wc_CmacUpdate(cmac、in、inSz); } - もし (ret == 0) { + if (ret == 0) { ret = wc_CmacFinal(cmac, out, outSz); } \endcode @@ -25,29 +25,29 @@ \sa wc_CmacFinal */ int wc_InitCmac(Cmac* cmac, - const byte* キー、word32 keySz、 - int型、void*未使用); + const byte* key、word32 keySz、 + int type、void* unused); /*! \ingroup CMAC - \brief Cmac 構造体をデフォルトで初期化する - \return 成功したら 0 を返す - \param cmac Cmac 構造体へのポインタ - \param キー キー ポインタ - \param keySz キー ポインタのサイズ (16、24、または 32) - \param type 常に WC_CMAC_AES = 1 - \param 未使用 使用されていません。互換性に関する将来の潜在的な使用のために存在します - \param heap 動的割り当てに使用されるヒープ ヒントへのポインター。 通常、スタティック メモリ オプションで使用されます。 NULL にすることができます。 - \param devId 非同期ハードウェアで使用する ID。 非同期ハードウェアを使用していない場合は、INVALID_DEVID に設定します。 + \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、キー、keySz、WC_CMAC_AES、NULL、NULL、INVALID_DEVID); - もし (ret == 0) { - ret = wc_CmacUpdate(cmac、in、inSz); + ret = wc_InitCmac_ex(cmac, key, keySz, WC_CMAC_AES, NULL, NULL, INVALID_DEVID); + if (ret == 0) { + ret = wc_CmacUpdate(cmac, in, inSz); } - もし (ret == 0) { + if (ret == 0) { ret = wc_CmacFinal(cmac, out, &outSz); } \endcode @@ -57,15 +57,15 @@ int wc_InitCmac(Cmac* cmac, \sa wc_CmacFinal */ int wc_InitCmac_ex(Cmac* cmac, - const byte* キー、word32 keySz、 - int 型、void* 未使用、void* ヒープ、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 処理する入力データの + \return 成功したら0を返します + \param cmac Cmac構造体へのポインタ + \param in 処理する入力データへのポインタ \param inSz 入力データのサイズ _例_ @@ -81,11 +81,11 @@ int wc_CmacUpdate(Cmac* cmac, /*! \ingroup CMAC - \brief 暗号ベースのメッセージ認証コードを使用して最終結果を生成する - \return 成功したら 0 を返す - \param cmac Cmac 構造体へのポインタ - \param out 結果を返すポインタ - \param outSz 出力のポインタサイズ (in/out) + \brief 暗号ベースのメッセージ認証コードを使用して最終結果を生成します + \return 成功したら0を返します + \param cmac Cmac構造体へのポインタ + \param out 結果の出力先バッファへのポインタ + \param outSz 結果の出力先バッファサイズ (in/out) _例_ \code @@ -100,14 +100,14 @@ int wc_CmacFinal(Cmac* cmac, /*! \ingroup CMAC - \brief CMAC を生成するためのシングル ショット関数 - \return 成功したら 0 を返す - \param out 結果を返すポインタ + \brief CMACを生成するためのシングルショット関数 + \return 成功したら0を返します + \param out 結果の出力先バッファへのポインタ \param outSz 出力のポインタサイズ (in/out) - \param in 処理する入力データのポインタ + \param in 処理する入力データのポインタ \param inSz 入力データのサイズ - \param キー キー ポインタ - \param keySz キー ポインタのサイズ (16、24、または 32) + \param key 鍵データへのポインタ + \param keySz 鍵データのサイズ (16、24、または 32) _例_ \code @@ -122,14 +122,14 @@ int wc_AesCmacGenerate(byte* out, word32* outSz, /*! \ingroup CMAC - \brief CMAC を検証するためのシングル ショット機能 - \return 成功したら 0 を返す - \param 結果を返すチェック ポインタ - \param checkSz チェックアウト バッファのサイズ + \brief CMACを検証するためのシングルショット関数 + \return 成功したら0を返します + \param check 検証対象となるCMAC処理結果データへのポインタ + \param checkSz CMAC処理結果データのサイズ \param in 処理する入力データのポインタ \param inSz 入力データのサイズ - \param キー キー ポインタ - \param keySz キー ポインタのサイズ (16、24、または 32) + \param key 鍵データへのポインタ + \param keySz 鍵データのサイズ (16、24、または 32) _例_ \code @@ -145,9 +145,10 @@ int wc_AesCmacVerify(const byte* check, word32 checkSz, /*! \ingroup CMAC - \brief ハードウェアがシングル ショットを必要とし、更新をメモリにキャッシュする必要がある場合にのみ、WOLFSSL_HASH_KEEP で使用されます - \return 成功したら 0 を返す - 処理する入力データの \param + \brief WOLFSSL_HASH_KEEPマクロ定義時のみ使用可能。ハードウェアがシングルショットを必要とし、更新をメモリにキャッシュする必要がある場合に使用します。 + \return 成功したら0を返します + \param cmac Cmac構造体へのポインタ + \param in 処理する入力データへのポインタ \param inSz 入力データのサイズ _例_ diff --git a/doc/dox_comments/header_files-ja/ed25519.h b/doc/dox_comments/header_files-ja/ed25519.h index 57f5adb42..64a4342e9 100644 --- a/doc/dox_comments/header_files-ja/ed25519.h +++ b/doc/dox_comments/header_files-ja/ed25519.h @@ -1,11 +1,17 @@ /*! - \ingroup ED25519 - \brief この関数は秘密鍵からED25519公開鍵を生成します。公開鍵をバッファPubkeyに格納し、Pubkeyszでこのバッファに書き込まれたバイトを設定します。 + \ingroup ED25519 + \brief この関数はEd25519秘密鍵からEd25519公開鍵を生成します。公開鍵をバッファpubkeyに出力します。 + この関数の呼び出しに先立ち、ed25519_key構造体にはEd25519秘密鍵がインポートされている必要があります。 + \return 0 公開鍵の作成に成功したときに返されます。 - \return BAD_FUNC_ARG IFIキーまたはPubKeyがNULLに評価された場合、または指定されたキーサイズが32バイトではない場合(ED25519に32バイトのキーがあります)。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] キーを生成するED25519_Keyへのキーポインタ。 - \param [out] 公開鍵を保存するバッファへのポインタ。 + \return BAD_FUNC_ARG 引数keyまたはpubKeyがNULLの場合、または指定された鍵サイズが32バイトではない場合(ED25519に32バイトのキーがあります)。 + \return ECC_PRIV_KEY_E ed25519_key構造体にEd25519秘密鍵がインポートされていない場合に返されます。 + \return MEMORY_E 関数の実行中にメモリを割り当てエラーがある場合に返されます。 + + \param [in] key Ed25519秘密鍵がインポートされているed25519_key構造体へのポインタ。 + \param [out] pubKey 公開鍵を出力するバッファへのポインタ。 + \param [in] pubKeySz バッファのサイズ。常にED25519_PUB_KEY_SIZE(32)でなければなりません。 + _Example_ \code int ret; @@ -31,13 +37,14 @@ int wc_ed25519_make_public(ed25519_key* key, unsigned char* pubKey, word32 pubKeySz); /*! - \ingroup ED25519 - \brief この関数は新しいED25519キーを生成し、それをキーに格納します。 - \return 0 ED25519_KEYを正常に行うと返されます。 - \return BAD_FUNC_ARG RNGまたはKEYがNULLに評価された場合、または指定されたキーサイズが32バイトではない場合(ED25519に32バイトのキーがあります)。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] RNGキーを生成する初期化されたRNGオブジェクトへのポインタ。 - \param [in] keysize keyの長さを生成します。ED25519の場合は常に32になります。 + \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になります。 + _Example_ \code int ret; @@ -58,15 +65,18 @@ int wc_ed25519_make_public(ed25519_key* key, unsigned char* pubKey, int wc_ed25519_make_key(WC_RNG* rng, int keysize, ed25519_key* key); /*! - \ingroup ED25519 - \brief この関数は、ED25519_Keyオブジェクトを使用して認証を保証するメッセージに署名します。 + \ingroup ED25519 + \brief この関数は、ed25519_key構造体を使用してメッセージに署名します。 \return 0 メッセージの署名を正常に生成すると返されます。 \return BAD_FUNC_ARG 入力パラメータのいずれかがNULLに評価された場合、または出力バッファが小さすぎて生成された署名を保存する場合は返されます。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] 署名するメッセージを含むバッファへのポインタ。 - \param [in] 署名するメッセージのインレル長。 - \param [out] 生成された署名を格納するためのバッファー。 - \param [in,out] 出力バッファの最大長の範囲内。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 + \return MEMORY_E 関数の実行中にメモリ割り当てエラーが発生した場合に返されます。 + + \param [in] in 署名するメッセージを含むバッファへのポインタ。 + \param [in] inlen 署名するメッセージのサイズ + \param [out] out 生成された署名を格納するためのバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功したときに、書き込まれたバイト数を保持します。 + \param [in] key 署名を生成するために使用する秘密鍵を保持しているed25519_key構造体へのポインタ。 + _Example_ \code ed25519_key key; @@ -95,17 +105,20 @@ int wc_ed25519_sign_msg(const byte* in, word32 inlen, byte* out, word32 *outlen, ed25519_key* key); /*! - \ingroup ED25519 - \brief この関数は、ED25519_Keyオブジェクトを使用して認証を保証するメッセージに署名します。コンテキストは署名されたデータの一部です。 + \ingroup ED25519 + \brief この関数は、ed25519_key構造体を使用してメッセージに署名します。 + コンテキストは署名されるデータの一部です。 \return 0 メッセージの署名を正常に生成すると返されます。 \return BAD_FUNC_ARG 返された入力パラメータはNULLに評価されます。出力バッファが小さすぎて生成された署名を保存するには小さすぎます。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] 署名するメッセージを含むバッファへのポインタ。 - \param [in] 署名するメッセージのインレル長。 - \param [out] 生成された署名を格納するためのバッファー。 - \param [in,out] 出力バッファの最大長の範囲内。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 - \param [in] 署名を生成するプライベートED25519_KEYへのキーポインタ。 - \param [in] メッセージが署名されているコンテキストを含むバッファへのコンテキストポインタ。 + \return MEMORY_E 関数の実行中にメモリ割り当てエラーが発生した場合に返されます。 + \param [in] in 署名するメッセージを含むバッファへのポインタ。 + \param [in] inlen 署名するメッセージのサイズ + \param [out] out 生成された署名を格納するためのバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 + \param [in] key 署名を生成するために使用する秘密鍵を保持しているed25519_key構造体へのポインタ。 + \param [in] context メッセージが署名されているコンテキストを含むバッファへのポインタ。 + \param [in] contextLen コンテキストバッファのサイズ + _Example_ \code ed25519_key key; @@ -137,17 +150,24 @@ int wc_ed25519ctx_sign_msg(const byte* in, word32 inlen, byte* out, const byte* context, byte contextLen); /*! - \ingroup ED25519 - \brief この関数は、ED25519_Keyオブジェクトを使用してメッセージダイジェストに署名して信頼性を保証します。コンテキストは署名されたデータの一部として含まれています。署名計算の前にメッセージは事前にハッシュされています。メッセージダイジェストを作成するために使用されるハッシュアルゴリズムはShake-256でなければなりません。 + \ingroup ED25519 + \brief この関数は、ed25519_key構造体を使用してメッセージダイジェストに署名します。 + コンテキストは署名されるデータの一部として含まれています。 + 署名計算の前にメッセージは事前にハッシュされています。 + メッセージダイジェストを作成するために使用されるハッシュアルゴリズムはShake-256でなければなりません。 + \return 0 メッセージダイジェストの署名を正常に生成すると返されます。 \return BAD_FUNC_ARG 返された入力パラメータはNULLに評価されます。出力バッファが小さすぎて生成された署名を保存するには小さすぎます。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] サインへのメッセージのハッシュを含むバッファへのハッシュポインタ。 - \param [in] サインへのメッセージのハッシュのハッシュの長さ。 - \param [out] 生成された署名を格納するためのバッファー。 - \param [in,out] 出力バッファの最大長の範囲内。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 - \param [in] 署名を生成するプライベートED25519_KEYへのキーポインタ。 - \param [in] メッセージが署名されているコンテキストを含むバッファへのコンテキストポインタ。 + \return MEMORY_E 関数の実行中にメモリ割り当てエラーが発生した場合に返されます。 + + \param [in] hash 署名するメッセージのハッシュを含むバッファへのポインタ。 + \param [in] hashLen 署名するメッセージのハッシュのサイズ + \param [out] out 生成された署名を格納するためのバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 + \param [in] key 署名を生成するのに使用する秘密鍵を含んだed25519_key構造体へのポインタ。 + \param [in] context メッセージが署名されているコンテキストを含むバッファへのポインタ。 + \param [in] contextLen コンテキストバッファのサイズ + _Example_ \code ed25519_key key; @@ -179,17 +199,19 @@ int wc_ed25519ph_sign_hash(const byte* hash, word32 hashLen, byte* out, const byte* context, byte contextLen); /*! - \ingroup ED25519 - \brief この関数は、ED25519_Keyオブジェクトを使用して認証を保証するメッセージに署名します。コンテキストは署名されたデータの一部として含まれています。署名計算の前にメッセージは事前にハッシュされています。 + \ingroup ED25519 + \brief この関数は、ed25519_key構造体を使用して認証を保証するメッセージに署名します。コンテキストは署名されたデータの一部として含まれています。署名計算の前にメッセージは事前にハッシュされています。 \return 0 メッセージの署名を正常に生成すると返されます。 \return BAD_FUNC_ARG 返された入力パラメータはNULLに評価されます。出力バッファが小さすぎて生成された署名を保存するには小さすぎます。 - \return MEMORY_E 関数の実行中にメモリを割り当てるエラーがある場合に返されます。 - \param [in] 署名するメッセージを含むバッファへのポインタ。 - \param [in] 署名するメッセージのインレル長。 - \param [out] 生成された署名を格納するためのバッファー。 - \param [in,out] 出力バッファの最大長の範囲内。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 - \param [in] 署名を生成するプライベートED25519_KEYへのキーポインタ。 - \param [in] メッセージが署名されているコンテキストを含むバッファへのコンテキストポインタ。 + \return MEMORY_E 関数の実行中にメモリを割り当てエラーが発生した場合に返されます。 + \param [in] in 署名するメッセージを含むバッファへのポインタ。 + \param [in] inlen 署名するメッセージのインレル長。 + \param [out] out 生成された署名を格納するためのバッファ。 + \param [in,out] outlen 出力バッファの最大長。メッセージ署名の生成に成功したときに、書き込まれたバイトを保存します。 + \param [in] key 署名を生成するプライベートed25519_key構造体へのポインタ。 + \param [in] context メッセージが署名されているコンテキストを含むバッファへのポインタ。 + \param [in] contextLen コンテキストバッファのサイズ + _Example_ \code ed25519_key key; @@ -221,16 +243,21 @@ int wc_ed25519ph_sign_msg(const byte* in, word32 inlen, byte* out, const byte* context, byte contextLen); /*! - \ingroup ED25519 - \brief この関数はメッセージのED25519署名を確認して信頼性を確保します。RESを介して答えを返し、有効な署名に対応する1、無効な署名に対応する0を返します。 + \ingroup ED25519 + \brief この関数はメッセージのEd25519署名を検証します。 + retを介して答えを返し、有効な署名の場合は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 [out] 検証の結果へのRESポインタ。1メッセージが正常に検証されたことを示します。 + + \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; @@ -257,18 +284,24 @@ int wc_ed25519_verify_msg(const byte* sig, word32 siglen, const byte* msg, word32 msgLen, int* ret, ed25519_key* key); /*! - \ingroup ED25519 - \brief この関数はメッセージのED25519署名を確認して信頼性を確保します。文脈はデータ検証済みの一部として含まれています。RESを介して答えを返し、有効な署名に対応する1、無効な署名に対応する0を返します。 + \ingroup ED25519 + \brief この関数はメッセージのEd25519署名を検証します。 + コンテキストは署名されたデータの一部として含まれています。 + 答えは変数retを介して返され、署名が有効ならば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 [out] 検証の結果へのRESポインタ。1メッセージが正常に検証されたことを示します。 - \param [in] 署名を検証するためのPublic ED25519キーへのキーポインタ。 - \param [in] メッセージが署名されたコンテキストを含むバッファへのコンテキストポインタ。 + + \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; @@ -297,18 +330,25 @@ int wc_ed25519ctx_verify_msg(const byte* sig, word32 siglen, const byte* msg, const byte* context, byte contextLen); /*! - \ingroup ED25519 - \brief この関数は、メッセージのダイジェストのED25519シグネチャを確認して、信頼性を確保します。文脈はデータ検証済みの一部として含まれています。ハッシュは、署名計算前のプリハッシュメッセージです。メッセージダイジェストを作成するために使用されるハッシュアルゴリズムはSHA-512でなければなりません。答えはRESを介して返され、有効な署名に対応する1、無効な署名に対応する0を返します。 + \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] 検証するシグネチャのシグレンの長さ。 - \param [in] 検証するメッセージのハッシュを含むバッファへのハッシュポインタ。 - \param [in] 検証するハッシュのハッシュレン長。 - \param [out] 検証の結果へのRESポインタ。1メッセージが正常に検証されたことを示します。 - \param [in] 署名を検証するためのPublic ED25519キーへのキーポインタ。 - \param [in] メッセージが署名されたコンテキストを含むバッファへのコンテキストポインタ。 + + \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; @@ -337,18 +377,24 @@ int wc_ed25519ph_verify_hash(const byte* sig, word32 siglen, const byte* hash, const byte* context, byte contextLen); /*! - \ingroup ED25519 - \brief この関数はメッセージのED25519署名を確認して信頼性を確保します。文脈はデータ検証済みの一部として含まれています。検証前にメッセージがプリハッシュされています。RESを介して答えを返し、有効な署名に対応する1、無効な署名に対応する0を返します。 + \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] 検証するシグネチャのシグレンの長さ。 - \param [in] メッセージを含むバッファへのMSGポインタを確認する。 - \param [in] 検証するメッセージのMSGlen長。 - \param [out] 検証の結果へのRESポインタ。1メッセージが正常に検証されたことを示します。 - \param [in] 署名を検証するためのPublic ED25519キーへのキーポインタ。 - \param [in] メッセージが署名されたコンテキストを含むバッファへのコンテキストポインタ。 + \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; @@ -377,10 +423,12 @@ int wc_ed25519ph_verify_msg(const byte* sig, word32 siglen, const byte* msg, const byte* context, byte contextLen); /*! - \ingroup ED25519 - \brief この関数は、メッセージ検証で将来の使用のためにED25519_Keyオブジェクトを初期化します。 - \return 0 ED25519_Keyオブジェクトの初期化に成功したときに返されます。 - \return BAD_FUNC_ARG キーがNULLの場合は返されます。 + \ingroup ED25519 + \brief この関数は、後のメッセージ検証で使用のためにed25519_key構造体を初期化します。 + \return 0 ed25519_key構造体の初期化に成功したときに返されます。 + \return BAD_FUNC_ARG 引数keyがNULLの場合に返されます。 + \param [in,out] key ed25519_key構造体へのポインタ + _Example_ \code ed25519_key key; @@ -393,8 +441,10 @@ int wc_ed25519ph_verify_msg(const byte* sig, word32 siglen, const byte* msg, int wc_ed25519_init(ed25519_key* key); /*! - \ingroup ED25519 - \brief この関数は、使用された後にED25519オブジェクトを解放します。 + \ingroup ED25519 + \brief この関数は、使用済みのed25519_key構造体を解放します。 + \param [in,out] key ed25519_key構造体へのポインタ + _Example_ \code ed25519_key key; @@ -408,12 +458,16 @@ int wc_ed25519_init(ed25519_key* key); void wc_ed25519_free(ed25519_key* key); /*! - \ingroup ED25519 - \brief この関数は、公開鍵を含むバッファからPublic ED25519_Keyペアをインポートします。この関数は圧縮キーと非圧縮キーの両方を処理します。 - \return 0 ED25519_KEYのインポートに成功しました。 - \return BAD_FUNC_ARG inまたはkeyがnullに評価された場合、またはInlenがED25519キーのサイズよりも小さい場合に返されます。 - \param [in] 公開鍵を含むバッファへのポインタ。 - \param [in] 公開鍵を含むバッファのインレル長。 + \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構造体へのポインタ + _Example_ \code int ret; @@ -426,21 +480,61 @@ void wc_ed25519_free(ed25519_key* key); // error importing key } \endcode + + \sa wc_ed25519_import_public_ex \sa wc_ed25519_import_private_key + \sa wc_ed25519_import_private_key_ex \sa wc_ed25519_export_public */ int wc_ed25519_import_public(const byte* in, word32 inLen, ed25519_key* key); /*! - \ingroup ED25519 - \brief この関数は、ed25519秘密鍵をバッファからのみインポートします。 - \return 0 ED25519キーのインポートに成功しました。 + \ingroup ED25519 + + \brief この関数はバッファからed25519公開鍵をed25519_key構造体へインポートします。 + 圧縮あるいは非圧縮の両方の形式の鍵を扱います。 + 秘密鍵が既にインポートされている場合で、trusted引数が1以外の場合は両鍵が対応しているかをチェックします。 + + \return 0 ed25519公開鍵のインポートに成功した場合に返されます。 + \return BAD_FUNC_ARG Returned 引数inあるいはkeyがNULLの場合,あるいは引数inLenがEd25519鍵のサイズより小さい場合に返されます。 + + \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 }; + + 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 + + \sa wc_ed25519_import_public + \sa wc_ed25519_import_private_key + \sa wc_ed25519_import_private_key_ex + \sa wc_ed25519_export_public +*/ + +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と異なる場合に返されます。 - \param [in] 秘密鍵を含むバッファへのPRIVポインタ。 - \param [in] 秘密鍵のPrivsz長さ。 - \param [in] 公開鍵を含むバッファへのPubポインタ。 - \param [in] 公開鍵のPubszの長さ。 + \param [in] priv 秘密鍵を含むバッファへのポインタ。 + \param [in] privSz 秘密鍵を含むバッファのサイズ + _Example_ \code int ret; @@ -457,19 +551,21 @@ int wc_ed25519_import_public(const byte* in, word32 inLen, ed25519_key* key); \sa wc_ed25519_import_private_key \sa wc_ed25519_export_private_only */ - int wc_ed25519_import_private_only(const byte* priv, word32 privSz, ed25519_key* key); + /*! - \ingroup ED25519 - \brief この関数は、一対のバッファからパブリック/プライベートED25519キーペアをインポートします。この関数は圧縮キーと非圧縮キーの両方を処理します。 - \return 0 ED25519_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よりも小さい場合に返されます。 - \param [in] 秘密鍵を含むバッファへのPRIVポインタ。 - \param [in] 秘密鍵のPrivsz長さ。 - \param [in] 公開鍵を含むバッファへのPubポインタ。 - \param [in] 公開鍵のPubszの長さ。 + \param [in] priv 秘密鍵を含むバッファへのポインタ。 + \param [in] privSz 秘密鍵バッファのサイズ + \param [in] pub 公開鍵を含むバッファへのポインタ。 + \param [in] pubSz 公開鍵バッファのサイズ + _Example_ \code int ret; @@ -497,12 +593,13 @@ int wc_ed25519_import_private_key(const byte* priv, word32 privSz, \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] priv 秘密鍵を保持するバッファへのポインタ \param [in] privSz 秘密鍵バッファのサイズ - \param [in] pub 公開鍵を保持するバッファへのポインター + \param [in] pub 公開鍵を保持するバッファへのポインタ \param [in] pubSz 公開鍵バッファのサイズ \param [in,out] key インポートされた公開鍵/秘密鍵を保持するed25519_keyオブジェクトへのポインター - \param [in] trusted 公開鍵が信頼できるか否か。 + \param [in] trusted 公開鍵が信頼できるか否かを指定するフラグ + _Example_ \code int ret; @@ -527,13 +624,16 @@ int wc_ed25519_import_private_key_ex(const byte* priv, word32 privSz, const byte* pub, word32 pubSz, ed25519_key* key, int trusted); /*! - \ingroup ED25519 - \brief この関数は、秘密鍵をED25519_Key構造体からエクスポートします。公開鍵をバッファアウトに格納し、ounterenでこのバッファに書き込まれたバイトを設定します。 + \ingroup ED25519 + \brief この関数は、ed25519_key構造体から公開鍵をエクスポートします。公開鍵をバッファoutに格納し、outLenにこのバッファに書き込まれたバイトを設定します。 \return 0 公開鍵のエクスポートに成功したら返されます。 \return BAD_FUNC_ARG いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されたバッファーが秘密鍵を保存するのに十分な大きさでない場合に返されます。このエラーを返すと、outlenに必要なサイズを設定します。 - \param [in] 公開鍵をエクスポートするためのED25519_Key構造体へのキーポインタ。 - \param [out] 公開鍵を保存するバッファへのポインタ。 + \return BUFFER_E 提供されたバッファーが公開鍵を保存するのに十分な大きさでない場合に返されます。このエラーを返すと、outlenに必要なサイズを設定します。 + \param [in] key 公開鍵をエクスポートするためのed25519_key構造体へのポインタ。 + \param [out] out 公開鍵を保存するバッファへのポインタ。 + \param [in,out] outLen 公開鍵を出力する先のバッファサイズを格納するword32型変数へのポインタ。 + 入力の際はバッファサイズを格納して渡し、出力の際はエクスポートした公開鍵のサイズを格納します。 + _Example_ \code int ret; @@ -555,13 +655,16 @@ int wc_ed25519_import_private_key_ex(const byte* priv, word32 privSz, int wc_ed25519_export_public(ed25519_key* key, byte* out, word32* outLen); /*! - \ingroup ED25519 - \brief この関数は、ED25519_Key構造体からの秘密鍵のみをエクスポートします。秘密鍵をバッファアウトに格納し、outlenにこのバッファに書き込まれたバイトを設定します。 + \ingroup ED25519 + \brief この関数は、ed25519_key構造体からの秘密鍵のみをエクスポートします。秘密鍵をバッファアウトに格納し、outlenにこのバッファに書き込まれたバイトを設定します。 \return 0 秘密鍵のエクスポートに成功したら返されます。 \return BAD_FUNC_ARG いずれかの入力値がNULLに評価された場合に返されます。 \return BUFFER_E 提供されたバッファーが秘密鍵を保存するのに十分な大きさでない場合に返されます。 - \param [in] 秘密鍵をエクスポートするためのED25519_Key構造体へのキーポインタ。 - \param [out] 秘密鍵を保存するバッファへのポインタ。 + \param [in] key 秘密鍵をエクスポートするためのed25519_key構造体へのポインタ。 + \param [out] out 秘密鍵を保存するバッファへのポインタ。 + \param [in,out] outLen 秘密鍵を出力する先のバッファサイズを格納するword32型変数へのポインタ。 + 入力の際はバッファサイズを格納して渡し、出力の際はエクスポートした秘密鍵のサイズを格納します。 + _Example_ \code int ret; @@ -582,13 +685,16 @@ int wc_ed25519_export_public(ed25519_key* key, byte* out, word32* outLen); int wc_ed25519_export_private_only(ed25519_key* key, byte* out, word32* outLen); /*! - \ingroup ED25519 - \brief この関数は、ED25519_Key構造体からキーペアをエクスポートします。キーペアをバッファOUTに格納し、ounterenでこのバッファに書き込まれたバイトを設定します。 - \return 0 キーペアのエクスポートに成功したら返されます。 + \ingroup ED25519 + \brief この関数は、ed25519_key構造体から鍵ペアをエクスポートします。鍵ペアをバッファoutに格納し、ounterenでこのバッファに書き込まれたバイトを設定します。 + \return 0 鍵ペアのエクスポートに成功したら返されます。 \return BAD_FUNC_ARG いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されているバッファーがキーペアを保存するのに十分な大きさでない場合に返されます。 - \param [in] キーペアをエクスポートするためのED25519_Key構造体へのキーポインタ。 - \param [out] キーペアを保存するバッファへのポインタ。 + \return BUFFER_E 提供されているバッファーが鍵ペアを保存するのに十分な大きさでない場合に返されます。 + \param [in] 鍵ペアをエクスポートするためのed25519_key構造体へのポインタ。 + \param [out] 鍵ペアを保存するバッファへのポインタ。 + \param [in,out] outLen 鍵ペアを出力する先のバッファサイズを格納するword32型変数へのポインタ。 + 入力の際はバッファサイズを格納して渡し、出力の際はエクスポートした鍵ペアのサイズを格納します。 + _Example_ \code ed25519_key key; @@ -613,15 +719,21 @@ int wc_ed25519_export_private_only(ed25519_key* key, byte* out, word32* outLen); int wc_ed25519_export_private(ed25519_key* key, byte* out, word32* outLen); /*! - \ingroup ED25519 - \brief この関数は、ED25519_KEY構造体とは別にプライベートキーと公開鍵をエクスポートします。秘密鍵をバッファーPrivに格納し、PRIVSZでこのバッファに書き込まれたバイトを設定します。公開鍵をバッファPUBに格納し、Pubszでこのバッファに書き込まれたバイトを設定します。 - \return 0 キーペアのエクスポートに成功したら返されます。 + \ingroup ED25519 + \brief この関数は、ed25519_key構造体から秘密鍵と公開鍵を別々にエクスポートします。 + 秘密鍵をバッファprivに格納し、priovSzにこのバッファに書き込んだバイト数を設定します。 + 公開鍵をバッファpubに格納し、pubSzにこのバッファに書き込んだバイト数を設定します。 + \return 0 鍵ペアのエクスポートに成功したら返されます。 \return BAD_FUNC_ARG いずれかの入力値がNULLに評価された場合に返されます。 - \return BUFFER_E 提供されているバッファーがキーペアを保存するのに十分な大きさでない場合に返されます。 - \param [in] キーペアをエクスポートするためのED25519_Key構造体へのキーポインタ。 - \param [out] 秘密鍵を保存するバッファへのPRIVポインタ。 - \param [in,out] PRIVSZ PIVINSZポインタサイズが表示されているサイズを持つWord32オブジェクトへのポインタ。秘密鍵のエクスポート後に書き込まれたバイト数を設定します。 - \param [out] パブリックキーを保存するバッファへのPub。 + \return BUFFER_E 提供されているバッファが鍵ペアを保存するのに十分な大きさでない場合に返されます。 + \param [in] key 鍵ペアをエクスポートするためのed25519_key構造体へのポインタ。 + \param [out] priv 秘密鍵を出力するバッファへのポインタ。 + \param [in,out] privSz 秘密鍵を出力する先のバッファのサイズを保持するword32型変数へのポインタ。 + 秘密鍵のエクスポート後には書き込まれたバイト数がセットされます。 + \param [out] pub パブリックキーを出力するバッファへのポインタ + \param [in,out] pubSz 公開鍵を出力する先のバッファのサイズを保持するword32型変数へのポインタ。 + 公開鍵のエクスポート後には書き込まれたバイト数がセットされます。 + _Example_ \code int ret; @@ -647,11 +759,13 @@ int wc_ed25519_export_key(ed25519_key* key, byte* pub, word32 *pubSz); /*! - \ingroup ED25519 - \brief この関数は、ED25519_KEY構造体の公開鍵をチェックします。 + \ingroup ED25519 + \brief この関数は、ed25519_key構造体の公開鍵をチェックします。 \return 0 プライベートキーと公開鍵が一致した場合に返されます。 \return BAD_FUNC_ARG 与えられた鍵がNULLの場合に返されます。 \return PUBLIC_KEY_E 公開鍵が参照できないか無効の場合に返されます。 + \param [in] key 公開鍵と秘密鍵の両方を保持しているed25519_key構造体へのポインタ + _Example_ \code int ret; @@ -672,10 +786,13 @@ int wc_ed25519_export_key(ed25519_key* key, int wc_ed25519_check_key(ed25519_key* key); /*! - \ingroup ED25519 - \brief この関数は、ED25519 - 32バイトのサイズを返します。 + \ingroup ED25519 + \brief この関数は、Ed25519 - 32バイトのサイズを返します。 \return ED25519_KEY_SIZE 有効な秘密鍵のサイズ(32バイト)。 - \return BAD_FUNC_ARG 与えられたキーがNULLの場合に返されます。 + \return BAD_FUNC_ARG 与えられた引数keyがNULLの場合に返されます。 + \param [in] key ed25519_key構造体へのポインタ + + _Example_ \code int keySz; @@ -692,10 +809,12 @@ int wc_ed25519_check_key(ed25519_key* key); int wc_ed25519_size(ed25519_key* key); /*! - \ingroup ED25519 + \ingroup ED25519 \brief この関数は、秘密鍵サイズ(secret + public)をバイト単位で返します。 \return ED25519_PRV_KEY_SIZE 秘密鍵のサイズ(64バイト)。 \return BAD_FUNC_ARG key引数がnullの場合に返されます。 + \param [in] key ed25519_key構造体へのポインタ + _Example_ \code ed25519_key key; @@ -713,10 +832,12 @@ int wc_ed25519_size(ed25519_key* key); int wc_ed25519_priv_size(ed25519_key* key); /*! - \ingroup ED25519 + \ingroup ED25519 \brief この関数は圧縮鍵サイズをバイト単位で返します(公開鍵)。 \return ED25519_PUB_KEY_SIZE 圧縮公開鍵のサイズ(32バイト)。 \return BAD_FUNC_ARG key引数がnullの場合は返します。 + \param [in] key ed25519_key構造体へのポインタ + _Example_ \code ed25519_key key; @@ -733,10 +854,12 @@ int wc_ed25519_priv_size(ed25519_key* key); int wc_ed25519_pub_size(ed25519_key* key); /*! - \ingroup ED25519 + \ingroup ED25519 \brief この関数は、ED25519シグネチャのサイズ(バイト数64)を返します。 \return ED25519_SIG_SIZE ED25519シグネチャ(64バイト)のサイズ。 \return BAD_FUNC_ARG key引数がnullの場合は返します。 + \param [in] key ed25519_key構造体へのポインタ + _Example_ \code int sigSz; diff --git a/doc/dox_comments/header_files-ja/ssl.h b/doc/dox_comments/header_files-ja/ssl.h index 4653fb12b..e295d6106 100644 --- a/doc/dox_comments/header_files-ja/ssl.h +++ b/doc/dox_comments/header_files-ja/ssl.h @@ -1,6 +1,8 @@ /*! - \brief - \return pointer この関数は、新しいwolfssl_method構造体へのポインタを返します。 + \brief この関数はDTLS v1.2 クライアントメソッドを初期化します。 + \return 作成に成功した場合は、WOLFSSL_METHODポインタを返します。 + \return メモリ割り当てエラーまたはメソッドの作成の失敗の場合はNULLを返します。 + _Example_ \code wolfSSL_Init(); @@ -16,9 +18,10 @@ WOLFSSL_METHOD *wolfDTLSv1_2_client_method_ex(void* heap); /*! \ingroup Setup - \brief この関数は、Wolfsslv23_client_methodと同様のwolfssl_methodを返します(サーバー/クライアント)。 - \return WOLFSSL_METHOD* 成功した作成では、wolfssl_methodポインタを返します - \return NULL メモリ割り当てエラーまたはメソッドの作成の失敗の場合はnull + \brief この関数は、wolfSSLv23_client_methodと同様にWOLFSSL_METHODを返します(サーバー/クライアント)。 + \return 作成に成功した場合は、WOLFSSL_METHODポインタを返します。 + \return メモリ割り当てエラーまたはメソッドの作成の失敗の場合はNULLを返します。 + _Example_ \code WOLFSSL* ctx; @@ -32,9 +35,11 @@ WOLFSSL_METHOD *wolfSSLv23_method(void); /*! \ingroup Setup - \brief WOLFSSLV3_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、SSL 3.0プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 - \return * 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolfSSLv3_server_method()関数は、アプリケーションがサーバーであることを示すために使用され、SSL3.0プロトコルのみをサポートします。 + この関数は、wolfSSL_CTX_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code #include @@ -62,9 +67,11 @@ WOLFSSL_METHOD *wolfSSLv3_server_method(void); /*! \ingroup Setup - \brief wolfsslv3_client_method()関数は、アプリケーションがクライアントであり、SSL 3.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 - \return * 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolfSSLv3_client_method()関数は、アプリケーションがクライアントであり、SSL 3.0プロトコルのみをサポートすることを示すために使用されます。 + この関数は、wolfSSL_CTX_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code #include @@ -92,9 +99,11 @@ WOLFSSL_METHOD *wolfSSLv3_client_method(void); /*! \ingroup Setup - \brief WOLFTLSV1_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.0プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 - \return * 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolfTLSv1_server_method()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.0プロトコルのみをサポートします。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code #include @@ -122,9 +131,11 @@ WOLFSSL_METHOD *wolfTLSv1_server_method(void); /*! \ingroup Setup - \brief wolftlsv1_client_method()関数は、アプリケーションがクライアントであり、TLS 1.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 - \return * 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolftlsv1_client_method()関数は、アプリケーションがクライアントであり、TLS 1.0プロトコルのみをサポートすることを示すために使用されます。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code #include @@ -152,9 +163,11 @@ WOLFSSL_METHOD *wolfTLSv1_client_method(void); /*! \ingroup Setup - \brief WOLFTLSV1_1_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.1プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 - \return * 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolfTLSv1_1_server_method()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.1プロトコルのみをサポートします。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code #include @@ -182,9 +195,11 @@ WOLFSSL_METHOD *wolfTLSv1_1_server_method(void); /*! \ingroup Setup - \brief WOLFTLSV1_1_CLIENT_METHOD()関数は、アプリケーションがクライアントであり、TLS 1.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 - \return * 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolfTLSv1_1_client_method()関数は、アプリケーションがクライアントであり、TLS 1.0プロトコルのみをサポートすることを示すために使用されます。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code #include @@ -212,9 +227,11 @@ WOLFSSL_METHOD *wolfTLSv1_1_client_method(void); /*! \ingroup Setup - \brief WOLFTLSV1_2_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.2プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 - \return * 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolfTLSv1_2_server_method()関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.2プロトコルのみをサポートします。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code #include @@ -242,9 +259,11 @@ WOLFSSL_METHOD *wolfTLSv1_2_server_method(void); /*! \ingroup Setup - \brief wolftlsv1_2_client_method()関数は、アプリケーションがクライアントであり、TLS 1.2プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 - \return * 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolfTLSv1_2_client_method()関数は、アプリケーションがクライアントであり、TLS 1.2プロトコルのみをサポートすることを示すために使用されます。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code #include @@ -272,9 +291,12 @@ WOLFSSL_METHOD *wolfTLSv1_2_client_method(void); /*! \ingroup Setup - \brief wolfdtlsv1_client_method()関数は、アプリケーションがクライアントであり、DTLS 1.0プロトコルのみをサポートすることを示すために使用されます。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。この関数は、WolfSSLがDTLSサポート( - enable-dtls、またはWolfSSL_DTLSを定義することによって)コンパイルされている場合にのみ使用できます。 - \return * 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolfdtlsv1_client_method()関数は、アプリケーションがクライアントであり、DTLS 1.0プロトコルのみをサポートすることを示すために使用されます。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + この関数は、WolfSSLがDTLSサポート(--enable-dtls、またはWOLFSSL_DTLSを定義することによって)ビルドされている場合にのみ使用できます。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code WOLFSSL_METHOD* method; @@ -300,9 +322,12 @@ WOLFSSL_METHOD *wolfDTLSv1_client_method(void); /*! \ingroup Setup - \brief WOLFDTLSV1_SERVER_METHOD()関数は、アプリケーションがサーバーであることを示すために使用され、DTLS 1.0プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。この関数は、WolfSSLがDTLSサポート( - enable-dtls、またはWolfSSL_DTLSを定義することによって)コンパイルされている場合にのみ使用できます。 - \return * 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return FAIL xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolfDTLSv1_server_method()関数は、アプリケーションがサーバーであることを示すために使用され、DTLS 1.0プロトコルのみをサポートします。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + この関数は、WolfSSLがDTLSサポート(--enable-dtls、またはWOLFSSL_DTLSマクロを定義することによって)ビルドされている場合にのみ使用できます。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code WOLFSSL_METHOD* method; @@ -327,8 +352,9 @@ WOLFSSL_METHOD *wolfDTLSv1_client_method(void); WOLFSSL_METHOD *wolfDTLSv1_server_method(void); /*! - \brief サーバ側。 - \return This 関数はwolfssl_methodポインタを返します。 + \brief wolfDTLSv1_2_server_method()関数はサーバ側用にWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfDTLSv1_2_server_method()); @@ -341,9 +367,164 @@ WOLFSSL_METHOD *wolfDTLSv1_2_server_method(void); /*! \ingroup Setup - \brief Chacha-Poly Aead Constructionの最初のリリースと新しいバージョンの間にいくつかの違いがあるため、古いバージョンを使用してサーバー/クライアントと通信するオプションを追加しました。デフォルトでは、WolfSSLは新しいバージョンを使用します。 - \return 0 成功すると - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + + \brief wolfDTLSv1_3_server_method()関数はアプリケーションがサーバーであることを示すために使用され、DTLS 1.3プロトコルのみをサポートします。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + この関数は、WolfSSLがDTLSサポート(--enable-dtls13、またはWOLFSSL_DTLS13を定義することによって)ビルドされている場合にのみ使用できます。 + + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + \param なし + + _Example_ + \code + WOLFSSL_METHOD* method; + WOLFSSL_CTX* ctx; + + method = wolfDTLSv1_3_server_method(); + if (method == NULL) { + // unable to get method + } + + ctx = wolfSSL_CTX_new(method); + ... + \endcode + + + \sa wolfDTLSv1_3_client_method +*/ + +WOLFSSL_METHOD *wolfDTLSv1_3_server_method(void); + +/*! + \ingroup Setup + + \brief wolfDTLSv1_3_client_method()関数はアプリケーションがクライアントであることを示すために使用され、DTLS 1.3プロトコルのみをサポートします。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + この関数は、WolfSSLがDTLSサポート(--enable-dtls13、またはWOLFSSL_DTLS13を定義することによって)ビルドされている場合にのみ使用できます。 + + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + \param なし + + + _Example_ + \code + WOLFSSL_METHOD* method; + WOLFSSL_CTX* ctx; + + method = wolfDTLSv1_3_client_method(); + if (method == NULL) { + // unable to get method + } + + ctx = wolfSSL_CTX_new(method); + ... + \endcode + + + \sa wolfDTLSv1_3_server_method +*/ +WOLFSSL_METHOD* wolfDTLSv1_3_client_method(void); + +/*! + \ingroup Setup + + \brief wolfDTLS_server_method()関数はアプリケーションがサーバーであることを示すために使用され、 + 可能な限り高いバージョン最小バージョンのDTLSプロトコルをサポートします。 + デフォルトの最小バージョンはWOLFSSL_MIN_DTLS_DOWNGRADEマクロでの指定をもとにしていて、 + 実行時にwolfSSL_SetMinVersion()で変更することができます。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + この関数は、WolfSSLがDTLSサポート(--enable-dtls、またはWOLFSSL_DTLSを定義することによって)ビルドされている場合にのみ使用できます。 + + + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + \param なし + + _Example_ + \code + WOLFSSL_METHOD* method; + WOLFSSL_CTX* ctx; + + method = wolfDTLS_server_method(); + if (method == NULL) { + // unable to get method + } + + ctx = wolfSSL_CTX_new(method); + ... + \endcode + + + \sa wolfDTLS_client_method + \sa wolfSSL_SetMinVersion +*/ +WOLFSSL_METHOD *wolfDTLS_server_method(void); + +/*! + \ingroup Setup + + \brief wolfDTLS_client_method()関数は アプリケーションがクライアントであることを示すために使用され、 + 可能な限り高いバージョン最小バージョンのDTLSプロトコルをサポートします。 + デフォルトの最小バージョンはWOLFSSL_MIN_DTLS_DOWNGRADEマクロでの指定をもとにしていて、 + 実行時にwolfSSL_SetMinVersion()で変更することができます。 + この関数は、wolfSSL_ctx_new()を使用してSSL/TLSコンテキストを作成するときに使用される新しいWOLFSSL_METHOD構造体のメモリを割り当てて初期化します。 + この関数は、wolfSSLがDTLSサポート(--enable-dtls、またはWOLFSSL_DTLSを定義することによって)ビルドされている場合にのみ使用できます。 + + + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + \return XMALLOCを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + \param なし + + + _Example_ + \code + WOLFSSL_METHOD* method; + WOLFSSL_CTX* ctx; + + method = wolfDTLS_client_method(); + if (method == NULL) { + // unable to get method + } + + ctx = wolfSSL_CTX_new(method); + ... + \endcode + + + \sa wolfDTLS_server_method + \sa wolfSSL_SetMinVersion +*/ +WOLFSSL_METHOD *wolfDTLS_client_method(void); + +/*! + \brief この関数はサーバー側用にWOLFSSL_METHOD構造体を生成して初期化します。 + + \return 成功した場合、新しく作成されたWOLFSSL_METHOD構造体へのポインタを返します。 + + \param なし + + _Example_ + \code + WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfDTLSv1_2_server_method()); + WOLFSSL* ssl = WOLFSSL_new(ctx); + … + \endcode + + \sa wolfSSL_CTX_new +*/ +WOLFSSL_METHOD *wolfDTLSv1_2_server_method(void); + + +/*! + \ingroup Setup + \brief Chacha-Poly Aead Constructionの最初のリリースと新しいバージョンの間にいくつかの違いがあるため、 + 古いバージョンを使用してサーバー/クライアントと通信するオプションを追加しました。 + デフォルトでは、wolfSSLは新しいバージョンを使用します。 + \return 0 成功の場合に返されます。 + \param ssl wolfSSL_new()を使用して作成したWOLFSSL構造体へのポインタ。 + _Example_ \code int ret = 0; @@ -360,12 +541,16 @@ WOLFSSL_METHOD *wolfDTLSv1_2_server_method(void); int wolfSSL_use_old_poly(WOLFSSL* ssl, int value); /*! - \brief セッション状態これにより、ハンドシェイクが完了した後に接続をピックアップすることができます。 - \return Success 成功した場合、読み取ったバッファの量が返されます。 - \return Failure すべての失敗した戻り値は0未満になります。 - \return VERSION_ERROR バージョンの不一致が見つかった場合、IE DTLS V1とCTXがDTLS V1.2に設定された場合、Version_Errorが返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param buf インポートするシリアル化されたセッション。 + \brief wolfSSL_dtls_import()関数はシリアライズされたセッション状態を解析するために使われます。 + これにより、ハンドシェイクが完了した後に接続をピックアップすることができます。 + \return 成功した場合、読み取ったバッファの量が返されます。 + \return すべての失敗した戻り値は0未満になります。 + \return VERSION_ERROR バージョンの不一致が見つかった場合、(すなわち、DTLS v1とCTXがDTLS v1.2に設定された場合)、Version_Errorが返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param buf インポートするシリアル化されたセッション情報を格納するバッファへのポインタ。 + \param sz バッファのサイズ + _Example_ \code WOLFSSL* ssl; @@ -393,10 +578,14 @@ int wolfSSL_dtls_import(WOLFSSL* ssl, unsigned char* buf, /*! - \brief 接続の状態をインポートします。警告:BUFには、状態に関する機密情報が含まれており、保存されている場合は保存する前に暗号化されるのが最善です。追加のデバッグ情報をマクロwolfssl_session_export_debugが定義して表示できます。 - \return the バッファ 'BUF'から読み込まれたバイト数 - \param ssl セッションをインポートするためのWolfSSL構造 - \param buf シリアル化されたセッション + \brief シリアライズされたTLSセッションをインポートします。 + 警告:bufには、状態に関する機密情報が含まれており、保存されている場合は保存する前に暗号化されるのが最善です。 + 追加のデバッグ情報をマクロWOLFSSL_SESSION_EXPORT_DEBUGを定義して表示できます。 + \return バッファ'buf'から読み込まれたバイト数を返します。 + \param ssl セッションをインポートするためのWOLFSSL構造体へのポインタ + \param buf シリアル化されたセッションを含むバッファへのポインタ + \param sz バッファのサイズ + \sa wolfSSL_dtls_import \sa wolfSSL_tls_export */ @@ -404,10 +593,14 @@ int wolfSSL_tls_import(WOLFSSL* ssl, const unsigned char* buf, unsigned int sz); /*! - \brief セッションをエクスポートするためのコールバック関数。これは、以前に格納されているエクスポート機能をクリアするためのパラメータfuncとしてnullを渡すことが許可されています。サーバー側で使用され、ハンドシェイクが完了した直後に呼び出されます。 - \return SSL_SUCCESS 成功すると。 - \return BAD_FUNC_ARG NULLまたは予想されない引数が渡された場合 - \param ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 + \brief wolfSSL_CTX_dtls_set_export()関数はセッションをエクスポートするためのコールバック関数を設定します。 + 以前に格納されているエクスポート機能をクリアするためにパラメータfuncにNULLを渡すことが許されます。 + サーバー側で使用され、ハンドシェイクが完了した直後に設定したコールバック関数が呼び出されます。 + \return SSL_SUCCESS 成功時に返されます。 + \return BAD_FUNC_ARG NULLまたは予想されない引数が渡された場合に返されます。 + \param ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 + \param func セッションをエクスポートする際に呼び出す関数ポインタ + _Example_ \code int send_session(WOLFSSL* ssl, byte* buf, word32 sz, void* userCtx); @@ -429,14 +622,17 @@ int wolfSSL_tls_import(WOLFSSL* ssl, const unsigned char* buf, \sa wolfSSL_dtls_set_export \sa Static buffer use */ -int wolfSSL_CTX_dtls_set_export(WOLFSSL_CTX* ctx, - wc_dtls_export func); +int wolfSSL_CTX_dtls_set_export(WOLFSSL_CTX* ctx, wc_dtls_export func); /*! - \brief セッションをエクスポートする機能。これは、以前に格納されているエクスポート機能をクリアするためのパラメータfuncとしてnullを渡すことが許可されています。サーバー側で使用され、ハンドシェイクが完了した直後に呼び出されます。 - \return SSL_SUCCESS 成功すると。 - \return BAD_FUNC_ARG NULLまたは予想されない引数が渡された場合 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \brief wolfSSL_dtls_set_export()関数はセッションをエクスポートする際に呼び出すコールバック関数を登録します。 + 以前に登録されているエクスポート関数をクリアするために使うこともできます。 + サーバー側で使用され、ハンドシェイクが完了した直後に設定したコールバック関数が呼び出されます。 + \return SSL_SUCCESS 成功時に返されます。 + \return BAD_FUNC_ARG NULLまたは予想されない引数が渡された場合に返されます。 + \param ssl wolfssl_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param func セッションをエクスポートする際に呼び出す関数ポインタ + _Example_ \code int send_session(WOLFSSL* ssl, byte* buf, word32 sz, void* userCtx); @@ -460,11 +656,15 @@ int wolfSSL_CTX_dtls_set_export(WOLFSSL_CTX* ctx, int wolfSSL_dtls_set_export(WOLFSSL* ssl, wc_dtls_export func); /*! - \brief 提供されたバッファへのWolfSSLセッション。セッションをシリアル化したときにセッションを送信するための関数コールバックを使用するよりも少ないメモリオーバーヘッドを許可します。関数に渡されたときにバッファがNULLの場合、SZはWolfSSLセッションの直列化に必要なバッファのサイズに設定されます。 - \return Success 成功した場合、使用されるバッファの量が返されます。 - \return Failure すべての失敗した戻り値は0未満になります。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param buf 直列化セッションを保持するためのバッファ。 + \brief wolfSSL_dtls_export()関数は提供されたバッファへセッションをシリアル化します。 + セッションをエクスポートするための関数コールバックを使用するよりもメモリオーバーヘッドを減らすことができます。 + 関数に渡された引数bufがNULLの場合、szにはWolfSSLセッションのシリアライズに必要なバッファのサイズが設定されます。 + \return 成功した場合、使用されるバッファサイズが返されます。 + \return すべての失敗した戻り値は0未満になります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param buf シリアライズしたセッションを保持するためのバッファ。 + \param sz バッファのサイズ + _Example_ \code WOLFSSL* ssl; @@ -487,10 +687,15 @@ int wolfSSL_dtls_export(WOLFSSL* ssl, unsigned char* buf, unsigned int* sz); /*! - \brief 接続の直列化された状態をインポートします。ほとんどの場合、wolfssl_tls_exportの代わりにwolfssl_get1_sessionを使用する必要があります。追加のデバッグ情報をマクロwolfssl_session_export_debugが定義して表示できます。警告:BUFには、状態に関する機密情報が含まれており、保存されている場合は保存する前に暗号化されるのが最善です。 - \return the バッファー 'BUF'に書き込まれたバイト数 - \param ssl セッションをエクスポートするためのWolfSSL構造 - \param buf 直列化セッションの出力 + \brief シリアライズされたTLSセッションをエクスポートします。 + ほとんどの場合、wolfSSL_tls_exportの代わりにwolfssl_get1_sessionを使用する必要があります。 + 追加のデバッグ情報をマクロWOLFSSL_SESSION_EXPORT_DEBUGを定義して表示できます。 + 警告:bufには、状態に関する機密情報が含まれており、保存する場合は保存する前に暗号化されるのが最善です。 + \return バッファ'buf'に書き込まれたバイト数 + \param ssl セッションをエクスポートするためのWOLFSSL構造体へのポインタ + \param buf シリアライズされたセッションの出力先バッファへのポインタ + \param sz 出力先バッファのサイズ + \sa wolfSSL_dtls_import \sa wolfSSL_tls_import */ @@ -498,14 +703,28 @@ int wolfSSL_tls_export(WOLFSSL* ssl, unsigned char* buf, unsigned int* sz); /*! - \brief その後、CTXの有効期間およびCTXから作成されたSSLオブジェクトには、asideを設定します。NULL CTXポインタとWOLFSSL_METHOD_FUNC関数を渡すことによって、CTX自体の作成も静的メモリを使用します。wolfssl_method_funcには、wolfssl_method *(* wolfssl_method_func)の関数署名があります(void *ヒープ)。MAXに0を渡すと、設定されていないかのように動作し、最大の同時使用制限が適用されません。渡されたフラグ値によって、メモリの使用方法と動作中の動作が決まります。利用可能なフラグは次のとおりです.0 - デフォルトの一般メモリ、WolfMEM_IO_POOL - 受信メッセージの送信と一般メモリをオーバーライドするときに入出力バッファに使用されるので、渡されたバッファ内のすべてのメモリがIO、WolfMem_IO_FIXED - WOLFMEM_IO_POOLと同じですが、今度は各SSLと同じです。2つのバッファを自分のライフタイムで自分自身に保ちます。wolfmem_track_stats - 各SSLは実行中にメモリ統計を追跡します。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FAILURE 失敗すると。 - \param ctx wolfssl_ctx構造へのポインタのアドレス。 - \param method プロトコルを作成する機能。(CTXもNULLでもない場合はNULLにする必要があります) - \param buf すべての操作に使用するメモリ。 + \brief この関数はCTX用に静的メモリ領域を設定する目的に使用されます。 + 設定された静的メモリ領域はCTXの有効期間およびCTXから作成された全てのSSLオブジェクトに使用されます。 + 引数ctxにNULLを渡し、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 SSL_FAILURE 失敗した場合に返されます。 + + \param ctx WOLFSSL_CTX構造体へのポインタのポインタ + \param method メソッド関数(例えば、wolfSSLv23_server_method_ex)でctxがNULLでない場合はNULLにする必要があります。 + \param buf すべての操作に使用するメモリバッファへのポインタ。 \param sz 渡されているメモリバッファのサイズ。 - \param flag メモリの種類 + \param flag メモリの使用タイプ + \param max 同時使用の最大値 + _Example_ \code WOLFSSL_CTX* ctx; @@ -542,10 +761,15 @@ int wolfSSL_CTX_load_static_memory(WOLFSSL_CTX** ctx, int flag, int max); /*! - \brief そして、静的メモリ使用量に関する情報を収集するためにのみ使用されます。 - \return 1 CTXの静的メモリを使用する場合は返されます。 - \return 0 静的メモリを使用しない場合は返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \brief この関数は現時点の接続に関する振る舞いの変更は行いません。 + 静的メモリ使用量に関する情報を収集するためにのみ使用されます。 + \return 1 CTXの静的メモリを使用している場合に返されます。 + \return 0 静的メモリを使用していない場合に返されます。 + + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + \param mem_stats 静的メモリの使用量に関する情報を保持するWOLFSSL_MEM_STATS構造体へのポインタ + + _Example_ \code WOLFSSL_CTX* ctx; @@ -571,10 +795,16 @@ int wolfSSL_CTX_is_static_memory(WOLFSSL_CTX* ctx, WOLFSSL_MEM_STATS* mem_stats); /*! - \brief SSLの静的メモリ使用量。戻り値は、静的メモリを読み込むときに、静的メモリが使用されているかどうかを示します。 - \return 1 CTXの静的メモリを使用する場合は返されます。 - \return 0 静的メモリを使用しない場合は返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \brief wolfSSL_is_static_memory関数はSSLの静的メモリ使用量に関する情報を集めます。 + 戻り値は、静的メモリが使用されているかどうかを示します。 + 引数sslの上位のWOLFSSL_CTXに静的メモリを使用するように指定してあり、WOLFMEM_TRACK_STATSが定義されている場合に + 引数mem_statsに情報がセットされます。 + \return 1 静的メモリを使用している場合に返されます。 + \return 0 静的メモリを使用していない場合に返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param mem_stats 静的メモリの使用量に関する情報を保持するWOLFSSL_MEM_STATS構造体へのポインタ + _Example_ \code WOLFSSL* ssl; @@ -596,11 +826,21 @@ int wolfSSL_is_static_memory(WOLFSSL* ssl, /*! \ingroup CertsKeys - \brief この関数は証明書ファイルをSSLコンテキストにロードします(wolfssl_ctx)。ファイルはファイル引数によって提供されます。format引数は、ファイルのフォーマットタイプ(SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM)を指定します。適切な使用法の例をご覧ください。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FAILURE 関数呼び出しが失敗した場合、可能な原因が誤った形式にある場合、または「format」引数を使用して誤ったフォーマットが指定されている場合があります。ファイルは存在しません。読み取られない、または破損しているメモリ状態が発生すると、ベース16のデコードはファイルで失敗します。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ - \param file WolfSSL SSLコンテキストにロードする証明書を含むファイルの名前へのポインタ。 + \brief この関数は証明書ファイルをSSLコンテキスト(WOLFSSL_CTX)にロードします。 + ファイルは引数fileによって提供されます。 + 引数formatは、ファイルのフォーマットタイプ(SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM)を指定します。 + 適切な使用法の例をご覧ください。 + + \return SSL_SUCCESS 成功した場合に返されます。に返されます。 + \return SSL_FAILURE 失敗時に返されます。失敗した場合の可能な原因としては、 + ファイルが誤った形式の場合、または引数formatを使用して誤ったフォーマットが指定されている、 + あるいはファイルが存在しない、あるいは読み取ることができない、または破損している、 + メモリ不足が発生、Base16のデコードに失敗しているなどの原因が考えられます。 + + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ + \param file ロードする証明書を含むファイルパス文字列。 + \param format ロードする証明書のフォーマット:SSL_FILETYPE_ASN1 あるいは SSL_FILETYPE_PEM + _Example_ \code int ret = 0; @@ -622,9 +862,25 @@ int wolfSSL_CTX_use_certificate_file(WOLFSSL_CTX* ctx, const char* file, /*! \ingroup CertsKeys - \brief この関数は、秘密鍵ファイルをSSLコンテキスト(WolfSSL_CTX)にロードします。ファイルはファイル引数によって提供されます。format引数は、ファイルのフォーマットタイプを指定します.SSL_FILETYPE_ASN1OR SSL_FILETYPE_PEM。適切な使用法の例をご覧ください。外部キーストアを使用し、秘密鍵を持っていない場合は、代わりに公開鍵を入力してCryProコールバックを登録して署名を処理することができます。このためには、CryptoコールバックまたはPKコールバックを使用したビルドで構築できます。Cryptoコールバックを有効にするには、-enable-cryptocbまたはwolf_crypto_cbを使用し、wc_cryptocb_registerDeviceを使用して暗号コールバックを登録し、wolfssl_ctx_setdevidを使用して関連するdevidを設定します。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FAILURE ファイルは間違った形式で、または「format」引数を使用して誤った形式が与えられています。ファイルが存在しない、読み込めない、または破損しています。メモリ不足状態が発生します。base16デコードはファイルで失敗します。キーファイルは暗号化されていますが、パスワードは提供されません。 + + \brief この関数は、秘密鍵ファイルをSSLコンテキスト(WOLFSSL_CTX)にロードします。 + ファイルは引数fileによって提供されます。 + 引数formatは、次のファイルのフォーマットタイプを指定します:SSL_FILETYPE_ASN1 あるいは SSL_FILETYPE_PEM。 + 適切な使用法の例をご覧ください。 + 外部キーストアを使用し、秘密鍵を持っていない場合は、 + 代わりに公開鍵を入力してcryptoコールバックを登録して署名を処理することができます。 + このためには、cryptoコールバックまたはPKコールバックを使用したコンフィギュレーションでビルドします。 + cryptoコールバックを有効にするには、--enable-cryptocbまたはWOLF_CRYPTO_CBマクロを使用し、 + wc_CryptoCb_RegisterDeviceを使用して暗号コールバックを登録し、 + wolfSSL_CTX_SetDevIdを使用して関連するdevidを設定します。 + + \return SSL_SUCCESS 成功した場合に返されます。に返されます。 + \return SSL_FAILURE 関数呼び出しが失敗した場合の可能な原因としては、 + ファイルが誤った形式の場合、または引数formatを使用して誤ったフォーマットが指定されている、 + あるいはファイルが存在しない、あるいは読み取ることができない、または破損している、 + メモリ不足が発生、Base16のデコードに失敗しているなどの原因が考えられます + \param なし + _Example_ \code int ret = 0; @@ -647,19 +903,32 @@ int wolfSSL_CTX_use_PrivateKey_file(WOLFSSL_CTX* ctx, const char* file, int form /*! \ingroup CertsKeys - \brief この関数は、PEM形式のCA証明書ファイルをSSLコンテキスト(WolfSSL_CTX)にロードします。これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。ファイル引数によって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルであり得る。複数のCA CERTが同じファイルに含まれている場合、WolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 path引数は、信頼できるルートCAの証明書を含むディレクトリの名前へのポインタです。ファイルの値がNULLではない場合、パスを必要な場合はパスをNULLとして指定できます。 Libraryの構築時にパスが指定されていない場合は、WOLFSSLが指定されたディレクトリにあるすべてのCA証明書をロードします。この関数はディレクトリ内のすべてのファイルをロードしようとします。この関数は、ヘッダー "-----証明書-----"を持つpemフォーマットされたcert_typeファイルを期待しています。 - \return SSL_SUCCESS 成功しました。 - \return SSL_FAILURE CTXがNULLの場合、またはファイルとパスの両方がNULLの場合は返されます。 - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \brief この関数は、PEM形式のCA証明書ファイルをSSLコンテキスト(WOLFSSL_CTX)にロードします。 + これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。 + 引数fileによって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルでの場合があります。 + 複数のCA証明書が同じファイルに含まれている場合、wolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 + 引数pathは、信頼できるルートCAの証明書を含むディレクトリの名前へのポインタです。 + 引数fileがNULLではない場合、パスが必要でない場合はNULLとして指定できます。 + 引数pathが指定されていてかつNO_WOLFSSL_DIRが定義されていない場合には、 + wolfSSLライブラリは指定されたディレクトリに存在するすべてのCA証明書をロードします。 + この関数はディレクトリ内のすべてのファイルをロードしようとします。 + この関数は、ヘッダーに "-----BEGIN CERTIFICATE-----"を持つPEMフォーマットされたCERT_TYPEファイルを期待しています。 + + \return SSL_SUCCESS 成功した場合に返されます。に返されます。 + \return SSL_FAILURE CTXがNULLの場合、またはファイルとパスの両方がNULLの場合に返されます。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合、読み込めない場合、または破損している場合に返されます。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 - \return ASN_BEFORE_DATE_E 現在の日付が前日の前にある場合は返されます。 - \return ASN_AFTER_DATE_E 現在の日付が後の日付の後の場合は返されます。 + \return ASN_BEFORE_DATE_E 現在の日付が使用開始日より前の場合に返されます。 + \return ASN_AFTER_DATE_E 現在の日付が使用期限後より後の場合に返されます。 \return BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。 - \return BAD_PATH_ERROR OpenDir()がパスを開こうとしたときに失敗した場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 - \param file PEM形式のCA証明書を含むファイルの名前へのポインタ。 + \return BAD_PATH_ERROR opendir()がパスを開こうとして失敗した場合に返されます。 + + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + \param file PEM形式のCA証明書を含むファイルの名前へのポインタ。 + \param path CA証明書を含んでいるディレクトリのディレクトリの名前へのポインタ。 + _Example_ \code int ret = 0; @@ -681,22 +950,37 @@ int wolfSSL_CTX_use_PrivateKey_file(WOLFSSL_CTX* ctx, const char* file, int form \sa wolfSSL_use_certificate_chain_file */ int wolfSSL_CTX_load_verify_locations(WOLFSSL_CTX* ctx, const char* file, - const char* format); + const char* path); /*! - \ingroup CertsKeys - \brief この関数は、PEM形式のCA証明書ファイルをSSLコンテキスト(WolfSSL_CTX)にロードします。これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。ファイル引数によって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルであり得る。複数のCA CERTが同じファイルに含まれている場合、WolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 path引数は、信頼できるルートCAの証明書を含むディレクトリの名前へのポインタです。ファイルの値がNULLではない場合、パスを必要な場合はパスをNULLとして指定できます。 Libraryの構築時にパスが指定されていない場合は、WOLFSSLが指定されたディレクトリにあるすべてのCA証明書をロードします。この関数は、指定されたフラグに基づいてディレクトリ内のすべてのファイルをロードしようとします。この関数は、ヘッダー "-----証明書-----"を持つPEM形式のcert_typeファイルを想定しています。 - \return SSL_SUCCESS 成功しました。 - \return SSL_FAILURE CTXがNULLの場合、またはファイルとパスの両方がNULLの場合は返されます。少なくとも1つの証明書が正常にロードされているが、失敗した1つ以上がある場合、これも返されます。理由でエラースタックを確認してください。 - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \brief この関数は、PEM形式のCA証明書ファイルをSSLコンテキスト(WOLFSSL_CTX)にロードします。 + これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。 + 引数fileによって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルでの場合があります。 + 複数のCA証明書が同じファイルに含まれている場合、wolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 + 引数pathは、信頼できるルートCAの証明書を含むディレクトリの名前へのポインタです。 + 引数fileがNULLではない場合、パスが必要でない場合はNULLとして指定できます。 + 引数pathが指定されていてかつNO_WOLFSSL_DIRが定義されていない場合には、 + wolfSSLライブラリは指定されたディレクトリに存在するすべてのCA証明書をロードします。 + この関数は引数flagsに基づいてディレクトリ内のすべてのファイルをロードしようとします。 + この関数は、ヘッダーに "-----BEGIN CERTIFICATE-----"を持つPEMフォーマットされたCERT_TYPEファイルを期待しています。 + + \return SSL_SUCCESS 成功した場合に返されます。に返されます。 + \return SSL_FAILURE CTXがNULLの場合、またはファイルとパスの両方がNULLの場合に返されます。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合、読み込めない場合、または破損している場合に返されます。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 + \return ASN_BEFORE_DATE_E 現在の日付が使用開始日より前の場合に返されます。 + \return ASN_AFTER_DATE_E 現在の日付が使用期限後より後の場合に返されます。 \return BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。 - \return BAD_PATH_ERROR OpenDir()がパスを開こうとしたときに失敗した場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 - \param file PEM形式のCA証明書を含むファイルの名前へのポインタ。 - \param path PEM形式の証明書をロードするディレクトリの名前へのポインタ。 + \return BAD_PATH_ERROR opendir()がパスを開こうとして失敗した場合に返されます。 + + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + \param file PEM形式のCA証明書を含むファイルの名前へのポインタ。 + \param path CA証明書を含んでいるディレクトリのフォルダーパス + \param flags 指定可能なマスク値: WOLFSSL_LOAD_FLAG_IGNORE_ERR, + WOLFSSL_LOAD_FLAG_DATE_ERR_OKAY, WOLFSSL_LOAD_FLAG_PEM_CA_ONLY + _Example_ \code int ret = 0; @@ -721,17 +1005,86 @@ int wolfSSL_CTX_load_verify_locations(WOLFSSL_CTX* ctx, const char* file, int wolfSSL_CTX_load_verify_locations_ex(WOLFSSL_CTX* ctx, const char* file, const char* path, unsigned int flags); +/*! + \ingroup CertsKeys + + \brief この関数は、wolfSSL_CTX_load_system_CA_certs が呼び出されたときに、 + wolfSSLがシステムCA証明書を検索するディレクトリを表す文字列の配列へのポインタを返します。 + + \return 成功時には文字列配列へのポインタを返します。 + \return NULL 失敗時に返します。 + + \param num word32型変数へのポインタ。文字列配列の長さを格納します。 + + _Example_ + \code + WOLFSSL_CTX* ctx; + const char** dirs; + word32 numDirs; + + dirs = wolfSSL_get_system_CA_dirs(&numDirs); + for (int i = 0; i < numDirs; ++i) { + printf("Potential system CA dir: %s\n", dirs[i]); + } + ... + \endcode + + \sa wolfSSL_CTX_load_system_CA_certs + \sa wolfSSL_CTX_load_verify_locations + \sa wolfSSL_CTX_load_verify_locations_ex +*/ +const char** wolfSSL_get_system_CA_dirs(word32* num); + +/*! + \ingroup CertsKeys + + \brief この関数は、CA証明書をOS依存のCA証明書ストアからWOLFSSL_CTXにロードしようとします。 + ロードされた証明書は信頼されます。 + サポートおよびテストされているプラットフォームは、Linux(Debian、Ubuntu、Gentoo、Fedora、RHEL)、 + Windows 10/11、Android、Apple OS X、iOSです。 + + \return WOLFSSL_SUCCESS 成功時に返されます。 + \return WOLFSSL_BAD_PATH システムCA証明書がロードできなかった場合に返されます。 + \return WOLFSSL_FAILURE そのほかのエラー発生時(Windows証明書ストアが正常にクローズされない等) + + \param ctx wolfSSL_CTX_new()で生成されたWOLFSSL_CTX構造体へのポインタ。 + + _Example_ + \code + int ret = 0; + WOLFSSL_CTX* ctx; + ... + ret = wolfSSL_CTX_load_system_CA_certs(ctx,); + if (ret != WOLFSSL_SUCCESS) { + // error loading system CA certs + } + ... + \endcode + + \sa wolfSSL_get_system_CA_dirs + \sa wolfSSL_CTX_load_verify_locations + \sa wolfSSL_CTX_load_verify_locations_ex +*/ +int wolfSSL_CTX_load_system_CA_certs(WOLFSSL_CTX* ctx); + + /*! \ingroup Setup - \brief この関数は、TLS / SSLハンドシェイクを実行するときにピアを検証するために使用する証明書をロードします。ハンドシェイク中に送信されたピア証明書は、使用可能なときにスキッドを使用することによって比較されます。これら2つのことが一致しない場合は、ロードされたCASが使用されます。マクロwolfssl_trust_peer_certを定義することで機能が有効になっています。適切な使用法の例をご覧ください。 - \return SSL_SUCCES 成功すると。 - \return SSL_FAILURE CTXがNULLの場合、または両方のファイルと種類が無効な場合は返されます。 - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \brief この関数は、TLS/SSLハンドシェイクを実行するときにピアを検証するために使用する証明書をロードします。 + ハンドシェイク中に送信されたピア証明書は、この関数で指定された証明書のSKIDと署名を比較することによって検証されます。 + これら2つのことが一致しない場合は、ピア証明書の検証にはロードされたCA証明書が使用されます。 + この機能はWOLFSSL_TRUST_PEER_CERTマクロを定義することで機能を有効にできます。 + 適切な使用法は例をご覧ください。 + + \return SSL_SUCCES 成功時に返されます。 + \return SSL_FAILURE CTXがNULLの場合、または両方のファイルと種類が無効な場合に返されます。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で生成されたWOLFSSL_CTX構造体へのポインタ。 \param file 証明書を含むファイルの名前へのポインタ + _Example_ \code int ret = 0; @@ -759,10 +1112,17 @@ int wolfSSL_CTX_trust_peer_cert(WOLFSSL_CTX* ctx, const char* file, int type); /*! \ingroup CertsKeys - \brief この関数は、Chain of chainをSSLコンテキスト(WolfSSL_CTX)にロードします。証明書チェーンを含むファイルはファイル引数によって提供され、PEM形式の証明書を含める必要があります。この関数は、最大MAX_CHAIN_DEPTH(Default = 9、internal.hで定義されている)証明書に加えて、サブジェクト証明書を処理します。 - \return SSL_SUCCESS 成功すると - \return SSL_FAILURE 関数呼び出しが失敗した場合、可能な原因が誤った形式にある場合、または「format」引数を使用して誤ったフォーマットが指定されている場合があります。ファイルは存在しません。読み取られない、または破損しているメモリ状態が発生します。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ + \brief この関数は、証明書チェーンをSSLコンテキスト(WOLFSSL_CTX)にロードします。 + 証明書チェーンを含むファイルは引数fileによって提供され、PEM形式の証明書を含める必要があります。 + この関数は、最大MAX_CHAIN_DEPTH(既定で9、internal.hで定義されている)数の証明書を処理します。 + この数にはサブジェクト証明書を含みます。 + + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FAILURE 関数呼び出しが失敗した場合、可能な原因としては:誤った形式である場合、 + または「format」引数を使用して誤ったフォーマットが指定されている場合、 + ファイルが存在しない、読み取れない、または破損している、メモリ枯渇などが考えられます。 + \param ctx wolfSSL_CTX_new()で生成されたWOLFSSL_CTX構造体へのポインタ。 + _Example_ \code int ret = 0; @@ -784,11 +1144,20 @@ int wolfSSL_CTX_use_certificate_chain_file(WOLFSSL_CTX *ctx, /*! \ingroup openSSL - \brief この関数は、SSL接続で使用されているプライベートRSAキーをSSLコンテキスト(WolfSSL_CTX)にロードします。この関数は、wolfsslがOpenSSL互換層有効(--enable-openSSlextra、#define openssl_extra)でコンパイルされている場合にのみ利用可能で、より一般的に使用されているwolfssl_ctx_use_privatekey_file()関数と同じです。ファイル引数には、RSA秘密鍵ファイルへのポインタが、フォーマットで指定された形式で含まれています。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FAILURE 関数呼び出しが失敗した場合、可能な原因には次のようになります。入力キーファイルが誤った形式であるか、または「format」引数を使用して誤った形式が与えられている場合は、ファイルが存在しない、読み込めない、または破損していない、メモリ不足状態が発生します。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ + \brief この関数は、SSL接続で使用されているRSA秘密鍵をSSLコンテキスト(WOLFSSL_CTX)にロードします。 + この関数は、wolfSSLがOpenSSL互換APIが有効(--enable-openSSLExtra、#define OPENSSL_EXTRA)でコンパイルされている場合にのみ利用可能で、 + より一般的に使用されているwolfSSL_CTX_use_PrivateKey_file()関数と同じです。 + ファイル引数には、RSA秘密鍵ファイルへのポインタが、引数formatで指定された形式で含まれています。 + + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FAILURE 関数呼び出しが失敗した場合に返されます。 + 失敗の原因には次が考えられます:入力鍵ファイルが誤った形式である、 + または引数formatを使用して誤った形式が与えられている場合、 + ファイルが存在しない、読み込めない、または破損してる、メモリ不足状態が発生。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ \param file フォーマットで指定された形式で、WolfSSL SSLコンテキストにロードされるRSA秘密鍵を含むファイルの名前へのポインタ。 + \param format RSA秘密鍵のエンコード形式を指定します。指定可能なフォーマット値は:SSL_FILETYPE_PEM と SSL_FILETYPE_ASN1 + _Example_ \code int ret = 0; @@ -811,9 +1180,10 @@ int wolfSSL_CTX_use_RSAPrivateKey_file(WOLFSSL_CTX* ctx, const char* file, int f /*! \ingroup IO - \brief この関数は、有効なセッションのために、デフォルトで9の最大チェーン深度を返します。これは、NULL以外のセッションオブジェクト(SSL)があります。 - \return MAX_CHAIN_DEPTH wolfssl_ctx構造がnullではない場合に返されます。デフォルトでは値は9です。 - \return BAD_FUNC_ARG wolfssl_ctx構造がnullの場合に返されます。 + \brief この関数は、有効なセッション(NULL以外の引数ssl)が指定された場合に、デフォルトで9の最大チェーン深度を返します。 + \return MAX_CHAIN_DEPTH WOLFSSL構造体がNULLではない場合に返されます。デフォルトでは値は9です。 + \return BAD_FUNC_ARG WOLFSSL構造体がNULLの場合に返されます。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -833,9 +1203,10 @@ long wolfSSL_get_verify_depth(WOLFSSL* ssl); /*! \ingroup Setup - \brief この関数は、CTX構造を使用して証明書チェーン深度を取得します。 - \return MAX_CHAIN_DEPTH CTX構造体がNULLではない場合に返されます。最大証明書チェーンピア深度の定数表現。 - \return BAD_FUNC_ARG CTX構造がNULLの場合に返されます。 + \brief この関数は、WOLFSSL_CTX構造体構造を使用して証明書チェーン深度を取得します。 + \return MAX_CHAIN_DEPTH WOLFSSL_CTX構造体がNULLではない場合に返されます。最大証明書チェーンピア深度の定数表現。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造体がNULLの場合に返されます。 + _Example_ \code WOLFSSL_METHOD method; // protocol method @@ -856,11 +1227,18 @@ long wolfSSL_CTX_get_verify_depth(WOLFSSL_CTX* ctx); /*! \ingroup openSSL - \brief この関数は証明書ファイルをSSLセッション(WolfSSL構造体)にロードします。証明書ファイルはファイル引数によって提供されます。format引数は、ファイルのフォーマットタイプ(SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM)を指定します。 - \return SSL_SUCCESS 成功すると - \return SSL_FAILURE 関数呼び出しが失敗した場合、可能な原因には次のようになります。ファイルは誤った形式で、または「format」引数を使用して誤った形式が与えられています。メモリ不足状態が発生すると、ファイルでbase16のデコードが失敗する - \param ssl wolfssl_new()で作成されたwolfssl構造へのポインタ。 - \param file wolfssl sslセッションにロードされる証明書を含むファイルの名前へのポインタは、フォーマットで指定された形式でフォーマットします。 + \brief この関数は証明書ファイルをSSLセッション(WOLFSSL構造体)にロードします。 + 証明書ファイルはファイル引数によって提供されます。 + 引数formatは、ファイルのフォーマットタイプ(SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM)を指定します。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FAILURE 関数呼び出しが失敗した場合に返されます。 + 可能な原因には次のようなものがあります。 + ファイルが誤った形式、または引数formatを使用して誤った形式が与えられた、 + メモリ不足状態が発生した、ファイルでBase16のデコードが失敗した + \param ssl wolfSSL_new()で作成されたWOLFSSL構造体へのポインタ。 + \param file WOLFSSL構造体にロードされる証明書を含むファイルの名前へのポインタ + \param format 証明書ファイルのエンコード形式を指定します。指定可能なフォーマット値は:SSL_FILETYPE_PEM と SSL_FILETYPE_ASN1 + _Example_ \code int ret = 0; @@ -881,11 +1259,24 @@ int wolfSSL_use_certificate_file(WOLFSSL* ssl, const char* file, int format); /*! \ingroup openSSL - \brief この関数は、秘密鍵ファイルをSSLセッション(WolfSSL構造体)にロードします。キーファイルはファイル引数によって提供されます。format引数は、ファイルの形式タイプを指定します - SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。外部キーストアを使用し、秘密鍵を持っていない場合は、代わりに公開鍵を入力してCryProコールバックを登録して署名を処理することができます。このためには、CryptoコールバックまたはPKコールバックを使用したビルドで構築できます。Cryptoコールバックを有効にするには、--enable-cryptocbまたはwolf_crypto_cbを使用し、wc_cryptocb_registerDeviceを使用して暗号コールバックを登録し、wolfssl_setdevidを使用して関連するdevidを設定します。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FAILURE 関数呼び出しが失敗した場合、可能な原因には次のようになります。ファイルは誤った形式で、または「format」引数を使用して誤った形式が与えられていますが、ファイルは存在しません。メモリ不足状態が発生すると、ベース16のデコードがファイルで失敗し、キーファイルは暗号化されていますが、パスワードは提供されていません。 - \param ssl wolfssl_new()で作成されたwolfssl構造へのポインタ。 - \param file wolfssl sslセッションにロードされるキーファイルを含むファイルの名前へのポインタは、フォーマットで指定された形式でフォーマットします。 + \brief この関数は、秘密鍵ファイルをSSLセッション(WOLFSSL構造体)にロードします。 + 鍵ファイルは引数fileによって提供されます。 + 引数formatは、ファイルのタイプ(SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEMが指定可)を指定します。 + 外部キーストアを使用し、秘密鍵を持っていない場合は、代わりに公開鍵を入力してCryProコールバックを登録して署名を処理することができます。 + このためには、CryptoコールバックまたはPKコールバックを使用したコンフィグレーションでビルドします。 + Cryptoコールバックを有効にするには、--enable-cryptocbまたはWOLF_CRYPTO_CBマクロを使用してビルドし、 + wc_CryptoCb_RegisterDeviceを使用して暗号コールバックを登録し、 + wolfSSL_SetDevIdを使用して関連するdevIdを設定します。 + + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FAILURE 関数呼び出しが失敗した場合に返されます。 + 可能な原因には次のようなものがあります。 + ファイルが誤った形式、または引数formatを使用して誤った形式が与えられた、 + メモリ不足状態が発生した、ファイルでBase16のデコードが失敗した + \param ssl wolfSSL_new()で作成されたWOLFSSL構造体へのポインタ。 + \param file WOLFSSL構造体にロードされる証明書を含むファイルの名前へのポインタ + \param format 秘密鍵ファイルのエンコード形式を指定します。指定可能なフォーマット値は:SSL_FILETYPE_PEM と SSL_FILETYPE_ASN1 + _Example_ \code int ret = 0; @@ -908,10 +1299,18 @@ int wolfSSL_use_PrivateKey_file(WOLFSSL* ssl, const char* file, int format); /*! \ingroup openSSL - \brief この関数は、Chain of chainをSSLセッション(WolfSSL構造体)にロードします。証明書チェーンを含むファイルはファイル引数によって提供され、PEM形式の証明書を含める必要があります。この関数は、MAX_CHAIN_DEPTH(Default = 9、internal.hで定義されている)証明書に加えて、サブジェクト証明書を処理します。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FAILURE 関数呼び出しが失敗した場合、可能な原因には次のようになります。ファイルは誤った形式で、または「format」引数を使用して誤った形式が与えられています。メモリの状態が発生します - \param ssl wolfssl_new()を使用して作成されたwolfssl構造へのポインタ + \brief この関数は、証明書チェーンをSSLセッションWOLFSSL構造体)にロードします。 + 証明書チェーンを含むファイルは引数fileによって提供され、PEM形式の証明書を含める必要があります。 + この関数は、MAX_CHAIN_DEPTH(既定で9、internal.hで定義されている)証明書に加えて、サブジェクト証明書を処理します。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FAILURE 関数呼び出しが失敗した場合に返されます。 + 可能な原因には次のようなものがあります: + ファイルが誤った形式、または引数formatを使用して誤った形式が与えられた、 + メモリ不足状態が発生した、ファイルでbase16のデコードが失敗した + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param file WOLFSSL構造体にロードされる証明書を含むファイルの名前へのポインタ。 + 証明書はPEM形式でなければなりません。 + _Example_ \code int ret = 0; @@ -931,10 +1330,17 @@ int wolfSSL_use_certificate_chain_file(WOLFSSL* ssl, const char *file); /*! \ingroup openSSL - \brief この関数は、SSL接続で使用されているプライベートRSAキーをSSLセッション(WolfSSL構造体)にロードします。この関数は、wolfsslがOpenSSL互換層有効(--enable-openSSlextra、#define openssl_extra)でコンパイルされている場合にのみ利用可能で、より一般的に使用されるwolfssl_use_privatekey_file()関数と同じです。ファイル引数には、RSA秘密鍵ファイルへのポインタが、フォーマットで指定された形式で含まれています。 - \return SSL_SUCCESS 成功すると - \return SSL_FAILURE 関数呼び出しが失敗した場合、可能な原因には次のようになります。入力キーファイルが誤った形式であるか、または「format」引数を使用して誤った形式が与えられている場合は、ファイルが存在しない、読み込めない、または破損していない、メモリ不足状態が発生します - \param ssl wolfssl_new()を使用して作成されたwolfssl構造へのポインタ + \brief この関数は、SSL接続で使用されているRSA秘密鍵をSSLセッション(WOLFSSL構造体)にロードします。 + この関数は、wolfSSLがOpenSSL互換APIを有効(--enable-openSSlExtra、#define OPENSSL_EXTRA)でビルドされている場合にのみ利用可能で、 + より一般的に使用されるwolfSSL_use_PrivateKey_file()関数と同じです。 + 引数fileには、RSA秘密鍵ファイルへのポインタが、フォーマットで指定された形式で含まれています。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FAILURE 関数呼び出しが失敗した場合に返されます。 + 可能な原因には次のようなものがあります: + ファイルが誤った形式、または引数formatを使用して誤った形式が与えられた、 + メモリ不足状態が発生した、ファイルでBase16のデコードが失敗した + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code int ret = 0; @@ -957,11 +1363,20 @@ int wolfSSL_use_RSAPrivateKey_file(WOLFSSL* ssl, const char* file, int format); /*! \ingroup CertsKeys - \brief この関数はwolfssl_ctx_load_verify_locationsと似ていますが、DerフォーマットされたCAファイルをSSLコンテキスト(WolfSSL_CTX)にロードすることを許可します。それはまだPEM形式のCAファイルをロードするためにも使用されるかもしれません。これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。ファイル引数によって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルであり得る。複数のCA CERTが同じファイルに含まれている場合、WolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 format引数は、証明書がSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1(DER)のいずれかにある形式を指定します。 wolfssl_ctx_load_verify_locationsとは異なり、この関数は特定のディレクトリパスからのCA証明書のロードを許可しません。この関数は、WolfSSLライブラリがwolfssl_der_doad定義された状態でコンパイルされたときにのみ利用可能です。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FAILURE 失敗すると。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ + \brief この関数はwolfSSL_CTX_load_verify_locationsと似ていますが、 + DERフォーマットされたCAファイルをSSLコンテキスト(WOLFSSL_CTX)にロードすることを許可します。 + それはまだPEM形式のCAファイルをロードするためにも使用されるかもしれません。 + これらの証明書は、信頼できるルート証明書として扱われ、SSLハンドシェイク中にピアから受信した証明書を検証するために使用されます。 + ファイル引数によって提供されるルート証明書ファイルは、単一の証明書または複数の証明書を含むファイルでも可能。 + 複数のCA証明書が同じファイルに含まれている場合、wolfSSLはファイルに表示されているのと同じ順序でそれらをロードします。 + 引数formatは、証明書がSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1(DER)のいずれかにある形式を指定します。 + wolfSSL_CTX_load_verify_locationsとは異なり、この関数は特定のディレクトリパスからのCA証明書のロードを許可しません。 + この関数は、wolfSSLライブラリがWOLFSSL_DER_LOADマクロが定義された状態でビルドされたときにのみ利用可能です。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FAILURE 失敗すると返されます。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ \param file wolfssl SSLコンテキストにロードされるCA証明書を含むファイルの名前をフォーマットで指定された形式で指定します。 + _Example_ \code int ret = 0; @@ -982,9 +1397,10 @@ int wolfSSL_CTX_der_load_verify_locations(WOLFSSL_CTX* ctx, /*! \ingroup Setup - \brief この関数は、入力のための所望のSSL / TLSプロトコル方式を取って、新しいSSLコンテキストを作成します。 - \return pointer 正常にコールが新しく作成されたwolfssl_ctxへのポインタを返します。 - \return NULL 失敗すると。 + \brief この関数は、所望のSSL/TLSプロトコル用メソッド構造体を引数に取って、新しいSSLコンテキストを作成します。 + \return pointer 成功した場合、新しく作成されたWOLFSSL_CTX構造体へのポインタを返します。 + \return NULL 失敗時に返されます。 + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -1006,9 +1422,10 @@ WOLFSSL_CTX* wolfSSL_CTX_new(WOLFSSL_METHOD*); /*! \ingroup Setup - \brief この関数は新しいSSLセッションを作成し、すでに作成されたSSLコンテキストを入力として作成します。 - \return * 成功した場合、呼び出しが新しく作成されたWolfSSL構造へのポインタを返します。 - \return NULL 失敗すると。 + \brief この関数はすでに作成されたSSLコンテキスト(WOLFSSL_CTX)を入力として、新しいSSLセッション(WOLFSSL)を作成します。 + \return 成功した場合、新しく作成されたWOLFSSL構造体へのポインタを返します。 + \return NULL 失敗時に返されます。 + _Example_ \code #include @@ -1032,10 +1449,12 @@ WOLFSSL* wolfSSL_new(WOLFSSL_CTX*); /*! \ingroup Setup - \brief この関数は、SSL接続の入出力機能としてファイル記述子(FD)を割り当てます。通常これはソケットファイル記述子になります。 - \return SSL_SUCCESS 成功すると。 - \return Bad_FUNC_ARG 失敗すると。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + \brief この関数は、SSL接続の入出力機能としてファイル記述子(fd)を割り当てます。通常これはソケットファイル記述子になります。 + \return SSL_SUCCESS 成功時に返されます。 + \return BAD_FUNC_ARG 失敗時に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param fd SSL/TLS接続に使用するファイルディスクリプタ + _Example_ \code int sockfd; @@ -1059,10 +1478,13 @@ int wolfSSL_set_fd (WOLFSSL* ssl, int fd); \brief この関数はファイルディスクリプタ(fd)をSSLコネクションの入出力手段として設定します。 通常はソケットファイルディスクリプタが指定されます。この関数はDTLS専用のAPIであり、ソケットは接続済みとマークされます。 したがって、与えられたfdに対するrecvfromとsendto呼び出しでのaddrとaddr_lenはNULLに設定されます。 + \return SSL_SUCCESS 成功時に返されます。 - \return Bad_FUNC_ARG 失敗時に返されます。 - \param ssl wolfSSL_new()で生成されたSSLセッションへのポインタ。 + \return BAD_FUNC_ARG 失敗時に返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ \param fd SSL/TLSコネクションに使用するファイルディスクリプタ。 + _Example_ \code int sockfd; @@ -1085,15 +1507,62 @@ int wolfSSL_set_fd (WOLFSSL* ssl, int fd); */ int wolfSSL_set_dtls_fd_connected(WOLFSSL* ssl, int fd); +/*! + \ingroup Setup + + \brief この関数はDTLS ClientHelloメッセージが正しく処理できた際に呼び出されるコールバック関数を設定します。 + クッキー交換メカニズムを使用する場合(DTLS1.2のHelloVerifyRequest か + DTLS1.3のクッキー拡張を伴ったHelloRetryRequestのいずれかを使用する場合)には、 + クッキー交換が成功した時点でこのコールバック関数が呼び出されます。 + この機能はひとつのWOLFSSLオブジェクトを新たな接続を待ち受けるリスナーとして使い, + ClientHelloが検証されたWOLFSSLオブジェクトから絶縁させることができます。 + この場合の検証はクッキー交換かClientHelloが正しいフォーマットになっているかのチェックによってなされます。 + + DTLS 1.2: + https://datatracker.ietf.org/doc/html/rfc6347#section-4.2.1 + DTLS 1.3: + https://www.rfc-editor.org/rfc/rfc8446#section-4.2.2 + + \return SSL_SUCCESS 成功時に返されます。 + \return BAD_FUNC_ARG 失敗時に返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param fd SSL/TLSコネクションに使用するファイルディスクリプタ。 + + _Example_ + \code + + // Called when we have verified a connection + static int chGoodCb(WOLFSSL* ssl, void* arg) + { + // setup peer and file descriptors + + } + + if (wolfDTLS_SetChGoodCb(ssl, chGoodCb, NULL) != WOLFSSL_SUCCESS) { + // error setting callback + } + \endcode + + \sa wolfSSL_set_dtls_fd_connected +*/ +int wolfDTLS_SetChGoodCb(WOLFSSL* ssl, ClientHelloGoodCb cb, void* user_ctx); + /*! \ingroup IO - \brief 渡された優先順位の暗号の名前を取得します。 - \return string 成功 - \return 0 優先順位は範囲外または無効です。 + + \brief この関数は引数で渡された優先順位の暗号名(Cipher)文字列へのポインタを返します。 + + \return 成功時には暗号名(Cipher)文字列へのポインタを返します。 + \return 0 引数で渡された優先順位が範囲外かあるいは無効な値であった場合に返されます。 + + \param priority 整数値で指定する優先順位 + _Example_ \code printf("The cipher at 1 is %s", wolfSSL_get_cipher_list(1)); \endcode + \sa wolfSSL_CIPHER_get_name \sa wolfSSL_get_current_cipher */ @@ -1101,11 +1570,13 @@ char* wolfSSL_get_cipher_list(int priority); /*! \ingroup IO - \brief この関数はwolfsslでイネーブルされた暗号を取得します。 + \brief この関数はwolfSSで有効化されている暗号名(Cipher)を取得します。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。 - \return BAD_FUNC_ARG bufパラメータがnullの場合、またはlen引数がゼロ以下の場合に返されます。 - \return BUFFER_E バッファが十分に大きくなく、オーバーフローすると返されます。 - \param buf バッファを表す文字ポインタ。 + \return BAD_FUNC_ARG 引数bufがNULLの場合、または引数lenがゼロ以下の場合に返されます。 + \return BUFFER_E バッファが十分に大きくなく、オーバーフローする可能性がある場合に返されます。 + \param buf 文字列を格納するバッファへのポインタ。 + \param len バッファのサイズ + _Example_ \code static void ShowCiphers(void){ @@ -1125,9 +1596,11 @@ int wolfSSL_get_ciphers(char* buf, int len); /*! \ingroup IO - \brief この関数は、引数をwolfssl_get_cipher_name_internalに渡すことによって、DHE-RSAの形式の暗号名を取得します。 - \return string この関数は、一致した暗号スイートの文字列表現を返します。 - \return NULL エラーまたは暗号が見つかりません。 + \brief この関数は、引数をwolfSSL_get_cipher_name_internalに渡すことによって、DHE-RSAの形式の暗号名を取得します。 + \return 成功時には一致した暗号スイートの文字列表現を返します。 + \return NULL エラーまたは暗号が見つからない場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -1150,8 +1623,9 @@ const char* wolfSSL_get_cipher_name(WOLFSSL* ssl); /*! \ingroup IO - \brief この関数は、SSL接続の入出力機能として使用されるファイル記述子(FD)を返します。通常これはソケットファイル記述子になります。 - \return fd 正常にコールがSSLセッションファイル記述子を返します。 + \brief この関数は、SSL接続の入出力機能として使用されるファイル記述子(fd)を返します。通常これはソケットファイル記述子になります。 + \return fd 成功時にはSSLセッションに関連つけられているファイル記述子を返します。 + _Example_ \code int sockfd; @@ -1166,9 +1640,17 @@ int wolfSSL_get_fd(const WOLFSSL*); /*! \ingroup Setup - \brief この関数は、wolfsslオブジェクトに基礎となるI / Oがブロックされていないことを通知します。アプリケーションがWolfSSLオブジェクトを作成した後、ブロッキング以外のソケットで使用される場合は、wolfssl_set_using_nonblock()を呼び出します。これにより、wolfsslオブジェクトは、Ewouldblockを受信することを意味します。 - \return none 返品不可。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + \brief この関数は、WOLFSSLオブジェクトに基礎となるI/Oがノンブロックであることを通知します。 + アプリケーションがWOLFSSLオブジェクトを作成した後、ブロッキング以外のソケットで使用する場合は、 + wolfssl_set_using_nonblock()を呼び出します。 + これにより、wolfsslオブジェクトは、EWOULDBLOCKを受信することを意味します。 + + \return なし + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param nonblock WOLFSSLオブジェクトにノンブロッキングI/Oを使用することを通知するフラグ。 + 1を指定することでノンブロッキングI/Oを使用することを指定する。 + + _Example_ \code WOLFSSL* ssl = 0; @@ -1183,9 +1665,14 @@ void wolfSSL_set_using_nonblock(WOLFSSL* ssl, int nonblock); /*! \ingroup IO - \brief この機能により、WolfSSLが非ブロッキングI / Oを使用しているかどうかをアプリケーションが判断できます。WolfSSLがノンブロッキングI / Oを使用している場合、この関数は1を返します。これにより、wolfsslオブジェクトは、Ewouldblockを受信することを意味します。 - \return 0 基礎となるI / Oがブロックされています。 - \return 1 基礎となるI / Oは非ブロッキングです。 + \brief この機能により、wolfSSLがノンブロッキングI/Oを使用しているかどうかをアプリケーションが判断できます。 + wolfSSLがノンブロッキングI/Oを使用している場合、この関数は1を返します。 + アプリケーションがWOLFSSLオブジェクトを生成した後にwolfSSL_set_using_nonblock()を呼び出してノンブロッキングソケットを使うとこの関数は1を返します。 + これにより、WOLFSSLオブジェクトは、recevfromがタイムアウトせず代わりにEWOULDBLOCKを受信するようになります。 + + \return 0 基礎となるI/Oがブロックされています。 + \return 1 基礎となるI/Oは非ブロッキングです。 + _Example_ \code int ret = 0; @@ -1203,12 +1690,21 @@ int wolfSSL_get_using_nonblock(WOLFSSL*); /*! \ingroup IO - \brief この関数は、バッファ、データ、SSL接続、SSLにSZバイトを書き込みます。必要に応じて、wolfssl_write()はまだwolfssl_connect()またはwolfssl_accept()によってまだ実行されていない場合、wolfssl_write()はSSL / TLSセッションをネゴシエートします。wolfssl_write()は、ブロックと非ブロッキングI / Oの両方で動作します。基礎となる入出力がブロックされていない場合、wolfssl_write()がwolfssl_write()のニーズを満たすことができなかったときにwolfssl_write()が戻ります。この場合、wolfssl_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。その結果、基礎となるI / Oが準備ができたら、呼び出し側プロセスはwolfssl_write()への呼び出しを繰り返す必要があります。基礎となる入出力がブロックされている場合、WolfSSL_WRITE()は、サイズSZのバッファデータが完全に書かれたかエラーが発生したら、戻るだけです。 - \return >0 成功時に書かれたバイト数。 - \return 0 失敗したときに返されます。特定のエラーコードについてwolfssl_get_error()を呼び出します。 - \return SSL_FATAL_ERROR エラーが発生したとき、または非ブロッキングソケットを使用するときには、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが受信され、再度WOLFSSL_WRITE()を呼び出す必要がある場合は、障害が発生します。特定のエラーコードを取得するには、wolfssl_get_error()を使用してください。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 - \param data ピアに送信されるデータバッファ。 + \brief この関数は、バッファあるいはデータから、SSL接続に対して、szバイトを書き込みます。 + 必要に応じて、wolfSSL_write()の呼び出し時点ではまだwolfSSL_connect()またはwolfSSL_accept()がまだ呼び出されていない場合、SSL/TLSセッションをネゴシエートします。 + wolfSSL_write()は、ブロックとノンブロッキングI/Oの両方で動作します。 + 基礎となる入出力がノンブロッキングに設定されている場合、wolfSSL_write()が要求を満たすことができなかったらwolfSSL_write()は関数呼び出しからすぐに戻ります。 + この場合、wolfSSL_get_error()の呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを返します。 + その結果、基礎となるI/Oが準備ができたら、呼び出し側プロセスはwolfssl_write()への呼び出しを繰り返す必要があります。 + 基礎となる入出力がブロックされている場合、WolfSSL_WRITE()は、サイズSZのバッファデータが完全に書かれたかエラーが発生したら、戻るだけです。 + + \return 成功時には書き込んだバイト数(1以上)を返します。 + \return 0 失敗したときに返されます。特定のエラーコードについてwolfSSL_get_error()を呼び出します。 + \return SSL_FATAL_ERROR エラーが発生したとき、または非ブロッキングソケットを使用するときには、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが受信され、再度WOLFSSL_WRITE()を呼び出す必要がある場合は、障害が発生します。特定のエラーコードを取得するには、wolfSSL_get_error()を使用してください。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param data ピアに送信されるデータを含んでいるバッファへのポインタ。 + \param sz 送信データを含んでいるバッファのサイズ + _Example_ \code WOLFSSL* ssl = 0; @@ -1231,12 +1727,24 @@ int wolfSSL_write(WOLFSSL* ssl, const void* data, int sz); /*! \ingroup IO - \brief この関数は、SSLセッション(SSL)内部読み取りバッファからSZバイトをバッファデータに読み出します。読み取られたバイトは内部受信バッファから削除されます。必要に応じて、wolfssl_read()がまだwolfssl_connect()またはwolfssl_accept()によってまだ実行されていない場合は、wolfssl_read()がSSL / TLSセッションをネゴシエートします。 SSL / TLSプロトコルは、最大サイズのSSLレコードを使用します(最大レコードサイズは /wolfssl/internal.h)。そのため、WolfSSLは、レコードを処理および復号化することができる前に、SSLレコード全体を内部的に読み取る必要があります。このため、wolfssl_read()への呼び出しは、呼び出し時に復号化された最大バッファサイズを返すことができます。検索され、次回のwolfssl_read()への呼び出しで復号化される内部WolfSSL受信バッファで待機していない追加の復号化データがあるかもしれません。 SZが内部読み取りバッファ内のバイト数より大きい場合、SSL_READ()は内部読み取りバッファで使用可能なバイトを返します。 BYTESが内部読み取りバッファにバッファされていない場合は、WOLFSSL_READ()への呼び出しは次のレコードの処理をトリガーします。 - \return >0 成功時に読み取られたバイト数。 - \return 0 失敗したときに返されます。これは、クリーン(通知アラートを閉じる)シャットダウンまたはピアが接続を閉じただけであることによって発生する可能性があります。特定のエラーコードについてwolfssl_get_error()を呼び出します。 - \return SSL_FATAL_ERROR エラーが発生したとき、または非ブロッキングソケットを使用するときに、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが受信され、再度WOLFSL_READ()を呼び出す必要がある場合は、障害が発生します。特定のエラーコードを取得するには、wolfssl_get_error()を使用してください。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 - \param data wolfssl_read()がデータを読み取るバッファー。 + \brief この関数は、SSLセッション(ssl)の内部読み取りバッファからszバイトをバッファデータに読み出します。 + 読み取られたバイトは内部受信バッファから削除されます。 + 必要に応じて、wolfSSL_read()の呼び出し時点ではまだwolfSSL_connect()またはwolfSSL_accept()がまだ呼び出されていない場合、SSL/TLSセッションをネゴシエートします。 + SSL/TLSプロトコルは、最大サイズのSSLレコードを使用します(最大レコードサイズは /wolfssl/internal.h)。 + そのため、wolfSSLは、レコードを処理および復号することができる前に、SSLレコード全体を内部的に読み取る必要があります。 + このため、wolfSSL_read()への呼び出しは、呼び出し時に復号された最大バッファサイズを返すことができます。 + 検索され、次回のwolfSSL_read()への呼び出しで復号される内部wolfSSL受信バッファで待機していない追加の復号データがあるかもしれません。 + szが内部読み取りバッファ内のバイト数より大きい場合、wolfSSL_read()は内部読み取りバッファで使用可能なバイトを返します。 + BYTESが内部読み取りバッファにバッファされていない場合は、wolfSSL_read()への呼び出しは次のレコードの処理をトリガーします。 + + \return 成功時には読み取られたバイト数(1以上)を返します。 + \return 0 失敗したときに返されます。これは、クリーン(通知アラートを閉じる)シャットダウンまたはピアが接続を閉じただけであることによって発生する可能性があります。 + 特定のエラーコードについてwolfSSL_get_error()を呼び出します。 + \return SSL_FATAL_ERROR エラーが発生したとき、またはノンブロッキングソケットを使用するときに、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが受信され、再度wolfSSL_read()を呼び出す必要がある場合は、障害が発生します。特定のエラーコードを取得するには、wolfSSL_get_error()を使用してください。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param data wolfSSL_read()が読み取るデータを格納するバッファへのポインタ。 + \param sz バッファに読み取るデータのサイズ + _Example_ \code WOLFSSL* ssl = 0; @@ -1260,12 +1768,14 @@ 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()への呼び出しは次のレコードの処理をトリガーします。 - \return >0 成功時に読み取られたバイト数。 - \return 0 失敗したときに返されます。これは、クリーン(通知アラートを閉じる)シャットダウンまたはピアが接続を閉じただけであることによって発生する可能性があります。特定のエラーコードについてwolfssl_get_error()を呼び出します。 - \return SSL_FATAL_ERROR エラーが発生したとき、または非ブロッキングソケットを使用するときに、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが受信され、再度WolfSSL_PEEK()を呼び出す必要がある場合は、障害が発生します。特定のエラーコードを取得するには、wolfssl_get_error()を使用してください。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 - \param data 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()を使用してください。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param data wolfSSL_peek()がデータを読み取るバッファー。 + \param sz バッファに読み取るデータのサイズ + _Example_ \code WOLFSSL* ssl = 0; @@ -1283,9 +1793,18 @@ int wolfSSL_peek(WOLFSSL* ssl, void* data, int sz); /*! \ingroup IO - \brief この関数はサーバー側で呼び出され、SSLクライアントがSSL / TLSハンドシェイクを開始するのを待ちます。この関数が呼び出されると、基礎となる通信チャネルはすでに設定されています。wolfssl_accept()は、ブロックと非ブロッキングI / Oの両方で動作します。基礎となる入出力がノンブロッキングである場合、wolfssl_accept()は、基礎となるI / Oがwolfssl_acceptのニーズを満たすことができなかったときに戻ります。この場合、wolfssl_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。通話プロセスは、読み取り可能なデータが使用可能であり、wolfsslが停止した場所を拾うときに、wolfssl_acceptの呼び出しを繰り返す必要があります。ノンブロッキングソケットを使用する場合は、何も実行する必要がありますが、select()を使用して必要な条件を確認できます。基礎となるI / Oがブロックされている場合、wolfssl_accept()はハンドシェイクが終了したら、またはエラーが発生したら戻ります。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FATAL_ERROR エラーが発生した場合は返されます。より詳細なエラーコードを取得するには、wolfssl_get_error()を呼び出します。 + \brief この関数はサーバー側で呼び出され、SSLクライアントがSSL/TLSハンドシェイクを開始するのを待ちます。 + この関数が呼び出されると、基礎となる通信チャネルはすでに設定されています。 + wolfSSL_accept()は、ブロックとノンブロッキングI/Oの両方で動作します。 + 基礎となる入出力がノンブロッキングである場合、wolfSSL_accept()は、基礎となるI/OがwolfSSL_acceptの要求を満たすことができなかったときに戻ります。 + この場合、wolfSSL_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。 + 呼び出しプロセスは、読み取り可能なデータが使用可能であり、wolfSSLが停止した場所を拾うときに、wolfSSL_acceptの呼び出しを繰り返す必要があります。 + ノンブロッキングソケットを使用する場合は、何も実行する必要がありますが、select()を使用して必要な条件を確認できます。 + 基礎となるI/Oがブロックされている場合、wolfSSL_accept()はハンドシェイクが終了したら、またはエラーが発生したら戻ります。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FATAL_ERROR エラーが発生した場合に返されます。より詳細なエラーコードを取得するには、wolfSSL_get_error()を呼び出します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code int ret = 0; @@ -1307,8 +1826,11 @@ int wolfSSL_accept(WOLFSSL*); /*! \ingroup Setup - \brief この関数は、割り当てられたwolfssl_ctxオブジェクトを解放します。この関数はCTX参照数を減らし、参照カウントが0に達したときにのみコンテキストを解放します。 - \return none 返品不可。 + \brief この関数は、割り当てられたWOLFSSL_CTXオブジェクトを解放します。 + この関数はCTX参照数を減らし、参照カウントが0に達したときにのみコンテキストを解放します。 + \return なし + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -1323,8 +1845,10 @@ void wolfSSL_CTX_free(WOLFSSL_CTX*); /*! \ingroup Setup - \brief この関数は割り当てられたwolfsslオブジェクトを解放します。 - \return none 返品不可。 + \brief この関数は割り当てられたWOLFSSLオブジェクトを解放します。 + \return なし + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code #include @@ -1341,10 +1865,20 @@ void wolfSSL_free(WOLFSSL*); /*! \ingroup TLS - \brief この関数は、SSLセッションSSLを使用してアクティブなSSL / TLS接続をシャットダウンします。この関数は、ピアに「Close Notify」アラートを送信しようとします。呼び出し側アプリケーションは、Peerがその「閉じる通知」アラートを応答に送信するのを待つか、または直接wolfssl_shutdownを呼び出した後(リソースを保存するために)wolfssl_shutdownを直接通話した後に基礎となる接続を停止するのを待つことができます。どちらのオプションはTLS仕様で許可されています。将来、基礎となる接続が再び使用される場合、同期をピア間で無傷のまま保つために完全な2方向のシャットダウン手順を実行する必要があります。 wolfssl_shutdown()は、ブロックと非ブロッキングI / Oの両方で動作します。基礎となるI / Oがノンブロッキングされていない場合、wolfsl_shutdown()がwolfssl_shutdown()のニーズを満たすことができなかった場合、wolfssl_shutdown()はエラーを返します。この場合、wolfssl_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。その結果、基礎となるI / Oが準備ができたら、呼び出し側プロセスはwolfssl_shutdown()への呼び出しを繰り返す必要があります。 - \return SSL_SUCCESS 成功に戻ります。 - \return SSL_SHUTDOWN_NOT_DONE シャットダウンが終了していない場合は返され、機能を再度呼び出す必要があります。 - \return SSL_FATAL_ERROR 失敗したときに返されます。より具体的なエラーコードに対してwolfssl_get_error()を呼び出します。 + \brief この関数は、引数sslのSSLセッションに対してアクティブなSSL/TLS接続をシャットダウンします。 + この関数は、ピアに"Close Notify"アラートを送信しようとします。 + 呼び出し側アプリケーションは、Peerがその"Close Notify"アラートを応答として送信してくるのを待つか、 + またはwolfSSL_shutdownから呼び出しが戻った時点で(リソースを保存するために)下層の接続を切断するのを待つことができます。 + どちらのオプションもTLS仕様で許されています。シャットダウンした後に下層の接続を再び別のセッションで使用する予定ならば、ピア間で同期を保つために完全な2方向のシャットダウン手順を実行する必要があります。 + wolfSSL_shutdown()は、ブロックとノンブロッキングI/Oの両方で動作します。 + 下層のI/Oがノンブロッキングの場合、wolfSSL_shutdown()が要求を満たすことができなかった場合、wolfSSL_shutdown()はエラーを返します。 + この場合、wolfSSL_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。 + その結果、下層のI/Oが準備ができたら、呼び出し側プロセスはwolfSSL_shutdown()への呼び出しを繰り返す必要があります。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_SHUTDOWN_NOT_DONE シャットダウンが終了していない場合に返され、関数を再度呼び出す必要があります。 + \return SSL_FATAL_ERROR 失敗したときに返されます。より具体的なエラーコードはwolfSSL_get_error()を呼び出します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code #include @@ -1364,13 +1898,23 @@ int wolfSSL_shutdown(WOLFSSL*); /*! \ingroup IO - \brief この関数は、基礎となる書き込み操作のために指定されたフラグを使用して、バッファ、データ、データからSZバイトをSSL接続SSLに書き込みます。必要に応じて、wolfssl_send()がまだwolfssl_connect()またはwolfssl_accept()によってまだ実行されていない場合は、wolfssl_send()がSSL / TLSセッションをネゴシエートします。wolfssl_send()は、ブロックと非ブロッキングI / Oの両方で動作します。基礎となる入出力が非ブロックされていない場合、wolfssl_send()がwolfssl_sendのニーズを満たすことができなかったときにwolfssl_send()が戻ります。この場合、wolfssl_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。その結果、基礎となる入出力が準備ができたら、呼び出し側プロセスはwolfssl_send()への呼び出しを繰り返す必要があります。基礎となる入出力がブロックされている場合、Wolfssl_send()は、サイズSZのバッファデータが完全に書き込まれたかエラーが発生したら、戻るだけです。 - \return >0 成功時に書かれたバイト数。 - \return 0 失敗したときに返されます。特定のエラーコードについてwolfssl_get_error()を呼び出します。 - \return SSL_FATAL_ERROR エラーが発生したとき、または非ブロッキングソケットを使用するときに、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが受信され、再度WOLFSSL_SEND()を呼び出す必要がある場合は、障害が発生します。特定のエラーコードを取得するには、wolfssl_get_error()を使用してください。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 - \param data ピアに送信するデータバッファ。 - \param sz ピアに送信されるデータのサイズ(バイト)。 + \brief この関数は、書き込み操作のために指定されたフラグを使用してバッファあるいはデータから、SSL接続に対して、szバイトを書き込みます。 + 必要に応じて、wolfSSL_send()の呼び出し時点ではまだwolfSSL_connect()またはwolfSSL_accept()がまだ呼び出されていない場合、SSL/TLSセッションをネゴシエートします。 + wolfSSL_send()は、ブロックとノンブロッキングI/Oの両方で動作します。 + 基礎となる入出力がノンブロッキングに設定されている場合、wolfSSL_send()が要求を満たすことができなかったらwolfSSL_send()は関数呼び出しからすぐに戻ります。 + この場合、wolfSSL_get_error()の呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを返します。 + その結果、基礎となるI/Oが準備ができたら、呼び出し側プロセスはwolfSSL_send()への呼び出しを繰り返す必要があります。 + 基礎となる入出力がブロックされている場合、wolfSSL_send()は、サイズSZのバッファデータが完全に書かれたかエラーが発生したら、戻るだけです。 + + \return 成功時には書き込んだバイト数(1以上)を返します。 + \return 0 失敗したときに返されます。特定のエラーコードについてwolfSSL_get_error()を呼び出します。 + \return SSL_FATAL_ERROR エラーが発生したとき、または非ブロッキングソケットを使用するときには、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが受信され、再度WOLFSSL_WRITE()を呼び出す必要がある場合は、障害が発生します。特定のエラーコードを取得するには、wolfSSL_get_error()を使用してください。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param data ピアに送信されるデータを含んでいるバッファへのポインタ。 + \param sz 送信データを含んでいるバッファのサイズ + \param flags 下層のI/Oのsendに対して指定するフラグ + + _Example_ \code WOLFSSL* ssl = 0; @@ -1392,13 +1936,24 @@ int wolfSSL_send(WOLFSSL* ssl, const void* data, int sz, int flags); /*! \ingroup IO - \brief この関数は、基礎となるRECV動作のために指定されたフラグを使用して、SSLセッション(SSL)内部読み取りバッファからSZバイトをバッファデータに読み出します。読み取られたバイトは内部受信バッファから削除されます。この関数はwolfssl_read()と同じです。ただし、アプリケーションが基礎となる読み取り操作のRECVフラグを設定できることを許可します。必要に応じてwolfssl_recv()がwolfssl_connect()またはwolfssl_accept()によってハンドシェイクがまだ実行されていない場合は、SSL / TLSセッションをネゴシエートします。 SSL / TLSプロトコルは、最大サイズのSSLレコードを使用します(最大レコードサイズは /wolfssl/internal.h)。そのため、WolfSSLは、レコードを処理および復号化することができる前に、SSLレコード全体を内部的に読み取る必要があります。このため、wolfssl_recv()への呼び出しは、呼び出し時に復号化された最大バッファサイズを返すことができるだけです。 wolfssl_recv()への次の呼び出しで検索および復号化される内部WolfSSL受信バッファで待機していない追加の復号化されたデータがあるかもしれません。 SZが内部読み取りバッファ内のバイト数よりも大きい場合、SSL_RECV()は内部読み取りバッファで使用可能なバイトを返します。バイトが内部読み取りバッファにバッファされていない場合は、WOLFSSL_RECV()への呼び出しは次のレコードの処理をトリガーします。 - \return >0 成功時に読み取られたバイト数。 - \return 0 失敗したときに返されます。これは、クリーン(通知アラートを閉じる)シャットダウンまたはピアが接続を閉じただけであることによって発生する可能性があります。特定のエラーコードについてwolfssl_get_error()を呼び出します。 - \return SSL_FATAL_ERROR エラーが発生した場合、または非ブロッキングソケットを使用するときには、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが発生し、アプリケーションが再びWOLFSSL_RECV()を呼び出す必要があります。特定のエラーコードを取得するには、wolfssl_get_error()を使用してください。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 - \param data wolfssl_recv()がデータを読み取るバッファー。 + \brief この関数は、基礎となるRECV動作のために指定されたフラグを使用して、SSLセッション(ssl)内部読み取りバッファからszバイトをバッファデータに読み出します。 + 読み取られたバイトは内部受信バッファから削除されます。 + この関数はwolfssl_read()と同じです。 + ただし、アプリケーションが基礎となる読み取り操作のRECVフラグを設定できることを許可します。 + 必要に応じてwolfssl_recv()がwolfssl_connect()またはwolfssl_accept()によってハンドシェイクがまだ実行されていない場合は、SSL/TLSセッションをネゴシエートします。 + SSL/TLSプロトコルは、最大サイズのSSLレコードを使用します(最大レコードサイズは /wolfssl/internal.h)。 + そのため、wolfSSLは、レコードを処理および復号することができる前に、SSLレコード全体を内部的に読み取る必要があります。 + このため、wolfSSL_recv()への呼び出しは、呼び出し時に復号された最大バッファサイズを返すことができるだけです。 + wolfSSL_recv()への次の呼び出しで検索および復号される内部wolfSSL受信バッファで待機していない追加の復号化されたデータがあるかもしれません。 + 引数szが内部読み取りバッファ内のバイト数よりも大きい場合、wolfSSL_recv()は内部読み取りバッファで使用可能なバイトを返します。 + バイトが内部読み取りバッファにバッファされていない場合は、wolfSSL_recv()への呼び出しは次のレコードの処理をトリガーします。 + \return 成功時には読み取られたバイト数(1以上)を返します。 + \return 0 失敗したときに返されます。これは、クリーン(通知アラートを閉じる)シャットダウンまたはピアが接続を閉じただけであることによって発生する可能性があります。特定のエラーコードについてwolfSSL_get_error()を呼び出します。 + \return SSL_FATAL_ERROR エラーが発生した場合、または非ブロッキングソケットを使用するときには、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが発生し、アプリケーションが再びWOLFSSL_RECV()を呼び出す必要があります。特定のエラーコードを取得するには、wolfSSL_get_error()を使用してください。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param data wolfSSL_recv()がデータを読み取るバッファー。 \param sz データを読み込むためのバイト数。 + _Example_ \code WOLFSSL* ssl = 0; @@ -1420,10 +1975,19 @@ int wolfSSL_recv(WOLFSSL* ssl, void* data, int sz, int flags); /*! \ingroup Debug - \brief この関数は、以前のAPI関数呼び出し(wolfssl_connect、wolfssl_accept、wolfssl_read、wolfssl_writeなど)がエラー戻りコード(ssl_failure)を呼び出した理由を表す一意のエラーコードを返します。前の関数の戻り値は、RETを介してwolfssl_get_errorに渡されます。wolfssl_get_errorが呼び出された後、一意のエラーコードを返します、wolfssl_err_error_string()を呼び出して人間が読めるエラー文字列を取得することができます。詳細については、wolfssl_err_error_string()を参照してください。 - \return On 完了成功、この関数は、前のAPI関数が失敗した理由を説明する固有のエラーコードを返します。 - \return SSL_ERROR_NONE RET> 0の場合は返されます.Ret <= 0の場合、以前のAPIがエラーコードを返すが実際に発生しなかった場合にこの値を返す場合があります。例は、ゼロSZパラメータを使用してwolfssl_read()を呼び出すことです。a 0 wolfssl_read()からの戻り値は通常エラーを示しますが、この場合はエラーは発生しませんでした。wolfssl_get_error()がその後呼び出された場合、ssl_error_noneが返されます。 - \param ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 + \brief この関数は、直前のAPI関数呼び出し(wolfssl_connect、wolfssl_accept、wolfssl_read、wolfssl_writeなど)がエラーコード(SSL_FAILURE)を呼び出した理由を表す一意のエラーコードを返します。 + 直前の関数の戻り値は、retを介してwolfSSL_get_errorに渡されます。wolfSSL_get_errorは一意のエラーコードを返します。 + wolfSSL_err_error_string()を呼び出して人間が読めるエラー文字列を取得することができます。 + 詳細については、wolfSSL_err_error_string()を参照してください。 + + \return 呼び出し成功時、この関数は、直前の関数が失敗した理由を説明する固有のエラーコードを返します。 + \return SSL_ERROR_NONE 引数retが0より大きい場合に返されます。retが0以下の場合、直前のAPIがエラーコードを返すが実際に発生しなかった場合にこの値を返す場合があります。 + 例としては、引数szに0を渡してwolfSSL_read()を呼び出す場合に発生します。 + wolfssl_read()が0を戻した場合は通常エラーを示しますが、この場合はエラーは発生していません。 + 従って、wolfSSL_get_error()がその後呼び出された場合、ssl_error_noneが返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code int err = 0; @@ -1445,7 +2009,9 @@ int wolfSSL_get_error(WOLFSSL* ssl, int ret); \ingroup IO \brief この関数はアラート履歴を取得します。 \return SSL_SUCCESS 関数が正常に完了したときに返されます。警告履歴があったか、またはいずれにも、戻り値はSSL_SUCCESSです。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param h WOLFSSL構造体の"alert_history member" の値が格納される、WOLFSSL_ALERT_HISTORY構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new(protocol method); @@ -1461,11 +2027,19 @@ int wolfSSL_get_alert_history(WOLFSSL* ssl, WOLFSSL_ALERT_HISTORY *h); /*! \ingroup Setup - \brief この関数は、SSLオブジェクトSSLがSSL / TLS接続を確立するために使用されるときに使用されるセッションを設定します。セッションの再開の場合、wolfssl_shutdown()をセッションオブジェクトに呼び出す前に、アプリケーションはオブジェクトからwolfssl_get1_session()を呼び出して保存する必要があります。これはセッションへのポインタを返します。後で、アプリケーションは新しいWolfSSLオブジェクトを作成し、保存したセッションをwolfssl_set_session()に割り当てる必要があります。この時点で、アプリケーションはwolfssl_connect()を呼び出し、WolfSSLはセッションを再開しようとします。WolfSSLサーバーコードでは、デフォルトでセッションの再開を許可します。wolfssl_get1_session()によって返されたオブジェクトは、アプリケーションがそれを使用してそれを使用して解放される必要があります。 + \brief この関数は、SSLオブジェクトSSLがSSL/TLS接続を確立する目的で使用するセッションを設定します。 + セッション再開を行う場合、wolfSSL_shutdown()を呼び出す前にwolfSSL_get1_session()を呼び出してセッションオブジェクトを取得し、セッションIDを保存しておく必要があります。 + 後で、アプリケーションは新しいWOLFSSLオブジェクトを作成し、保存したセッションをwolfSSL_set_session()に渡す必要があります。 + その後アプリケーションはwolfSSL_connect()を呼び出し、wolfSSLはセッション再開を試みます。 + wolfSSLサーバーコードでは、デフォルトでセッション再開を許可します。 + wolfSSL_get1_session()によって返されたオブジェクトは、アプリケーションが使用後に解放する必要があります。 + \return SSL_SUCCESS セッションを正常に設定すると返されます。 \return SSL_FAILURE 失敗した場合に返されます。これはセッションキャッシュが無効になっている、またはセッションがタイムアウトした場合によって発生する可能性があります。 - \return When OpenSSL_EXTRAとWOLFSSL_ERROR_CODE_OPENSSLが定義されているため、セッションがタイムアウトしていてもSSL_SUCCESSが返されます。 - \param ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 + \return OPENSSL_EXTRAとWOLFSSL_ERROR_CODE_OPENSSLが定義されている場合には、セッションがタイムアウトしていてもSSL_SUCCESSが返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param session WOLFSSL_SESSION構造体へのポインタ。 + _Example_ \code int ret; @@ -1490,9 +2064,18 @@ int wolfSSL_set_session(WOLFSSL* ssl, WOLFSSL_SESSION* session); /*! \ingroup IO - \brief NO_SESSION_CACHE_REFが定義されている場合、この関数はSSLで使用されている現在のセッション(WolfSSL_SESSION)へのポインタを返します。この関数は、wolfssl_sessionオブジェクトへの永続的なポインタを返します。返されるポインタは、wolfssl_freeが呼び出されたときに解放されます。この呼び出しは、現在のセッションを検査または変更するためにのみ使用されます。セッションの再開の場合は、wolfssl_get1_session()を使用することをお勧めします。NO_SESSION_CACHE_REFが定義されていない場合の後方互換性のために、この関数はローカルキャッシュに格納されている永続セッションオブジェクトポインタを返します。キャッシュサイズは有限であり、アプリケーションがwolfssl_set_session()を呼び出す時までにセッションオブジェクトが別のSSL接続によって上書きされる危険性があります。アプリケーションにNO_SESSION_CACHE_REFを定義し、セッション再開にwolfssl_get1_session()を使用することをお勧めします。 - \return pointer 正常にコールが現在のSSLセッションオブジェクトへのポインタを返します。 - \return NULL SSLがNULLの場合、SSLセッションキャッシュが無効になっている場合、WolfSSLはセッションIDを使用できない、またはミューテックス関数が失敗します。 + \brief NO_SESSION_CACHE_REFが定義されている場合、この関数はSSLで使用されている現在のセッション(WOLFSSL_SESSION)へのポインタを返します。 + この関数は、WOLFSSL_SESSIONオブジェクトへの永続的なポインタを返します。 + 返されるポインタは、wolfSSL_freeが呼び出されたときに解放されます。 + この呼び出しは、現在のセッションを検査または変更するためにのみ使用されます。 + セッション再開に使用する場合は、wolfSSL_get1_session()を使用することをお勧めします。 + NO_SESSION_CACHE_REFが定義されていない場合の後方互換性のために、この関数はローカルキャッシュに格納されている永続セッションオブジェクトポインタを返します。 + キャッシュサイズは有限であり、アプリケーションがwolfSSL_set_session()を呼び出す時までにセッションオブジェクトが別のSSL接続によって上書きされる危険性があります。 + アプリケーションにNO_SESSION_CACHE_REFを定義し、セッション再開にwolfSSL_get1_session()を使用することをお勧めします。 + + \return 現在のSSLセッションオブジェクトへのポインタを返します。 + \return NULL sslがNULLの場合、SSLセッションキャッシュが無効になっている場合、wolfSSLはセッションIDを使用できない、またはミューテックス関数が失敗した場合に返されます。 + _Example_ \code WOLFSSL* ssl; @@ -1511,9 +2094,16 @@ WOLFSSL_SESSION* wolfSSL_get_session(WOLFSSL* ssl); /*! \ingroup IO - \brief この機能は、期限切れになったセッションキャッシュからセッションをフラッシュします。時間比較にはTMが使用されます。WolfSSLは現在セッションに静的テーブルを使用しているため、フラッシングは不要です。そのため、この機能は現在サブだけです。この関数は、wolfsslがOpenSSL互換層でコンパイルされているときのOpenSSL互換性(ssl_flush_sessions)を提供します。 - \return none いいえ返します。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \brief この機能は、期限切れになったセッションキャッシュからセッションをフラッシュします。 + 時間比較には引数tmが使用されます。 + wolfSSLは現在セッションに静的テーブルを使用しているため、フラッシングは不要です。 + そのため、この機能は現在スタブとして存在しています。 + この関数は、wolfsslがOpenSSL互換層でコンパイルされているときのOpenSSL互換性(ssl_flush_sessions)を提供します。 + + \return なし + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + \param tm セッションの有効期限の比較で使用される時間 + _Example_ \code WOLFSSL_CTX* ssl; @@ -1527,12 +2117,15 @@ void wolfSSL_flush_sessions(WOLFSSL_CTX* ctx, long tm); /*! \ingroup TLS - \brief この関数はクライアントセッションをサーバーIDと関連付けます。Newsessionフラグがオンの場合、既存のセッションは再利用されません。 + \brief この関数はクライアントセッションをサーバーIDと関連付けます。引数newSessionがオンの場合、既存のセッションは再利用されません。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。 - \return BAD_FUNC_ARG wolfssl structまたはidパラメータがnullの場合、またはLenがゼロ以下の場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param id wolfssl_session構造体のServerIDメンバーにコピーされる定数バイトポインタ。 - \param len セッションIDパラメータの長さを表すint型。 + \return BAD_FUNC_ARG 引数sslまたは引数idがNULLの場合、または引数lenがゼロ以下の場合に返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param id WOLFSSL_SESSION構造体のServerIDメンバーにコピーされるサーバーIDデータへのポインタ。 + \param len サーバーIDデータのサイズ + \param newSession セッションを再利用するか否かを指定するフラグ。オンの場合、既存のセッションは再利用されません。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol ); @@ -1554,8 +2147,10 @@ int wolfSSL_SetServerID(WOLFSSL* ssl, const unsigned char* id, /*! \ingroup IO - \brief この関数は、WolfSSL構造体のセッションインデックスを取得します。 - \return int この関数は、wolfssl構造体内のSessionIndexを表すint型を返します。 + \brief この関数は、WOLFSSL構造体の指定セッションインデックス値を取得します。 + \return この関数は、WOLFSSL構造体内のSessionIndexを表すint型の値を返します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX_new( protocol method ); @@ -1573,11 +2168,14 @@ int wolfSSL_GetSessionIndex(WOLFSSL* ssl); /*! \ingroup IO - \brief この関数はセッションキャッシュの指定されたインデックスでセッションを取得し、それをメモリにコピーします。wolfssl_session構造体はセッション情報を保持します。 + \brief この関数はセッションキャッシュの指定されたインデックスのセッションを取得し、それをメモリにコピーします。 + WOLFSSL_SESSION構造体はセッション情報を保持します。 \return SSL_SUCCESS 関数が正常に実行され、エラーがスローされなかった場合に返されます。 - \return BAD_MUTEX_E アンロックまたはロックミューテックスエラーが発生した場合は返されます。 + \return BAD_MUTEX_E アンロックまたはロックミューテックスエラーが発生した場合に返されます。 \return SSL_FAILURE 関数が正常に実行されなかった場合に返されます。 - \param idx セッションインデックスを表すint型。 + \param idx セッションインデックス値 + \param session WOLFSSL_SESSION構造体へのポインタ + _Example_ \code int idx; // The index to locate the session. @@ -1595,8 +2193,9 @@ int wolfSSL_GetSessionAtIndex(int index, WOLFSSL_SESSION* session); /*! \ingroup IO - \brief wolfssl_session構造体からピア証明書チェーンを返します。 - \return pointer ピア認証チェーンを含むWOLFSSL_X509_CHAIN構造体へのポインタ。 + \brief WOLFSSL_SESSION構造体からピア証明書チェーンを返します。 + \param session WOLFSSL_SESSION構造体へのポインタ + _Example_ \code WOLFSSL_SESSION* session; @@ -1616,10 +2215,30 @@ int wolfSSL_GetSessionAtIndex(int index, WOLFSSL_SESSION* session); /*! \ingroup Setup - \brief この関数はリモートピアの検証方法を設定し、またSSLコンテキストに登録されることを確認することもできます。検証コールバックは、検証障害が発生した場合にのみ呼び出されます。検証コールバックが必要な場合は、NULLポインタをverify_callbackに使用できます。ピア証明書の検証モードは、論理的またはフラグのリストです。可能なフラグ値は次のとおりです.SSL_VERIFY_NONEクライアントモード:クライアントはサーバーから受信した証明書を検証せず、ハンドシェイクは通常どおり続きます。サーバーモード:サーバーはクライアントに証明書要求を送信しません。そのため、クライアント検証は有効になりません。 ssl_verify_peerクライアントモード:クライアントはハンドシェイク中にサーバーから受信した証明書を検証します。これはwolfsslではデフォルトでオンにされます。したがって、このオプションを使用すると効果がありません。サーバーモード:サーバーは証明書要求をクライアントに送信し、受信したクライアント証明書を確認します。 ssl_verify_fail_if_no_peer_certクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:要求されたときにクライアントが証明書の送信に失敗した場合は、サーバー側で検証が失敗します(SSLサーバーのSSL_VERIFY_PEERを使用する場合)。 ssl_verify_fail_except_pskクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:PSK接続の場合を除き、検証はssl_verify_fail_if_no_peer_certと同じです。 PSK接続が行われている場合、接続はピア証明書なしで通過します。 - \return none 返品不可。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 - \param mode セッションタイムアウト値(秒) + \brief この関数はリモートピアの検証方法を設定し、また証明書検証コールバック関数をSSLコンテキストに登録することもできます。 + 検証コールバックは、検証障害が発生した場合にのみ呼び出されます。 + 検証コールバックが必要な場合は、NULLポインタをverify_callbackに使用できます。 + ピア証明書の検証モードは、論理的またはフラグのリストです。 + 可能なフラグ値は次のとおりです:
+ SSL_VERIFY_NONE
+ -クライアントモード:クライアントはサーバーから受信した証明書を検証せず、ハンドシェイクは通常どおり続きます。
+ -サーバーモード:サーバーはクライアントに証明書要求を送信しません。そのため、クライアント検証は有効になりません。
+ SSL_VERIFY_PEER
+ -クライアントモード:クライアントはハンドシェイク中にサーバーから受信した証明書を検証します。これはwolfSSLではデフォルトでオンにされます。したがって、このオプションを使用すると効果がありません。
+ -サーバーモード:サーバーは証明書要求をクライアントに送信し、受信したクライアント証明書を確認します。
+ SSL_VERIFY_FAIL_IF_NO_PEER_CERT
+ -クライアントモード:クライアント側で使用されていない場合は効果がありません。
+ -サーバーモード:要求されたときにクライアントが証明書の送信に失敗した場合は、サーバー側で検証が失敗します(SSLサーバーのSSL_VERIFY_PEERを使用する場合)。
+ SSL_VERIFY_FAIL_EXCEPT_PSK
+ -クライアントモード:クライアント側で使用されていない場合は効果がありません。
+ -サーバーモード:PSK接続の場合を除き、検証はSSL_VERIFY_FAIL_IF_NO_PEER_CERTと同じです。 PSK接続が行われている場合、接続はピア証明書なしで通過します。
+ + \return なし + + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + \param mode ピアの証明書をどのように検証するかを示すフラグ値 + \param verify_callback 証明書検証が失敗した際に呼び出されるコールバック関数。必要がないならNULLを指定すること。 + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -1634,10 +2253,30 @@ void wolfSSL_CTX_set_verify(WOLFSSL_CTX* ctx, int mode, /*! \ingroup Setup - \brief この関数はリモートピアの検証方法を設定し、またSSLセッションに登録するのを登録することもできます。検証コールバックは、検証障害が発生した場合にのみ呼び出されます。検証コールバックが必要な場合は、NULLポインタをverify_callbackに使用できます。ピア証明書の検証モードは、論理的またはフラグのリストです。可能なフラグ値は次のとおりです.SSL_VERIFY_NONEクライアントモード:クライアントはサーバーから受信した証明書を検証せず、ハンドシェイクは通常どおり続きます。サーバーモード:サーバーはクライアントに証明書要求を送信しません。そのため、クライアント検証は有効になりません。 ssl_verify_peerクライアントモード:クライアントはハンドシェイク中にサーバーから受信した証明書を検証します。これはwolfsslではデフォルトでオンにされます。したがって、このオプションを使用すると効果がありません。サーバーモード:サーバーは証明書要求をクライアントに送信し、受信したクライアント証明書を確認します。 ssl_verify_fail_if_no_peer_certクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:要求されたときにクライアントが証明書の送信に失敗した場合は、サーバー側で検証が失敗します(SSLサーバーのSSL_VERIFY_PEERを使用する場合)。 ssl_verify_fail_except_pskクライアントモード:クライアント側で使用されていない場合は効果がありません。サーバーモード:PSK接続の場合を除き、検証はssl_verify_fail_if_no_peer_certと同じです。 PSK接続が行われている場合、接続はピア証明書なしで通過します。 - \return none 返品不可。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 - \param mode セッションタイムアウト値(秒単位)。 + \brief この関数はリモートピアの検証方法を設定し、また証明書検証コールバック関数をWOLFSSLオブジェクトに登録することもできます。 + 検証コールバックは、検証障害が発生した場合にのみ呼び出されます。 + 検証コールバックが必要な場合は、NULLポインタをverify_callbackに使用できます。 + ピア証明書の検証モードは、論理的またはフラグのリストです。 + 可能なフラグ値は次のとおりです:
+ SSL_VERIFY_NONE
+ -クライアントモード:クライアントはサーバーから受信した証明書を検証せず、ハンドシェイクは通常どおり続きます。
+ -サーバーモード:サーバーはクライアントに証明書要求を送信しません。そのため、クライアント検証は有効になりません。
+ SSL_VERIFY_PEER
+ -クライアントモード:クライアントはハンドシェイク中にサーバーから受信した証明書を検証します。これはwolfSSLではデフォルトでオンにされます。したがって、このオプションを使用すると効果がありません。
+ -サーバーモード:サーバーは証明書要求をクライアントに送信し、受信したクライアント証明書を確認します。
+ SSL_VERIFY_FAIL_IF_NO_PEER_CERT
+ -クライアントモード:クライアント側で使用されていない場合は効果がありません。
+ -サーバーモード:要求されたときにクライアントが証明書の送信に失敗した場合は、サーバー側で検証が失敗します(SSLサーバーのSSL_VERIFY_PEERを使用する場合)。
+ SSL_VERIFY_FAIL_EXCEPT_PSK
+ -クライアントモード:クライアント側で使用されていない場合は効果がありません。
+ -サーバーモード:PSK接続の場合を除き、検証はSSL_VERIFY_FAIL_IF_NO_PEER_CERTと同じです。 PSK接続が行われている場合、接続はピア証明書なしで通過します。
+ + \return なし + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param mode ピアの証明書をどのように検証するかを示すフラグ値 + \param verify_callback 証明書検証が失敗した際に呼び出されるコールバック関数。必要がないならNULLを指定すること。 + _Example_ \code WOLFSSL* ssl = 0; @@ -1651,8 +2290,11 @@ void wolfSSL_set_verify(WOLFSSL* ssl, int mode, VerifyCallback verify_callback); /*! \ingroup CertsKeys \brief この関数は、検証コールバックのためのユーザーCTXオブジェクト情報を格納します。 - \return none 返品不可。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return なし + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param ctx ボイドポインタ。WOLFSSL構造体のverifyCbCtx メンバーにセットされます。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -1674,8 +2316,10 @@ void wolfSSL_SetCertCbCtx(WOLFSSL* ssl, void* ctx); /*! \ingroup CertsKeys \brief この関数は、検証コールバックのためのユーザーCTXオブジェクト情報を格納します。 - \return none 返品不可。 - \param ctx wolfssl_ctx構造へのポインタ。 + \return なし + \param ctx WOLFSSL_CTX構造体へのポインタ。 + \param ctx ボイドポインタ。WOLFSSL_CTX構造体のverifyCbCtx メンバーにセットされます。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -1695,8 +2339,10 @@ void wolfSSL_CTX_SetCertCbCtx(WOLFSSL_CTX* ctx, void* userCtx); /*! \ingroup IO - \brief この関数は、wolfssl_read()によって読み取られるSSLオブジェクトでバッファされているバイト数を返します。 - \return int この関数は、保留中のバイト数を返します。 + \brief この関数は、wolfSSL_read()によって読み取られるWOLFSSLオブジェクトでバッファされているバイト数を返します。 + \return この関数は、保留中のバイト数を返します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code int pending = 0; @@ -1714,8 +2360,10 @@ int wolfSSL_pending(WOLFSSL*); /*! \ingroup Debug - \brief この機能はOpenSSL互換性(SSL_LOAD_ERROR_STRING)のみであり、アクションを取ります。 - \return none いいえ返します。 + \brief この機能はOpenSSL API(SSL_load_error_string)との互換性の目的みで提供してあり処理は行いません。 + \return なし + \param なし + _Example_ \code wolfSSL_load_error_strings(); @@ -1730,9 +2378,13 @@ void wolfSSL_load_error_strings(void); /*! \ingroup TLS - \brief この関数はwolfssl_ctx_new()内で内部的に呼び出されます。この関数はwolfssl_init()の周囲のラッパーで、wolfsslがOpenSSL互換層でコンパイルされたときにOpenSSL互換性(ssl_library_init)に存在します。wolfssl_init()は、より一般的に使用されているWolfSSL初期化機能です。 - \return SSL_SUCCESS 成功した場合、通話が戻ります。 + \brief この関数はwolfSSL_CTX_new()内で内部的に呼び出されます。 + この関数はwolfSSL_Init()のラッパーで、wolfSSLがOpenSSL互換層でコンパイルされたときのOpenSSL API(ssl_library_init)との互換性の為に存在します。 + wolfSSL_init()は、より一般的に使用されているwolfSSL初期化機能です。 + + \return SSL_SUCCESS 成功した場合に返されます。に返されます。 \return SSL_FATAL_ERROR 失敗したときに返されます。 + _Example_ \code int ret = 0; @@ -1748,10 +2400,12 @@ void wolfSSL_load_error_strings(void); int wolfSSL_library_init(void); /*! - \brief - \return WOLFSSL_SUCCESS 成功すると。 - \return BAD_FUNC_ARG SSLがNULLの場合 - \param ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 + \brief この関数はWOLFSSLオブジェクトレベルでDevice Idをセットします。 + \return WOLFSSL_SUCCESS 成功時に返されます。 + \return BAD_FUNC_ARG sslがNULLの場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param devId ハードウエアと共に使用する際に指定するID + _Example_ \code WOLFSSL* ssl; @@ -1766,10 +2420,14 @@ int wolfSSL_library_init(void); int wolfSSL_SetDevId(WOLFSSL* ssl, int devId); /*! - \brief - \return WOLFSSL_SUCCESS 成功すると。 - \return BAD_FUNC_ARG SSLがNULLの場合 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \brief この関数はWOLFSSL_CTXレベルでDevice Idをセットします。 + + \return WOLFSSL_SUCCESS 成功時に返されます。 + \return BAD_FUNC_ARG sslがNULLの場合に返されます。 + + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + \param devId ハードウエアと共に使用する際に指定するID + _Example_ \code WOLFSSL_CTX* ctx; @@ -1784,10 +2442,12 @@ int wolfSSL_SetDevId(WOLFSSL* ssl, int devId); int wolfSSL_CTX_SetDevId(WOLFSSL_CTX* ctx, int devId); /*! - \brief - \return devId 成功すると。 - \return INVALID_DEVID SSLとCTXの両方がNULLの場合。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \brief この関数はWOLFSSL_CTXレベルでDevice Idを取得します。 + \return devId 成功時に返されます。 + \return INVALID_DEVID SSLとCTXの両方がNULLの場合に返されます。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL_CTX* ctx; @@ -1802,9 +2462,16 @@ int wolfSSL_CTX_GetDevId(WOLFSSL_CTX* ctx, WOLFSSL* ssl); /*! \ingroup Setup - \brief この関数はSSLセッションキャッシュを有効または無効にします。動作はモードに使用される値によって異なります。モードの値は次のとおりです.SSL_SESS_CACHE_OFF - セッションキャッシングを無効にします。デフォルトでセッションキャッシングがオンになっています。SSL_SESS_CACHE_NO_AUTO_CLEAR - セッションキャッシュのオートフラッシュを無効にします。デフォルトで自動フラッシングはオンになっています。 + \brief この関数はSSLセッションキャッシュ機能を有効または無効にします。 + 動作はモードに使用される値によって異なります。 + モードの値は次のとおりです: + SSL_SESS_CACHE_OFF - セッションキャッシングを無効にします。デフォルトでセッションキャッシングがオンになっています。 + SSL_SESS_CACHE_NO_AUTO_CLEAR - セッションキャッシュのオートフラッシュを無効にします。デフォルトで自動フラッシングはオンになっています。 + \return SSL_SUCCESS 成功に戻ります。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + \param mode セッションキャッシュの振る舞いを変更する為に使用します。 + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -1823,10 +2490,15 @@ int wolfSSL_CTX_GetDevId(WOLFSSL_CTX* ctx, WOLFSSL* ssl); long wolfSSL_CTX_set_session_cache_mode(WOLFSSL_CTX* ctx, long mode); /*! - \brief SessionSecRETCBタイプには、署名があります。int(* sessioneCretcb)(wolfssl * ssl、void * secret、int * secretsz、void * ctx)。WolfSSL構造体のSESSIONSECRETCBメンバーはパラメータCBに設定されています。 + \brief この関数はセッションシークレットコールバック関数をセットします。 + SessionSecretCbタイプは次のシグネチャとなっています:int(* sessioneCretcb)(wolfssl * ssl、void * secret、int * secretsz、void * ctx)。 + WOLFSSL構造体のsessionSecretCbメンバーは引数cbに設定されます。 \return SSL_SUCCESS 関数の実行がエラーを返されなかった場合に返されます。 - \return SSL_FATAL_ERROR WolfSSL構造がNULLの場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return SSL_FATAL_ERROR WOLFSSL構造がNULLの場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param cb セッションシークレットコールバック関数ポインタ。 + \param ctx セッションシークレットコールバック関数に渡されるユーザーコンテキスト。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -1845,11 +2517,13 @@ int wolfSSL_set_session_secret_cb(WOLFSSL* ssl, SessionSecretCb cb, void* ctx); /*! \ingroup IO - \brief この関数はセッションキャッシュをファイルに持続します。追加のメモリ使用のため、MEMSAVEは使用されません。 + \brief この関数はセッションキャッシュをファイルに持続します。追加のメモリ使用のため、memsaveは使用されません。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。セッションキャッシュはファイルに書き込まれました。 \return SSL_BAD_FILE FNAMEを開くことができないか、それ以外の場合は破損した場合に返されます。 \return FWRITE_ERROR XfWriteがファイルへの書き込みに失敗した場合に返されます。 - \return BAD_MUTEX_E ミューテックスロック障害が発生した場合は返されます。 + \return BAD_MUTEX_E ミューテックスロック障害が発生した場合に返されます。 + \param fname 書き込み対象ファイル名へのポインタ。 + _Example_ \code const char* fname; @@ -1862,16 +2536,19 @@ int wolfSSL_set_session_secret_cb(WOLFSSL* ssl, SessionSecretCb cb, void* ctx); \sa wolfSSL_restore_session_cache \sa wolfSSL_memrestore_session_cache */ -int wolfSSL_save_session_cache(const char*); +int wolfSSL_save_session_cache(const char* fname); /*! \ingroup IO - \brief この関数はファイルから永続セッションキャッシュを復元します。追加のメモリ使用のため、MEMSTOREは使用しません。 + \brief この関数はファイルから永続セッションキャッシュを復元します。追加のメモリ使用のため、memstoreは使用しません。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。 \return SSL_BAD_FILE 関数に渡されたファイルが破損していてXFOPENによって開くことができなかった場合に返されます。 - \return FREAD_ERROR ファイルにXFREADから読み取りエラーが発生した場合は返されます。 + \return FREAD_ERROR ファイルにXFREADから読み取りエラーが発生した場合に返されます。 \return CACHE_MATCH_ERROR セッションキャッシュヘッダの一致が失敗した場合に返されます。 - \return BAD_MUTEX_E ミューテックスロック障害が発生した場合は返されます。 + \return BAD_MUTEX_E ミューテックスロック障害が発生した場合に返されます。 + \param fname キャシュを読み取るためのファイル名へのポインタ。 + + _Example_ \code const char *fname; @@ -1883,15 +2560,17 @@ int wolfSSL_save_session_cache(const char*); \sa XFREAD \sa XFOPEN */ -int wolfSSL_restore_session_cache(const char*); +int wolfSSL_restore_session_cache(const char* fname); /*! \ingroup IO \brief この関数はセッションキャッシュをメモリに保持します。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。セッションキャッシュはメモリに正常に永続化されました。 - \return BAD_MUTEX_E ミューテックスロックエラーが発生した場合は返されます。 + \return BAD_MUTEX_E ミューテックスロックエラーが発生した場合に返されます。 \return BUFFER_E バッファサイズが小さすぎると返されます。 - \param mem メモリコピーxmemcpy()の宛先を表すvoidポインタ。 + \param mem セッションキャッシュのコピー先バッファへのポインタ + \param sz コピー先バッファのサイズ + _Example_ \code void* mem; @@ -1913,7 +2592,9 @@ int wolfSSL_memsave_session_cache(void* mem, int sz); \return BUFFER_E メモリバッファが小さすぎると返されます。 \return BAD_MUTEX_E セッションキャッシュミューテックスロックが失敗した場合に返されます。 \return CACHE_MATCH_ERROR セッションキャッシュヘッダの一致が失敗した場合に返されます。 - \param mem 復元の原因を含む定数のボイドポインタ。 + \param mem セッションキャッシュを保持しているバッファへのポインタ。 + \param sz バッファのサイズ + _Example_ \code const void* memoryFile; @@ -1930,7 +2611,8 @@ int wolfSSL_memrestore_session_cache(const void* mem, int sz); /*! \ingroup IO \brief この関数は、セッションキャッシュ保存バッファをどのように大きくするかを返します。 - \return int この関数は、セッションキャッシュ保存バッファのサイズを表す整数を返します。 + \return この関数は、セッションキャッシュ保存バッファのサイズを表す整数を返します。 + _Example_ \code int sz = // Minimum size for error checking; @@ -1952,7 +2634,9 @@ int wolfSSL_get_session_cache_memsize(void); \return BAD_MUTEX_E ロックミューテックスが失敗した場合 \return MEMORY_E メモリの割り当てに失敗しました。 \return FWRITE_ERROR 証明書キャッシュファイルの書き込みに失敗しました。 - \param ctx wolfssl_ctx構造へのポインタ、証明書情報を保持します。 + \param ctx WOLFSSL_CTX構造体へのポインタ、証明書情報を保持します。 + \param fname 出力先ファイル名へのポインタ + _Example_ \code WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol def ); @@ -1970,11 +2654,13 @@ int wolfSSL_CTX_save_cert_cache(WOLFSSL_CTX* ctx, const char* fname); /*! \ingroup CertsKeys \brief この関数はファイルから証明書キャッシュを担当します。 - \return SSL_SUCCESS 関数cm_restorecertcacheが正常に実行された場合に返されます。 - \return SSL_BAD_FILE xfopenがxbadfileを返すと返されます。ファイルが破損しています。 + \return SSL_SUCCESS 正常に実行された場合に返されます。 + \return SSL_BAD_FILE XFOPENがXBADFILEを返すと返されます。ファイルが破損しています。 \return MEMORY_E TEMPバッファの割り当てられたメモリが失敗した場合に返されます。 - \return BAD_FUNC_ARG FNAMEまたはCTXにNULL値がある場合は返されます。 - \param ctx wolfssl_ctx構造へのポインタ、証明書情報を保持します。 + \return BAD_FUNC_ARG 引数fnameまたは引数ctxがNULLである場合に返されます。 + \param ctx WOLFSSL_CTX構造体へのポインタ、証明書情報を保持します。 + \param fname 証明書キャッシュを読み取るファイル名へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -1994,12 +2680,14 @@ int wolfSSL_CTX_restore_cert_cache(WOLFSSL_CTX* ctx, const char* fname); \ingroup CertsKeys \brief この関数は証明書キャッシュをメモリに持続します。 \return SSL_SUCCESS 機能の実行に成功したことに戻ります。エラーが投げられていません。 - \return BAD_MUTEX_E wolfssl_cert_managerメンバーのカーボックが0(ゼロ)ではなかったミューテックスエラー。 - \return BAD_FUNC_ARG CTX、MEM、または使用がNULLの場合、またはSZが0以下の場合(0(ゼロ)。 + \return BAD_MUTEX_E WOLFSSL_CERT_MANAGER構造体のcaLockメンバー0(ゼロ)ではなかった。 + \return BAD_FUNC_ARG 引数ctx、memがNULLの場合、またはszが0以下の場合に返されます。 \return BUFFER_E 出力バッファMEMが小さすぎました。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 \param mem 宛先へのvoidポインタ(出力バッファ)。 \param sz 出力バッファのサイズ。 + \param used 証明書キャッシュヘッダーのサイズを格納する変数へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol ); @@ -2026,8 +2714,10 @@ int wolfSSL_CTX_memsave_cert_cache(WOLFSSL_CTX* ctx, void* mem, int sz, int* us \return BUFFER_E CERTキャッシュメモリバッファが小さすぎると戻ります。 \return CACHE_MATCH_ERROR CERTキャッシュヘッダーの不一致があった場合に返されます。 \return BAD_MUTEX_E ロックミューテックスが失敗した場合に返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 - \param mem 証明書キャッシュに復元される値を持つvoidポインタ。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + \param mem 証明書キャッシュに復元される値を保持しているバッファへのポインタ。 + \param sz バッファのサイズ + _Example_ \code WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol method ); @@ -2046,9 +2736,12 @@ int wolfSSL_CTX_memrestore_cert_cache(WOLFSSL_CTX* ctx, const void* mem, int sz /*! \ingroup CertsKeys \brief Certificate Cache Saveバッファが必要なサイズを返します。 - \return int 成功したときにメモリサイズを表す整数値。 - \return BAD_FUNC_ARG wolfssl_ctx構造体がNULLの場合に返されます。 - \return BAD_MUTEX_E - ミューテックスロックエラーが発生した場合は返されます。 + \return メモリサイズを返します。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造体がNULLの場合に返されます。 + \return BAD_MUTEX_E ミューテックスロックエラーが発生した場合に返されます。 + + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = WOLFSSL_CTX_new(protocol); @@ -2061,14 +2754,25 @@ int wolfSSL_CTX_memrestore_cert_cache(WOLFSSL_CTX* ctx, const void* mem, int sz \endcode \sa CM_GetCertCacheMemSize */ -int wolfSSL_CTX_get_cert_cache_memsize(WOLFSSL_CTX*); +int wolfSSL_CTX_get_cert_cache_memsize(WOLFSSL_CTX* ctx); /*! \ingroup Setup - \brief この関数は、与えられたwolfssl_ctxの暗号スイートリストを設定します。このCipher Suiteリストは、このコンテキストを使用して作成された新しいSSLセッション(WolfSSL)のデフォルトリストになります。リスト内の暗号は、最高から最低への好みの順にソートされるべきです。wolfssl_ctx_set_cipher_list()の各呼び出しは、関数が呼び出されるたびに、特定のSSLコンテキストの暗号スイートリストを提供されたリストにリセットします。暗号スイートリスト、リストは、ヌル終端テキスト文字列、およびコロン区切りリストです。たとえば、リストの値が「DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256」有効な暗号値は、src / internal.cのcipher_names []配列のフルネーム値です。(有効な暗号化値の明確なリストの場合はsrc / internal.cをチェックしてください) - \return SSL_SUCCESS 機能完了に成功したときに返されます。 + \brief この関数は、与えられたWOLFSSL_CTXに暗号スイートリストを設定します。 + この暗号スイートリストは、このコンテキストを使用して作成された新しいSSLセッション(WolfSSL)のデフォルトリストになります。 + リスト内の暗号は、優先度の高いものの順に順にソートされるべきです。 + wolfSSL_CTX_set_cipher_list()が呼び出される都度、特定のSSLコンテキストの暗号スイートリストを提供されたリストにリセットします。 + 暗号スイートリストはヌル終端されたコロン区切りリストです。 + たとえば、リストの値が「DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256」有効な暗号値は、src/internal.cのcipher_names []配列のフルネーム値です。 + (有効な暗号化値の明確なリストの場合はsrc/internal.cをチェックしてください) + + \return SSL_SUCCESS 成功時に返されます。 \return SSL_FAILURE 失敗した場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + \param list ヌル終端されたコロン区切りの暗号スイートリスト文字列へのポインタ。 + + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -2086,10 +2790,20 @@ int wolfSSL_CTX_set_cipher_list(WOLFSSL_CTX* ctx, const char* list); /*! \ingroup Setup - \brief この関数は、特定のWolfSSLオブジェクト(SSLセッション)の暗号スイートリストを設定します。リスト内の暗号は、最高から最低への好みの順にソートされるべきです。wolfssl_set_cipher_list()の各呼び出しは、関数が呼び出されるたびに、特定のSSLセッションの暗号スイートリストを提供されたリストにリセットします。暗号スイートリスト、リストは、ヌル終端テキスト文字列、およびコロン区切りリストです。例えば、リストのための1つの値は、「DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256」であり得る。有効な暗号化値は、src / internal.c(有効な暗号化値の明確なリストのリストの場合はsrc / internal.cを指定してください)のcipher_names []配列のフルネーム値です。 + \brief この関数は、特定のWolfSSLオブジェクト(SSLセッション)の暗号スイートリストを設定します。 + この暗号スイートリストは、このコンテキストを使用して作成された新しいSSLセッション(WolfSSL)のデフォルトリストになります。 + リスト内の暗号は、優先度の高いものの順に順にソートされるべきです。 + wolfSSL_CTX_set_cipher_list()が呼び出される都度、特定のSSLコンテキストの暗号スイートリストを提供されたリストにリセットします。 + 暗号スイートリストはヌル終端されたコロン区切りリストです。 + たとえば、リストの値が「DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256」有効な暗号値は、src/internal.cのcipher_names []配列のフルネーム値です。 + (有効な暗号化値の明確なリストの場合はsrc/internal.cをチェックしてください) + \return SSL_SUCCESS 機能完了に成功したときに返されます。 \return SSL_FAILURE 失敗した場合に返されます。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param list ヌル終端されたコロン区切りの暗号スイートリスト文字列へのポインタ。 + _Example_ \code int ret = 0; @@ -2107,9 +2821,14 @@ int wolfSSL_CTX_set_cipher_list(WOLFSSL_CTX* ctx, const char* list); int wolfSSL_set_cipher_list(WOLFSSL* ssl, const char* list); /*! - \brief UDP I / Oはノンブロッキングです。アプリケーションがWolfSSLオブジェクトを作成した後、ブロックされていないUDPソケットで使用される場合は、WolfsSL_DTLS_SET_USING_NONBLOCK()を呼び出します。これにより、wolfsslオブジェクトは、Ewouldblockを受信することを意味します。 - \return none 返品不可。 - \param ssl wolfssl_new()で作成されたDTLSセッションへのポインタ。 + \brief この関数はWOLFSSL DTLSオブジェクトに下層のUDP I/Oはノンブロッキングであることを通知します。 + アプリケーションがWOLFSSLオブジェクトを作成した後、ノンブロッキングUDPソケットを使用する場合は、wolfSSL_dtls_set_using_nonblock()を呼び出します。 + これにより、WOLFSSLオブジェクトは、recvfrom呼び出しがタイムアウトせずにEWOULDBLOCKを受信することを意味します。 + \return なし + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param nonblock WOLFSSL構造体にノンブロッキングI/Oを使用していることを指定するフラグ。ノンブロッキングを使用している場合には1を指定、それ以外は0を指定してください。 + + _Example_ \code WOLFSSL* ssl = 0; @@ -2122,9 +2841,14 @@ int wolfSSL_set_cipher_list(WOLFSSL* ssl, const char* list); */ void wolfSSL_dtls_set_using_nonblock(WOLFSSL* ssl, int nonblock); /*! - \brief UDPを使用して非ブロッキングI / Oを使用する。WolfSSLがノンブロッキングI / Oを使用している場合、この関数は1を返します。これにより、wolfsslオブジェクトは、Ewouldblockを受信することを意味します。この機能はDTLSセッションにとってのみ意味があります。 - \return 0 基礎となるI / Oがブロックされています。 - \return 1 基礎となるI / Oは非ブロッキングです。 + \brief この関数はWOLFSSL DTLSオブジェクトが下層にUDPノンブロッキングI/Oを使用しているか否かを取得します。 + WOLFSSLオブジェクトがノンブロッキングI/Oを使用している場合、この関数は1を返します。 + これにより、WOLFSSLオブジェクトは、EWOULDBLOCKを受信することを意味します。 + この機能はDTLSセッションにとってのみ意味があります。 + \return 0 基礎となるI/Oがブロックされています。 + \return 1 基礎となるI/Oはノンブロッキングです。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code int ret = 0; @@ -2140,11 +2864,15 @@ void wolfSSL_dtls_set_using_nonblock(WOLFSSL* ssl, int nonblock); \sa wolfSSL_dtls_got_timeout \sa wolfSSL_dtls_set_using_nonblock */ -int wolfSSL_dtls_get_using_nonblock(WOLFSSL*); +int wolfSSL_dtls_get_using_nonblock(WOLFSSL* ssl); /*! - \brief wolfsslオブジェクト。遮断されていないソケットを使用する場合、ユーザーコード内の何かは、利用可能なRECVデータをチェックするときにいつでも待機しているのかを決定する必要があります。この関数によって返される値は、アプリケーションがどのくらい待機するかを示します。 + \brief この関数は現在のタイムアウト値を秒単位で返します。 + ノンブロッキングソケットを使用する場合、ユーザーコードでは、利用可能なrecvVデータの到着をチェックするタイミングや待つべき時間を知る必要があります。 + この関数によって返される値は、アプリケーションがどのくらい待機するかを示します。 \return seconds 現在のDTLSタイムアウト値(秒) - \return NOT_COMPILED_IN WolfSSLがDTLSサポートで構築されていない場合。 + \return NOT_COMPILED_IN wolfSSLがDTLSサポートで構築されていない場合。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code int timeout = 0; @@ -2160,12 +2888,53 @@ int wolfSSL_dtls_get_using_nonblock(WOLFSSL*); */ int wolfSSL_dtls_get_current_timeout(WOLFSSL* ssl); +/*! + \brief この関数はアプリケーションがより早いタイムアウト時間を設定する必要がある場合にtrueを返します。 + ノンブロッキングソケットを使用する場合でユーザーコードで受信データが到着しているか何時チェックするか、 + あるいはどのくらいの時間待てばよいのかを決める必要があります。 + この関数が true を返した場合、ライブラリはすでに通信の中断を検出しましたが、 + 他のピアからのメッセージがまだ送信中の場合に備えて、もう少し待機する必要があることを意味します。 + このタイマーの値を微調整するのはアプリケーション次第ですが、dtls_get_current_timeout()/4が最適です。 + + \return true アプリケーションがより早いタイムアウトを設定する必要がある場合に返されます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + + \sa wolfSSL_dtls + \sa wolfSSL_dtls_get_peer + \sa wolfSSL_dtls_got_timeout + \sa wolfSSL_dtls_set_peer + \sa wolfSSL_dtls13_set_send_more_acks +*/ +int wolfSSL_dtls13_use_quick_timeout(WOLFSSL *ssl); +/*! + \ingroup Setup + + \brief この関数は、ライブラリが中断を検出したときにすぐに他のピアにACKを送信するかどうかを設定します。 + ACKをすぐに送信すると、遅延は最小限に抑えられますが、必要以上に多くの帯域幅が消費される可能性があります。 + アプリケーションが独自にタイマーを管理しており、このオプションが0に設定されている場合、 + アプリケーションコードはwolfSSL_dtls13_use_quick_timeout()を使用して、 + 遅延したACKを送信するためにより速いタイムアウトを設定する必要があるかどうかを判断できます。 + + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param value 設定を行う場合には1を行わない場合には0を設定します。 + + \sa wolfSSL_dtls + \sa wolfSSL_dtls_get_peer + \sa wolfSSL_dtls_got_timeout + \sa wolfSSL_dtls_set_peer + \sa wolfSSL_dtls13_use_quick_timeout +*/ +void wolfSSL_dtls13_set_send_more_acks(WOLFSSL *ssl, int value); + /*! \ingroup Setup \brief この関数はDTLSタイムアウトを設定します。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。SSLのDTLS_TIMEOUT_INITとDTLS_TIMEOUTメンバーが設定されています。 - \return BAD_FUNC_ARG wolfssl structがnullの場合、またはタイムアウトが0以下の場合に返されます。タイムアウト引数が許可されている最大値を超えると、戻ります。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return BAD_FUNC_ARG 引数sslがNULLの場合、またはタイムアウトが0以下の場合に返されます。タイムアウト引数が許可されている最大値を超えている場合にも返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param value タイムアウトオプションを有効にする場合には1を指定し、無効にする場合には0を指定します。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -2187,7 +2956,9 @@ int wolfSSL_dtls_set_timeout_init(WOLFSSL* ssl, int); \brief \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。 \return BAD_FUNC_ARG wolfssl構造体がNULLの場合、またはTIMEOUT引数がゼロ以下である場合、またはWolfSSL構造体のDTLS_TIMEOUT_INITメンバーよりも小さい場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param timeout 最大タイムアウト時間 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -2205,10 +2976,13 @@ int wolfSSL_dtls_set_timeout_init(WOLFSSL* ssl, int); int wolfSSL_dtls_set_timeout_max(WOLFSSL* ssl, int); /*! - \brief 制御コードが送信がタイムアウトしたと考えると、WolfSSLオブジェクトで呼び出されます。タイムアウト値の調整を含む、最後の送信を再試行するために必要な操作を実行します。長すぎると、これは失敗を返します。 - \return SSL_SUCCESS 成功に戻ります + \brief DTLSでノンブロッキングソケットを使用する場合、この関数は送信がタイムアウトしたと考えられる場合に呼び出される必要があります。 + タイムアウト値の調整など、最後の送信を再試行するために必要なアクションを実行します。 時間がかかりすぎると、失敗が返されます。 + + \return SSL_SUCCESS 成功時に戻ります \return SSL_FATAL_ERROR ピアからの応答を得ることなく、再送信/タイムアウトが多すぎる場合に返されます。 - \return NOT_COMPILED_IN WolfSSLがDTLSサポートでコンパイルされていない場合は返されます。 + \return NOT_COMPILED_IN wolfSSLがDTLSサポートでコンパイルされていない場合に返されます。 + _Example_ \code See the following files for usage examples: @@ -2223,9 +2997,32 @@ int wolfSSL_dtls_set_timeout_max(WOLFSSL* ssl, int); int wolfSSL_dtls_got_timeout(WOLFSSL* ssl); /*! - \brief DTLSを使用するように構成されています。 + \brief DTLSでノンブロッキングソケットを使用する場合、この関数は予想されるタイムアウト値と再送信回数を無視して最後のハンドシェイクフライトを再送信します。 + これは、DTLSを使用しており、タイムアウトや再試行回数も管理する必要があるアプリケーションに役立ちます。 + + \return SSL_SUCCESS 成功時に戻ります + \return SSL_FATAL_ERROR ピアからの応答が得られないまま再送信/タイムアウトが多すぎる場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + + _Example_ + \code + int ret = 0; + WOLFSSL* ssl; + ... + ret = wolfSSL_dtls_retransmit(ssl); + \endcode + + \sa wolfSSL_dtls_get_current_timeout + \sa wolfSSL_dtls_got_timeout + \sa wolfSSL_dtls +*/ +int wolfSSL_dtls_retransmit(WOLFSSL* ssl); + +/*! + \brief DTLSを使用するように構成されているかどうかを取得します。 \return 1 SSLセッション(SSL)がDTLSを使用するように設定されている場合、この関数は1を返します。 - \return 0 そうでなければ。 + \return 0 そうでない場合に返されます。 + _Example_ \code int ret = 0; @@ -2244,12 +3041,14 @@ int wolfSSL_dtls_got_timeout(WOLFSSL* ssl); int wolfSSL_dtls(WOLFSSL* ssl); /*! - \brief ピースズ。 - \return SSL_SUCCESS 成功に戻ります。 - \return SSL_FAILURE 失敗したときに返されます。 - \return SSL_NOT_IMPLEMENTED WolfSSLがDTLSサポートでコンパイルされていない場合は返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param peer ピアのSOCKADDR_IN構造へのポインタ。 + \brief この関数は引数peerで与えられるアドレスをDTLSのピアとしてセットします。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FAILURE 失敗時に返されます。 + \return SSL_NOT_IMPLEMENTED wolfSSLがDTLSをサポートするようにコンパイルされていない場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param peer ピアのアドレスを含むsockaddr_in構造体へのポインタ。 + \param peerSz sockaddr_in構造体のサイズ。0が指定された場合にはsslに設定されているピアの情報をクリアします。 + _Example_ \code int ret = 0; @@ -2269,12 +3068,16 @@ int wolfSSL_dtls(WOLFSSL* ssl); int wolfSSL_dtls_set_peer(WOLFSSL* ssl, void* peer, unsigned int peerSz); /*! - \brief DTLSピアこの関数は、PeerszをSSLセッションに格納されている実際のDTLSピアサイズに比較します。ピアがピアに収まる場合、ピアのSOCKADDR_INはピアにコピーされ、ピースがピアのサイズに設定されます。 - \return SSL_SUCCESS 成功に戻ります。 - \return SSL_FAILURE 失敗したときに返されます。 - \return SSL_NOT_IMPLEMENTED WolfSSLがDTLSサポートでコンパイルされていない場合は返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param peer ピアのSOCKADDR_IN構造を保存するには、メモリの場所へのポインタ。 + \brief この関数は、現在のDTLSピアのsockaddr_in(サイズpeerSz)を取得します。 + この関数は、peerSzをSSLセッションに保存されている実際のDTLSピアサイズと比較します。 + ピアアドレスがpeerに収まる場合は、peerSzがピアのサイズに設定されて、ピアのsockaddr_inがpeerにコピーされます。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FAILURE 失敗時に返されます。 + \return SSL_NOT_IMPLEMENTED wolfSSLがDTLSをサポートするようにコンパイルされていない場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \param peer ピアのsockaddr_in構造体を保存するためのバッファへのポインタ。 + \param peerSz サイズを格納する変数。入力時には引数peerで示されるバッファのサイズを指定してください。出力時には実際のsockaddr_in構造体のサイズを返します。 + _Example_ \code int ret = 0; @@ -2295,10 +3098,15 @@ int wolfSSL_dtls_get_peer(WOLFSSL* ssl, void* peer, unsigned int* peerSz); /*! \ingroup Debug - \brief この関数は、wolfssl_get_error()によって返されたエラーコードをより人間が読めるエラー文字列に変換します。errnumberは、wolfssl_get_error()によって返され、データはエラー文字列が配置されるストレージバッファです。MAX_ERROR_SZで定義されているように、データの最大長はデフォルトで80文字です。これはwolfssl / wolfcrypt / error.hです。 - \return success 正常に完了すると、この関数はデータに返されるのと同じ文字列を返します。 + \brief この関数は、wolfSSL_get_error()によって返されたエラーコードをより人間が読めるエラー文字列に変換します。 + 引数errNumberは、wolfSSL_get_error()によって返され、引数dataはエラー文字列が配置されるバッファへのポインタです。 + MAX_ERROR_SZで定義されているように、データの最大長はデフォルトで80文字です。 + これはwolfssl/wolfcrypt/error.hで定義されています。 + \return success 正常に完了すると、この関数はdataに返されるのと同じ文字列を返します。 \return failure 失敗すると、この関数は適切な障害理由、MSGを持つ文字列を返します。 - \param errNumber wolfssl_get_error()によって返されたエラーコード。 + \param errNumber wolfSSL_get_error()によって返されたエラーコード。 + \param data 人間が読めるエラー文字列を格納したバッファへのポインタ + _Example_ \code int err = 0; @@ -2314,14 +3122,20 @@ int wolfSSL_dtls_get_peer(WOLFSSL* ssl, void* peer, unsigned int* peerSz); \sa wolfSSL_ERR_print_errors_fp \sa wolfSSL_load_error_strings */ -char* wolfSSL_ERR_error_string(unsigned long,char*); +char* wolfSSL_ERR_error_string(unsigned long errNumber, char* data); /*! \ingroup Debug - \brief この関数は、wolfssl_err_error_string()のバージョンです。ここで、lenはbufに書き込まれ得る最大文字数を指定します。wolfssl_err_error_string()と同様に、この関数はwolfssl_get_error()から返されたエラーコードをより人間が読めるエラー文字列に変換します。人間が読める文字列はbufに置かれます。 - \return none いいえ返します。 - \param e wolfssl_get_error()によって返されたエラーコード。 + \brief この関数は、wolfssl_err_error_string()のバッファのサイズを指定するバージョンです。 + ここで、引数lenは引数bufに書き込まれ得る最大文字数を指定します。 + wolfSSL_err_error_string()と同様に、この関数はwolfSSL_get_error()から返されたエラーコードをより人間が読めるエラー文字列に変換します。 + 人間が読める文字列はbufに置かれます。 + \return なし + \param e wolfSSL_get_error()によって返されたエラーコード。 \param buff eと一致する人間が読めるエラー文字列を含む出力バッファ。 + \param len 出力バッファのサイズ + + _Example_ \code int err = 0; @@ -2342,14 +3156,17 @@ void wolfSSL_ERR_error_string_n(unsigned long e, char* buf, /*! \ingroup TLS - \brief この関数は、Options構造体のClosEnotifyまたはConnresetまたはSentNotifyメンバーのシャットダウン条件をチェックします。オプション構造はWolfSSL構造内にあります。 + \brief この関数は、Options構造体のcloseNotifyまたはconnResetまたはsentNotifyメンバーのシャットダウン条件をチェックします。 + Options構造体はWOLFSSL構造体内にあります。 \return 1 SSL_SENT_SHUTDOWNが返されます。 - \return 2 ss_received_shutdownが返されます。 + \return 2 SSL_RECEIVED_SHUTDOWNが返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code #include - WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol method ); + WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); WOLFSSL* ssl = WOLFSSL_new(ctx); … int ret; @@ -2365,12 +3182,14 @@ void wolfSSL_ERR_error_string_n(unsigned long e, char* buf, \endcode \sa wolfSSL_SESSION_free */ -int wolfSSL_get_shutdown(const WOLFSSL*); +int wolfSSL_get_shutdown(const WOLFSSL* ssl); /*! \ingroup IO \brief この関数は、オプション構造体の再開メンバを返します。フラグはセッションを再利用するかどうかを示します。そうでなければ、新しいセッションを確立する必要があります。 \return This 関数セッションの再利用のフラグを表すオプション構造に保持されているint型を返します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -2383,13 +3202,16 @@ int wolfSSL_get_shutdown(const WOLFSSL*); \sa wolfSSL_GetSessionIndex \sa wolfSSL_memsave_session_cache */ -int wolfSSL_session_reused(WOLFSSL*); +int wolfSSL_session_reused(WOLFSSL* ssl); /*! \ingroup TLS \brief この関数は、接続が確立されているかどうかを確認します。 \return 0 接続が確立されていない場合、すなわちWolfSSL構造体がNULLまたはハンドシェイクが行われていない場合に返されます。 \return 1 接続が確立されていない場合は返されます.WolfSSL構造体はNULLまたはハンドシェイクが行われていません。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + + _Example_ \code #include @@ -2404,7 +3226,7 @@ int wolfSSL_session_reused(WOLFSSL*); \sa wolfSSL_get_keys \sa wolfSSL_set_shutdown */ -int wolfSSL_is_init_finished(WOLFSSL*); +int wolfSSL_is_init_finished(WOLFSSL* ssl); /*! \ingroup IO @@ -2417,6 +3239,8 @@ int wolfSSL_is_init_finished(WOLFSSL*); \return "DTLS": DTLSを使う \return "DTLSv1.2" DTLSV1.2を使用する \return "unknown" どのバージョンのTLSが使用されているかを判断するという問題がありました。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code wolfSSL_Init(); @@ -2429,13 +3253,15 @@ int wolfSSL_is_init_finished(WOLFSSL*); \endcode \sa wolfSSL_lib_version */ -const char* wolfSSL_get_version(WOLFSSL*); +const char* wolfSSL_get_version(WOLFSSL* ssl); /*! \ingroup IO \brief SSLセッションで現在の暗号スイートを返します。 \return ssl->options.cipherSuite 現在の暗号スイートを表す整数。 \return 0 提供されているSSLセッションはNULLです。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code wolfSSL_Init(); @@ -2461,6 +3287,8 @@ int wolfSSL_get_current_cipher_suite(WOLFSSL* ssl); \brief この関数は、SSLセッションの現在の暗号へのポインタを返します。 \return The 関数WolfSSL構造体の暗号メンバーのアドレスを返します。これはwolfssl_icipher構造へのポインタです。 \return NULL WolfSSL構造がNULLの場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -2478,13 +3306,15 @@ int wolfSSL_get_current_cipher_suite(WOLFSSL* ssl); \sa wolfSSL_get_cipher_name_internal \sa wolfSSL_get_cipher_name */ -WOLFSSL_CIPHER* wolfSSL_get_current_cipher(WOLFSSL*); +WOLFSSL_CIPHER* wolfSSL_get_current_cipher(WOLFSSL* ssl); /*! \ingroup IO \brief この関数は、SSLオブジェクト内のCipher Suiteと使用可能なスイートと一致し、文字列表現を返します。 \return string この関数は、一致した暗号スイートの文字列表現を返します。 \return none スイートが一致していない場合は「なし」を返します。 + \param cipher WOLFSSL_CIPHER構造体へのポインタ + _Example_ \code // gets cipher name in the format DHE_RSA ... @@ -2510,6 +3340,8 @@ const char* wolfSSL_CIPHER_get_name(const WOLFSSL_CIPHER* cipher); \ingroup IO \brief この関数は、SSLオブジェクト内の暗号スイートと使用可能なスイートと一致します。 \return This 関数Suiteが一致させたString値を返します。スイートが一致していない場合は「なし」を返します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code #ifdef WOLFSSL_DTLS @@ -2525,13 +3357,23 @@ const char* wolfSSL_CIPHER_get_name(const WOLFSSL_CIPHER* cipher); \sa wolfSSL_CIPHER_get_name \sa wolfSSL_get_current_cipher */ -const char* wolfSSL_get_cipher(WOLFSSL*); +const char* wolfSSL_get_cipher(WOLFSSL* ssl); /*! \ingroup Setup - \brief この関数は、wolfssl構造からのwolfssl_sessionを参照型として返します。これには、wolfssl_session_freeを呼び出してセッション参照を解除する必要があります。 wolfssl_sessionは、セッションの再開を実行するために必要なすべての必要な情報を含むことを指摘し、新しいハンドシェイクなしで接続を再確立します。セッションの再開の場合、wolfssl_shutdown()をセッションオブジェクトに呼び出す前に、アプリケーションはオブジェクトからwolfssl_get1_session()を呼び出して保存する必要があります。これはセッションへのポインタを返します。後で、アプリケーションは新しいWolfSSLオブジェクトを作成し、保存したセッションをwolfssl_set_session()に割り当てる必要があります。この時点で、アプリケーションはwolfssl_connect()を呼び出し、WolfSSLはセッションを再開しようとします。 WolfSSLサーバーコードでは、デフォルトでセッションの再開を許可します。 wolfssl_get1_session()によって返されたオブジェクトは、アプリケーションがそれを使用してそれを使用して解放される必要があります。 + \brief この関数は、WOLFSSL構造体からWOLFSSL_SESSIONを参照型として返します。 + これには、wolfSSL_SESSION_freeを呼び出してセッション参照を解除する必要があります。 + WOLFSSL_SESSIONは、セッションの再開を実行するために必要なすべての必要な情報を含み、新しいハンドシェイクなしで接続を再確立します。 + セッションの再開の場合、wolfSSL_shutdown()をセッションオブジェクトに呼び出す前に、アプリケーションはオブジェクトからwolfssl_get1_session()を呼び出して保存する必要があります。 + これはセッションへのポインタを返します。 + その後、アプリケーションは新しいWOLFSSLオブジェクトを作成し、保存したセッションをwolfssl_set_session()に割り当てる必要があります。 + この時点で、アプリケーションはwolfssl_connect()を呼び出し、WolfSSLはセッションを再開しようとします。 + WolfSSLサーバーコードでは、デフォルトでセッションの再開を許可します。 + wolfssl_get1_session()によって返されたオブジェクトは、アプリケーションが使用後は解放される必要があります。 \return WOLFSSL_SESSION 成功の場合はセッションポインタを返します。 - \return NULL SSLがNULLの場合、SSLセッションキャッシュが無効になっている場合、WolfSSLはセッションIDを使用できない、またはミューテックス関数が失敗します。 + \return NULL sslがNULLの場合、SSLセッションキャッシュが無効になっている場合、WolfSSLはセッションIDを使用できない、またはミューテックス関数が失敗します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL* ssl; @@ -2553,9 +3395,10 @@ WOLFSSL_SESSION* wolfSSL_get1_session(WOLFSSL* ssl); /*! \ingroup Setup - \brief wolfsslv23_client_method()関数は、アプリケーションがクライアントであることを示すために使用され、SSL 3.0 - TLS 1.3の間でサーバーでサポートされている最高のプロトコルバージョンをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。WolfSSLクライアントとサーバーの両方が堅牢なバージョンのダウングレード機能を持っています。特定のプロトコルバージョンメソッドがどちらの側で使用されている場合は、そのバージョンのみがネゴシエートされたり、エラーが返されます。たとえば、TLSV1を使用し、SSLv3のみに接続しようとするクライアントは、TLSV1.1に接続しても失敗します。この問題を解決するために、wolfsslv23_client_method()関数を使用するクライアントは、サーバーでサポートされている最高のプロトコルバージョンを使用し、必要に応じてSSLv3にダウングレードします。この場合、クライアントはSSLv3 - TLSv1.3を実行しているサーバーに接続できるようになります。 - \return pointer 成功すると、wolfssl_methodへのポインタがあります。 - \return Failure xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \brief wolfsslv23_client_method()関数は、アプリケーションがクライアントであることを示すために使用され、SSL 3.0~TLS 1.3の間でサーバーでサポートされている最高のプロトコルバージョンをサポートします。この関数は、wolfSSL_CTX_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。WolfSSLクライアントとサーバーの両方が堅牢なバージョンのダウングレード機能を持っています。特定のプロトコルバージョンメソッドがどちらの側で使用されている場合は、そのバージョンのみがネゴシエートされたり、エラーが返されます。たとえば、TLSV1を使用し、SSLv3のみに接続しようとするクライアントは、TLSV1.1に接続しても失敗します。この問題を解決するために、wolfsslv23_client_method()関数を使用するクライアントは、サーバーでサポートされている最高のプロトコルバージョンを使用し、必要に応じてSSLv3にダウングレードします。この場合、クライアントはSSLv3 - TLSv1.3を実行しているサーバーに接続できるようになります。 + \return pointer 成功すると、wolfssl_methodへのポインタが返されます。 + \return Failure xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがENOMEMに設定されます)。 + _Example_ \code WOLFSSL_METHOD* method; @@ -2580,10 +3423,12 @@ WOLFSSL_METHOD* wolfSSLv23_client_method(void); /*! \ingroup IO - \brief これは、内部メモリバッファの先頭へのバイトポインタを設定するために使用されます。 + \brief この関数は、内部メモリバッファの先頭へのバイトポインタを設定するために使用されます。 \return size 成功すると、バッファのサイズが返されます \return SSL_FATAL_ERROR エラーケースに遭遇した場合 - \param bio のメモリバッファを取得するためのwolfssl_bio構造。 + \param bio のメモリバッファを取得するためのWOLFSSL_BIO構造体。 + \param p メモリバッファへのポインタ。 + _Example_ \code WOLFSSL_BIO* bio; @@ -2603,9 +3448,11 @@ int wolfSSL_BIO_get_mem_data(WOLFSSL_BIO* bio,void* p); /*! \ingroup IO \brief 使用するBIOのファイル記述子を設定します。 - \return SSL_SUCCESS(1) 成功すると。 + \return SSL_SUCCESS(1) 成功時に返されます。 \param bio FDを設定するためのWOLFSSL_BIO構造。 \param fd 使用するファイル記述子。 + \param closeF fdをクローズする際のふるまいを指定するフラグ + _Example_ \code WOLFSSL_BIO* bio; @@ -2620,9 +3467,11 @@ long wolfSSL_BIO_set_fd(WOLFSSL_BIO* b, int fd, int flag); /*! \ingroup IO - \brief BIOが解放されたときにI / Oストリームを閉じる必要があることを示すために使用されるクローズフラグを設定します。 - \return SSL_SUCCESS(1) 成功すると。 - \param bio wolfssl_bio構造体。 + \brief BIOが解放されたときにI/Oストリームを閉じる必要があることを示すために使用されるクローズフラグを設定します。 + \return SSL_SUCCESS(1) 成功時に返されます。 + \param bio WOLFSSL_BIO構造体。 + \param flag I/Oストリームを閉じる必要があることを示すために使用されるクローズフラグ + _Example_ \code WOLFSSL_BIO* bio; @@ -2636,8 +3485,9 @@ int wolfSSL_BIO_set_close(WOLFSSL_BIO *b, long flag); /*! \ingroup IO - \brief これはBio_Socketタイプのwolfssl_bio_methodを取得するために使用されます。 - \return WOLFSSL_BIO_METHOD ソケットタイプであるwolfssl_bio_method構造へのポインタ + \brief この関数はBIO_SOCKETタイプのWOLFSSL_BIO_METHODを取得するために使用されます。 + \return WOLFSSL_BIO_METHOD ソケットタイプであるWOLFSSL_BIO_METHOD構造体へのポインタ + _Example_ \code WOLFSSL_BIO* bio; @@ -2650,10 +3500,14 @@ WOLFSSL_BIO_METHOD *wolfSSL_BIO_s_socket(void); /*! \ingroup IO - \brief これは、WolfSSL_BIOのライトバッファのサイズを設定するために使用されます。書き込みバッファが以前に設定されている場合、この関数はサイズをリセットするときに解放されます。読み書きインデックスを0にリセットするという点で、wolfssl_bio_resetに似ています。 + \brief この関数は、WOLFSSL_BIOのライトバッファのサイズを設定するために使用されます。 + 書き込みバッファが以前に設定されている場合、この関数はサイズをリセットするときに解放されます。 + 読み書きインデックスを0にリセットするという点で、wolfSSL_BIO_resetに似ています。 \return SSL_SUCCESS 書き込みバッファの設定に成功しました。 \return SSL_FAILURE エラーケースに遭遇した場合 \param bio FDを設定するためのWOLFSSL_BIO構造。 + \param size バッファサイズ + _Example_ \code WOLFSSL_BIO* bio; @@ -2673,7 +3527,9 @@ int wolfSSL_BIO_set_write_buf_size(WOLFSSL_BIO *b, long size); \brief これは2つのBIOSを一緒にペアリングするために使用されます。一対のBIOSは、2つの方法パイプと同様に、他方で読み取られることができ、その逆も同様である。BIOSの両方が同じスレッド内にあることが予想されます。この機能はスレッドセーフではありません。2つのBIOSのうちの1つを解放すると、両方ともペアになっています。書き込みバッファサイズが以前に設定されていない場合、それはペアになる前に17000(wolfssl_bio_size)のデフォルトサイズに設定されます。 \return SSL_SUCCESS 2つのBIOSをうまくペアリングします。 \return SSL_FAILURE エラーケースに遭遇した場合 - \param b1 ペアを設定するためのwolfssl_bio構造。 + \param b1 ペアを設定するための第一のWOLFSSL_BIO構造体へのポインタ。 + \param b2 第二ののWOLFSSL_BIO構造体へのポインタ。 + _Example_ \code WOLFSSL_BIO* bio; @@ -2692,9 +3548,11 @@ int wolfSSL_BIO_make_bio_pair(WOLFSSL_BIO *b1, WOLFSSL_BIO *b2); /*! \ingroup IO - \brief これは、読み取り要求フラグを0に戻すために使用されます。 + \brief この関数は、読み取り要求フラグを0に戻すために使用されます。 \return SSL_SUCCESS 値を正常に設定します。 \return SSL_FAILURE エラーケースに遭遇した場合 + \param bio WOLFSSL_BIO構造体へのポインタ。 + _Example_ \code WOLFSSL_BIO* bio; @@ -2706,13 +3564,17 @@ int wolfSSL_BIO_make_bio_pair(WOLFSSL_BIO *b1, WOLFSSL_BIO *b2); \sa wolfSSL_BIO_new, wolfSSL_BIO_s_mem \sa wolfSSL_BIO_new, wolfSSL_BIO_free */ -int wolfSSL_BIO_ctrl_reset_read_request(WOLFSSL_BIO *b); +int wolfSSL_BIO_ctrl_reset_read_request(WOLFSSL_BIO * bio); /*! \ingroup IO - \brief これは、読み取り用のバッファポインタを取得するために使用されます。WOLFSSL_BIO_NREADとは異なり、内部読み取りインデックスは関数呼び出しから返された番号によって高度にはなりません。返される値を超えて読み取ると、アレイの境界から読み出される可能性があります。 + \bri f この関数は、読み取り用のバッファポインタを取得するために使用されます。 + wolfSSL_BIO_nreadとは異なり、内部読み取りインデックスは関数呼び出しから返されたサイズ分進みません。 + 返される値を超えて読み取ると、アレイの境界から読み出される可能性があります。 \return >=0 成功すると、読み取るバイト数を返します - \param bio wolfssl_bio構造体から読み取り。 + \param bio WOLFSSL_BIO構造体へのポインタ。 + \param buf 読み取り用バッファへのポインタのポインタ + _Example_ \code WOLFSSL_BIO* bio; @@ -2730,11 +3592,16 @@ int wolfSSL_BIO_nread0(WOLFSSL_BIO *bio, char **buf); /*! \ingroup IO - \brief これは、読み取り用のバッファポインタを取得するために使用されます。内部読み取りインデックスは、読み取り元のバッファの先頭に指されているBUFを使用して、関数呼び出しから返される数によって高度です。数numで要求された値よりもバイトが少ない場合、より少ない値が返されます。返される値を超えて読み取ると、アレイの境界から読み出される可能性があります。 + \biieれは、この関数は、読み取り用のバッファポインタを取得するために使用されます。 + 内部読み取りインデックスは、読み取り元のバッファの先頭に指されているBUFを使用して、関数呼び出しから返されるサイズ分進みます。 + 数numで要求された値よりもバイトが少ない場合、より少ない値が返されます。 + 返される値を超えて読み取ると、アレイの境界から読み出される可能性があります。 \return >=0 成功すると、読み取るバイト数を返します \return WOLFSSL_BIO_ERROR(-1) Return -1を読むものではないエラーケースについて - \param bio wolfssl_bio構造体から読み取り。 + \param bio WOLFSSL_BIO構造体へのポインタ。 \param buf 読み取り配列の先頭に設定するポインタ。 + \param num 読み取りサイズ + _Example_ \code WOLFSSL_BIO* bio; @@ -2753,12 +3620,15 @@ int wolfSSL_BIO_nread(WOLFSSL_BIO *bio, char **buf, int num); /*! \ingroup IO - \brief 関数によって返される数のバイトを書き込むためにバッファーへのポインタを取得します。返されるポインタに追加のバイトを書き込んだ場合、返された値は範囲外の書き込みにつながる可能性があります。 + \brief 関数によって返される数のバイトを書き込むためにバッファーへのポインタを取得します。 + 返されるポインタに追加のバイトを書き込んだ場合、返された値は範囲外の書き込みにつながる可能性があります。 \return int 返されたバッファポインタに書き込むことができるバイト数を返します。 \return WOLFSSL_BIO_UNSET(-2) バイオペアの一部ではない場合 \return WOLFSSL_BIO_ERROR(-1) に書くべき部屋がこれ以上ない場合 \param bio WOLFSSL_BIO構造に書き込む構造。 \param buf 書き込むためのバッファへのポインタ。 + \param num 書き込みたいサイズ + _Example_ \code WOLFSSL_BIO* bio; @@ -2780,6 +3650,8 @@ int wolfSSL_BIO_nwrite(WOLFSSL_BIO *bio, char **buf, int num); \brief バイオを初期状態にリセットします。タイプBIO_BIOの例として、これは読み書きインデックスをリセットします。 \return 0 バイオのリセットに成功しました。 \return WOLFSSL_BIO_ERROR(-1) 不良入力または失敗したリセットで返されます。 + \param bio WOLFSSL_BIO構造体へのポインタ。 + _Example_ \code WOLFSSL_BIO* bio; @@ -2794,10 +3666,12 @@ int wolfSSL_BIO_reset(WOLFSSL_BIO *bio); /*! \ingroup IO - \brief この関数は、指定されたオフセットへのファイルポインタを調整します。これはファイルの先頭からのオフセットです。 + \brief この関数は、指定されたオフセットへファイルポインタを調整します。これはファイルの先頭からのオフセットです。 \return 0 正常に探しています。 \return -1 エラーケースに遭遇した場合 - \param bio 設定するwolfssl_bio構造体。 + \param bio 設定するWOLFSSL_BIO構造体へのポインタ。 + \param ofs ファイルの先頭からのオフセット + _Example_ \code WOLFSSL_BIO* bio; @@ -2821,7 +3695,9 @@ int wolfSSL_BIO_seek(WOLFSSL_BIO *bio, int ofs); \brief これはファイルに設定および書き込むために使用されます。現在ファイル内のデータを上書きし、BIOが解放されたときにファイルを閉じるように設定されます。 \return SSL_SUCCESS ファイルの開きと設定に成功しました。 \return SSL_FAILURE エラーケースに遭遇した場合 - \param bio ファイルを設定するwolfssl_bio構造体。 + \param bio ファイルを設定するWOLFSSL_BIO構造体体。 + \param name 書き込み先ファイル名へのポインタ + _Example_ \code WOLFSSL_BIO* bio; @@ -2841,7 +3717,9 @@ int wolfSSL_BIO_write_filename(WOLFSSL_BIO *bio, char *name); \ingroup IO \brief これはファイル値の終わりを設定するために使用されます。一般的な値は予想される正の値と混同されないように-1です。 \return 0 完了に戻りました - \param bio ファイル値の終わりを設定するためのwolfssl_bio構造体。 + \param bio ファイル値の終わりを設定するためのWOLFSSL_BIO構造体体。 + \param v bioにセットする値。 + _Example_ \code WOLFSSL_BIO* bio; @@ -2861,8 +3739,10 @@ long wolfSSL_BIO_set_mem_eof_return(WOLFSSL_BIO *bio, int v); \ingroup IO \brief これはWolfSSL_BIOメモリポインタのゲッター関数です。 \return SSL_SUCCESS ポインタSSL_SUCCESSを返す正常に(現在1の値)。 - \return SSL_FAILURE null引数が渡された場合(現在0の値)に渡された場合は返されます。 + \return SSL_FAILURE null引数が渡された場合(現在0の値)に渡された場合に返されます。 \param bio メモリポインタを取得するためのWOLFSSL_BIO構造体へのポインタ。 + \param ptr WOLFSSL_BUF_MEM構造体へのポインタ(現在はchar*となっている) + _Example_ \code WOLFSSL_BIO* bio; @@ -2879,9 +3759,11 @@ long wolfSSL_BIO_get_mem_ptr(WOLFSSL_BIO *bio, WOLFSSL_BUF_MEM **m); /*! \ingroup CertsKeys \brief この関数はX509の名前をバッファにコピーします。 - \return A WOLFSSL_X509_NAME構造名メンバーのデータが正常に実行された場合、バッファへのPOINTER found struffer nameメンバーのデータが返されます。 + \return A WOLFSSL_X509_NAME構造名メンバーのデータが正常に実行された場合、nameメンバーのデータが返されます。 \param name wolfssl_x509構造へのポインタ。 - \param in wolfssl_x509_name構造からコピーされた名前を保持するためのバッファ。 + \param in WOLFSSL_X509_NAME構造体からコピーされた名前を保持するためのバッファ。 + \param sz バッファの最大サイズ + _Example_ \code WOLFSSL_X509 x509; @@ -2906,6 +3788,8 @@ char* wolfSSL_X509_NAME_oneline(WOLFSSL_X509_NAME* name, char* in, int sz) \brief この関数は証明書発行者の名前を返します。 \return point WOLFSSL_X509構造体の発行者メンバーへのポインタが返されます。 \return NULL 渡された証明書がNULLの場合 + \param cert WOLFSSL_X509構造体へのポインタ + _Example_ \code WOLFSSL_X509* x509; @@ -2924,12 +3808,14 @@ char* wolfSSL_X509_NAME_oneline(WOLFSSL_X509_NAME* name, char* in, int sz) \sa wolfSSL_get_peer_certificate \sa wolfSSL_X509_NAME_oneline */ -WOLFSSL_X509_NAME* wolfSSL_X509_get_issuer_name(WOLFSSL_X509*); +WOLFSSL_X509_NAME* wolfSSL_X509_get_issuer_name(WOLFSSL_X509* cert); /*! \ingroup CertsKeys \brief この関数は、wolfssl_x509構造の件名メンバーを返します。 \return pointer wolfssl_x509_name構造へのポインタ。WOLFSSL_X509構造体がNULLの場合、または構造体の件名メンバーがNULLの場合、ポインタはNULLになることがあります。 + \param cert WOLFSSL_X509構造体へのポインタ + _Example_ \code WOLFSSL_X509* cert; @@ -2944,13 +3830,15 @@ WOLFSSL_X509_NAME* wolfSSL_X509_get_issuer_name(WOLFSSL_X509*); \sa wolfSSL_X509_get_isCA \sa wolfSSL_get_peer_certificate */ -WOLFSSL_X509_NAME* wolfSSL_X509_get_subject_name(WOLFSSL_X509*); +WOLFSSL_X509_NAME* wolfSSL_X509_get_subject_name(WOLFSSL_X509* cert); /*! \ingroup CertsKeys - \brief wolfssl_x509構造のISCAメンバーをチェックして値を返します。 - \return isCA wolfssl_x509構造のISCAメンバー内の値を返します。 - \return 0 有効なX509構造が渡されない場合は返されます。 + \brief WOLFSSL_X509構造体のisCaメンバーをチェックして値を返します。 + \return isCA WOLFSSL_X509構造体のisCaメンバーの値を返します。 + \return 0 有効なWOLFSSL_X509構造体が渡されない場合に返されます。 + \param cert WOLFSSL_X509構造体へのポインタ + _Example_ \code WOLFSSL* ssl; @@ -2967,7 +3855,7 @@ WOLFSSL_X509_NAME* wolfSSL_X509_get_subject_name(WOLFSSL_X509*); \sa wolfSSL_X509_get_issuer_name \sa wolfSSL_X509_get_isCA */ -int wolfSSL_X509_get_isCA(WOLFSSL_X509*); +int wolfSSL_X509_get_isCA(WOLFSSL_X509* cert); /*! \ingroup CertsKeys @@ -2976,6 +3864,8 @@ int wolfSSL_X509_get_isCA(WOLFSSL_X509*); \param name wolfssl_x509_nameテキストを検索する。 \param nid 検索するNID。 \param buf 見つかったときにテキストを保持するためのバッファー。 + \param len バッファのサイズ + _Example_ \code WOLFSSL_X509_NAME* name; @@ -2995,9 +3885,11 @@ int wolfSSL_X509_NAME_get_text_by_NID(WOLFSSL_X509_NAME* name, int nid, /*! \ingroup CertsKeys - \brief この関数は、wolfssl_x509構造のSigoidメンバーに格納されている値を返します。 - \return 0 wolfssl_x509構造がNULLの場合に返されます。 + \brief この関数は、WOLFSSL_X509構造体のsigOIDメンバーに格納されている値を返します。 + \return 0 WOLFSSL_X509構造体がNULLの場合に返されます。 \return int x509オブジェクトから取得された整数値が返されます。 + \param cert WOLFSSL_X509構造体へのポインタ + _Example_ \code WOLFSSL_X509 x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL, @@ -3017,10 +3909,13 @@ int wolfSSL_X509_NAME_get_text_by_NID(WOLFSSL_X509_NAME* name, int nid, \sa wolfSSL_X509_notAfter \sa wolfSSL_X509_free */ -int wolfSSL_X509_get_signature_type(WOLFSSL_X509*); +int wolfSSL_X509_get_signature_type(WOLFSSL_X509* cert); /*! - \brief + \brief この関数はWOLFSSL_X509構造体を解放します。 + \return なし + \param x509 WOLFSSL_X509構造体へのポインタ + _Example_ \code WOLFSSL_X509* x509 = (WOLFSSL_X509*)XMALOC(sizeof(WOLFSSL_X509), NULL, @@ -3045,6 +3940,8 @@ void wolfSSL_X509_free(WOLFSSL_X509* x509); \return SSL_FATAL_ERRROR X509構造体またはBUFSZメンバーがNULLの場合に返します。SIG構造の長さメンバのチェックもある(SIGはX509のメンバーである)。 \param x509 wolfssl_x509構造へのポインタ。 \param buf バッファへの文字ポインタ。 + \param bufSz バッファサイズを格納するint型変数へのポインタ + _Example_ \code WOLFSSL_X509* x509 = (WOLFSSL_X509)XMALOC(sizeof(WOLFSSL_X509), NULL, @@ -3066,10 +3963,12 @@ int wolfSSL_X509_get_signature(WOLFSSL_X509* x509, unsigned char* buf, int* bufS /*! \ingroup CertsKeys - \brief この関数は、wolfssl_x509_stre構造に証明書を追加します。 + \brief この関数は、WOLFSSL_X509_STRE構造体に証明書を追加します。 \return SSL_SUCCESS 証明書が正常に追加された場合。 \return SSL_FATAL_ERROR: 証明書が正常に追加されない場合 \param str 証明書を追加する証明書ストア。 + \param x509 追加するWOLFSSL_X509構造体へのポインタ + _Example_ \code WOLFSSL_X509_STORE* str; @@ -3084,9 +3983,11 @@ int wolfSSL_X509_STORE_add_cert(WOLFSSL_X509_STORE* store, WOLFSSL_X509* x509); /*! \ingroup CertsKeys - \brief この関数は、wolfssl_x509_store_ctx構造体のチェーン変数のgetter関数です。現在チェーンは取り込まれていません。 - \return pointer 成功した場合wolfssl_stack(stack_of(wolfssl_x509))ポインタと同じ - \return Null 失敗すると + \brief この関数は、WOLFSSL_X509_STORE_CTX構造体のチェーン変数のgetter関数です。現在チェーンは取り込まれていません。 + \return pointer 成功した場合WOLFSSL_STACK(STACK_OF(WOLFSSL_X509))ポインタと同じ + \return Null 失敗した場合に返されます。 + \param ctx WOLFSSL_X509_STORE_CTX構造体へのポインタ + _Example_ \code WOLFSSL_STACK* sk; @@ -3101,10 +4002,12 @@ WOLFSSL_STACK* wolfSSL_X509_STORE_CTX_get_chain( /*! \ingroup CertsKeys - \brief この関数は、渡されたwolfssl_x509_store構造体の動作を変更するためのフラグを取ります。使用されるフラグの例はwolfssl_crl_checkです。 + \brief この関数は、渡されたWOLFSSL_X509_STORE構造体の動作を変更するためのフラグを取ります。使用されるフラグの例はWOLFSSL_CRL_CHECKです。 \return SSL_SUCCESS フラグを設定するときにエラーが発生しなかった場合。 \return <0 障害の際に負の値が返されます。 \param str フラグを設定する証明書ストア。 + \param flag フラグ + _Example_ \code WOLFSSL_X509_STORE* str; @@ -3123,9 +4026,11 @@ int wolfSSL_X509_STORE_set_flags(WOLFSSL_X509_STORE* store, /*! \ingroup CertsKeys - \brief これは、BYTEアレイとして符号化された有効性の証明書「NOT BEFISE」を機能します。 - \return NULL wolfssl_x509構造がNULLの場合に返されます。 - \return byte NetBeforEdataを含む返されます。 + \brief この関数はBYTEアレイとして符号化された"not before"要素を返します。 + \return NULL WOLFSSL_X509構造体がNULLの場合に返されます。 + \return byte NetBeforEdataを含むバッファへのポインタが返されます。 + \param x509 WOLFSSL_X509構造体へのポインタ。 + _Example_ \code WOLFSSL_X509* x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL, @@ -3146,9 +4051,11 @@ const byte* wolfSSL_X509_notBefore(WOLFSSL_X509* x509); /*! \ingroup CertsKeys - \brief これは、BYTE配列として符号化された有効性の証明書「未処理」を機能します。 - \return NULL wolfssl_x509構造がNULLの場合に返されます。 - \return byte NOTAFTERDATAを含む返されます。 + \brief この関数は、BYTE配列として符号化された"not after"要素を返します。 + \return NULL WOLFSSL_X509構造体がNULLの場合に返されます。 + \return byte notAfterDataを含むバッファへのポインタが返されます。 + \param x509 WOLFSSL_X509構造体へのポインタ。 + _Example_ \code WOLFSSL_X509* x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL, @@ -3169,10 +4076,14 @@ const byte* wolfSSL_X509_notAfter(WOLFSSL_X509* x509); /*! \ingroup Setup - \brief この関数は、wolfssl_asn1_integer値をwolfssl_bignum構造にコピーするために使用されます。 - \return pointer wolfssl_asn1_integer値を正常にコピーすると、wolfssl_bignumポインタが返されます。 - \return Null 失敗すると。 - \param ai wolfssl asn1_integer構造体からコピーする。 + \brief この関数は、WOLFSSL_ASN1_INTEGER値をWOLFSSL_BIGNUM構造体にコピーするために使用されます。 + \return pointer WOLFSSL_ASN1_INTEGER値を正常にコピーすると、WOLFSSL_BIGNUMポインタが返されます。 + \return Null 失敗時に返されます。 + \param ai WOLFSSL_ASN1_INTEGER構造体へのポインタ + \param bn もし、既存のWOLFSSL_BIGNUM構造体にコピーしたい場合そのポインタをこの引数で指定します。 + NULLを指定すると新たにWOLFSSL_BIGNUM構造体が生成されて使用されます。 + + _Example_ \code WOLFSSL_ASN1_INTEGER* ai; @@ -3191,10 +4102,12 @@ WOLFSSL_BIGNUM *wolfSSL_ASN1_INTEGER_to_BN(const WOLFSSL_ASN1_INTEGER *ai, /*! \ingroup Setup - \brief この関数は、wolfssl_ctx構造で構築されている内部チェーンに証明書を追加します。 + \brief この関数は、WOLFSSL_CTX構造で構築されている内部チェーンに証明書を追加します。 \return SSL_SUCCESS 証明書の追加に成功したら。 \return SSL_FAILURE チェーンに証明書を追加することが失敗した場合。 - \param ctx 証明書を追加するためのwolfssl_ctx構造。 + \param ctx 証明書を追加するためのWOLFSSL_CTX構造。 + \param x509 WOLFSSL_X509構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx; @@ -3211,9 +4124,11 @@ long wolfSSL_CTX_add_extra_chain_cert(WOLFSSL_CTX* ctx, WOLFSSL_X509* x509); /*! \ingroup Setup - \brief この関数は、wolfssl_ctx構造からGet Read Hapeフラグを返します。 + \brief この関数は、WOLFSSL_CTX構造からGet Read Hapeフラグを返します。 \return flag 成功すると、読み取り先のフラグを返します。 \return SSL_FAILURE ctxがnullの場合、ssl_failureが返されます。 + \param ctx WOLFSSL_CTX構造体へのポインタ + _Example_ \code WOLFSSL_CTX* ctx; @@ -3226,13 +4141,16 @@ long wolfSSL_CTX_add_extra_chain_cert(WOLFSSL_CTX* ctx, WOLFSSL_X509* x509); \sa wolfSSL_CTX_free \sa wolfSSL_CTX_set_read_ahead */ -int wolfSSL_CTX_get_read_ahead(WOLFSSL_CTX*); +int wolfSSL_CTX_get_read_ahead(WOLFSSL_CTX* ctx); /*! \ingroup Setup - \brief この関数は、wolfssl_ctx構造内の読み出し先のフラグを設定します。 - \return SSL_SUCCESS CTXが先読みフラグを設定した場合。 - \return SSL_FAILURE ctxがnullの場合、ssl_failureが返されます。 + \brief この関数は、WOLFSSL_CTX構造内の読み出し先のフラグを設定します。 + \return SSL_SUCCESS ctxが先読みフラグを設定した場合。 + \return SSL_FAILURE ctxがNULLの場合に返されます。 + \param ctx WOLFSSL_CTX構造体へのポインタ + \param v 先読みフラグ + _Example_ \code WOLFSSL_CTX* ctx; @@ -3253,7 +4171,9 @@ int wolfSSL_CTX_set_read_ahead(WOLFSSL_CTX* ctx, int v); \brief この関数はOCSPで使用するオプション引数を設定します。 \return SSL_FAILURE CTXまたはITのCERT ManagerがNULLの場合。 \return SSL_SUCCESS 正常に設定されている場合。 - \param ctx wolfssl_ctx構造ユーザー引数を設定するための構造。 + \param ctx WOLFSSL_CTX構造へのポインタ + \param arg ユーザー引数 + _Example_ \code WOLFSSL_CTX* ctx; @@ -3274,7 +4194,9 @@ long wolfSSL_CTX_set_tlsext_status_arg(WOLFSSL_CTX* ctx, void* arg); \brief この関数は、PRFコールバックに渡すオプションの引数を設定します。 \return SSL_FAILURE CTXがNULLの場合 \return SSL_SUCCESS 正常に設定されている場合。 - \param ctx wolfssl_ctx構造ユーザー引数を設定するための構造。 + \param ctx WOLFSSL_CTX構造へのポインタ + \param arg ユーザー引数 + _Example_ \code WOLFSSL_CTX* ctx; @@ -3292,9 +4214,20 @@ long wolfSSL_CTX_set_tlsext_opaque_prf_input_callback_arg( /*! \ingroup Setup - \brief この関数は、SSLのオプションマスクを設定します。いくつかの有効なオプションは、ssl_op_all、ssl_op_cookie_exchange、ssl_op_no_sslv2、ssl_op_no_sslv3、ssl_op_no_tlsv1_1、ssl_op_no_tlsv1_2、ssl_op_no_compressionです。 + \brief この関数は、SSLのオプションマスクを設定します。 + いくつかの有効なオプションは、ssl_op_all、ssl_op_cookie_exchange、ssl_op_no_sslv2、ssl_op_no_sslv3、ssl_op_no_tlsv1_1、ssl_op_no_tlsv1_2、ssl_op_no_compressionです。 \return val SSLに格納されている更新されたオプションマスク値を返します。 \param s オプションマスクを設定するためのWolfSSL構造。 + \param op オプションマスク。以下の値が指定可能です:
+ SSL_OP_ALL
+ SSL_OP_COOKIE_EXCHANGE
+ SSL_OP_NO_SSLv2
+ SSL_OP_NO_SSLv3
+ SSL_OP_NO_TLSv1
+ SSL_OP_NO_TLSv1_1
+ SSL_OP_NO_TLSv1_2
+ SSL_OP_NO_COMPRESSION
+ _Example_ \code WOLFSSL* ssl; @@ -3313,6 +4246,8 @@ long wolfSSL_set_options(WOLFSSL *s, long op); \ingroup Setup \brief この関数は現在のオプションマスクを返します。 \return val SSLに格納されているマスク値を返します。 + \param ssl WOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL* ssl; @@ -3324,14 +4259,16 @@ long wolfSSL_set_options(WOLFSSL *s, long op); \sa wolfSSL_free \sa wolfSSL_set_options */ -long wolfSSL_get_options(const WOLFSSL *s); +long wolfSSL_get_options(const WOLFSSL *ssl); /*! \ingroup Setup - \brief これは、渡されたデバッグ引数を設定するために使用されます。 - \return SSL_SUCCESS 設定の成功した引数について。 + \brief この関数は、渡されたデバッグ引数を設定するために使用されます。 + \return SSL_SUCCESS 成功時に返されます。 \return SSL_FAILURE NULL SSLが渡された場合。 \param ssl 引数を設定するためのWolfSSL構造。 + \param arg デバッグ引数 + _Example_ \code WOLFSSL* ssl; @@ -3344,14 +4281,16 @@ long wolfSSL_get_options(const WOLFSSL *s); \sa wolfSSL_new \sa wolfSSL_free */ -long wolfSSL_set_tlsext_debug_arg(WOLFSSL *s, void *arg); +long wolfSSL_set_tlsext_debug_arg(WOLFSSL *ssl, void *arg); /*! \ingroup openSSL \brief この関数は、サーバがOCSPステータス応答(OCSPステイプルとも呼ばれる)を送受信するクライアントアプリケーションが要求されたときに呼び出されます。 - \return 1 成功すると。 - \return 0 エラー時に。 - \param s ssl_new()関数によって作成されたwolfssl構造体へのポインタ + \return 1 成功時に返されます。 + \return 0 エラー時に返されます。 + \param s ssl_new()関数によって作成されたWOLFSSL構造体へのポインタ + \param type ssl拡張タイプ。TLSEXT_STATUSTYPE_ocspのみ指定可。 + _Example_ \code WOLFSSL *ssl; @@ -3372,9 +4311,11 @@ long wolfSSL_set_tlsext_status_type(WOLFSSL *s, int type); /*! \ingroup Setup - \brief これは、ピアの証明書を確認しようとした後に結果を取得するために使用されます。 + \bri f この関数は、れは、ピアの証明書を確認しようとした後に結果を取得するために使用されます。 \return X509_V_OK 成功した検証について \return SSL_FAILURE NULL SSLが渡された場合。 + \param ssl WOLFSSL 構造体へのポインタ + _Example_ \code WOLFSSL* ssl; @@ -3390,9 +4331,11 @@ long wolfSSL_get_verify_result(const WOLFSSL *ssl); /*! \ingroup Debug - \brief この関数は、wolfssl_get_error()によって返されたエラーコードをより多くの人間が読めるエラー文字列に変換し、その文字列を出力ファイルに印刷します。ERRは、WOLFSSL_GET_ERROR()によって返され、FPがエラー文字列が配置されるファイルであるエラーコードです。 - \return none いいえ返します。 + \brief この関数は、wolfSSL_get_error()によって返されたエラーコードをより多くの人間が読めるエラー文字列に変換し、その文字列を出力ファイルに印刷します。ERRは、WOLFSSL_GET_ERROR()によって返され、FPがエラー文字列が配置されるファイルであるエラーコードです。 + \return なし \param fp に書き込まれる人間が読めるエラー文字列の出力ファイル。 + \param err wolfSSL_get_error()で返されるエラーコード。 + _Example_ \code int err = 0; @@ -3411,9 +4354,11 @@ void wolfSSL_ERR_print_errors_fp(XFILE fp, int err); /*! \ingroup Debug - \brief この関数は提供されたコールバックを使用してエラー報告を処理します。コールバック関数はエラー回線ごとに実行されます。文字列、長さ、およびUSERDATAはコールバックパラメータに渡されます。 - \return none いいえ返します。 + \brief この関数は提供されたコールバックを使用してエラー報告を処理します。コールバック関数はエラー回線ごとに実行されます。文字列、長さ、およびuserdataはコールバックパラメータに渡されます。 + \return なし \param cb コールバック関数 + \param u コールバック関数に渡されるuserdata + _Example_ \code int error_cb(const char *str, size_t len, void *u) @@ -3431,9 +4376,20 @@ void wolfSSL_ERR_print_errors_cb ( int (*cb)(const char *str, size_t len, void *u), void *u); /*! - \brief wolfssl_ctx構造 - \return none いいえ返します。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \brief この関数はWOLFSSL_CTX構造のclient_psk_cbメンバーをセットします。 + \return なし + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + \param cb wc_psk_client_callback はコールバック関数ポインタでWOLFSSL_CTX構造体に格納されます。 + 戻り値は成功時には鍵長を返し、エラー時には0を返します。 + unsigned int (*wc_psk_client_callback) + PSK クライアントコールバック関数の引数:
+ WOLFSSL* ssl - WOLFSSL構造体へのポインタ
+ const char* hint - ユーザーに対して表示されるヒント文字列
+ char* identity - ID
+ unsigned int id_max_len - IDバッファのサイズ
+ unsigned char* key - 格納される鍵
+ unsigned int key_max_len - 鍵の最大サイズ
+ _Example_ \code WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol def ); @@ -3450,12 +4406,13 @@ void wolfSSL_ERR_print_errors_cb ( \sa wolfSSL_CTX_set_psk_client_callback */ void wolfSSL_CTX_set_psk_client_callback(WOLFSSL_CTX* ctx, - wc_psk_client_callback); + wc_psk_client_callback cb); /*! \brief \return none いいえ返します。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造体へのポインタ + _Example_ \code WOLFSSL* ssl; @@ -3481,6 +4438,7 @@ void wolfSSL_set_psk_client_callback(WOLFSSL* ssl, \brief この関数はPSKアイデンティティヒントを返します。 \return pointer WolfSSL構造の配列メンバーに格納されている値へのconst charポインタが返されます。 \return NULL WOLFSSLまたは配列構造がNULLの場合に返されます。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -3503,6 +4461,7 @@ const char* wolfSSL_get_psk_identity_hint(const WOLFSSL*); \brief 関数は、配列構造のClient_Identityメンバーへの定数ポインタを返します。 \return string 配列構造のclient_identityメンバの文字列値。 \return NULL WOLFSSL構造がNULLの場合、またはWOLFSSL構造の配列メンバーがNULLの場合。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -3522,9 +4481,10 @@ const char* wolfSSL_get_psk_identity(const WOLFSSL*); /*! \ingroup CertsKeys - \brief この関数は、wolfssl_ctx構造体のserver_hintメンバーにHINT引数を格納します。 + \brief この関数は、WOLFSSL_CTX構造体のserver_hintメンバーにHINT引数を格納します。 \return SSL_SUCCESS 機能の実行が成功したために返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -3548,7 +4508,8 @@ int wolfSSL_CTX_use_psk_identity_hint(WOLFSSL_CTX* ctx, const char* hint); \brief この関数は、wolfssl構造内の配列構造のserver_hintメンバーにHINT引数を格納します。 \return SSL_SUCCESS ヒントがWolfSSL構造に正常に保存された場合に返されます。 \return SSL_FAILURE WOLFSSLまたは配列構造がNULLの場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造体へのポインタ + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -3563,9 +4524,10 @@ int wolfSSL_CTX_use_psk_identity_hint(WOLFSSL_CTX* ctx, const char* hint); int wolfSSL_use_psk_identity_hint(WOLFSSL* ssl, const char* hint); /*! - \brief wolfssl_ctx構造体 + \brief WOLFSSL_CTX構造体 \return none いいえ返します。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造体へのポインタ + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -3594,7 +4556,8 @@ void wolfSSL_CTX_set_psk_server_callback(WOLFSSL_CTX* ctx, /*! \brief WolfSSL構造オプションメンバー。 \return none いいえ返します。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造体へのポインタ + _Example_ \code WOLFSSL_CTX* ctx; @@ -3624,7 +4587,8 @@ void wolfSSL_set_psk_server_callback(WOLFSSL* ssl, /*! \brief \return WOLFSSL_SUCCESS またはwolfssl_failure. - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造体へのポインタ + \sa wolfSSL_get_psk_callback_ctx \sa wolfSSL_CTX_set_psk_callback_ctx \sa wolfSSL_CTX_get_psk_callback_ctx @@ -3634,7 +4598,7 @@ int wolfSSL_set_psk_callback_ctx(WOLFSSL* ssl, void* psk_ctx); /*! \brief \return WOLFSSL_SUCCESS またはwolfssl_failure. - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 \sa wolfSSL_set_psk_callback_ctx \sa wolfSSL_get_psk_callback_ctx \sa wolfSSL_CTX_get_psk_callback_ctx @@ -3664,6 +4628,7 @@ void* wolfSSL_CTX_get_psk_callback_ctx(WOLFSSL_CTX* ctx); \brief この機能により、CTX構造のHAVAnonメンバーがコンパイル中に定義されている場合は、CTX構造のHABANONメンバーを有効にします。 \return SSL_SUCCESS 機能が正常に実行され、CTXのHaveannonメンバーが1に設定されている場合に返されます。 \return SSL_FAILURE CTX構造がNULLの場合に返されます。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -3684,9 +4649,10 @@ int wolfSSL_CTX_allow_anon_cipher(WOLFSSL_CTX*); /*! \ingroup Setup - \brief wolfsslv23_server_method()関数は、アプリケーションがサーバーであることを示すために使用され、SSL 3.0 - TLS 1.3からプロトコルバージョンと接続するクライアントをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 + \brief wolfsslv23_server_method()関数は、アプリケーションがサーバーであることを示すために使用され、SSL 3.0 - TLS 1.3からプロトコルバージョンと接続するクライアントをサポートします。この関数は、wolfSSL_CTX_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 \return pointer 成功した場合、呼び出しは新しく作成されたwolfssl_method構造へのポインタを返します。 - \return Failure xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + \return Failure xmallocを呼び出すときにメモリ割り当てが失敗した場合、基礎となるMalloc()実装の失敗値が返されます(通常はerrnoがenomeemに設定されます)。 + _Example_ \code WOLFSSL_METHOD* method; @@ -3712,9 +4678,10 @@ WOLFSSL_METHOD *wolfSSLv23_server_method(void); /*! \ingroup Setup - \brief これは、WolfSSL構造体の内部エラー状態を取得するために使用されます。 + \bri f この関数は、れは、WolfSSL構造体の内部エラー状態を取得するために使用されます。 \return wolfssl_error SSLエラー状態、通常はマイナスを返します - \return BAD_FUNC_ARG SSLがNULLの場合 + \return BAD_FUNC_ARG sslがNULLの場合 + _Example_ \code WOLFSSL* ssl; @@ -3733,6 +4700,7 @@ int wolfSSL_state(WOLFSSL* ssl); \brief この関数はピアの証明書を取得します。 \return pointer WOLFSSL_X509構造のPECRERTメンバーへのポインタが存在する場合は。 \return 0 ピア証明書発行者サイズが定義されていない場合に返されます。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -3752,9 +4720,10 @@ WOLFSSL_X509* wolfSSL_get_peer_certificate(WOLFSSL* ssl); /*! \ingroup Debug - \brief この関数は、wolfssl_get_error()を呼び出してssl_error_want_readを取得するのと似ています。基礎となるエラー状態がSSL_ERROR_WANT_READの場合、この関数は1を返しますが、それ以外の場合は0です。 - \return 1 WOLFSSL_GET_ERROR()はSSL_ERROR_WANT_READを返し、基礎となるI / Oには読み取り可能なデータがあります。 + \brief この関数は、wolfSSL_get_error()を呼び出してssl_error_want_readを取得するのと似ています。基礎となるエラー状態がSSL_ERROR_WANT_READの場合、この関数は1を返しますが、それ以外の場合は0です。 + \return 1 WOLFSSL_GET_ERROR()はSSL_ERROR_WANT_READを返し、基礎となるI / Oには読み取り可能なデータがあります。 \return 0 SSL_ERROR_WANT_READエラー状態はありません。 + _Example_ \code int ret; @@ -3773,9 +4742,10 @@ int wolfSSL_want_read(WOLFSSL*); /*! \ingroup Debug - \brief この関数は、wolfssl_get_error()を呼び出し、RETURSのSSL_ERROR_WANT_WRITEを取得するのと同じです。基礎となるエラー状態がSSL_ERROR_WANT_WRITEの場合、この関数は1を返しますが、それ以外の場合は0です。 - \return 1 WOLFSSL_GET_ERROR()はSSL_ERROR_WANT_WRITEを返します。基礎となるI / Oは、基礎となるSSL接続で進行状況を行うために書き込まれるデータを必要とします。 + \brief この関数は、wolfSSL_get_error()を呼び出し、RETURSのSSL_ERROR_WANT_WRITEを取得するのと同じです。基礎となるエラー状態がSSL_ERROR_WANT_WRITEの場合、この関数は1を返しますが、それ以外の場合は0です。 + \return 1 WOLFSSL_GET_ERROR()はSSL_ERROR_WANT_WRITEを返します。基礎となるI / Oは、基礎となるSSL接続で進行状況を行うために書き込まれるデータを必要とします。 \return 0 ssl_error_want_writeエラー状態はありません。 + _Example_ \code int ret; @@ -3793,10 +4763,11 @@ int wolfSSL_want_write(WOLFSSL*); /*! \ingroup Setup - \brief wolfsslデフォルトでは、有効な日付範囲と検証済みの署名のためにピア証明書をチェックします。wolfssl_connect()またはwolfssl_accept()の前にこの関数を呼び出すと、実行するチェックのリストにドメイン名チェックが追加されます。DN受信時にピア証明書を確認するためのドメイン名を保持します。 - \return SSL_SUCCESS 成功すると。 + \brief wolfsslデフォルトでは、有効な日付範囲と検証済みの署名のためにピア証明書をチェックします。wolfssl_connect()またはwolfssl_accept()の前にこの関数を呼び出すと、実行するチェックのリストにドメイン名チェックが追加されます。DN受信時にピア証明書を確認するためのドメイン名を保持します。 + \return SSL_SUCCESS 成功時に返されます。 \return SSL_FAILURE メモリエラーが発生した場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造体へのポインタ + _Example_ \code int ret = 0; @@ -3816,8 +4787,9 @@ int wolfSSL_check_domain_name(WOLFSSL* ssl, const char* dn); /*! \ingroup TLS \brief 使用するためにWolfSSLライブラリを初期化します。アプリケーションごとに1回、その他のライブラリへの呼び出しの前に呼び出す必要があります。 - \return SSL_SUCCESS 成功した場合、通話が戻ります。 + \return SSL_SUCCESS 成功した場合に返されます。、通話が戻ります。 \return BAD_MUTEX_E 返される可能性があるエラーです。 + _Example_ \code int ret = 0; @@ -3835,6 +4807,7 @@ int wolfSSL_Init(void); \ingroup TLS \brief さらなる使用からWOLFSSLライブラリを初期化します。ライブラリによって使用されるリソースを解放しますが、呼び出される必要はありません。 \return SSL_SUCCESS エラーを返しません。 + _Example_ \code wolfSSL_Cleanup(); @@ -3847,6 +4820,7 @@ int wolfSSL_Cleanup(void); \ingroup IO \brief この関数は現在のライブラリーバージョンを返します。 \return LIBWOLFSSL_VERSION_STRING バージョンを定義するconst charポインタ。 + _Example_ \code char version[MAXSIZE]; @@ -3864,6 +4838,7 @@ const char* wolfSSL_lib_version(void); \ingroup IO \brief この関数は、現在のライブラリーのバージョンを16進表記で返します。 \return LILBWOLFSSL_VERSION_HEX wolfssl / version.hで定義されている16進数バージョンを返します。 + _Example_ \code word32 libV; @@ -3881,9 +4856,10 @@ word32 wolfSSL_lib_version_hex(void); /*! \ingroup IO - \brief SSLメソッドの側面に基づいて、実際の接続または承認を実行します。クライアント側から呼び出された場合、サーバ側から呼び出された場合にwolfssl_accept()が実行されている間にwolfssl_connect()が行われる。 - \return SSL_SUCCESS 成功した場合に返却されます。(注意、古いバージョンは0を返します) - \return SSL_FATAL_ERROR 基礎となる呼び出しがエラーになった場合に返されます。特定のエラーコードを取得するには、wolfssl_get_error()を使用してください。 + \brief SSLメソッドの側面に基づいて、実際の接続または承認を実行します。クライアント側から呼び出された場合、サーバ側から呼び出された場合にwolfssl_accept()が実行されている間にwolfssl_connect()が行われる。 + \return SSL_SUCCESS 成功した場合に返されます。に返却されます。(注意、古いバージョンは0を返します) + \return SSL_FATAL_ERROR 基礎となる呼び出しがエラーになった場合に返されます。特定のエラーコードを取得するには、wolfSSL_get_error()を使用してください。 + _Example_ \code int ret = SSL_FATAL_ERROR; @@ -3905,8 +4881,9 @@ int wolfSSL_negotiate(WOLFSSL* ssl); /*! \ingroup Setup \brief SSL接続に圧縮を使用する機能をオンにします。両側には圧縮がオンになっている必要があります。そうでなければ圧縮は使用されません。ZLIBライブラリは実際のデータ圧縮を実行します。ライブラリにコンパイルするには、システムの設定システムに--with-libzを使用し、そうでない場合はhand_libzを定義します。送受信されるメッセージの実際のサイズを減らす前にデータを圧縮している間に、圧縮によって保存されたデータの量は通常、ネットワークの遅いすべてのネットワークを除いたものよりも分析に時間がかかります。 - \return SSL_SUCCESS 成功すると。 + \return SSL_SUCCESS 成功時に返されます。 \return NOT_COMPILED_IN 圧縮サポートがライブラリに組み込まれていない場合に返されます。 + _Example_ \code int ret = 0; @@ -3925,8 +4902,9 @@ int wolfSSL_set_compression(WOLFSSL* ssl); \ingroup Setup \brief この関数はSSLセッションタイムアウト値を秒単位で設定します。 \return SSL_SUCCESS セッションを正常に設定すると返されます。 - \return BAD_FUNC_ARG SSLがNULLの場合に返されます。 - \param ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 + \return BAD_FUNC_ARG sslがNULLの場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造体へのポインタ + _Example_ \code int ret = 0; @@ -3950,7 +4928,8 @@ int wolfSSL_set_timeout(WOLFSSL* ssl, unsigned int to); \return the wolfssl_error_code_opensslの場合、以前のタイムアウト値 \return defined 成功しています。定義されていない場合、SSL_SUCCESSは返されます。 \return BAD_FUNC_ARG 入力コンテキスト(CTX)がNULLのときに返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -3973,6 +4952,7 @@ int wolfSSL_CTX_set_timeout(WOLFSSL_CTX* ctx, unsigned int to); \brief ピアの証明書チェーンを取得します。 \return chain 正常にコールがピアの証明書チェーンを返します。 \return 0 無効なWolfSSLポインタが関数に渡されると返されます。 + _Example_ \code none @@ -3989,6 +4969,7 @@ WOLFSSL_X509_CHAIN* wolfSSL_get_peer_chain(WOLFSSL* ssl); \brief ピアの証明書チェーン数を取得します。 \return Success 正常にコールがピアの証明書チェーン数を返します。 \return 0 無効なチェーンポインタが関数に渡されると返されます。 + _Example_ \code none @@ -4006,6 +4987,7 @@ int wolfSSL_get_chain_count(WOLFSSL_X509_CHAIN* chain); \return Success 正常にコールがインデックス別にピアの証明書長をバイト単位で返します。 \return 0 無効なチェーンポインタが関数に渡されると返されます。 \param chain 有効なwolfssl_x509_chain構造へのポインタ。 + _Example_ \code none @@ -4023,6 +5005,7 @@ int wolfSSL_get_chain_length(WOLFSSL_X509_CHAIN* chain, int idx); \return Success 正常にコールがインデックスでピアの証明書を返します。 \return 0 無効なチェーンポインタが関数に渡されると返されます。 \param chain 有効なwolfssl_x509_chain構造へのポインタ。 + _Example_ \code none @@ -4069,6 +5052,7 @@ WOLFSSL_X509* wolfSSL_get_chain_X509(WOLFSSL_X509_CHAIN* chain, int idx); \return Success 正常にコールがインデックスでピアの証明書を返します。 \return 0 無効なチェーンポインタが関数に渡されると返されます。 \param chain 有効なwolfssl_x509_chain構造へのポインタ。 + _Example_ \code none @@ -4085,6 +5069,7 @@ int wolfSSL_get_chain_cert_pem(WOLFSSL_X509_CHAIN* chain, int idx, \ingroup openSSL \brief セッションのIDを取得します。セッションIDは常に32バイトの長さです。 \return id セッションID。 + _Example_ \code none @@ -4096,9 +5081,10 @@ const unsigned char* wolfSSL_get_sessionID(const WOLFSSL_SESSION* s); /*! \ingroup openSSL \brief ピアの証明書のシリアル番号を取得します。シリアル番号バッファ(IN)は少なくとも32バイト以上であり、入力として* INOUTSZ引数として提供されます。関数を呼び出した後* INOUTSZはINバッファに書き込まれた実際の長さをバイト単位で保持します。 - \return SSL_SUCCESS 成功すると。 + \return SSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG 関数の不良引数が見つかった場合に返されます。 \param in シリアル番号バッファは少なくとも32バイトの長さであるべきです + _Example_ \code none @@ -4113,6 +5099,7 @@ int wolfSSL_X509_get_serial_number(WOLFSSL_X509* x509, unsigned char* in, \brief 証明書から件名の共通名を返します。 \return NULL X509構造がNULLの場合に返されます \return string サブジェクトの共通名の文字列表現は成功に返されます + _Example_ \code WOLFSSL_X509 x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL, @@ -4138,6 +5125,7 @@ char* wolfSSL_X509_get_subjectCN(WOLFSSL_X509*); \return buffer この関数はDerbuffer構造体のバッファメンバーを返します。これはバイト型です。 \return NULL x509またはoutszパラメーターがnullの場合に返されます。 \param x509 証明書情報を含むWolfSSL_X509構造へのポインタ。 + _Example_ \code WOLFSSL_X509 x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL, @@ -4162,6 +5150,7 @@ const unsigned char* wolfSSL_X509_get_der(WOLFSSL_X509* x509, int* outSz); \brief この関数は、x509がnullのかどうかを確認し、そうでない場合は、x509構造体のノッカスメンバーを返します。 \return pointer ASN1_TIMEを使用してX509構造体のノカフターメンバーに構造体を表明します。 \return NULL X509オブジェクトがNULLの場合に返されます。 + _Example_ \code WOLFSSL_X509* x509 = (WOLFSSL_X509)XMALOC(sizeof(WOLFSSL_X509), NULL, @@ -4181,6 +5170,7 @@ WOLFSSL_ASN1_TIME* wolfSSL_X509_get_notAfter(WOLFSSL_X509*); \brief この関数はX509証明書のバージョンを取得します。 \return 0 X509構造がNULLの場合に返されます。 \return version X509構造に保存されているバージョンが返されます。 + _Example_ \code WOLFSSL_X509* x509; @@ -4204,6 +5194,7 @@ int wolfSSL_X509_version(WOLFSSL_X509*); \return *WOLFSSL_X509 関数が正常に実行された場合、WolfSSL_X509構造ポインタが返されます。 \return NULL Xftellマクロの呼び出しが負の値を返す場合。 \param x509 wolfssl_x509ポインタへのポインタ。 + _Example_ \code WOLFSSL_X509* x509a = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL, @@ -4230,6 +5221,7 @@ WOLFSSL_X509* \return pointer 実行された実行は、wolfssl_x509構造へのポインタを返します。 \return NULL 証明書が書き込まれなかった場合に返されます。 \param fname ロードする証明書ファイル。 + _Example_ \code #define cliCert “certs/client-cert.pem” @@ -4252,8 +5244,9 @@ WOLFSSL_X509* \brief この関数は、デバイスの種類をX509構造からバッファにコピーします。 \return pointer X509構造からデバイスの種類を保持するバイトポインタを返します。 \return NULL バッファサイズがNULLの場合に返されます。 - \param x509 wolfssl_x509_new()で作成されたwolfssl_x509構造へのポインタ。 + \param x509 wolfssl_x509_new()で作成されたwolfssl_x509構造へのポインタ。 \param in デバイスタイプ(バッファ)を保持するバイトタイプへのポインタ。 + _Example_ \code WOLFSSL_X509* x509 = (WOLFSSL_X509)XMALOC(sizeof(WOLFSSL_X509), NULL, @@ -4282,6 +5275,7 @@ unsigned char* \return NULL inoutszがnullの場合に返されます。 \param x509 証明書情報を含むWolfSSL_X509構造へのポインタ。 \param in バッファを表すバイトを入力するポインタ。 + _Example_ \code WOLFSSL_X509* x509; // X509 certificate @@ -4307,6 +5301,7 @@ unsigned char* \return pointer この関数は、X509オブジェクトからロードされたシリアル番号を含むINバッファへのバイトポインタを返します。 \param x509 証明書情報を含むWOLFSSL_X509構造へのポインタ。 \param in コピーされるバッファへのポインタ。 + _Example_ \code char* serial; @@ -4332,10 +5327,11 @@ unsigned char* /*! \ingroup IO - \brief この関数はクライアント側で呼び出され、ピアの証明書チェーンを取得するのに十分な長さだけサーバーを持つSSL / TLSハンドシェイクを開始します。この関数が呼び出されると、基礎となる通信チャネルはすでに設定されています。 wolfssl_connect_cert()は、ブロックと非ブロックI / Oの両方で動作します。基礎となるI / Oがノンブロッキングである場合、wolfsl_connect_cert()は、wolfssl_connect_cert_cert()のニーズを満たすことができなかったときに戻ります。ハンドシェイクを続けます。この場合、wolfssl_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。通話プロセスは、基礎となるI / Oが準備ができて、wolfsslがオフになっているところを拾うときに、wolfssl_connect_cert()への呼び出しを繰り返す必要があります。ノンブロッキングソケットを使用する場合は、何も実行する必要がありますが、select()を使用して必要な条件を確認できます。基礎となる入出力がブロックされている場合、wolfssl_connect_cert()はピアの証明書チェーンが受信されたらのみ返されます。 - \return SSL_SUCCESS 成功すると。 + \brief この関数はクライアント側で呼び出され、ピアの証明書チェーンを取得するのに十分な長さだけサーバーを持つSSL / TLSハンドシェイクを開始します。この関数が呼び出されると、基礎となる通信チャネルはすでに設定されています。 wolfssl_connect_cert()は、ブロックと非ブロックI / Oの両方で動作します。基礎となるI / Oがノンブロッキングである場合、wolfsl_connect_cert()は、wolfssl_connect_cert_cert()のニーズを満たすことができなかったときに戻ります。ハンドシェイクを続けます。この場合、wolfSSL_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。通話プロセスは、基礎となるI / Oが準備ができて、wolfsslがオフになっているところを拾うときに、wolfssl_connect_cert()への呼び出しを繰り返す必要があります。ノンブロッキングソケットを使用する場合は、何も実行する必要がありますが、select()を使用して必要な条件を確認できます。基礎となる入出力がブロックされている場合、wolfssl_connect_cert()はピアの証明書チェーンが受信されたらのみ返されます。 + \return SSL_SUCCESS 成功時に返されます。 \return SSL_FAILURE SSLセッションパラメータがNULLの場合、返されます。 - \return SSL_FATAL_ERROR エラーが発生した場合は返されます。より詳細なエラーコードを取得するには、wolfssl_get_error()を呼び出します。 + \return SSL_FATAL_ERROR エラーが発生した場合に返されます。より詳細なエラーコードを取得するには、wolfSSL_get_error()を呼び出します。 + _Example_ \code int ret = 0; @@ -4361,6 +5357,7 @@ int wolfSSL_connect_cert(WOLFSSL* ssl); \return WC_PKCS12 WC_PKCS12構造へのポインタ。 \return Failure 関数に失敗した場合はNULLを返します。 \param bio PKCS12バッファを読み取るためのWOLFSSL_BIO構造。 + _Example_ \code WC_PKCS12* pkcs; @@ -4386,6 +5383,7 @@ WC_PKCS12* wolfSSL_d2i_PKCS12_bio(WOLFSSL_BIO* bio, \return 1 成功のために。 \return Failure 0。 \param bio PKCS12バッファを書き込むためのWOLFSSL_BIO構造。 + _Example_ \code WC_PKCS12 pkcs12; @@ -4421,6 +5419,7 @@ WC_PKCS12* wolfSSL_i2d_PKCS12_bio(WOLFSSL_BIO* bio, \param paswd PKCS12を復号化するためのパスワード。 \param pkey PKCS12からデコードされた秘密鍵を保持するための構造。 \param cert PKCS12から復号された証明書を保持する構造 + _Example_ \code WC_PKCS12* pkcs; @@ -4443,13 +5442,14 @@ int wolfSSL_PKCS12_parse(WC_PKCS12* pkcs12, const char* psw, /*! \ingroup CertsKeys \brief サーバーDIFFIE-HELLMANエフェメラルパラメータ設定。この関数は、サーバーがDHEを使用する暗号スイートをネゴシエートしている場合に使用するグループパラメータを設定します。 - \return SSL_SUCCESS 成功すると。 + \return SSL_SUCCESS 成功時に返されます。 \return MEMORY_ERROR メモリエラーが発生した場合に返されます。 \return SIDE_ERROR この関数がSSLサーバではなくSSLクライアントで呼び出されると返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param p Diffie-Hellman素数パラメータ。 \param pSz pのサイズ。 \param g Diffie-Hellman "Generator"パラメータ。 + _Example_ \code WOLFSSL* ssl; @@ -4469,15 +5469,16 @@ int wolfSSL_SetTmpDH(WOLFSSL* ssl, const unsigned char* p, int pSz, \return SSL_SUCCESS 実行に成功した場合。 \return SSL_BAD_FILETYPE ファイルの種類がpemではなく、asn.1ではない場合WC_DHParamSLOADが正常に戻っていない場合は、も返されます。 \return SSL_NO_PEM_HEADER PEMヘッダーがない場合はPemToderから返します。 - \return SSL_BAD_FILE PemToderにファイルエラーがある場合は返されます。 + \return SSL_BAD_FILE PemToderにファイルエラーがある場合に返されます。 \return SSL_FATAL_ERROR コピーエラーが発生した場合はPemToderから返されました。 \return MEMORY_E - メモリ割り当てエラーが発生した場合 \return BAD_FUNC_ARG wolfssl構造体がnullの場合、またはそうでない場合はサブルーチンに渡された場合に返されます。 - \return DH_KEY_SIZE_E wolfssl_settmph()またはwolfssl_ctx_settmph()のキーサイズエラーがある場合に返されます。 - \return SIDE_ERROR wolfssl_settmphのサーバー側ではない場合は返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return DH_KEY_SIZE_E wolfssl_settmph()またはWOLFSSL_CTX_settmph()の鍵サイズエラーがある場合に返されます。 + \return SIDE_ERROR wolfssl_settmphのサーバー側ではない場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param buf wolfssl_settmph_file_wrapperから渡された割り当てバッファー。 \param sz ファイルのサイズ(wolfssl_settmph_file_wrapper内のfname)を保持するロングint。 + _Example_ \code Static int wolfSSL_SetTmpDH_file_wrapper(WOLFSSL_CTX* ctx, WOLFSSL* ssl, @@ -4505,11 +5506,12 @@ int wolfSSL_SetTmpDH_buffer(WOLFSSL* ssl, const unsigned char* b, long sz, \return MEMORY_E この関数またはサブルーチンにメモリ割り当てが失敗した場合に返されます。 \return SIDE_ERROR WolfSSL構造体にあるオプション構造のサイドメンバーがサーバー側ではない場合。 \return SSL_BAD_FILETYPE 証明書が一連のチェックに失敗した場合は返します。 - \return DH_KEY_SIZE_E DHパラメーターのキーサイズがWolfSSL構造体のMinkKeyszメンバーの値より小さい場合に返されます。 - \return DH_KEY_SIZE_E DHパラメータのキーサイズがwolfssl構造体のMAXDHKEYSZメンバーの値よりも大きい場合に返されます。 + \return DH_KEY_SIZE_E DHパラメーターの鍵サイズがWolfSSL構造体のMinkKeyszメンバーの値より小さい場合に返されます。 + \return DH_KEY_SIZE_E DHパラメータの鍵サイズがwolfssl構造体のMAXDHKEYSZメンバーの値よりも大きい場合に返されます。 \return BAD_FUNC_ARG wolfssl構造など、引数値がnullの場合に返します。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ \param fname 証明書を保持している定数の文字ポインタ。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -4533,15 +5535,17 @@ int wolfSSL_SetTmpDH_file(WOLFSSL* ssl, const char* f, int format); \brief サーバーCTX Diffie-Hellmanのパラメータを設定します。 \return SSL_SUCCESS 関数とすべてのサブルーチンがエラーなしで戻った場合に返されます。 \return BAD_FUNC_ARG CTX、P、またはGパラメーターがNULLの場合に返されます。 - \return DH_KEY_SIZE_E DHパラメータのキーサイズがwolfssl_ctx構造体のMindHKEYSZメンバーの値より小さい場合に返されます。 - \return DH_KEY_SIZE_E DHパラメータのキーサイズがwolfssl_ctx構造体のMaxDhkeySZメンバーの値よりも大きい場合に返されます。 - \return MEMORY_E この関数またはサブルーチンにメモリの割り当てが失敗した場合は返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \return DH_KEY_SIZE_E DHパラメータの鍵サイズがWOLFSSL_CTX構造体のMindHKEYSZメンバーの値より小さい場合に返されます。 + \return DH_KEY_SIZE_E DHパラメータの鍵サイズがWOLFSSL_CTX構造体のMaxDhkeySZメンバーの値よりも大きい場合に返されます。 + \return MEMORY_E この関数またはサブルーチンにメモリの割り当てが失敗した場合に返されます。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 \param p ServerDH_P構造体のバッファメンバーにロードされた定数の符号なし文字ポインタ。 \param pSz pのサイズを表すint型は、max_dh_sizeに初期化されます。 \param g ServerDh_g構造体のバッファメンバーにロードされた定数の符号なし文字ポインタ。 + + _Example_ \code - WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol ); + WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol ); byte* p; byte* g; word32 pSz = (word32)sizeof(p)/sizeof(byte); @@ -4565,10 +5569,11 @@ int wolfSSL_CTX_SetTmpDH(WOLFSSL_CTX* ctx, const unsigned char* p, \return 0 実行が成功するために返されました。 \return BAD_FUNC_ARG CTXパラメータまたはBUFパラメータがNULLの場合に返されます。 \return MEMORY_E メモリ割り当てエラーがある場合 - \return SSL_BAD_FILETYPE フォーマットが正しくない場合は返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return SSL_BAD_FILETYPE フォーマットが正しくない場合に返されます。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWolfSSL構造へのポインタ。 \param buf バッファとして割り当てられ、wolfssl_settmpdh_buffer_wrapperに渡された定数の符号なし文字型へのポインタ。 - \param sz wolfssl_settmph_file_wrapper()のFNAMEパラメータから派生した長い整数型。 + \param sz wolfssl_settmph_file_wrapper()のFNAMEパラメータから派生した長い整数型。 + _Example_ \code static int wolfSSL_SetTmpDH_file_wrapper(WOLFSSL_CTX* ctx, WOLFSSL* ssl, @@ -4600,14 +5605,15 @@ int wolfSSL_CTX_SetTmpDH_buffer(WOLFSSL_CTX* ctx, const unsigned char* b, \return MEMORY_E 動的メモリの割り当てがサブルーチンで失敗した場合に返されます。 \return BAD_FUNC_ARG CTXまたはFNAMEパラメータがNULLまたはサブルーチンがNULL引数に渡された場合に返されます。 \return SSL_BAD_FILE 証明書ファイルが開くことができない場合、またはファイルの一連のチェックがwolfssl_settmpdh_file_wrapperから失敗した場合に返されます。 - \return SSL_BAD_FILETYPE フォーマットがwolfssl_settmph_buffer_wrapper()からPEMまたはASN.1ではない場合に返されます。 - \return DH_KEY_SIZE_E DHパラメータのキーサイズがwolfssl_ctx構造体のMindHKEYSZメンバーの値より小さい場合に返されます。 - \return DH_KEY_SIZE_E DHパラメータのキーサイズがwolfssl_ctx構造体のMaxDhkeySZメンバーの値よりも大きい場合に返されます。 - \return SIDE_ERROR wolfssl_settmph()で返されたサイドがサーバー終了ではない場合。 + \return SSL_BAD_FILETYPE フォーマットがwolfssl_settmph_buffer_wrapper()からPEMまたはASN.1ではない場合に返されます。 + \return DH_KEY_SIZE_E DHパラメータの鍵サイズがWOLFSSL_CTX構造体のMindHKEYSZメンバーの値より小さい場合に返されます。 + \return DH_KEY_SIZE_E DHパラメータの鍵サイズがWOLFSSL_CTX構造体のMaxDhkeySZメンバーの値よりも大きい場合に返されます。 + \return SIDE_ERROR wolfssl_settmph()で返されたサイドがサーバー終了ではない場合。 \return SSL_NO_PEM_HEADER PEMヘッダーがない場合はPemToderから返されます。 \return SSL_FATAL_ERROR メモリコピーの失敗がある場合はPemToderから返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 \param fname 証明書ファイルへの定数文字ポインタ。 + _Example_ \code #define dhParam “certs/dh2048.pem” @@ -4633,10 +5639,11 @@ int wolfSSL_CTX_SetTmpDH_file(WOLFSSL_CTX* ctx, const char* f, /*! \ingroup CertsKeys - \brief この関数は、wolfssl_ctx構造体のminkkeyszメンバーにアクセスして、Diffie Hellmanキーサイズの最小サイズ(ビット単位)を設定します。 + \brief この関数は、WOLFSSL_CTX構造体のminkkeyszメンバーにアクセスして、Diffie Hellman鍵サイズの最小サイズ(ビット単位)を設定します。 \return SSL_SUCCESS 関数が正常に完了した場合に返されます。 - \return BAD_FUNC_ARG wolfssl_ctx構造体がnullの場合、またはキーz_BITSが16,000を超えるか、または8によって割り切れない場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造体がnullの場合、またはキーz_BITSが16,000を超えるか、または8によって割り切れない場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code public static int CTX_SetMinDhKey_Sz(IntPtr ctx, short minDhKey){ @@ -4653,10 +5660,11 @@ int wolfSSL_CTX_SetMinDhKey_Sz(WOLFSSL_CTX* ctx, word16); /*! \ingroup CertsKeys - \brief WolfSSL構造のDiffie-Hellmanキーの最小サイズ(ビット単位)を設定します。 + \brief WolfSSL構造のDiffie-Hellman鍵の最小サイズ(ビット単位)を設定します。 \return SSL_SUCCESS 最小サイズは正常に設定されました。 \return BAD_FUNC_ARG wolfssl構造はNULL、またはKeysz_BITSが16,000を超えるか、または8によって割り切れない場合 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -4673,10 +5681,11 @@ int wolfSSL_SetMinDhKey_Sz(WOLFSSL* ssl, word16 keySz_bits); /*! \ingroup CertsKeys - \brief この関数は、wolfssl_ctx構造体のmaxdhkeyszメンバーにアクセスして、Diffie Hellmanキーサイズの最大サイズ(ビット単位)を設定します。 + \brief この関数は、WOLFSSL_CTX構造体のmaxdhkeyszメンバーにアクセスして、Diffie Hellman鍵サイズの最大サイズ(ビット単位)を設定します。 \return SSL_SUCCESS 関数が正常に完了した場合に返されます。 - \return BAD_FUNC_ARG wolfssl_ctx構造体がnullの場合、またはキーz_BITSが16,000を超えるか、または8によって割り切れない場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造体がnullの場合、またはキーz_BITSが16,000を超えるか、または8によって割り切れない場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code public static int CTX_SetMaxDhKey_Sz(IntPtr ctx, short maxDhKey){ @@ -4693,10 +5702,11 @@ int wolfSSL_CTX_SetMaxDhKey_Sz(WOLFSSL_CTX* ctx, word16 keySz_bits); /*! \ingroup CertsKeys - \brief WolfSSL構造のDiffie-Hellmanキーの最大サイズ(ビット単位)を設定します。 + \brief WolfSSL構造のDiffie-Hellman鍵の最大サイズ(ビット単位)を設定します。 \return SSL_SUCCESS 最大サイズは正常に設定されました。 \return BAD_FUNC_ARG WOLFSSL構造はNULLまたはKEYSZパラメータは許容サイズより大きかったか、または8によって割り切れませんでした。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -4713,9 +5723,10 @@ int wolfSSL_SetMaxDhKey_Sz(WOLFSSL* ssl, word16 keySz_bits); /*! \ingroup CertsKeys - \brief オプション構造のメンバーであるDHKEYSZ(ビット内)の値を返します。この値は、Diffie-Hellmanキーサイズをバイト単位で表します。 + \brief オプション構造のメンバーであるDHKEYSZ(ビット内)の値を返します。この値は、Diffie-Hellman鍵サイズをバイト単位で表します。 \return dhKeySz サイズを表す整数値であるssl-> options.dhkeyszで保持されている値を返します。 \return BAD_FUNC_ARG wolfssl構造体がNULLの場合に返します。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -4740,10 +5751,11 @@ int wolfSSL_GetDhKey_Sz(WOLFSSL*); /*! \ingroup CertsKeys - \brief wolfssl_ctx構造体とwolfssl_cert_manager構造の両方で最小RSAキーサイズを設定します。 + \brief WOLFSSL_CTX構造体とwolfssl_cert_manager構造の両方で最小RSA鍵サイズを設定します。 \return SSL_SUCCESS 機能の実行に成功したことに戻ります。 - \return BAD_FUNC_ARG CTX構造がNULLの場合、またはKEYSZがゼロより小さいか、または8によって割り切れない場合は返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \return BAD_FUNC_ARG CTX構造がNULLの場合、またはKEYSZがゼロより小さいか、または8によって割り切れない場合に返されます。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = SSL_CTX_new(method); @@ -4761,10 +5773,11 @@ int wolfSSL_CTX_SetMinRsaKey_Sz(WOLFSSL_CTX* ctx, short keySz); /*! \ingroup CertsKeys - \brief WolfSSL構造にあるRSAのためのビットで最小許容キーサイズを設定します。 + \brief WolfSSL構造にあるRSAのためのビットで最小許容鍵サイズを設定します。 \return SSL_SUCCESS 最小値が正常に設定されました。 - \return BAD_FUNC_ARG SSL構造がNULLの場合、またはKSYSZがゼロより小さい場合、または8によって割り切れない場合は返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return BAD_FUNC_ARG SSL構造がNULLの場合、またはKSYSZがゼロより小さい場合、または8によって割り切れない場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -4782,10 +5795,11 @@ int wolfSSL_SetMinRsaKey_Sz(WOLFSSL* ssl, short keySz); /*! \ingroup CertsKeys - \brief wolf_ctx構造体とwolfssl_cert_manager構造体のECCキーの最小サイズをビット単位で設定します。 + \brief wolf_ctx構造体とwolfssl_cert_manager構造体のECC鍵の最小サイズをビット単位で設定します。 \return SSL_SUCCESS 実行が成功したために返され、MineCkeyszメンバーが設定されます。 - \return BAD_FUNC_ARG wolfssl_ctx構造体がnullの場合、またはキーが負の場合、または8によって割り切れない場合は返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造体がnullの場合、または鍵が負の場合、または8によって割り切れない場合に返されます。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -4803,8 +5817,9 @@ int wolfSSL_CTX_SetMinEccKey_Sz(WOLFSSL_CTX* ssl, short keySz); \ingroup CertsKeys \brief オプション構造のMineCckeyszメンバーの値を設定します。オプション構造体は、WolfSSL構造のメンバーであり、SSLパラメータを介してアクセスされます。 \return SSL_SUCCESS 関数がオプション構造のMineCckeyszメンバーを正常に設定した場合。 - \return BAD_FUNC_ARG wolfssl_ctx構造体がnullの場合、またはキーサイズ(keysz)が0(ゼロ)未満の場合、または8で割り切れない場合。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造体がnullの場合、または鍵サイズ(keysz)が0(ゼロ)未満の場合、または8で割り切れない場合。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); // New session @@ -4823,11 +5838,12 @@ int wolfSSL_SetMinEccKey_Sz(WOLFSSL* ssl, short keySz); /*! \ingroup CertsKeys \brief この関数は、eap_tlsとeap-ttlsによって、マスターシークレットからキーイングマテリアルを導出します。 - \return BUFFER_E バッファの実際のサイズが許容最大サイズを超える場合は返されます。 - \return MEMORY_E メモリ割り当てにエラーがある場合は返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return BUFFER_E バッファの実際のサイズが許容最大サイズを超える場合に返されます。 + \return MEMORY_E メモリ割り当てにエラーがある場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ \param msk p_hash関数の結果を保持するvoidポインタ変数。 \param len MSK変数の長さを表す符号なし整数。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx);; @@ -4846,13 +5862,14 @@ int wolfSSL_make_eap_keys(WOLFSSL* ssl, void* key, unsigned int len, /*! \ingroup IO - \brief Writev Semanticsをシミュレートしますが、SSL_Write()の動作のために実際にはブロックしないため、フロント追加が小さくなる可能性があるためWritevを使いやすいソフトウェアに移植する。 + \brief Writev Semanticsをシミュレートしますが、SSL_Write()の動作のために実際にはブロックしないため、フロント追加が小さくなる可能性があるためWritevを使いやすいソフトウェアに移植する。 \return >0 成功時に書かれたバイト数。 - \return 0 失敗したときに返されます。特定のエラーコードについてwolfssl_get_error()を呼び出します。 + \return 0 失敗したときに返されます。特定のエラーコードについてwolfSSL_get_error()を呼び出します。 \return MEMORY_ERROR メモリエラーが発生した場合に返されます。 - \return SSL_FATAL_ERROR エラーが発生したとき、または非ブロッキングソケットを使用するときには、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが受信され、再度WOLFSSL_WRITE()を呼び出す必要がある場合は、障害が発生します。特定のエラーコードを取得するには、wolfssl_get_error()を使用してください。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + \return SSL_FATAL_ERROR エラーが発生したとき、または非ブロッキングソケットを使用するときには、SSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEエラーが受信され、再度WOLFSSL_WRITE()を呼び出す必要がある場合は、障害が発生します。特定のエラーコードを取得するには、wolfSSL_get_error()を使用してください。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ \param iov 書き込みへのI / Oベクトルの配列 + _Example_ \code WOLFSSL* ssl = 0; @@ -4879,12 +5896,13 @@ int wolfSSL_writev(WOLFSSL* ssl, const struct iovec* iov, \ingroup Setup \brief この関数はCA署名者リストをアンロードし、署名者全体のテーブルを解放します。 \return SSL_SUCCESS 機能の実行に成功したことに戻ります。 - \return BAD_FUNC_ARG wolfssl_ctx構造体がnullの場合、または他の方法では未解決の引数値がサブルーチンに渡された場合に返されます。 - \return BAD_MUTEX_E ミューテックスエラーが発生した場合は返されます。lockmutex()は0を返しませんでした。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造体がnullの場合、または他の方法では未解決の引数値がサブルーチンに渡された場合に返されます。 + \return BAD_MUTEX_E ミューテックスエラーが発生した場合に返されます。lockmutex()は0を返しませんでした。 + _Example_ \code WOLFSSL_METHOD method = wolfTLSv1_2_client_method(); - WOLFSSL_CTX* ctx = WOLFSSL_CTX_new(method); + WOLFSSL_CTX* ctx = wolfSSL_CTX_new(method); … if(!wolfSSL_CTX_UnloadCAs(ctx)){ // The function did not unload CAs @@ -4900,10 +5918,11 @@ int wolfSSL_CTX_UnloadCAs(WOLFSSL_CTX*); /*! \ingroup Setup \brief この関数は、以前にロードされたすべての信頼できるピア証明書をアンロードするために使用されます。マクロwolfssl_trust_peer_certを定義することで機能が有効になっています。 - \return SSL_SUCCESS 成功すると。 - \return BAD_FUNC_ARG CTXがNULLの場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_SUCCESS 成功時に返されます。 + \return BAD_FUNC_ARG CTXがNULLの場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 + _Example_ \code int ret = 0; @@ -4924,14 +5943,15 @@ int wolfSSL_CTX_Unload_trust_peers(WOLFSSL_CTX*); \ingroup Setup \brief この関数は、TLS / SSLハンドシェイクを実行するときにピアを検証するために使用する証明書をロードします。ハンドシェイク中に送信されたピア証明書は、使用可能なときにスキッドを使用することによって比較されます。これら2つのことが一致しない場合は、ロードされたCASが使用されます。ファイルの代わりにバッファーの場合は、wolfssl_ctx_trust_peer_certと同じ機能です。特徴はマクロwolfssl_trust_peer_certを定義することによって有効になっています適切な使用法の例を参照してください。 \return SSL_SUCCESS 成功すると - \return SSL_FAILURE CTXがNULLの場合、または両方のファイルと種類が無効な場合は返されます。 - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_FAILURE CTXがNULLの場合、または両方のファイルと種類が無効な場合に返されます。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 \param buffer 証明書を含むバッファへのポインタ。 \param sz バッファ入力の長さ。 + _Example_ \code int ret = 0; @@ -4962,14 +5982,16 @@ int wolfSSL_CTX_trust_peer_buffer(WOLFSSL_CTX* ctx, const unsigned char* in, \ingroup CertsKeys \brief この関数はCA証明書バッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。フォーマットがPEM内にある限り、バッファあたり複数のCA証明書をロードすることができます。適切な使用法の例をご覧ください。 \return SSL_SUCCESS 成功すると - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 \return BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 \param in CA証明書バッファへのポインタ。 \param sz 入力CA証明書バッファのサイズ、IN。 + + _Example_ \code int ret = 0; @@ -5000,16 +6022,17 @@ int wolfSSL_CTX_load_verify_buffer(WOLFSSL_CTX* ctx, const unsigned char* in, \ingroup CertsKeys \brief この関数はCA証明書バッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。フォーマットがPEM内にある限り、バッファあたり複数のCA証明書をロードすることができます。_EXバージョンはPR 2413に追加され、UserChainとFlagsの追加の引数をサポートします。 \return SSL_SUCCESS 成功すると - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 \return BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 \param in CA証明書バッファへのポインタ。 \param sz 入力CA証明書バッファのサイズ、IN。 \param format バッファ証明書の形式、SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。 \param userChain フォーマットwolfssl_filetype_asn1を使用する場合、このセットはゼロ以外のセットを示しています.Derのチェーンが表示されています。 + _Example_ \code int ret = 0; @@ -5043,14 +6066,15 @@ int wolfSSL_CTX_load_verify_buffer_ex(WOLFSSL_CTX* ctx, \ingroup CertsKeys \brief この関数は、CA証明書チェーンバッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。フォーマットがPEM内にある限り、バッファあたり複数のCA証明書をロードすることができます。適切な使用法の例をご覧ください。 \return SSL_SUCCESS 成功すると - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 \return BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 \param in CA証明書バッファへのポインタ。 \param sz 入力CA証明書バッファのサイズ、IN。 + _Example_ \code int ret = 0; @@ -5082,13 +6106,14 @@ int wolfSSL_CTX_load_verify_chain_buffer_format(WOLFSSL_CTX* ctx, \ingroup CertsKeys \brief この関数は証明書バッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。適切な使用法の例をご覧ください。 \return SSL_SUCCESS 成功すると - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 \param in ロードする証明書を含む入力バッファ。 \param sz 入力バッファのサイズ。 + _Example_ \code int ret = 0; @@ -5117,14 +6142,15 @@ int wolfSSL_CTX_use_certificate_buffer(WOLFSSL_CTX* ctx, \ingroup CertsKeys \brief この関数は、秘密鍵バッファをSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1OR SSL_FILETYPE_PEM。適切な使用法の例をご覧ください。 \return SSL_SUCCESS 成功すると - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 - \return NO_PASSWORD キーファイルが暗号化されているがパスワードが提供されていない場合は返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \return NO_PASSWORD 鍵ファイルが暗号化されているがパスワードが提供されていない場合に返されます。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 \param in ロードする秘密鍵を含む入力バッファ。 \param sz 入力バッファのサイズ。 + _Example_ \code int ret = 0; @@ -5153,13 +6179,14 @@ int wolfSSL_CTX_use_PrivateKey_buffer(WOLFSSL_CTX* ctx, \ingroup CertsKeys \brief この関数は、証明書チェーンバッファをWolfSSLコンテキストにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。バッファはPEM形式で、ルート証明書で終わる対象の証明書から始めてください。適切な使用法の例をご覧ください。 \return SSL_SUCCESS 成功すると - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 \return BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 \param in ロードされるPEM形式の証明書チェーンを含む入力バッファ。 + _Example_ \code int ret = 0; @@ -5186,14 +6213,15 @@ int wolfSSL_CTX_use_certificate_chain_buffer(WOLFSSL_CTX* ctx, /*! \ingroup CertsKeys \brief この関数は、証明書バッファをWolfSSLオブジェクトにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。適切な使用法の例をご覧ください。 - \return SSL_SUCCESS 成功すると。 - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + \param ssl wolfSSL_new()で作成されたSSLセッションへのポインタ。 \param in ロードする証明書を含むバッファ。 \param sz バッファにある証明書のサイズ。 + _Example_ \code int buffSz; @@ -5220,15 +6248,16 @@ int wolfSSL_use_certificate_buffer(WOLFSSL* ssl, const unsigned char* in, /*! \ingroup CertsKeys \brief この関数は、秘密鍵バッファをWolfSSLオブジェクトにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。形式バッファのフォーマットタイプを指定します。SSL_FILETYPE_ASN1またはSSL_FILETYPE_PEM。適切な使用法の例をご覧ください。 - \return SSL_SUCCESS 成功すると。 - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 - \return NO_PASSWORD キーファイルが暗号化されているがパスワードが提供されていない場合は返されます。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + \return NO_PASSWORD 鍵ファイルが暗号化されているがパスワードが提供されていない場合に返されます。 + \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 \param in ロードする秘密鍵を含むバッファ。 \param sz バッファにある秘密鍵のサイズ。 + _Example_ \code int buffSz; @@ -5255,14 +6284,15 @@ int wolfSSL_use_PrivateKey_buffer(WOLFSSL* ssl, const unsigned char* in, /*! \ingroup CertsKeys \brief この関数は、証明書チェーンバッファをWolfSSLオブジェクトにロードします。バッファ以外のバージョンのように動作し、ファイルの代わりに入力としてバッファと呼ばれる機能が異なるだけです。バッファはサイズSZの引数によって提供されます。バッファはPEM形式で、ルート証明書で終わる対象の証明書から始めてください。適切な使用法の例をご覧ください。 - \return SSL_SUCCES 成功すると。 - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_SUCCES 成功時に返されます。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 \return BUFFER_E チェーンバッファが受信バッファよりも大きい場合に返されます。 - \param ssl wolfssl_new()で作成されたSSLセッションへのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ \param in ロードする証明書を含むバッファ。 + _Example_ \code int buffSz; @@ -5287,9 +6317,10 @@ int wolfSSL_use_certificate_chain_buffer(WOLFSSL* ssl, /*! \ingroup CertsKeys - \brief この関数は、SSLが所有する証明書またはキーをアンロードします。 + \brief この関数は、SSLが所有する証明書または鍵をアンロードします。 \return SSL_SUCCESS - 関数が正常に実行された場合に返されます。 \return BAD_FUNC_ARG - wolfsslオブジェクトがnullの場合に返されます。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -5308,6 +6339,7 @@ int wolfSSL_UnloadCertsKeys(WOLFSSL*); \brief この機能は、可能な限りハンドシェイクメッセージのグループ化をオンにします。 \return SSL_SUCCESS 成功に戻ります。 \return BAD_FUNC_ARG 入力コンテキストがNULLの場合、返されます。 + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -5327,6 +6359,8 @@ int wolfSSL_CTX_set_group_messages(WOLFSSL_CTX*); \brief この機能は、可能な限りハンドシェイクメッセージのグループ化をオンにします。 \return SSL_SUCCESS 成功に戻ります。 \return BAD_FUNC_ARG 入力コンテキストがNULLの場合、返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL* ssl = 0; @@ -5344,8 +6378,10 @@ int wolfSSL_set_group_messages(WOLFSSL*); /*! \brief \return none いいえ返します。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param cbf フォームの関数ポインタであるCallBackFozzerタイプ:int(* callbackfuzzer)(wolfssl * ssl、consigned char * buf、int sz、int型、void * fuzzctx); + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -5369,8 +6405,9 @@ void wolfSSL_SetFuzzerCb(WOLFSSL* ssl, CallbackFuzzer cbf, void* fCtx); \return BAD_FUNC_ARG 許容できない値で関数に渡された引数があった場合に返されます。 \return COOKIE_SECRET_SZ 秘密サイズが0の場合に返されます。 \return MEMORY_ERROR 新しいCookie Secretにメモリを割り当てる問題がある場合は返されました。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ \param secret 秘密バッファを表す定数バイトポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -5393,8 +6430,8 @@ int wolfSSL_DTLS_SetCookieSecret(WOLFSSL* ssl, /*! \brief - \return rng 成功すると。 - \return NULL SSLがNULLの場合 + \return rng 成功時に返されます。 + \return NULL sslがNULLの場合 _Example_ \code WOLFSSL* ssl; @@ -5410,11 +6447,12 @@ WC_RNG* wolfSSL_GetRNG(WOLFSSL* ssl); \ingroup Setup \brief この関数は、許可されている最小のダウングレードバージョンを設定します。接続が(wolfsslv23_client_methodまたはwolfsslv23_server_method)を使用して、接続がダウングレードできる場合にのみ適用されます。 \return SSL_SUCCESS エラーなしで返された関数と最小バージョンが設定されている場合に返されます。 - \return BAD_FUNC_ARG wolfssl_ctx構造がNULLの場合、または最小バージョンがサポートされていない場合に返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造がNULLの場合、または最小バージョンがサポートされていない場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code - WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol method ); + WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); WOLFSSL* ssl = WOLFSSL_new(ctx); int version; // macrop representation … @@ -5431,10 +6469,11 @@ int wolfSSL_CTX_SetMinVersion(WOLFSSL_CTX* ctx, int version); \brief この関数は、許可されている最小のダウングレードバージョンを設定します。接続が(wolfsslv23_client_methodまたはwolfsslv23_server_method)を使用して、接続がダウングレードできる場合にのみ適用されます。 \return SSL_SUCCESS この関数とそのサブルーチンがエラーなしで実行された場合に返されます。 \return BAD_FUNC_ARG SSLオブジェクトがNULLの場合に返されます。サブルーチンでは、良いバージョンが一致しない場合、このエラーはスローされます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code - WOLFSSL_CTX* ctx = WOLFSSL_CTX_new(protocol method); + WOLFSSL_CTX* ctx = wolfSSL_CTX_new(protocol method); WOLFSSL* ssl = WOLFSSL_new(ctx); int version; macro representation … @@ -5449,6 +6488,7 @@ int wolfSSL_SetMinVersion(WOLFSSL* ssl, int version); /*! \brief ビルドオプションと設定に依存します。WolfSSLを構築するときにshow_sizesが定義されている場合、この関数はWolfSSLオブジェクト(スイート、暗号など)内の個々のオブジェクトのサイズもstdoutに印刷されます。 \return size この関数は、WolfSSLオブジェクトのサイズを返します。 + _Example_ \code int size = 0; @@ -5461,9 +6501,10 @@ int wolfSSL_GetObjectSize(void); /* object size based on build */ /*! \brief アプリケーションがトランスポートレイヤ間で何バイトを送信したい場合は、指定された平文の入力サイズを指定してください。SSL / TLSハンドシェイクが完了した後に呼び出す必要があります。 \return size 成功すると、要求されたサイズが返されます - \return INPUT_SIZE_E 入力サイズが最大TLSフラグメントサイズより大きい場合は返されます(WOLFSSL_GETMAXOUTPUTSIZE())。 + \return INPUT_SIZE_E 入力サイズが最大TLSフラグメントサイズより大きい場合は返されます(WOLFSSL_GETMAXOUTPUTSIZE())。 \return BAD_FUNC_ARG 無効な関数引数に戻り、またはSSL / TLSハンドシェイクがまだ完了していない場合 - \param ssl wolfssl_new()を使用して作成されたwolfsslオブジェクトへのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5473,9 +6514,10 @@ int wolfSSL_GetObjectSize(void); /* object size based on build */ int wolfSSL_GetOutputSize(WOLFSSL* ssl, int inSz); /*! - \brief プロトコル規格で指定されている最大SSL / TLSレコードサイズのいずれかに対応します。この関数は、アプリケーションがwolfssl_getOutputSize()と呼ばれ、input_size_eエラーを受信したときに役立ちます。SSL / TLSハンドシェイクが完了した後に呼び出す必要があります。 + \brief プロトコル規格で指定されている最大SSL / TLSレコードサイズのいずれかに対応します。この関数は、アプリケーションがwolfssl_getOutputSize()と呼ばれ、input_size_eエラーを受信したときに役立ちます。SSL / TLSハンドシェイクが完了した後に呼び出す必要があります。 \return size 成功すると、最大出力サイズが返されます \return BAD_FUNC_ARG 無効な関数引数のときに返されるか、SSL / TLSハンドシェイクがまだ完了していない場合。 + _Example_ \code none @@ -5486,10 +6528,11 @@ int wolfSSL_GetMaxOutputSize(WOLFSSL*); /*! \ingroup Setup - \brief この関数は、バージョンで指定されたバージョンを使用して、指定されたSSLセッション(WolfSSLオブジェクト)のSSL / TLSプロトコルバージョンを設定します。これにより、SSLセッション(SSL)のプロトコル設定が最初に定義され、SSLコンテキスト(WolfSSL_CTX_NEW())メソッドの種類によって上書きされます。 - \return SSL_SUCCESS 成功すると。 + \brief この関数は、バージョンで指定されたバージョンを使用して、指定されたSSLセッション(WolfSSLオブジェクト)のSSL/TLSプロトコルバージョンを設定します。これにより、SSLセッション(SSL)のプロトコル設定が最初に定義され、SSLコンテキスト(wolfSSL_CTX_new())メソッドの種類によって上書きされます。 + \return SSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG 入力SSLオブジェクトがNULLまたは誤ったプロトコルバージョンがバージョンで指定されている場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code int ret = 0; @@ -5506,8 +6549,9 @@ int wolfSSL_GetMaxOutputSize(WOLFSSL*); int wolfSSL_SetVersion(WOLFSSL* ssl, int version); /*! - \brief MAC /暗号化コールバック。コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。MacOutは、MACの結果を保存する必要がある出力バッファです。MacinはMac入力バッファーとMacinszのサイズを注意しています。MacContentとMacverifyは、Wolfssl_SettlShmacinner()に必要であり、そのまま通過します。Encoutは、暗号化の結果を格納する必要がある出力バッファです。ENCINはENCSZが入力のサイズである間は暗号化する入力バッファです。コールバックの例は、wolfssl / test.h mymacencryptcb()を見つけることができます。 + \brief MAC /暗号化コールバック。コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。MacOutは、MACの結果を保存する必要がある出力バッファです。MacinはMac入力バッファーとMacinszのサイズを注意しています。MacContentとMacverifyは、Wolfssl_SettlShmacinner()に必要であり、そのまま通過します。Encoutは、暗号化の結果を格納する必要がある出力バッファです。ENCINはENCSZが入力のサイズである間は暗号化する入力バッファです。コールバックの例は、wolfssl / test.h mymacencryptcb()を見つけることができます。 \return none 返品不可。 + _Example_ \code none @@ -5520,6 +6564,8 @@ void wolfSSL_CTX_SetMacEncryptCb(WOLFSSL_CTX* ctx, CallbackMacEncrypti cb); /*! \brief CTXへのコールバックコンテキスト。 \return none 返品不可。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5530,9 +6576,11 @@ void wolfSSL_CTX_SetMacEncryptCb(WOLFSSL_CTX* ctx, CallbackMacEncrypti cb); void wolfSSL_SetMacEncryptCtx(WOLFSSL* ssl, void *ctx); /*! - \brief Mac / Encryptコールバックコンテキストは、wolfssl_setmacencryptx()で保存されていました。 + \brief Mac / Encryptコールバックコンテキストは、wolfssl_setmacencryptx()で保存されていました。 \return pointer 正常にコールがコンテキストへの有効なポインタを返します。 \return NULL 空白のコンテキストのために返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5543,8 +6591,9 @@ 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_ \code none @@ -5558,6 +6607,8 @@ void wolfSSL_CTX_SetDecryptVerifyCb(WOLFSSL_CTX* ctx, /*! \brief コールバックコンテキストをCTXに復号化/検証します。 \return none いいえ返します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5568,9 +6619,10 @@ void wolfSSL_CTX_SetDecryptVerifyCb(WOLFSSL_CTX* ctx, void wolfSSL_SetDecryptVerifyCtx(WOLFSSL* ssl, void *ctx); /*! - \brief wolfssl_setdecryptverifyctx()で以前に保存されているコールバックコンテキストを復号化/検証します。 + \brief wolfssl_setdecryptverifyctx()で以前に保存されているコールバックコンテキストを復号化/検証します。 \return pointer 正常にコールがコンテキストへの有効なポインタを返します。 \return NULL 空白のコンテキストのために返されます。 + _Example_ \code none @@ -5582,9 +6634,10 @@ void* wolfSSL_GetDecryptVerifyCtx(WOLFSSL* ssl); /*! \brief VERIFYパラメーターは、これがピア・メッセージの検証のためのものであるかどうかを指定します。 - \return pointer 正常にコールが秘密に有効なポインタを返します。秘密のサイズは、Wolfssl_gethmacsize()から入手できます。 + \return pointer 正常にコールが秘密に有効なポインタを返します。秘密のサイズは、Wolfssl_gethmacsize()から入手できます。 \return NULL エラー状態に戻ります。 - \param ssl wolfssl_new()を使用して作成されたwolfsslオブジェクトへのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5595,8 +6648,10 @@ const unsigned char* wolfSSL_GetMacSecret(WOLFSSL* ssl, int verify); /*! \brief - \return pointer 正常にコールがキーへの有効なポインタを返します。キーのサイズは、wolfssl_getkeysize()から取得できます。 + \return pointer 正常にコールがキーへの有効なポインタを返します。鍵のサイズは、wolfssl_getkeysize()から取得できます。 \return NULL エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5608,8 +6663,10 @@ const unsigned char* wolfSSL_GetClientWriteKey(WOLFSSL*); /*! \brief ハンドシェイクプロセスから。 - \return pointer 正常にコールがIVへの有効なポインタを返します。IVのサイズは、wolfssl_getCipherBlockSize()から取得できます。 + \return pointer 正常にコールがIVへの有効なポインタを返します。IVのサイズは、wolfssl_getCipherBlockSize()から取得できます。 \return NULL エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5621,8 +6678,10 @@ const unsigned char* wolfSSL_GetClientWriteIV(WOLFSSL*); /*! \brief - \return pointer 正常にコールがキーへの有効なポインタを返します。キーのサイズは、wolfssl_getkeysize()から取得できます。 + \return pointer 正常にコールが鍵への有効なポインタを返します。鍵のサイズは、wolfssl_getkeysize()から取得できます。 \return NULL エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5634,8 +6693,10 @@ const unsigned char* wolfSSL_GetServerWriteKey(WOLFSSL*); /*! \brief ハンドシェイクプロセスから。 - \return pointer 正常にコールがIVへの有効なポインタを返します。IVのサイズは、wolfssl_getCipherBlockSize()から取得できます。 + \return pointer 正常にコールがIVへの有効なポインタを返します。IVのサイズは、wolfssl_getCipherBlockSize()から取得できます。 \return NULL エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + \sa wolfSSL_GetCipherBlockSize \sa wolfSSL_GetClientWriteKey */ @@ -5643,8 +6704,10 @@ const unsigned char* wolfSSL_GetServerWriteIV(WOLFSSL*); /*! \brief - \return size 正常にコールがキーサイズをバイト単位で返します。 + \return size 正常にコールが鍵サイズをバイト単位で返します。 \return BAD_FUNC_ARG エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5659,6 +6722,8 @@ int wolfSSL_GetKeySize(WOLFSSL*); \brief WolfSSL構造体に保持されているSpecs構造体のIV_SIZEメンバーを返します。 \return iv_size ssl-> specs.iv_sizeで保持されている値を返します。 \return BAD_FUNC_ARG WolfSSL構造がNULLの場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -5681,6 +6746,8 @@ int wolfSSL_GetIVSize(WOLFSSL*); \brief \return success 成功した場合、呼び出しがWolfSSLオブジェクトの側面に応じてwolfssl_server_endまたはwolfssl_client_endを返します。 \return BAD_FUNC_ARG エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5694,6 +6761,8 @@ int wolfSSL_GetSide(WOLFSSL*); \brief 少なくともTLSバージョン1.1以上です。 \return true/false 成功した場合、呼び出しがTRUEまたは0の場合は0を返します。 \return BAD_FUNC_ARG エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5706,6 +6775,8 @@ int wolfSSL_IsTLSv1_1(WOLFSSL*); \brief ハンドシェイクから。 \return If コールが成功すると、wolfssl_cipher_null、wolfssl_des、wolfssl_triple_des、wolfssl_aes、wolfssl_aes_gcm、wolfssl_aes_ccm、wolfssl_camellia。 \return BAD_FUNC_ARG エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5719,6 +6790,8 @@ int wolfSSL_GetBulkCipher(WOLFSSL*); \brief ハンドシェイク。 \return size 正常にコールが暗号ブロックサイズのサイズをバイト単位で戻します。 \return BAD_FUNC_ARG エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5732,6 +6805,8 @@ int wolfSSL_GetCipherBlockSize(WOLFSSL*); \brief ハンドシェーク。暗号タイプのwolfssl_aead_typeの場合。 \return size 正常にコールがEAD MACサイズのサイズをバイト単位で戻します。 \return BAD_FUNC_ARG エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5745,6 +6820,8 @@ int wolfSSL_GetAeadMacSize(WOLFSSL*); \brief ハンドシェーク。wolfssl_aead_type以外の暗号タイプの場合。 \return size 正常にコールが(H)MACサイズのサイズをバイト単位で戻します。 \return BAD_FUNC_ARG エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5759,6 +6836,8 @@ int wolfSSL_GetHmacSize(WOLFSSL*); \return If コールが成功すると、次のいずれかが返されます.MD5、SHA、SHA256、SHA384。 \return BAD_FUNC_ARG エラー状態に対して返される可能性があります。 \return SSL_FATAL_ERROR エラー状態にも返される可能性があります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5772,6 +6851,8 @@ int wolfSSL_GetHmacType(WOLFSSL*); \brief ハンドシェイクから。 \return If 正常にコールは次のいずれかを返します.WolfSSL_BLOCK_TYPE、WOLFSSL_STREAM_TYPE、WOLFSSL_AEAD_TYPE。 \return BAD_FUNC_ARG エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5782,9 +6863,11 @@ int wolfSSL_GetHmacType(WOLFSSL*); int wolfSSL_GetCipherType(WOLFSSL*); /*! - \brief 送受信結果は、少なくともwolfssl_gethmacsize()バイトであるべきである内部に書き込まれます。メッセージのサイズはSZで指定され、内容はメッセージの種類であり、検証はこれがピアメッセージの検証であるかどうかを指定します。wolfssl_aead_typeを除く暗号タイプに有効です。 - \return 1 成功すると。 + \brief 送受信結果は、少なくともwolfssl_gethmacsize()バイトであるべきである内部に書き込まれます。メッセージのサイズはSZで指定され、内容はメッセージの種類であり、検証はこれがピアメッセージの検証であるかどうかを指定します。wolfssl_aead_typeを除く暗号タイプに有効です。 + \return 1 成功時に返されます。 \return BAD_FUNC_ARG エラー状態に戻ります。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5796,8 +6879,9 @@ int wolfSSL_SetTlsHmacInner(WOLFSSL* ssl, byte* inner, word32 sz, int content, int verify); /*! - \brief コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。INSは入力バッファーが入力の長さを表します。OUTは、署名の結果を保存する必要がある出力バッファです。OUTSZは、呼び出し時に出力バッファのサイズを指定する入力/出力変数であり、署名の実際のサイズを戻す前に格納する必要があります。keyderはASN1フォーマットのECC秘密鍵であり、Keyszはキーのキーの長さです。コールバックの例は、wolfssl / test.h myeccsign()を見つけることができます。 + \brief コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。INSは入力バッファーが入力の長さを表します。OUTは、署名の結果を保存する必要がある出力バッファです。OUTSZは、呼び出し時に出力バッファのサイズを指定する入力/出力変数であり、署名の実際のサイズを戻す前に格納する必要があります。keyderはASN1フォーマットのECC秘密鍵であり、Keyszは鍵のキーの長さです。コールバックの例は、wolfssl / test.h myeccsign()を見つけることができます。 \return none いいえ返します。 + _Example_ \code none @@ -5810,7 +6894,8 @@ void wolfSSL_CTX_SetEccSignCb(WOLFSSL_CTX* ctx, CallbackEccSign cb); /*! \brief CTXへのコンテキスト。 \return none いいえ返します。 - \param ssl wolfssl_new()を使用して作成されたwolfsslオブジェクトへのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5821,9 +6906,11 @@ void wolfSSL_CTX_SetEccSignCb(WOLFSSL_CTX* ctx, CallbackEccSign cb); void wolfSSL_SetEccSignCtx(WOLFSSL* ssl, void *ctx); /*! - \brief 以前にwolfssl_seteccsignctx()で保存されていたコンテキスト。 + \brief 以前にwolfssl_seteccsignctx()で保存されていたコンテキスト。 \return pointer 正常にコールがコンテキストへの有効なポインタを返します。 \return NULL 空白のコンテキストのために返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5836,7 +6923,8 @@ void* wolfSSL_GetEccSignCtx(WOLFSSL* ssl); /*! \brief CTXへのコンテキスト。 \return none いいえ返します。 - \param ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 + _Example_ \code none @@ -5847,9 +6935,10 @@ void* wolfSSL_GetEccSignCtx(WOLFSSL* ssl); void wolfSSL_CTX_SetEccSignCtx(WOLFSSL_CTX* ctx, void *userCtx); /*! - \brief 以前にwolfssl_seteccsignctx()で保存されていたコンテキスト。 + \brief 以前にwolfssl_seteccsignctx()で保存されていたコンテキスト。 \return pointer 正常にコールがコンテキストへの有効なポインタを返します。 \return NULL 空白のコンテキストのために返されます。 + _Example_ \code none @@ -5860,8 +6949,9 @@ void wolfSSL_CTX_SetEccSignCtx(WOLFSSL_CTX* ctx, void *userCtx); void* wolfSSL_CTX_GetEccSignCtx(WOLFSSL_CTX* ctx); /*! - \brief コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。SIGは検証の署名であり、SIGSZは署名の長さを表します。ハッシュはメッセージのダイジェストを含む入力バッファであり、HASHSZはハッシュの長さを意味します。結果は、検証の結果を格納する出力変数、成功のために1、失敗のために0を記憶する必要があります。keyderはASN1フォーマットのECC秘密鍵であり、Keyszはキーのキーの長さです。コールバックの例は、wolfssl / test.h myeccverify()を見つけることができます。 + \brief コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。SIGは検証の署名であり、SIGSZは署名の長さを表します。ハッシュはメッセージのダイジェストを含む入力バッファであり、HASHSZはハッシュの長さを意味します。結果は、検証の結果を格納する出力変数、成功のために1、失敗のために0を記憶する必要があります。keyderはASN1フォーマットのECC秘密鍵であり、Keyszはキーのキーの長さです。コールバックの例は、wolfssl / test.h myeccverify()を見つけることができます。 \return none いいえ返します。 + _Example_ \code none @@ -5874,6 +6964,8 @@ void wolfSSL_CTX_SetEccVerifyCb(WOLFSSL_CTX* ctx, CallbackEccVerify cb); /*! \brief CTXへのコンテキスト。 \return none いいえ返します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5884,9 +6976,11 @@ void wolfSSL_CTX_SetEccVerifyCb(WOLFSSL_CTX* ctx, CallbackEccVerify cb); void wolfSSL_SetEccVerifyCtx(WOLFSSL* ssl, void *ctx); /*! - \brief 以前にwolfssl_setecverifyctx()で保存されていたコンテキスト。 + \brief 以前にwolfssl_setecverifyctx()で保存されていたコンテキスト。 \return pointer 正常にコールがコンテキストへの有効なポインタを返します。 \return NULL 空白のコンテキストのために返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5897,8 +6991,9 @@ void wolfSSL_SetEccVerifyCtx(WOLFSSL* ssl, void *ctx); void* wolfSSL_GetEccVerifyCtx(WOLFSSL* ssl); /*! - \brief コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。INSは入力バッファーが入力の長さを表します。OUTは、署名の結果を保存する必要がある出力バッファです。OUTSZは、呼び出し時に出力バッファのサイズを指定する入力/出力変数であり、署名の実際のサイズを戻す前に格納する必要があります。keyderはASN1フォーマットのRSA秘密鍵であり、Keyszはバイト数のキーの長さです。コールバックの例は、wolfssl / test.h myrsasign()を見つけることができます。 + \brief コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。INSは入力バッファーが入力の長さを表します。OUTは、署名の結果を保存する必要がある出力バッファです。OUTSZは、呼び出し時に出力バッファのサイズを指定する入力/出力変数であり、署名の実際のサイズを戻す前に格納する必要があります。keyderはASN1フォーマットのRSA秘密鍵であり、Keyszはバイト数のキーの長さです。コールバックの例は、wolfssl / test.h myrsasign()を見つけることができます。 \return none いいえ返します。 + _Example_ \code none @@ -5911,6 +7006,8 @@ void wolfSSL_CTX_SetRsaSignCb(WOLFSSL_CTX* ctx, CallbackRsaSign cb); /*! \brief ctxに。 \return none いいえ返します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5921,10 +7018,11 @@ void wolfSSL_CTX_SetRsaSignCb(WOLFSSL_CTX* ctx, CallbackRsaSign cb); void wolfSSL_SetRsaSignCtx(WOLFSSL* ssl, void *ctx); /*! - \brief 以前にwolfssl_setrsAsignctx()で保存されていたコンテキスト。 + \brief 以前にwolfssl_setrsAsignctx()で保存されていたコンテキスト。 \return pointer 正常にコールがコンテキストへの有効なポインタを返します。 \return NULL 空白のコンテキストのために返されます。 - \param none パラメータはありません。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5935,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 @@ -5945,6 +7043,7 @@ void wolfSSL_CTX_SetRsaVerifyCb(WOLFSSL_CTX* ctx, CallbackRsaVerify cb); /*! \brief CTXへのコンテキスト。 \return none いいえ返します。 + _Example_ \code none @@ -5955,9 +7054,11 @@ void wolfSSL_CTX_SetRsaVerifyCb(WOLFSSL_CTX* ctx, CallbackRsaVerify cb); void wolfSSL_SetRsaVerifyCtx(WOLFSSL* ssl, void *ctx); /*! - \brief 以前にwolfssl_setrsaverifyctx()で保存されていたコンテキスト。 + \brief 以前にwolfssl_setrsaverifyctx()で保存されていたコンテキスト。 \return pointer 正常にコールがコンテキストへの有効なポインタを返します。 \return NULL 空白のコンテキストのために返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5968,8 +7069,10 @@ void wolfSSL_SetRsaVerifyCtx(WOLFSSL* ssl, void *ctx); void* wolfSSL_GetRsaVerifyCtx(WOLFSSL* ssl); /*! - \brief 暗号化します。コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。INは入力バッファですが、INSZは入力の長さを表します。暗号化の結果を保存する必要がある出力バッファです。OUTSZは、呼び出し時に出力バッファのサイズを指定する入力/出力変数であり、暗号化の実際のサイズは戻って前に格納されるべきです。keyderはASN1形式のRSA公開鍵であり、Keyszはキーのキーの長さです。例コールバックの例は、wolfssl / test.h myrsaenc()を見つけることができます。 + \brief 暗号化します。コールバックは成功の場合は0を返すか、エラーの場合は<0です。SSLとCTXポインタはユーザーの利便性に利用できます。INは入力バッファですが、INSZは入力の長さを表します。暗号化の結果を保存する必要がある出力バッファです。OUTSZは、呼び出し時に出力バッファのサイズを指定する入力/出力変数であり、暗号化の実際のサイズは戻って前に格納されるべきです。keyderはASN1形式のRSA公開鍵であり、Keyszはキーのキーの長さです。例コールバックの例は、wolfssl / test.h myrsaenc()を見つけることができます。 \return none いいえ返します。 + + _Example_ \code none \endcode @@ -5981,6 +7084,8 @@ void wolfSSL_CTX_SetRsaEncCb(WOLFSSL_CTX* ctx, CallbackRsaEnc cb); /*! \brief CTXへのコールバックコンテキスト。 \return none いいえ返します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -5991,9 +7096,11 @@ void wolfSSL_CTX_SetRsaEncCb(WOLFSSL_CTX* ctx, CallbackRsaEnc cb); void wolfSSL_SetRsaEncCtx(WOLFSSL* ssl, void *ctx); /*! - \brief コールバックコンテキストは、wolfssl_setrsaencctx()で以前に保存されていました。 + \brief コールバックコンテキストは、wolfssl_setrsaencctx()で以前に保存されていました。 \return pointer 正常にコールがコンテキストへの有効なポインタを返します。 \return NULL 空白のコンテキストのために返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -6004,8 +7111,9 @@ 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_ \code none @@ -6018,6 +7126,8 @@ void wolfSSL_CTX_SetRsaDecCb(WOLFSSL_CTX* ctx, CallbackRsaDec cb); /*! \brief CTXへのコールバックコンテキスト。 \return none いいえ返します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -6028,9 +7138,11 @@ void wolfSSL_CTX_SetRsaDecCb(WOLFSSL_CTX* ctx, CallbackRsaDec cb); void wolfSSL_SetRsaDecCtx(WOLFSSL* ssl, void *ctx); /*! - \brief コールバックコンテキストは、wolfssl_setrsadecctx()で以前に保存されていました。 + \brief コールバックコンテキストは、wolfssl_setrsadecctx()で以前に保存されていました。 \return pointer 正常にコールがコンテキストへの有効なポインタを返します。 \return NULL 空白のコンテキストのために返されます。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ + _Example_ \code none @@ -6043,7 +7155,8 @@ void* wolfSSL_GetRsaDecCtx(WOLFSSL* ssl); /*! \brief 新しいCA証明書がWolfSSLにロードされたときに呼び出される(WolfSSL_CTX)。コールバックには、符号化された証明書を持つバッファが与えられます。 \return none 返品不可。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -6078,6 +7191,7 @@ WOLFSSL_CERT_MANAGER* wolfSSL_CertManagerNew_ex(void* heap); \brief 新しい証明書マネージャコンテキストを割り当てて初期化します。このコンテキストは、SSLのニーズとは無関係に使用できます。証明書をロードしたり、証明書を確認したり、失効状況を確認したりするために使用することができます。 \return WOLFSSL_CERT_MANAGER 正常にコールが有効なwolfssl_cert_managerポインタを返します。 \return NULL エラー状態に戻ります。 + _Example_ \code #import @@ -6096,6 +7210,7 @@ WOLFSSL_CERT_MANAGER* wolfSSL_CertManagerNew(void); \ingroup CertManager \brief 証明書マネージャのコンテキストに関連付けられているすべてのリソースを解放します。証明書マネージャを使用する必要がなくなるときにこれを呼び出します。 \return none + _Example_ \code #include @@ -6111,15 +7226,16 @@ void wolfSSL_CertManagerFree(WOLFSSL_CERT_MANAGER*); /*! \ingroup CertManager \brief ManagerコンテキストへのCA証明書のロードの場所を指定します。PEM証明書カフェイルには、複数の信頼できるCA証明書が含まれている可能性があります。capathがnullでない場合、PEM形式のCA証明書を含むディレクトリを指定します。 - \return SSL_SUCCESS 成功した場合、通話が戻ります。 - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return SSL_SUCCESS 成功した場合に返されます。、通話が戻ります。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 \return BAD_FUNC_ARG ポインタが提供されていない場合に返されるエラーです。 \return SSL_FATAL_ERROR - 失敗時に返されます。 - \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 \param file ロードするCA証明書を含むファイルの名前へのポインタ。 + _Example_ \code #include @@ -6140,11 +7256,12 @@ int wolfSSL_CertManagerLoadCA(WOLFSSL_CERT_MANAGER* cm, const char* f, /*! \ingroup CertManager \brief wolfssl_ctx_load_verify_bufferを呼び出して、関数に渡されたCM内の情報を失うことなく一時的なCMを使用してその結果を返すことによってCAバッファをロードします。 - \return SSL_FATAL_ERROR wolfssl_cert_manager構造体がNULLの場合、またはwolfssl_ctx_new()がNULLを返す場合に返されます。 + \return SSL_FATAL_ERROR wolfssl_cert_manager構造体がNULLの場合、またはwolfSSL_CTX_new()がNULLを返す場合に返されます。 \return SSL_SUCCESS 実行が成功するために返されます。 - \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 \param in CERT情報用のバッファー。 \param sz バッファの長さ。 + _Example_ \code WOLFSSL_CERT_MANAGER* cm = (WOLFSSL_CERT_MANAGER*)vp; @@ -6170,7 +7287,8 @@ int wolfSSL_CertManagerLoadCABuffer(WOLFSSL_CERT_MANAGER* cm, \brief この関数はCA署名者リストをアンロードします。 \return SSL_SUCCESS 機能の実行に成功したことに戻ります。 \return BAD_FUNC_ARG wolfssl_cert_managerがnullの場合に返されます。 - \return BAD_MUTEX_E ミューテックスエラーが発生した場合は返されます。 + \return BAD_MUTEX_E ミューテックスエラーが発生した場合に返されます。 + _Example_ \code #include @@ -6193,11 +7311,12 @@ int wolfSSL_CertManagerUnloadCAs(WOLFSSL_CERT_MANAGER* cm); \return SSL_SUCCESS 関数が正常に完了した場合 \return BAD_FUNC_ARG wolfssl_cert_managerがnullの場合 \return BAD_MUTEX_E ミューテックスエラーTPLOCKでは、WOLFSSL_CERT_MANAGER構造体のメンバーは0(ニル)です。 + _Example_ \code #include - WOLFSSL_CTX* ctx = WOLFSSL_CTX_new(Protocol define); + WOLFSSL_CTX* ctx = wolfSSL_CTX_new(Protocol define); WOLFSSL_CERT_MANAGER* cm = wolfSSL_CertManagerNew(); ... if(wolfSSL_CertManagerUnload_trust_peers(cm) != SSL_SUCCESS){ @@ -6211,20 +7330,21 @@ int wolfSSL_CertManagerUnload_trust_peers(WOLFSSL_CERT_MANAGER* cm); /*! \ingroup CertManager \brief 証明書マネージャのコンテキストで確認する証明書を指定します。フォーマットはSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1にすることができます。 - \return SSL_SUCCESS 成功した場合 + \return SSL_SUCCESS 成功した場合に返されます。 \return ASN_SIG_CONFIRM_E 署名が検証できなかった場合に返されます。 - \return ASN_SIG_OID_E 署名の種類がサポートされていない場合は返されます。 + \return ASN_SIG_OID_E 署名の種類がサポートされていない場合に返されます。 \return CRL_CERT_REVOKED この証明書が取り消された場合に返されるエラーです。 \return CRL_MISSING 現在の発行者CRLが利用できない場合に返されるエラーです。 - \return ASN_BEFORE_DATE_E 現在の日付が前日の前にある場合は返されます。 - \return ASN_AFTER_DATE_E 現在の日付が後の日付の後の場合は返されます。 - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return ASN_BEFORE_DATE_E 現在の日付が前日の前にある場合に返されます。 + \return ASN_AFTER_DATE_E 現在の日付が後の日付の後の場合に返されます。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 \return BAD_FUNC_ARG ポインタが提供されていない場合に返されるエラーです。 - \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 \param fname 検証する証明書を含むファイルの名前へのポインタ。 + _Example_ \code int ret = 0; @@ -6246,21 +7366,22 @@ int wolfSSL_CertManagerVerify(WOLFSSL_CERT_MANAGER* cm, const char* f, /*! \ingroup CertManager \brief 証明書マネージャのコンテキストを使用して確認する証明書バッファを指定します。フォーマットはSSL_FILETYPE_PEMまたはSSL_FILETYPE_ASN1にすることができます。 - \return SSL_SUCCESS 成功した場合 + \return SSL_SUCCESS 成功した場合に返されます。 \return ASN_SIG_CONFIRM_E 署名が検証できなかった場合に返されます。 - \return ASN_SIG_OID_E 署名の種類がサポートされていない場合は返されます。 + \return ASN_SIG_OID_E 署名の種類がサポートされていない場合に返されます。 \return CRL_CERT_REVOKED この証明書が取り消された場合に返されるエラーです。 \return CRL_MISSING 現在の発行者CRLが利用できない場合に返されるエラーです。 - \return ASN_BEFORE_DATE_E 現在の日付が前日の前にある場合は返されます。 - \return ASN_AFTER_DATE_E 現在の日付が後の日付の後の場合は返されます。 - \return SSL_BAD_FILETYPE ファイルが間違った形式である場合は返されます。 - \return SSL_BAD_FILE ファイルが存在しない場合は返されます。読み込め、または破損していません。 + \return ASN_BEFORE_DATE_E 現在の日付が前日の前にある場合に返されます。 + \return ASN_AFTER_DATE_E 現在の日付が後の日付の後の場合に返されます。 + \return SSL_BAD_FILETYPE ファイルが間違った形式である場合に返されます。 + \return SSL_BAD_FILE ファイルが存在しない場合に返されます。読み込め、または破損していません。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return ASN_INPUT_E base16デコードがファイルに対して失敗した場合に返されます。 \return BAD_FUNC_ARG ポインタが提供されていない場合に返されるエラーです。 - \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 \param buff 検証する証明書を含むバッファ。 \param sz バッファのサイズ、BUF。 + _Example_ \code #include @@ -6287,7 +7408,8 @@ int wolfSSL_CertManagerVerifyBuffer(WOLFSSL_CERT_MANAGER* cm, \ingroup CertManager \brief この関数は、証明書マネージャーのverifyCallback関数を設定します。存在する場合、それはロードされた各CERTに対して呼び出されます。検証エラーがある場合は、検証コールバックを使用してエラーを過度に乗り越えます。 \return none 返品不可。 - \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + _Example_ \code #include @@ -6295,7 +7417,7 @@ int wolfSSL_CertManagerVerifyBuffer(WOLFSSL_CERT_MANAGER* cm, int myVerify(int preverify, WOLFSSL_X509_STORE_CTX* store) { // do custom verification of certificate } - WOLFSSL_CTX* ctx = WOLFSSL_CTX_new(Protocol define); + WOLFSSL_CTX* ctx = wolfSSL_CTX_new(Protocol define); WOLFSSL_CERT_MANAGER* cm = wolfSSL_CertManagerNew(); ... wolfSSL_CertManagerSetVerify(cm, myVerify); @@ -6313,6 +7435,7 @@ void wolfSSL_CertManagerSetVerify(WOLFSSL_CERT_MANAGER* cm, \return BAD_FUNC_ARG wolfssl_cert_managerがnullの場合 \param cm wolfssl_cert_manager構造体へのポインタ。 \param der DERフォーマット証明書へのポインタ。 + _Example_ \code WOLFSSL_CERT_MANAGER* cm; @@ -6334,12 +7457,13 @@ int wolfSSL_CertManagerCheckCRL(WOLFSSL_CERT_MANAGER* cm, /*! \ingroup CertManager \brief 証明書マネージャを使用して証明書を検証するときに証明書失効リストの確認をオンにします。デフォルトでは、CRLチェックはオフです。オプションには、wolfssl_crl_checkallが含まれます。これは、チェーン内の各証明書に対してCRL検査を実行します。これはデフォルトであるリーフ証明書のみです。 - \return SSL_SUCCESS 成功した場合、通話が戻ります。 - \return NOT_COMPILED_IN WolfSSLがCRLを有効にして構築されていない場合は返されます。 + \return SSL_SUCCESS 成功した場合に返されます。、通話が戻ります。 + \return NOT_COMPILED_IN WolfSSLがCRLを有効にして構築されていない場合に返されます。 \return MEMORY_E メモリ不足状態が発生した場合に返されます。 \return BAD_FUNC_ARG ポインタが提供されていない場合に返されるエラーです。 - \return SSL_FAILURE CRLコンテキストを正しく初期化できない場合は返されます。 - \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + \return SSL_FAILURE CRLコンテキストを正しく初期化できない場合に返されます。 + \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + _Example_ \code #include @@ -6363,8 +7487,9 @@ int wolfSSL_CertManagerEnableCRL(WOLFSSL_CERT_MANAGER* cm, /*! \ingroup CertManager \brief 証明書マネージャを使用して証明書を検証するときに証明書失効リストの確認をオフにします。デフォルトでは、CRLチェックはオフです。この関数を使用して、このCertificate Managerコンテキストを使用してCRL検査を一時的または恒久的に無効にして、以前はCRL検査が有効になっていました。 - \return SSL_SUCCESS 成功した場合、通話が戻ります。 + \return SSL_SUCCESS 成功した場合に返されます。、通話が戻ります。 \return BAD_FUNC_ARG 関数ポインタが提供されていない場合に返されるエラーです。 + _Example_ \code #include @@ -6394,6 +7519,7 @@ int wolfSSL_CertManagerDisableCRL(WOLFSSL_CERT_MANAGER*); \param cm wolfSSL_CertManagerNew()を使用して作成されたWOLFSSL_CERT_MANAGER構造体へのポインタ。 \param path CRLへのパスを保持しているバッファーへのポインタ。 \param type ロードする証明書の種類。 + _Example_ \code #include @@ -6414,10 +7540,11 @@ int wolfSSL_CertManagerLoadCRL(WOLFSSL_CERT_MANAGER* cm, \brief この関数は、BufferLoadCRLを呼び出すことによってCRLファイルをロードします。 \return SSL_SUCCESS 関数がエラーなしで完了した場合に返されます。 \return BAD_FUNC_ARG wolfssl_cert_managerがnullの場合に返されます。 - \return SSL_FATAL_ERROR wolfssl_cert_managerに関連付けられているエラーがある場合は返されます。 + \return SSL_FATAL_ERROR wolfssl_cert_managerに関連付けられているエラーがある場合に返されます。 \param cm wolfssl_cert_manager構造体へのポインタ。 \param buff 定数バイトタイプとバッファです。 \param sz バッファのサイズを表す長いint。 + _Example_ \code #include @@ -6447,6 +7574,7 @@ int wolfSSL_CertManagerLoadCRLBuffer(WOLFSSL_CERT_MANAGER* cm, \return SSL_SUCCESS 関数とサブルーチンの実行が成功したら返されます。 \return BAD_FUNC_ARG wolfssl_cert_manager構造体がNULLの場合に返されます。 \param cm 証明書の情報を保持しているWOLFSSL_CERT_MANAGER構造。 + _Example_ \code #include @@ -6502,8 +7630,9 @@ int wolfSSL_CertManagerFreeCRL(WOLFSSL_CERT_MANAGER* cm); \return SSL_SUCCESS 機能の実行に成功したことに戻ります。wolfssl_cert_managerのOCSPENABLEDメンバーが有効になっています。 \return BAD_FUNC_ARG wolfssl_cert_manager構造体がnullの場合、または許可されていない引数値がサブルーチンに渡された場合に返されます。 \return MEMORY_E この関数内にメモリを割り当てるエラーまたはサブルーチンがある場合に返されます。 - \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 \param der 証明書へのバイトポインタ。 + _Example_ \code #import @@ -6530,7 +7659,8 @@ int wolfSSL_CertManagerCheckOCSP(WOLFSSL_CERT_MANAGER* cm, \return MEMORY_E wolfssl_ocsp struct値がnullの場合 \return SSL_FAILURE WOLFSSL_OCSP構造体の初期化は初期化に失敗します。 \return NOT_COMPILED_IN 正しい機能を有効にしてコンパイルされていないビルド。 - \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + \param cm wolfssl_certmanagernew()を使用して作成されたwolfssl_cert_manager構造体へのポインタ。 + _Example_ \code #include @@ -6554,6 +7684,7 @@ int wolfSSL_CertManagerEnableOCSP(WOLFSSL_CERT_MANAGER* cm, \brief OCSP証明書の失効を無効にします。 \return SSL_SUCCESS WolfSSL_CertMangerDisableCRLは、WolfSSL_CERT_MANAGER構造体のCRLEnabledメンバを無効にしました。 \return BAD_FUNC_ARG WOLFSSL構造はヌルでした。 + _Example_ \code #include @@ -6575,6 +7706,7 @@ int wolfSSL_CertManagerDisableOCSP(WOLFSSL_CERT_MANAGER*); \return SSL_SUCCESS この機能は期待どおりに実行できました。 \return BAD_FUNC_ARG wolfssl_cert_manager構造体はnullです。 \return MEMEORY_E 証明書マネージャのOCSPoverRideURLメンバーにメモリを割り当てることができませんでした。 + _Example_ \code #include @@ -6601,6 +7733,7 @@ int wolfSSL_CertManagerSetOCSPOverrideURL(WOLFSSL_CERT_MANAGER* cm, \param cm wolfssl_cert_manager構造体へのポインタ。 \param ioCb CBocSpio型の関数ポインタ。 \param respFreeCb - CBOCSPRESPFREAS型の関数ポインタ。 + _Example_ \code #include @@ -6626,9 +7759,10 @@ int wolfSSL_CertManagerSetOCSP_Cb(WOLFSSL_CERT_MANAGER* cm, \brief この関数は、オプションをオンにしないとOCSPステープルをオンにします。オプションを設定します。 \return SSL_SUCCESS エラーがなく、関数が正常に実行された場合に返されます。 \return BAD_FUNC_ARG wolfssl_cert_manager構造体がNULLまたはそうでない場合は、サブルーチンに渡された未解決の引数値があった場合に返されます。 - \return MEMORY_E メモリ割り当てがある問題が発生した場合は返されます。 + \return MEMORY_E メモリ割り当てがある問題が発生した場合に返されます。 \return SSL_FAILURE OCSP構造体の初期化が失敗した場合に返されます。 \return NOT_COMPILED_IN wolfsslがhaber_certificate_status_requestオプションでコンパイルされていない場合に返されます。 + _Example_ \code int wolfSSL_CTX_EnableOCSPStapling(WOLFSSL_CTX* ctx){ @@ -6647,7 +7781,8 @@ int wolfSSL_CertManagerEnableOCSPStapling( \return MEMORY_E メモリの割り当てが失敗した場合に返されます。 \return SSL_FAILURE initcrl関数が正常に戻されない場合に返されます。 \return NOT_COMPILED_IN have_crlはコンパイル中に有効になっていませんでした。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -6666,6 +7801,7 @@ int wolfSSL_EnableCRL(WOLFSSL* ssl, int options); \brief \return SSL_SUCCESS WolfSSL_CertMangerDisableCRLは、WolfSSL_CERT_MANAGER構造体のCRLEnabledメンバを無効にしました。 \return BAD_FUNC_ARG WOLFSSL構造はヌルでした。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -6685,9 +7821,10 @@ int wolfSSL_DisableCRL(WOLFSSL* ssl); \return WOLFSSL_SUCCESS 関数とすべてのサブルーチンがエラーなしで実行された場合に返されます。 \return SSL_FATAL_ERROR サブルーチンの1つが正常に戻されない場合に返されます。 \return BAD_FUNC_ARG wolfssl_cert_managerまたはwolfssl構造がnullの場合 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param path CRLファイルへのパスを保持する定数文字ポインタ。 \param type 証明書の種類を表す整数。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -6707,7 +7844,8 @@ int wolfSSL_LoadCRL(WOLFSSL* ssl, const char* path, int type, int monitor); \brief \return SSL_SUCCESS 関数またはサブルーチンがエラーなしで実行された場合に返されます。wolfssl_cert_managerのCBMissingCRLメンバーが設定されています。 \return BAD_FUNC_ARG WOLFSSLまたはWOLFSSL_CERT_MANAGER構造体がNULLの場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -6732,9 +7870,10 @@ int wolfSSL_SetCRL_Cb(WOLFSSL* ssl, CbMissingCRL cb); \brief \return SSL_SUCCESS 関数とサブルーチンがエラーなしで実行された場合に返されます。 \return BAD_FUNC_ARG この関数またはサブルーチンの引数が無効な引数値を受信した場合に返されます。 - \return MEMORY_E 構造体やその他の変数にメモリを割り当てるエラーが発生した場合は返されます。 + \return MEMORY_E 構造体やその他の変数にメモリを割り当てるエラーが発生した場合に返されます。 \return NOT_COMPILED_IN wolfsslがhane_ocspオプションでコンパイルされていない場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -6754,6 +7893,7 @@ int wolfSSL_EnableOCSP(WOLFSSL* ssl, int options); \brief \return SSL_SUCCESS 関数とそのサブルーチンがエラーなしで戻った場合に返されます。wolfssl_cert_manager構造体のOCSPENABLEDメンバーは正常に設定されました。 \return BAD_FUNC_ARG WolfSSL構造がNULLの場合に返されます。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -6771,7 +7911,8 @@ int wolfSSL_DisableOCSP(WOLFSSL*); \return SSL_SUCCESS 機能の実行に成功したことに戻ります。 \return BAD_FUNC_ARG wolfssl構造体がnullの場合、または未解決の引数がサブルーチンに渡された場合に返されます。 \return MEMORY_E サブルーチンにメモリを割り当てるエラーが発生した場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -6790,9 +7931,10 @@ int wolfSSL_SetOCSP_OverrideURL(WOLFSSL* ssl, const char* url); \brief wolfssl_cert_manager構造体。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。CMのOCSPIOCB、OCSPRESPFREECB、およびOCSPIOCTXメンバーが設定されています。 \return BAD_FUNC_ARG WOLFSSLまたはWOLFSSL_CERT_MANAGER構造がNULLの場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param ioCb CBocSpioを入力するための関数ポインタ。 \param respFreeCb 応答メモリを解放するための呼び出しであるCBocSpreSpFreeを入力するための関数ポインタ。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -6828,6 +7970,7 @@ int wolfSSL_SetOCSP_Cb(WOLFSSL* ssl, CbOCSPIO ioCb, CbOCSPRespFree respFreeCb, \return MEMORY_E 関数の実行中にメモリの割り当てエラーが発生した場合に返されます。 \return SSL_FAILURE wolfssl_cert_managerのCRLメンバーが正しく初期化されなかった場合に返されます。 \return NOT_COMPILED_IN wolfsslはhane_crlオプションでコンパイルされませんでした。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -6847,6 +7990,7 @@ int wolfSSL_CTX_EnableCRL(WOLFSSL_CTX* ctx, int options); \brief \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。wolfssl_cert_manager構造体のCRLEnabledメンバーは0に設定されています。 \return BAD_FUNC_ARG CTX構造体またはCM構造体にNULL値がある場合に返されます。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -6861,14 +8005,15 @@ int wolfSSL_CTX_EnableCRL(WOLFSSL_CTX* ctx, int options); int wolfSSL_CTX_DisableCRL(WOLFSSL_CTX* ctx); /*! - \brief wolfssl_certmanagerLoadcr()。 + \brief wolfssl_certmanagerLoadcr()。 \return SSL_SUCCESS - 関数とそのサブルーチンがエラーなしで実行された場合に返されます。 \return BAD_FUNC_ARG - この関数またはサブルーチンがNULL構造に渡された場合に返されます。 \return BAD_PATH_ERROR - パス変数がnullとして開くと戻ります。 \return MEMORY_E - メモリの割り当てが失敗した場合に返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 \param path 証明書へのパス。 \param type 証明書の種類を保持する整数変数。 + _Example_ \code WOLFSSL_CTX* ctx; @@ -6885,7 +8030,8 @@ int wolfSSL_CTX_LoadCRL(WOLFSSL_CTX* ctx, const char* path, int type, int monito \brief wolfssl_certmanagersetCRL_CBを呼び出して、WolfSSL_CERT_MANAGER構造のメンバー。 \return SSL_SUCCESS 実行が成功するために返されました。WOLFSSL_CERT_MANAGER構造体のCBMSSINGCRLはCBに正常に設定されました。 \return BAD_FUNC_ARG wolfssl_ctxまたはwolfssl_cert_managerがNULLの場合に返されます。 - \param ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -6905,11 +8051,12 @@ int wolfSSL_CTX_LoadCRL(WOLFSSL_CTX* ctx, const char* path, int type, int monito int wolfSSL_CTX_SetCRL_Cb(WOLFSSL_CTX* ctx, CbMissingCRL cb); /*! - \brief wolfsslの機能オプションの値が1つ以上のオプションで構成されている場合は、次のオプションを1つ以上にします.wolfssl_ocsp_enable - OCSPルックアップを有効にするwolfssl_ocsp_url_override - 証明書のURLの代わりにURLをオーバーライドします。オーバーライドURLは、wolfssl_ctx_setocsp_overrideURL()関数を使用して指定されます。この関数は、wolfsslがOCSPサポート(--enable-ocsp、#define hane_ocsp)でコンパイルされたときにのみOCSPオプションを設定します。 + \brief wolfsslの機能オプションの値が1つ以上のオプションで構成されている場合は、次のオプションを1つ以上にします.wolfssl_ocsp_enable - OCSPルックアップを有効にするwolfssl_ocsp_url_override - 証明書のURLの代わりにURLをオーバーライドします。オーバーライドURLは、wolfssl_ctx_setocsp_overrideURL()関数を使用して指定されます。この関数は、wolfsslがOCSPサポート(--enable-ocsp、#define hane_ocsp)でコンパイルされたときにのみOCSPオプションを設定します。 \return SSL_SUCCESS 成功したときに返されます。 \return SSL_FAILURE 失敗したときに返されます。 \return NOT_COMPILED_IN この関数が呼び出されたときに返されますが、wolfsslがコンパイルされたときにOCSPサポートは有効になっていませんでした。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -6923,7 +8070,8 @@ int wolfSSL_CTX_EnableOCSP(WOLFSSL_CTX* ctx, int options); /*! \brief wolfssl_cert_manager構造体のOCSPENABLEDメンバーに影響を与えます。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。CMのOCSPENABLEDメンバーは無効になっています。 - \return BAD_FUNC_ARG wolfssl_ctx構造がnullの場合に返されます。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造がnullの場合に返されます。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -6943,7 +8091,8 @@ int wolfSSL_CTX_DisableOCSP(WOLFSSL_CTX*); \return SSL_SUCCESS 成功したときに返されます。 \return SSL_FAILURE 失敗したときに返されます。 \return NOT_COMPILED_IN この関数が呼び出されたときに返されますが、wolfsslがコンパイルされたときにOCSPサポートは有効になっていませんでした。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -6957,10 +8106,11 @@ int wolfSSL_CTX_SetOCSP_OverrideURL(WOLFSSL_CTX* ctx, const char* url); /*! \brief \return SSL_SUCCESS 関数が正常に実行された場合に返されます。CM内のOCSPIOCB、OCSPRESPFREECB、およびOCSPIOCTXメンバーは正常に設定されました。 - \return BAD_FUNC_ARG wolfssl_ctxまたはwolfssl_cert_manager構造体がnullの場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \return BAD_FUNC_ARG WOLFSSL_CTXまたはwolfssl_cert_manager構造体がnullの場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param ioCb 関数ポインタであるCBocSpio型。 \param respFreeCb 関数ポインタであるCBocSprepSprepFree型。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -6986,15 +8136,16 @@ int wolfSSL_CTX_SetOCSP_Cb(WOLFSSL_CTX* ctx, void* ioCbCtx); /*! - \brief wolfssl_certmanagerEnableOcspStapling()。 + \brief wolfssl_certmanagerEnableOcspStapling()。 \return SSL_SUCCESS エラーがなく、関数が正常に実行された場合に返されます。 - \return BAD_FUNC_ARG wolfssl_ctx構造体がNULLまたはそうでない場合は、サブルーチンに渡された未解決の引数値があった場合に返されます。 - \return MEMORY_E メモリ割り当てがある問題が発生した場合は返されます。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造体がNULLまたはそうでない場合は、サブルーチンに渡された未解決の引数値があった場合に返されます。 + \return MEMORY_E メモリ割り当てがある問題が発生した場合に返されます。 \return SSL_FAILURE OCSP構造体の初期化が失敗した場合に返されます。 \return NOT_COMPILED_IN wolfsslがhaber_certificate_status_requestオプションでコンパイルされていない場合に返されます。 + _Example_ \code - WOLFSSL* ssl = WOLFSSL_new(); + WOLFSSL* ssl = wolfSSL_new(); ssl->method.version; // set to desired protocol ... if(!wolfSSL_CTX_EnableOCSPStapling(ssl->ctx)){ @@ -7008,8 +8159,9 @@ int wolfSSL_CTX_EnableOCSPStapling(WOLFSSL_CTX*); /*! \ingroup CertsKeys - \brief 通常、SSLハンドシェイクの最後に、WolfSSLは一時的なアレイを解放します。ハンドシェイクが始まる前にこの関数を呼び出すと、WolfSSLは一時的な配列を解放するのを防ぎます。Wolfssl_get_keys()またはPSKのヒントなどのものには、一時的な配列が必要になる場合があります。ユーザが一時的な配列で行われると、wolfssl_freearray()のいずれかが即座にリソースを解放することができ、あるいは、関連するSSLオブジェクトが解放されたときにリソースが解放されるようになる可能性がある。 + \brief 通常、SSLハンドシェイクの最後に、WolfSSLは一時的なアレイを解放します。ハンドシェイクが始まる前にこの関数を呼び出すと、WolfSSLは一時的な配列を解放するのを防ぎます。Wolfssl_get_keys()またはPSKのヒントなどのものには、一時的な配列が必要になる場合があります。ユーザが一時的な配列で行われると、wolfssl_freearray()のいずれかが即座にリソースを解放することができ、あるいは、関連するSSLオブジェクトが解放されたときにリソースが解放されるようになる可能性がある。 \return none 返品不可。 + _Example_ \code WOLFSSL* ssl; @@ -7022,8 +8174,9 @@ void wolfSSL_KeepArrays(WOLFSSL*); /*! \ingroup CertsKeys - \brief 通常、SSLハンドシェイクの最後に、WolfSSLは一時的なアレイを解放します。wolfssl_keeparrays()がハンドシェイクの前に呼び出された場合、WolfSSLは一時的な配列を解放しません。この関数は一時的な配列を明示的に解放し、ユーザーが一時的な配列で行われたときに呼び出されるべきであり、SSLオブジェクトがこれらのリソースを解放するのを待ったくない。 + \brief 通常、SSLハンドシェイクの最後に、WolfSSLは一時的なアレイを解放します。wolfssl_keeparrays()がハンドシェイクの前に呼び出された場合、WolfSSLは一時的な配列を解放しません。この関数は一時的な配列を明示的に解放し、ユーザーが一時的な配列で行われたときに呼び出されるべきであり、SSLオブジェクトがこれらのリソースを解放するのを待ったくない。 \return none 返品不可。 + _Example_ \code WOLFSSL* ssl; @@ -7036,12 +8189,13 @@ void wolfSSL_FreeArrays(WOLFSSL*); /*! \brief 'ssl'パラメータに渡されたオブジェクト。これは、WolfSSLクライアントによってSNI拡張機能がClientHelloで送信され、WolfSSL ServerはServerHello + SNIまたはSNIミスマッチの場合は致命的なAlert Hello + SNIを応答します。 - \return WOLFSSL_SUCCESS 成功すると。 + \return WOLFSSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG 次のいずれかの場合で返されるエラーです.SSLはNULL、データはNULL、タイプは不明な値です。(下記参照) \return MEMORY_E 十分なメモリがないときにエラーが返されます。 - \param ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 + \param ssl wolfSSL_new()で作成されたSSLオブジェクトへのポインタ。 \param type どの種類のサーバー名がデータに渡されたかを示します。既知の型は次のとおりです。enum {wolfssl_sni_host_name = 0}; \param data サーバー名データへのポインタ。 + _Example_ \code int ret = 0; @@ -7069,12 +8223,13 @@ int wolfSSL_UseSNI(WOLFSSL* ssl, unsigned char type, /*! \brief SSLコンテキストから作成されたオブジェクトは 'ctx'パラメータに渡されました。これは、WolfSSLクライアントによってSNI拡張機能がClientHelloで送信され、WolfSSLサーバーはServerHello + SNIまたはSNIの不一致の場合には致命的なALERT Hello + SNIを応答します。 - \return WOLFSSL_SUCCESS 成功すると。 + \return WOLFSSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG 次のいずれかの場合で返されるエラーです.CTXはNULL、データはNULL、タイプは不明な値です。(下記参照) \return MEMORY_E 十分なメモリがないときにエラーが返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 \param type どの種類のサーバー名がデータに渡されたかを示します。既知の型は次のとおりです。enum {wolfssl_sni_host_name = 0}; \param data サーバー名データへのポインタ。 + _Example_ \code int ret = 0; @@ -7098,10 +8253,11 @@ int wolfSSL_CTX_UseSNI(WOLFSSL_CTX* ctx, unsigned char type, /*! \brief 'ssl'パラメータに渡されたSSLオブジェクト内のサーバー名表示を使用したSSLセッションの動作。オプションを以下に説明します。 \return none いいえ返します。 - \param ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 + \param ssl wolfSSL_new()で作成されたSSLオブジェクトへのポインタ。 \param type どの種類のサーバー名がデータに渡されたかを示します。既知の型は次のとおりです。enum {wolfssl_sni_host_name = 0}; \param options 選択されたオプションを持つビット単位のセマフォ。利用可能なオプションは次のとおりです。enum {wolfssl_sni_continue_on_mismatch = 0x01、wolfssl_sni_answer_on_mismatch = 0x02};通常、サーバーは、クライアントによって提供されたホスト名がサーバーと表示されているホスト名がサーバーで提供されている場合、サーバーはhandshakeを中止します。 \param WOLFSSL_SNI_CONTINUE_ON_MISMATCH このオプションを設定すると、サーバーはセッションを中止する代わりにSNI応答を送信しません。 + _Example_ \code int ret = 0; @@ -7132,10 +8288,11 @@ void wolfSSL_SNI_SetOptions(WOLFSSL* ssl, unsigned char type, /*! \brief SSLセッションを使用したSSLオブジェクトのサーバ名指示を使用して、SSLコンテキストから作成されたSSLオブジェクトから作成されます。オプションを以下に説明します。 \return none いいえ返します。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 \param type どの種類のサーバー名がデータに渡されたかを示します。既知の型は次のとおりです。enum {wolfssl_sni_host_name = 0}; \param options 選択されたオプションを持つビット単位のセマフォ。利用可能なオプションは次のとおりです。enum {wolfssl_sni_continue_on_mismatch = 0x01、wolfssl_sni_answer_on_mismatch = 0x02};通常、サーバーは、クライアントによって提供されたホスト名がサーバーと表示されているホスト名がサーバーで提供されている場合、サーバーはhandshakeを中止します。 \param WOLFSSL_SNI_CONTINUE_ON_MISMATCH このオプションを設定すると、サーバーはセッションを中止する代わりにSNI応答を送信しません。 + _Example_ \code int ret = 0; @@ -7160,7 +8317,7 @@ void wolfSSL_CTX_SNI_SetOptions(WOLFSSL_CTX* ctx, /*! \brief クライアントによってクライアントから提供された名前表示クライアントによって送信されたメッセージセッションを開始する。SNIを取得するためのコンテキストまたはセッション設定が必要ありません。 - \return WOLFSSL_SUCCESS 成功すると。 + \return WOLFSSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG このケースで返されるエラーは、次のいずれかの場合で返されます。バッファはNULL、BUFFERSZ <= 0、SNIはNULL、INOUTSZはNULLまたは<= 0です。 \return BUFFER_ERROR 不正なクライアントhelloメッセージがあるときにエラーが返されます。 \return INCOMPLETE_DATA 抽出を完了するのに十分なデータがない場合に返されるエラーです。 @@ -7168,6 +8325,7 @@ void wolfSSL_CTX_SNI_SetOptions(WOLFSSL_CTX* ctx, \param bufferSz クライアントhelloメッセージのサイズ。 \param type どの種類のサーバー名がバッファーから取得されているかを示します。既知の型は次のとおりです。enum {wolfssl_sni_host_name = 0}; \param sni 出力が保存される場所へのポインタ。 + _Example_ \code unsigned char buffer[1024] = {0}; @@ -7192,7 +8350,8 @@ int wolfSSL_SNI_GetFromBuffer( \brief この関数はSNIオブジェクトのステータスを取得します。 \return value SNIがNULLでない場合、この関数はSNI構造体のステータスメンバーのバイト値を返します。 \return 0 SNIオブジェクトがNULLの場合 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -7214,8 +8373,9 @@ unsigned char wolfSSL_SNI_Status(WOLFSSL* ssl, unsigned char type); /*! \brief SSLセッションでクライアントによって提供されるサーバー名の表示。 \return size 提供されたSNIデータのサイズ。 - \param ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 + \param ssl wolfSSL_new()で作成されたSSLオブジェクトへのポインタ。 \param type どの種類のサーバー名がデータ内で取得されているかを示します。既知の型は次のとおりです。enum {wolfssl_sni_host_name = 0}; + _Example_ \code int ret = 0; @@ -7247,13 +8407,14 @@ unsigned short wolfSSL_SNI_GetRequest(WOLFSSL *ssl, /*! \ingroup Setup \brief wolfsslセッションにALPNを設定します。 - \return WOLFSSL_SUCCESS: 成功すると。 + \return WOLFSSL_SUCCESS: 成功時に返されます。 \return BAD_FUNC_ARG SSLまたはPROTOCOL_NAME_LISTがNULLまたはPROTOCOL_NAME_LISTSZが大きすぎたり、オプションがサポートされていないものを含みます。 \return MEMORY_ERROR プロトコルリストのメモリの割り当て中にエラーが発生しました。 - \return SSL_FAILURE 失敗すると。 + \return SSL_FAILURE 失敗時に返されます。 \param ssl 使用するWolfSSLセッション。 \param protocol_name_list 使用するプロトコル名のリスト。カンマ区切り文字列が必要です。 \param protocol_name_listSz プロトコル名のリストのサイズ。 + _Example_ \code wolfSSL_Init(); @@ -7284,11 +8445,12 @@ int wolfSSL_UseALPN(WOLFSSL* ssl, char *protocol_name_list, \return SSL_FATAL_ERROR 拡張子が見つからなかった場合、またはピアとプロトコルが一致しなかった場合に返されます。2つ以上のプロトコル名が受け入れられている場合は、スローされたエラーもあります。 \return SSL_ALPN_NOT_FOUND ピアとプロトコルの一致が見つからなかったことを示す返されました。 \return BAD_FUNC_ARG 関数に渡されたnull引数があった場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param protocol_name プロトコル名を表すCHARへのポインタは、ALPN構造に保持されます。 + _Example_ \code - WOLFSSL_CTX* ctx = WOLFSSL_CTX_new( protocol method ); + WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); WOLFSSL* ssl = WOLFSSL_new(ctx); ... int err; @@ -7311,10 +8473,11 @@ int wolfSSL_ALPN_GetProtocol(WOLFSSL* ssl, char **protocol_name, \brief この関数は、alpn_client_listデータをSSLオブジェクトからバッファにコピーします。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。SSLオブジェクトのALPN_CLIENT_LISTメンバーがLISTパラメータにコピーされました。 \return BAD_FUNC_ARG listまたはlistszパラメーターがnullの場合に返されます。 - \return BUFFER_ERROR リストバッファに問題がある場合は(NULLまたはサイズが0の場合)に問題がある場合は返されます。 + \return BUFFER_ERROR リストバッファに問題がある場合は(NULLまたはサイズが0の場合)に問題がある場合に返されます。 \return MEMORY_ERROR メモリを動的に割り当てる問題がある場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param list バッファへのポインタ。SSLオブジェクトからのデータがコピーされます。 + _Example_ \code #import @@ -7339,10 +8502,11 @@ int wolfSSL_ALPN_GetPeerProtocol(WOLFSSL* ssl, char **list, /*! \brief 'ssl'パラメータに渡されたSSLオブジェクト内の最大フラグメント長。これは、最大フラグメント長拡張機能がWolfSSLクライアントによってClientHelloで送信されることを意味します。 - \return SSL_SUCCESS 成功すると。 + \return SSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG 次のいずれかの場合に返されるエラーです.SSLはNULL、MFLは範囲外です。 \return MEMORY_E 十分なメモリがないときにエラーが返されます。 - \param ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 + \param ssl wolfSSL_new()で作成されたSSLオブジェクトへのポインタ。 + _Example_ \code int ret = 0; @@ -7368,10 +8532,11 @@ int wolfSSL_UseMaxFragment(WOLFSSL* ssl, unsigned char mfl); /*! \brief SSLコンテキストから作成されたSSLオブジェクトの最大フラグメント長さ 'ctx'パラメータに渡されました。これは、最大フラグメント長拡張機能がWolfSSLクライアントによってClientHelloで送信されることを意味します。 - \return SSL_SUCCESS 成功すると。 + \return SSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG 次のいずれかの場合に返されるエラーです.CTXはNULL、MFLは範囲外です。 \return MEMORY_E 十分なメモリがないときにエラーが返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + _Example_ \code int ret = 0; @@ -7392,9 +8557,10 @@ int wolfSSL_CTX_UseMaxFragment(WOLFSSL_CTX* ctx, unsigned char mfl); /*! \brief 'ssl'パラメータに渡されたSSLオブジェクト内のtruncated HMAC。これは、切り捨てられたHMAC拡張機能がWolfSSLクライアントによってClientHelloで送信されることを意味します。 - \return SSL_SUCCESS 成功すると。 + \return SSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG 次のいずれかの場合に返されるエラーです.SSLはNULLです \return MEMORY_E 十分なメモリがないときにエラーが返されます。 + _Example_ \code int ret = 0; @@ -7420,9 +8586,10 @@ int wolfSSL_UseTruncatedHMAC(WOLFSSL* ssl); /*! \brief 'ctx'パラメータに渡されたSSLコンテキストから作成されたSSLオブジェクトのためのTruncated HMAC。これは、切り捨てられたHMAC拡張機能がWolfSSLクライアントによってClientHelloで送信されることを意味します。 - \return SSL_SUCCESS 成功すると。 + \return SSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG 次のいずれかの場合に返されるエラーです.CTXはNULL \return MEMORY_E 十分なメモリがないときにエラーが返されます。 + _Example_ \code int ret = 0; @@ -7444,10 +8611,11 @@ int wolfSSL_CTX_UseTruncatedHMAC(WOLFSSL_CTX* ctx); /*! \brief OCSPで提示された証明書失効チェックのコストを下げます。 \return SSL_SUCCESS tlsx_usecertificateStatusRequestがエラーなしで実行された場合に返されます。 - \return MEMORY_E メモリの割り当てにエラーがある場合は返されます。 + \return MEMORY_E メモリの割り当てにエラーがある場合に返されます。 \return BAD_FUNC_ARG NULLまたはその他の点では、関数に渡された値が渡される引数がある場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 - \param status_type tlsx_usecertificateSrequest()に渡され、CertificateStatusRequest構造体に格納されているバイトタイプ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param status_type tlsx_usecertificateSrequest()に渡され、CertificateStatusRequest構造体に格納されているバイトタイプ。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -7466,10 +8634,11 @@ int wolfSSL_UseOCSPStapling(WOLFSSL* ssl, /*! \brief \return SSL_SUCCESS 関数とサブルーチンがエラーなしで実行された場合に返されます。 - \return BAD_FUNC_ARG 未解決の値がサブルーチンに渡された場合、wolfssl_ctx構造体がNULLまたはそうでない場合は返されます。 + \return BAD_FUNC_ARG 未解決の値がサブルーチンに渡された場合、WOLFSSL_CTX構造体がNULLまたはそうでない場合に返されます。 \return MEMORY_E 関数またはサブルーチンがメモリを正しく割り振ることができなかった場合に返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 - \param status_type tlsx_usecertificateSrequest()に渡され、CertificateStatusRequest構造体に格納されているバイトタイプ。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + \param status_type tlsx_usecertificateSrequest()に渡され、CertificateStatusRequest構造体に格納されているバイトタイプ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -7496,8 +8665,9 @@ int wolfSSL_CTX_UseOCSPStapling(WOLFSSL_CTX* ctx, \return SSL_SUCCESS - 関数とサブルーチンがエラーなしで実行された場合に返されます。 \return MEMORY_E - メモリエラーの割り当てがあった場合に返されます。 \return BAD_FUNC_ARG - NULLまたはそれ以外の場合は解読されていない引数が関数またはサブルーチンに渡された場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param status_type OCSPステータスタイプをロードするバイトタイプ。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -7516,10 +8686,11 @@ int wolfSSL_UseOCSPStaplingV2(WOLFSSL* ssl, /*! \brief OCSPステイプルのために。 \return SSL_SUCCESS 関数とサブルーチンがエラーなしで実行された場合。 - \return BAD_FUNC_ARG wolfssl_ctx構造がnullの場合、または側数変数がクライアント側ではない場合に返されます。 + \return BAD_FUNC_ARG WOLFSSL_CTX構造がnullの場合、または側数変数がクライアント側ではない場合に返されます。 \return MEMORY_E メモリの割り当てが失敗した場合に返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 \param status_type CertificatStatusRequest構造体にあるバイトタイプで、wolfssl_csr2_ocspまたはwolfssl_csr2_ocsp_multiでなければなりません。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -7539,10 +8710,11 @@ int wolfSSL_CTX_UseOCSPStaplingV2(WOLFSSL_CTX* ctx, /*! \brief サポートされている楕円曲線拡張子は、 'SSL'パラメータに渡されたSSLオブジェクトでサポートされています。これは、サポートされているカーブがWolfSSLクライアントによってClientHelloで送信されることを意味します。この機能は複数の曲線を有効にするために複数の時間と呼ぶことができます。 - \return SSL_SUCCESS 成功すると。 + \return SSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG 次のいずれかの場合に返されるエラーです.SSLはNULLです。名前は未知の値です。(下記参照) \return MEMORY_E 十分なメモリがないときにエラーが返されます。 - \param ssl wolfssl_new()で作成されたSSLオブジェクトへのポインタ。 + \param ssl wolfSSL_new()で作成されたSSLオブジェクトへのポインタ。 + _Example_ \code int ret = 0; @@ -7568,10 +8740,11 @@ int wolfSSL_UseSupportedCurve(WOLFSSL* ssl, word16 name); /*! \brief サポートされている楕円曲線は、 'ctx'パラメータに渡されたSSLコンテキストから作成されたSSLオブジェクトの拡張子です。これは、サポートされているカーブがWolfSSLクライアントによってClientHelloで送信されることを意味します。この機能は複数の曲線を有効にするために複数の時間と呼ぶことができます。 - \return SSL_SUCCESS 成功すると。 + \return SSL_SUCCESS 成功時に返されます。 \return BAD_FUNC_ARG 次のいずれかの場合に返されるエラーです.CTXはNULL、名前は未知の値です。(下記参照) \return MEMORY_E 十分なメモリがないときにエラーが返されます。 - \param ctx wolfssl_ctx_new()で作成されたSSLコンテキストへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたSSLコンテキストへのポインタ。 + _Example_ \code int ret = 0; @@ -7595,8 +8768,9 @@ int wolfSSL_CTX_UseSupportedCurve(WOLFSSL_CTX* ctx, \ingroup IO \brief この関数は、供給されたWOLFSSL構造の安全な再交渉を強制します。これはお勧めできません。 \return SSL_SUCCESS 安全な再ネゴシエーションを正常に設定します。 - \return BAD_FUNC_ARG SSLがNULLの場合、エラーを返します。 + \return BAD_FUNC_ARG sslがNULLの場合、エラーを返します。 \return MEMORY_E 安全な再交渉のためにメモリを割り当てることができない場合、エラーを返します。 + _Example_ \code wolfSSL_Init(); @@ -7621,8 +8795,9 @@ int wolfSSL_UseSecureRenegotiation(WOLFSSL* ssl); \brief この関数は安全な再交渉ハンドシェイクを実行します。これは、WolfSSLがこの機能を妨げるように強制されます。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。 \return BAD_FUNC_ARG wolfssl構造がnullまたはそうでなければ、許容できない引数がサブルーチンに渡された場合に返されます。 - \return SECURE_RENEGOTIATION_E ハンドシェイクを再ネゴシエーションすることにエラーが発生した場合は返されます。 - \return SSL_FATAL_ERROR サーバーまたはクライアント構成にエラーが発生した場合は、再ネゴシエーションが完了できなかった場合に返されます。wolfssl_negotiate()を参照してください。 + \return SECURE_RENEGOTIATION_E ハンドシェイクを再ネゴシエーションすることにエラーが発生した場合に返されます。 + \return SSL_FATAL_ERROR サーバーまたはクライアント構成にエラーが発生した場合は、再ネゴシエーションが完了できなかった場合に返されます。wolfssl_negotiate()を参照してください。 + _Example_ \code WOLFSSL* ssl = wolfSSL_new(ctx); @@ -7644,8 +8819,9 @@ int wolfSSL_Rehandshake(WOLFSSL* ssl); \ingroup IO \brief セッションチケットを使用するようにWolfSSL構造を強制します。定数hous_session_ticketを定義し、定数NO_WOLFSSL_CLIENTをこの関数を使用するように定義しないでください。 \return SSL_SUCCESS セッションチケットを使用したセットに成功しました。 - \return BAD_FUNC_ARG SSLがNULLの場合に返されます。 + \return BAD_FUNC_ARG sslがNULLの場合に返されます。 \return MEMORY_E セッションチケットを設定するためのメモリの割り当て中にエラーが発生しました。 + _Example_ \code wolfSSL_Init(); @@ -7670,6 +8846,7 @@ int wolfSSL_UseSessionTicket(WOLFSSL* ssl); \return SSL_SUCCESS 関数は正常に実行されます。 \return BAD_FUNC_ARG CTXがNULLの場合に返されます。 \return MEMORY_E 内部関数内のメモリの割り当て中にエラーが発生しました。 + _Example_ \code wolfSSL_Init(); @@ -7691,8 +8868,9 @@ int wolfSSL_CTX_UseSessionTicket(WOLFSSL_CTX* ctx); \brief この機能は、セッション構造のチケットメンバーをバッファにコピーします。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。 \return BAD_FUNC_ARG 引数の1つがNULLの場合、またはbufsz引数が0の場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param buf メモリバッファを表すバイトポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -7716,8 +8894,9 @@ int wolfSSL_get_SessionTicket(WOLFSSL* ssl, unsigned char* buf, word32* bufSz); \brief この関数は、WolfSSL構造体内のwolfssl_session構造体のチケットメンバーを設定します。関数に渡されたバッファはメモリにコピーされます。 \return SSL_SUCCESS 機能の実行に成功したことに戻ります。関数はエラーなしで返されました。 \return BAD_FUNC_ARG WolfSSL構造がNULLの場合に返されます。BUF引数がNULLの場合は、これはスローされますが、bufsz引数はゼロではありません。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param buf セッション構造のチケットメンバーにロードされるバイトポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -7738,8 +8917,9 @@ int wolfSSL_set_SessionTicket(WOLFSSL* ssl, const unsigned char* buf, \brief CallbackSessionTicketは、int(* callbacksessionTicket)(wolfssl *、const unsigned char *、int、void *)の関数ポインタです。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。 \return BAD_FUNC_ARG WolfSSL構造がNULLの場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param cb Type CallbackSessionTicketへの関数ポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -7756,13 +8936,42 @@ int wolfSSL_set_SessionTicket(WOLFSSL* ssl, const unsigned char* buf, int wolfSSL_set_SessionTicket_cb(WOLFSSL* ssl, CallbackSessionTicket cb, void* ctx); +/*! + \brief この関数はTLS1.3ハンドシェークが確立したあとでセッションチケットを送信します。 + + \return WOLFSSL_SUCCESS セッションチケットが送信された場合に返されます。 + \return BAD_FUNC_ARG WOLFSSL構造体がNULL,あるいはTLS v1.3を使用しない場合に返されます。 + \return SIDE_ERROR returned サーバー側でない場合に返されます。 + \return NOT_READY_ERROR ハンドシェークが完了しない場合に返されます。 + \return WOLFSSL_FATAL_ERROR メッセージの生成か送信に失敗した際に返されます。 + + \param ssl wolfSSL_new()を使って生成されたWOLFSSL構造体へのポインタ。 + + _Example_ + \code + int ret; + WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); + WOLFSSL* ssl = wolfSSL_new(ctx); + … + ret = wolfSSL_send_SessionTicket(ssl); + if (ret != WOLFSSL_SUCCESS) { + // New session ticket not sent. + } + \endcode + + \sa wolfSSL_get_SessionTicket + \sa CallbackSessionTicket + \sa sessionTicketCB + */ +int wolfSSL_send_SessionTicket(WOLFSSL* ssl); + /*! \brief RFC 5077で指定されているセッションチケットをサポートするためのサーバーが。 \return SSL_SUCCESS セッションを正常に設定すると返されます。 \return BAD_FUNC_ARG 失敗した場合に返されます。これは、無効な引数を関数に渡すことによって発生します。 - \param ctx wolfssl_ctx_new()で作成されたwolfssl_ctxオブジェクトへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTXオブジェクトへのポインタ。 \param cb セッションチケットを暗号化/復号化するためのユーザーコールバック関数 - \param ssl(Callback) WOLFSSL_NEW()で作成されたWolfSSLオブジェクトへのポインタ + \param ssl(Callback) wolfSSL_new()で作成されたWolfSSLオブジェクトへのポインタ \param key_name(Callback) このチケットコンテキストの一意のキー名はランダムに生成されるべきです \param iv(Callback) ユニークなIVこのチケットの場合、最大128ビット、ランダムに生成されるべきです \param mac(Callback) このチケットの最大256ビットMAC @@ -7770,6 +8979,7 @@ int wolfSSL_set_SessionTicket_cb(WOLFSSL* ssl, \param ticket(Callback) 暗号化チケットの入出力バッファ。ENCパラメータを参照してください \param inLen(Callback) チケットパラメータの入力長 \param outLen(Callback) チケットパラメータの結果の出力長。コールバックoutlenを入力すると、チケットバッファで使用可能な最大サイズが表示されます。 + _Example_ \code See wolfssl/test.h myTicketEncCb() used by the example @@ -7785,7 +8995,8 @@ int wolfSSL_CTX_set_TicketEncCb(WOLFSSL_CTX* ctx, \brief サーバーサイドの使用のために。 \return SSL_SUCCESS セッションを正常に設定すると返されます。 \return BAD_FUNC_ARG 失敗した場合に返されます。これは、無効な引数を関数に渡すことによって発生します。 - \param ctx wolfssl_ctx_new()で作成されたwolfssl_ctxオブジェクトへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTXオブジェクトへのポインタ。 + _Example_ \code none @@ -7798,7 +9009,8 @@ int wolfSSL_CTX_set_TicketHint(WOLFSSL_CTX* ctx, int); \brief 折り返し電話。サーバーサイドの使用のために。 \return SSL_SUCCESS セッションを正常に設定すると返されます。 \return BAD_FUNC_ARG 失敗した場合に返されます。これは、無効な引数を関数に渡すことによって発生します。 - \param ctx wolfssl_ctx_new()で作成されたwolfssl_ctxオブジェクトへのポインタ。 + \param ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTXオブジェクトへのポインタ。 + _Example_ \code none @@ -7811,6 +9023,7 @@ int wolfSSL_CTX_set_TicketEncCtx(WOLFSSL_CTX* ctx, void*); \brief 折り返し電話。サーバーサイドの使用のために。 \return userCtx セッションを正常に取得すると返されます。 \return NULL 失敗した場合に返されます。これは、無効な引数を関数に渡すことによって、またはユーザーコンテキストが設定されていないときに発生します。 + _Example_ \code none @@ -7823,8 +9036,9 @@ void* wolfSSL_CTX_get_TicketEncCtx(WOLFSSL_CTX* ctx); \brief この機能には、WolfSSL構造のHSDonectxメンバーが設定されています。 \return SSL_SUCCESS 関数がエラーなしで実行された場合に返されます。WolfSSL構造体のHSDONECBとHSDonectxメンバーが設定されています。 \return BAD_FUNC_ARG wolfssl構造体がNULLの場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 \param cb int(* HandshakedOneCB)(wolfssl *、void *)の署名を持つタイプHandshakedOneCBの関数ポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -7844,8 +9058,9 @@ int wolfSSL_SetHsDoneCb(WOLFSSL* ssl, HandShakeDoneCb cb, void* user_ctx); \ingroup IO \brief この関数はセッションから統計を印刷します。 \return SSL_SUCCESS 関数とサブルーチンがエラーなしで戻った場合に返されます。セッション統計は正常に取得され印刷されました。 - \return BAD_FUNC_ARG サブルーチンwolfssl_get_session_stats()が許容できない引数に渡された場合に返されます。 + \return BAD_FUNC_ARG サブルーチンwolfssl_get_session_stats()が許容できない引数に渡された場合に返されます。 \return BAD_MUTEX_E サブルーチンにミューテックスエラーがあった場合に返されます。 + _Example_ \code // You will need to have a session object to retrieve stats from. @@ -7862,11 +9077,12 @@ int wolfSSL_PrintSessionStats(void); \ingroup IO \brief この関数はセッションの統計を取得します。 \return SSL_SUCCESS 関数とサブルーチンがエラーなしで戻った場合に返されます。セッション統計は正常に取得され印刷されました。 - \return BAD_FUNC_ARG サブルーチンwolfssl_get_session_stats()が許容できない引数に渡された場合に返されます。 + \return BAD_FUNC_ARG サブルーチンwolfssl_get_session_stats()が許容できない引数に渡された場合に返されます。 \return BAD_MUTEX_E サブルーチンにミューテックスエラーがあった場合に返されます。 \param active 現在のセッションの合計を表すWord32ポインタ。 \param total 総セッションを表すWord32ポインタ。 \param peak ピークセッションを表すWord32ポインタ。 + _Example_ \code int wolfSSL_PrintSessionStats(void){ @@ -7887,7 +9103,7 @@ int wolfSSL_get_session_stats(unsigned int* active, \ingroup TLS \brief この関数はCRとSRの値をコピーしてからWC_PRF(疑似ランダム関数)に渡し、その値を返します。 \return 0 成功した - \return BUFFER_E バッファのサイズにエラーが発生した場合は返されます。 + \return BUFFER_E バッファのサイズにエラーが発生した場合に返されます。 \return MEMORY_E サブルーチンが動的メモリを割り当てることができなかった場合に返されます。 \param ms マスターシークレットはアレイ構造に保持されています。 \param msLen マスターシークレットの長さ。 @@ -7896,6 +9112,7 @@ int wolfSSL_get_session_stats(unsigned int* active, \param cr クライアントのランダム \param sr サーバーのランダムです。 \param tls1_2 バージョンが少なくともTLSバージョン1.2であることを意味します。 + _Example_ \code WOLFSSL* ssl; @@ -7935,7 +9152,8 @@ int wolfSSL_MakeTlsMasterSecret(unsigned char* ms, word32 msLen, \param msLen 列挙された定義で、マスターシークレットの長さを保持するWord32タイプ。 \param sr WOLFSSL構造内の配列構造のServerRandomメンバーへの定数バイトポインタ。 \param cr WolfSSL構造内の配列構造のClientRandomメンバーへの定数バイトポインタ。 - \param tls1_2 ISATLEASTLSV1_2()から返された整数型。 + \param tls1_2 ISATLEASTLSV1_2()から返された整数型。 + _Example_ \code int DeriveTlsKeys(WOLFSSL* ssl){ @@ -7959,11 +9177,12 @@ int wolfSSL_DeriveTlsKeys(unsigned char* key_data, word32 keyLen, /*! \brief ハンドシェイクコールバックが設定されます。これは、デバッガが利用できず、スニッフィングが実用的ではない場合に、サポートをデバッグするための組み込みシステムで役立ちます。ハンドシェイクエラーが発生したか否かが呼び出されます。SSLパケットの最大数が既知であるため、動的メモリは使用されません。パケット名をPacketNames []でアクセスできます。接続拡張機能は、タイムアウト値とともにタイムアウトコールバックを設定することもできます。これは、ユーザーがTCPスタックをタイムアウトするのを待ったくない場合に便利です。この拡張子は、コールバックのどちらか、またはどちらのコールバックも呼び出されません。 - \return SSL_SUCCESS 成功すると。 - \return GETTIME_ERROR gettimeofday()がエラーを検出した場合、返されます。 - \return SETITIMER_ERROR setItimer()がエラーを検出した場合、返されます。 - \return SIGACT_ERROR sigAction()がエラーを検出した場合、返されます。 - \return SSL_FATAL_ERROR 基になるssl_connect()呼び出しがエラーを検出した場合に返されます。 + \return SSL_SUCCESS 成功時に返されます。 + \return GETTIME_ERROR gettimeofday()がエラーを検出した場合、返されます。 + \return SETITIMER_ERROR setItimer()がエラーを検出した場合、返されます。 + \return SIGACT_ERROR sigAction()がエラーを検出した場合、返されます。 + \return SSL_FATAL_ERROR 基になるssl_connect()呼び出しがエラーを検出した場合に返されます。 + _Example_ \code none @@ -7975,11 +9194,12 @@ int wolfSSL_connect_ex(WOLFSSL* ssl, HandShakeCallBack hsCb, /*! \brief 設定する。これは、デバッガが利用できず、スニッフィングが実用的ではない場合に、サポートをデバッグするための組み込みシステムで役立ちます。ハンドシェイクエラーが発生したか否かが呼び出されます。SSLパケットの最大数が既知であるため、動的メモリは使用されません。パケット名をPacketNames []でアクセスできます。接続拡張機能は、タイムアウト値とともにタイムアウトコールバックを設定することもできます。これは、ユーザーがTCPスタックをタイムアウトするのを待ったくない場合に便利です。この拡張子は、コールバックのどちらか、またはどちらのコールバックも呼び出されません。 - \return SSL_SUCCESS 成功すると。 - \return GETTIME_ERROR gettimeofday()がエラーを検出した場合、返されます。 - \return SETITIMER_ERROR setItimer()がエラーを検出した場合、返されます。 - \return SIGACT_ERROR sigAction()がエラーを検出した場合、返されます。 - \return SSL_FATAL_ERROR 基礎となるssl_accept()呼び出しがエラーを検出した場合に返されます。 + \return SSL_SUCCESS 成功時に返されます。 + \return GETTIME_ERROR gettimeofday()がエラーを検出した場合、返されます。 + \return SETITIMER_ERROR setItimer()がエラーを検出した場合、返されます。 + \return SIGACT_ERROR sigAction()がエラーを検出した場合、返されます。 + \return SSL_FATAL_ERROR 基礎となるssl_accept()呼び出しがエラーを検出した場合に返されます。 + _Example_ \code none @@ -7994,8 +9214,9 @@ int wolfSSL_accept_ex(WOLFSSL* ssl, HandShakeCallBacki hsCb, \brief これはBIOの内部ファイルポインタを設定するために使用されます。 \return SSL_SUCCESS ファイルポインタを正常に設定します。 \return SSL_FAILURE エラーケースに遭遇した場合 - \param bio ペアを設定するためのwolfssl_bio構造。 + \param bio ペアを設定するためのWOLFSSL_BIO構造体。 \param fp バイオで設定するファイルポインタ。 + _Example_ \code WOLFSSL_BIO* bio; @@ -8014,10 +9235,11 @@ long wolfSSL_BIO_set_fp(WOLFSSL_BIO *bio, XFILE fp, int c); /*! \ingroup IO - \brief これは、BIOの内部ファイルポインタを取得するために使用されます。 +\brief この関数は、 \brief これは、BIOの内部ファイルポインタを取得するために使用されます。 \return SSL_SUCCESS ファイルポインタを正常に取得します。 \return SSL_FAILURE エラーケースに遭遇した場合 - \param bio ペアを設定するためのwolfssl_bio構造。 + \param bio ペアを設定するためのWOLFSSL_BIO構造体。 + _Example_ \code WOLFSSL_BIO* bio; @@ -8040,6 +9262,7 @@ long wolfSSL_BIO_get_fp(WOLFSSL_BIO *bio, XFILE* fp); \return SSL_SUCCESS うまく一致します。 \return SSL_FAILURE エラーケースに遭遇した場合 \return <0 ssl_failure以外のすべてのエラーケースは負の値です。 + _Example_ \code WOLFSSL* ssl; @@ -8056,10 +9279,11 @@ int wolfSSL_check_private_key(const WOLFSSL* ssl); /*! \ingroup CertsKeys \brief この機能は、渡されたNID値に一致する拡張索引を探して返します。 - \return >= 0拡張インデックスが成功した場合は返されます。 + \return >= 0拡張インデックスが成功した場合に返されます。 \return -1 拡張が見つからないかエラーが発生した場合 \param x509 拡張のために解析する証明書。 \param nid 見つかる拡張OID。 + _Example_ \code const WOLFSSL_X509* x509; @@ -8075,11 +9299,12 @@ int wolfSSL_X509_get_ext_by_NID(const WOLFSSL_X509* x509, /*! \ingroup CertsKeys \brief この関数は、渡されたNID値に合った拡張子を探して返します。 - \return pointer STACK_OF(wolfssl_asn1_object)ポインタが成功した場合は返されます。 + \return pointer STACK_OF(wolfssl_asn1_object)ポインタが成功した場合に返されます。 \return NULL 拡張が見つからないかエラーが発生した場合 \param x509 拡張のために解析する証明書。 \param nid 見つかる拡張OID。 \param c not nullが複数の拡張子に-2に設定されていない場合は-1が見つかりませんでした。 + _Example_ \code const WOLFSSL_X509* x509; @@ -8103,6 +9328,7 @@ void* wolfSSL_X509_get_ext_d2i(const WOLFSSL_X509* x509, \param x509 ハッシュを得るための証明書。 \param digest 使用するハッシュアルゴリズム \param buf ハッシュを保持するためのバッファ。 + _Example_ \code WOLFSSL_X509* x509; @@ -8124,6 +9350,7 @@ int wolfSSL_X509_digest(const WOLFSSL_X509* x509, \return SSL_SUCCESS 設定の成功した引数について。 \return SSL_FAILURE NULL引数が渡された場合。 \param ssl 証明書を設定するためのWolfSSL構造。 + _Example_ \code WOLFSSL* ssl; WOLFSSL_X509* x509 @@ -8139,11 +9366,12 @@ int wolfSSL_use_certificate(WOLFSSL* ssl, WOLFSSL_X509* x509); /*! \ingroup Setup - \brief これは、handshakeの間に使用するためにWolfSSL構造の証明書を設定するために使用されます。DERフォーマットバッファが予想されます。 + \biiこfは、この関数は、handshakeの間に使用するためにWolfSSL構造の証明書を設定するために使用されます。DERフォーマットバッファが予想されます。 \return SSL_SUCCESS 設定の成功した引数について。 \return SSL_FAILURE NULL引数が渡された場合。 \param ssl 証明書を設定するためのWolfSSL構造。 \param der 使用する証明書。 + _Example_ \code WOLFSSL* ssl; @@ -8166,6 +9394,7 @@ int wolfSSL_use_certificate_ASN1(WOLFSSL* ssl, unsigned char* der, \return SSL_SUCCESS 設定の成功した引数について。 \return SSL_FAILURE NULL SSLが渡された場合。すべてのエラーケースは負の値になります。 \param ssl 引数を設定するためのWolfSSL構造。 + _Example_ \code WOLFSSL* ssl; @@ -8188,6 +9417,7 @@ int wolfSSL_use_PrivateKey(WOLFSSL* ssl, WOLFSSL_EVP_PKEY* pkey); \param pri 秘密鍵の種類。 \param ssl 引数を設定するためのWolfSSL構造。 \param der バッファー保持DERキー。 + _Example_ \code WOLFSSL* ssl; @@ -8212,6 +9442,7 @@ int wolfSSL_use_PrivateKey_ASN1(int pri, WOLFSSL* ssl, \return SSL_FAILURE NULL SSLが渡された場合。すべてのエラーケースは負の値になります。 \param ssl 引数を設定するためのWolfSSL構造。 \param der バッファー保持DERキー。 + _Example_ \code WOLFSSL* ssl; @@ -8234,6 +9465,7 @@ int wolfSSL_use_RSAPrivateKey_ASN1(WOLFSSL* ssl, unsigned char* der, \brief この関数は、DSAのパラメータを新しく作成されたWOLFSSL_DH構造体に重複しています。 \return WOLFSSL_DH 重複した場合はWolfSSL_DH構造体を返す場合 \return NULL 失敗すると + _Example_ \code WOLFSSL_DH* dh; @@ -8255,6 +9487,7 @@ WOLFSSL_DH *wolfSSL_DSA_dup_DH(const WOLFSSL_DSA *r); \return max 渡されたOUTSZが0の場合、必要な最大バッファサイズが返されます。 \param ses マスターシークレットバッファを取得するためのWolfSSL_SESSION構造。 \param out データを保持するためのバッファ。 + _Example_ \code WOLFSSL_SESSION ssl; @@ -8277,6 +9510,7 @@ int wolfSSL_SESSION_get_master_key(const WOLFSSL_SESSION* ses, \ingroup Setup \brief これはマスター秘密鍵の長さを取得するために使用されます。 \return size マスターシークレットキーサイズを返します。 + _Example_ \code WOLFSSL_SESSION ssl; @@ -8295,9 +9529,10 @@ int wolfSSL_SESSION_get_master_key_length(const WOLFSSL_SESSION* ses); /*! \ingroup Setup - \brief これは、CTXのWOLFSSL_X509_STORE構造の設定機能です。 + \bri f この関数は、れは、CTXのWOLFSSL_X509_STORE構造の設定機能です。 \return none 返品不可。 \param ctx Cert Storeポインタを設定するためのWolfSSL_CTX構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX ctx; @@ -8317,7 +9552,8 @@ void wolfSSL_CTX_set_cert_store(WOLFSSL_CTX* ctx, \brief この関数はBIOからDERバッファを取得し、それをWolfSSL_X509構造に変換します。 \return pointer 成功したwolfssl_x509構造ポインタを返します。 \return Null 失敗時にNULLを返します - \param bio DER証明書バッファを持つwolfssl_bio構造体へのポインタ。 + \param bio DER証明書バッファを持つWOLFSSL_BIO構造体体へのポインタ。 + _Example_ \code WOLFSSL_BIO* bio; @@ -8334,9 +9570,10 @@ WOLFSSL_X509* wolfSSL_d2i_X509_bio(WOLFSSL_BIO* bio, WOLFSSL_X509** x509); /*! \ingroup Setup - \brief これは、CTXのWOLFSSL_X509_STORE構造のゲッター関数です。 + \bri f この関数は、れは、CTXのWOLFSSL_X509_STORE構造のゲッター関数です。 \return WOLFSSL_X509_STORE* ポインタを正常に入手します。 \return NULL NULL引数が渡された場合に返されます。 + _Example_ \code WOLFSSL_CTX ctx; @@ -8355,6 +9592,7 @@ WOLFSSL_X509_STORE* wolfSSL_CTX_get_cert_store(WOLFSSL_CTX* ctx); \ingroup IO \brief 保留中のバイト数を読み取る数を取得します。BIOタイプがBIO_BIOの場合、ペアから読み取る番号です。BIOにSSLオブジェクトが含まれている場合は、SSLオブジェクトからのデータを保留中です(WolfSSL_Pending(SSL))。bio_memoryタイプがある場合は、メモリバッファのサイズを返します。 \return >=0 保留中のバイト数。 + _Example_ \code WOLFSSL_BIO* bio; @@ -8370,12 +9608,13 @@ size_t wolfSSL_BIO_ctrl_pending(WOLFSSL_BIO *b); /*! \ingroup Setup - \brief これは、ハンドシェイク中にサーバーによって送信されたランダムなデータを取得するために使用されます。 + \biiefは、この関数は、ハンドシェイク中にサーバーによって送信されたランダムなデータを取得するために使用されます。 \return >0 データの取得に成功した場合、0より大きい値を返します。 \return 0 ランダムなデータバッファまたはエラー状態が返されない場合は0 \return max 渡されたOUTSZが0の場合、必要な最大バッファサイズが返されます。 \param ssl クライアントのランダムデータバッファを取得するためのWolfSSL構造。 \param out ランダムデータを保持するためのバッファ。 + _Example_ \code WOLFSSL ssl; @@ -8395,12 +9634,13 @@ size_t wolfSSL_get_server_random(const WOLFSSL *ssl, /*! \ingroup Setup - \brief これは、ハンドシェイク中にクライアントによって送信されたランダムなデータを取得するために使用されます。 + \biiefは、この関数は、ハンドシェイク中にクライアントによって送信されたランダムなデータを取得するために使用されます。 \return >0 データの取得に成功した場合、0より大きい値を返します。 \return 0 ランダムなデータバッファまたはエラー状態が返されない場合は0 \return max 渡されたOUTSZが0の場合、必要な最大バッファサイズが返されます。 \param ssl クライアントのランダムデータバッファを取得するためのWolfSSL構造。 \param out ランダムデータを保持するためのバッファ。 + _Example_ \code WOLFSSL ssl; @@ -8423,6 +9663,7 @@ size_t wolfSSL_get_client_random(const WOLFSSL* ssl, \brief これはCTXで設定されたパスワードコールバックのゲッター関数です。 \return func 成功すると、コールバック関数を返します。 \return NULL CTXがNULLの場合、NULLが返されます。 + _Example_ \code WOLFSSL_CTX* ctx; @@ -8439,9 +9680,10 @@ wc_pem_password_cb* wolfSSL_CTX_get_default_passwd_cb(WOLFSSL_CTX* /*! \ingroup Setup - \brief これは、CTXで設定されているパスワードコールバックユーザーデータの取得機能です。 + \bri f この関数は、れは、CTXで設定されているパスワードコールバックユーザーデータの取得機能です。 \return pointer 成功すると、ユーザーデータポインタを返します。 \return NULL CTXがNULLの場合、NULLが返されます。 + _Example_ \code WOLFSSL_CTX* ctx; @@ -8460,9 +9702,10 @@ void *wolfSSL_CTX_get_default_passwd_cb_userdata(WOLFSSL_CTX *ctx); \brief この関数はwolfssl_pem_read_bio_x509と同じように動作します。AUXは、信頼できる/拒否されたユースケースや人間の読みやすさのためのフレンドリーな名前などの追加情報を含むことを意味します。 \return WOLFSSL_X509 PEMバッファの解析に成功した場合、wolfssl_x509構造が返されます。 \return Null PEMバッファの解析に失敗した場合。 - \param bp wolfssl_bio構造体からPEMバッファを取得します。 + \param bp WOLFSSL_BIO構造体体からPEMバッファを取得します。 \param x wolfssl_x509を機能副作用で設定する場合 \param cb パスワードコールバック + _Example_ \code WOLFSSL_BIO* bio; @@ -8478,12 +9721,13 @@ WOLFSSL_X509 *wolfSSL_PEM_read_bio_X509_AUX /*! \ingroup CertsKeys - \brief wolfssl_ctx構造体のDHメンバーをdiffie-hellmanパラメータで初期化します。 + \brief WOLFSSL_CTX構造体のDHメンバーをdiffie-hellmanパラメータで初期化します。 \return SSL_SUCCESS 関数が正常に実行された場合に返されます。 \return BAD_FUNC_ARG CTXまたはDH構造体がNULLの場合に返されます。 - \return SSL_FATAL_ERROR 構造値を設定するエラーが発生した場合は返されます。 - \return MEMORY_E メモリを割り当てることができなかった場合は返されます。 - \param ctx wolfssl_ctx_new()を使用して作成されたwolfssl_ctx構造へのポインタ。 + \return SSL_FATAL_ERROR 構造値を設定するエラーが発生した場合に返されます。 + \return MEMORY_E メモリを割り当てることができなかった場合に返されます。 + \param ctx wolfSSL_CTX_new()を使用して作成されたWOLFSSL_CTX構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -8500,9 +9744,10 @@ long wolfSSL_CTX_set_tmp_dh(WOLFSSL_CTX* ctx, WOLFSSL_DH* dh); \brief この関数は、BIOのPEMバッファからDSAパラメータを取得します。 \return WOLFSSL_DSA PEMバッファの解析に成功した場合、WolfSSL_DSA構造が作成され、返されます。 \return Null PEMバッファの解析に失敗した場合。 - \param bio PEMメモリポインタを取得するためのwolfssl_bio構造体へのポインタ。 + \param bio PEMメモリポインタを取得するためのWOLFSSL_BIO構造体体へのポインタ。 \param x 新しいWolfSSL_DSA構造に設定するポインタ。 \param cb パスワードコールバック関数 + _Example_ \code WOLFSSL_BIO* bio; @@ -8521,6 +9766,7 @@ WOLFSSL_DSA *wolfSSL_PEM_read_bio_DSAparams(WOLFSSL_BIO *bp, \ingroup Debug \brief この関数は、wolfssl_Errorに遭遇した最後のエラーの絶対値を返します。 \return error 最後のエラーの絶対値を返します。 + _Example_ \code unsigned long err; @@ -8536,7 +9782,8 @@ unsigned long wolfSSL_ERR_peek_last_error(void); \ingroup CertsKeys \brief この関数はピアの証明書チェーンを取得します。 \return pointer ピアの証明書スタックへのポインタを返します。 - \return NULL ピア証明書がない場合は返されます。 + \return NULL ピア証明書がない場合に返されます。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( method ); @@ -8556,8 +9803,9 @@ WOLF_STACK_OF(WOLFSSL_X509)* wolfSSL_get_peer_cert_chain(const WOLFSSL*); /*! \ingroup Setup - \brief この関数は、wolfssl_ctxオブジェクトのオプションビットをリセットします。 + \brief この関数は、WOLFSSL_CTXオブジェクトのオプションビットをリセットします。 \return option 新しいオプションビット + _Example_ \code WOLFSSL_CTX* ctx = 0; @@ -8575,11 +9823,12 @@ long wolfSSL_CTX_clear_options(WOLFSSL_CTX* ctx, long opt); \brief この関数は、WolfSSL構造のjobjectrefメンバーを設定します。 \return SSL_SUCCESS jobjectrefがobjptrに正しく設定されている場合に返されます。 \return SSL_FAILURE 関数が正しく実行されず、jobjectrefが設定されていない場合に返されます。 - \param ssl wolfssl_new()を使用して作成されたWolfSSL構造へのポインタ。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); - WOLFSSL* ssl = WOLFSSL_new(); + WOLFSSL* ssl = wolfSSL_new(); void* objPtr = &obj; ... if(wolfSSL_set_jobject(ssl, objPtr)){ @@ -8595,6 +9844,8 @@ int wolfSSL_set_jobject(WOLFSSL* ssl, void* objPtr); \brief この関数は、wolfssl構造のjobjectrefメンバーを返します。 \return value wolfssl構造体がnullでない場合、関数はjobjectref値を返します。 \return NULL wolfssl構造体がNULLの場合に返されます。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx = wolfSSL_CTX_new( protocol method ); @@ -8615,6 +9866,8 @@ void* wolfSSL_get_jobject(WOLFSSL* ssl); \brief この関数はSSL内のコールバックを設定します。コールバックはハンドシェイクメッセージを観察することです。CBのNULL値はコールバックをリセットします。 \return SSL_SUCCESS 成功しています。 \return SSL_FAILURE NULL SSLが渡された場合。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code static cb(int write_p, int version, int content_type, @@ -8632,6 +9885,8 @@ int wolfSSL_set_msg_callback(WOLFSSL *ssl, SSL_Msg_Cb cb); \ingroup Setup \brief この関数は、SSL内の関連コールバックコンテキスト値を設定します。値はコールバック引数に渡されます。 \return none 返品不可。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code static cb(int write_p, int version, int content_type, @@ -8651,6 +9906,7 @@ int wolfSSL_set_msg_callback_arg(WOLFSSL *ssl, void* arg); \brief この関数は、存在する場合は、ピア証明書からaltnameを返します。 \return NULL 次のAltNameがない場合。 \return cert->altNamesNext->name wolfssl_x509から、AltNameリストからの文字列値である構造が存在する場合に返されます。 + _Example_ \code WOLFSSL_X509 x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL, @@ -8664,13 +9920,15 @@ int wolfSSL_set_msg_callback_arg(WOLFSSL *ssl, void* arg); \sa wolfSSL_X509_get_issuer_name \sa wolfSSL_X509_get_subject_name */ -char* wolfSSL_X509_get_next_altname(WOLFSSL_X509*); +char* wolfSSL_X509_get_next_altname(WOLFSSL_X509* x509); /*! \ingroup CertsKeys - \brief 関数は、x509がnullのかどうかを確認し、そうでない場合は、x509構造体のNotBeforeメンバーを返します。 - \return pointer X509構造体のNotBeforeメンバーにASN1_TIMEを使用して構造体に。 - \return NULL x509構造がnullの場合、関数はnullを返します。 + \brief 関数は、x509がnullのかどうかを確認し、そうでない場合は、WOLFSSL_X509構造体のNotBeforeメンバーを返します。 + \return pointer WOLFSSL_ASN1_TIMEへのポインタ(WOLFSSL_X509構造体のNotBeforeメンバーへのポインタ)を返します。 + \return NULL WOLFSSL_X509構造体がNULLの場合に返されます。 + \param x509 WOLFSSL_X509構造体へのポインタ + _Example_ \code WOLFSSL_X509* x509 = (WOLFSSL_X509)XMALLOC(sizeof(WOLFSSL_X509), NULL, @@ -8683,13 +9941,27 @@ char* wolfSSL_X509_get_next_altname(WOLFSSL_X509*); \endcode \sa wolfSSL_X509_get_notAfter */ -WOLFSSL_ASN1_TIME* wolfSSL_X509_get_notBefore(WOLFSSL_X509*); +WOLFSSL_ASN1_TIME* wolfSSL_X509_get_notBefore(WOLFSSL_X509* x509); /*! \ingroup IO - \brief この関数はクライアント側で呼び出され、サーバーとのSSL / TLSハンドシェイクを開始します。この関数が呼び出されると、基礎となる通信チャネルはすでに設定されています。 wolfssl_connect()は、ブロックと非ブロックI / Oの両方で動作します。基礎となるI / Oがノンブロッキングされていない場合、wolfssl_connect()は、基になるI / Oがwolfssl_connectのニーズを満たすことができなかったときに戻ります。この場合、wolfssl_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。通話プロセスは、基礎となるI / OがREADYおよびWOLFSSLが停止したときにwolfssl_connect()への呼び出しを繰り返す必要があります。ノンブロッキングソケットを使用する場合は、何も実行する必要がありますが、select()を使用して必要な条件を確認できます。基礎となる入出力がブロックされている場合、wolfssl_connect()はハンドシェイクが終了したら、またはエラーが発生したらのみ戻る。 WolfSSLはOpenSSLよりも証明書検証に異なるアプローチを取ります。クライアントのデフォルトポリシーはサーバーを確認することです。これは、CASを読み込まない場合、サーバーを確認することができ、確認できません(-155)。 SSL_CONNECTを持つことのOpenSSLの動作が成功した場合は、サーバーを検証してセキュリティを抑えることができます.SSL_CTX_SET_VERIFY(CTX、SSL_VERIFY_NONE、0)。 ssl_new()を呼び出す前に。お勧めできませんが。 - \return SSL_SUCCESS 成功した場合 - \return SSL_FATAL_ERROR エラーが発生した場合は返されます。より詳細なエラーコードを取得するには、wolfssl_get_error()を呼び出します。 + \brief この関数はクライアント側で呼び出され、サーバーとのSSL/TLSハンドシェイクを開始します。 + この関数が呼び出されるまでに下層の通信チャネルはすでに設定されている必要があります。 + wolfSSL_connect()は、ブロッキングとノンブロッキングI/Oの両方で動作します。 + 下層のI/Oがノンブロッキングの場合、wolfSSL_connect()は、下層のI/OがwolfSSL_connectの要求(送信データ、受信データ)を満たすことができなかったときには即戻ります。 + この場合、wolfSSL_get_error()の呼び出しでSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかが返されます。 + 呼び出したプロセスは、下層のI/OががREADYになった時点で、WOLFSSLが停止したときから再開できるようにwolfSSL_connect()への呼び出しを繰り返す必要があります。 + これにはselect()を使用して必要な条件が整ったかどうかを確認できます。 + ブロッキングI/Oを使用する場合は、ハンドシェークが終了するかエラーが発生するまで戻ってきません。 + wolfSSLはOpenSSLと比べて証明書検証に異なるアプローチを取ります。クライアントのデフォルトポリシーはサーバーを認証することです。 + これは、CA証明書を読み込まない場合、サーバーを確認することができず”-155”のエラーコードが返されます。 + OpenSSLと同じ振る舞い(つまり、CA証明書のロードなしでサーバー認証を成功させる)を取らせたい場合には、セキュリティ面でお勧めはしませんが、 + SSL_CTX_SET_VERIFY(ctx、SSL_VERIFY_NONE、0)を呼び出すことで可能となります。 + + \return SSL_SUCCESS 成功した場合に返されます。 + \return SSL_FATAL_ERROR エラーが発生した場合に返されます。より詳細なエラーコードを取得するには、wolfSSL_get_error()を呼び出します。 + \param ssl wolfSSL_new()を使用して作成されたWolfSSL構造へのポインタ。 + _Example_ \code int ret = 0; @@ -8711,13 +9983,14 @@ int wolfSSL_connect(WOLFSSL* ssl); /*! \ingroup Setup \brief この関数はサーバー側で呼び出されて、HellORetryRequestメッセージにCookieを含める必要があることを示します。Cookieは現在のトランスクリプトのハッシュを保持しているので、別のサーバープロセスは応答でClientHelloを処理できます。秘密はCookieデータの整合性チェックをGenertingするときに使用されます。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 + \param [in,out] ssl l wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 \param [in] 秘密を保持しているバッファへのポインタを秘密にします。渡すNULLは、新しいランダムシークレットを生成することを示します。 \param [in] シークスのサイズをバイト単位でサイズ。0を渡すと、デフォルトのサイズを使用することを示します.WC_SHA256_DIGEST_SIZE(またはSHA-256が使用できない場合はWC_SHA_DIGEST_SIZE)。 - \return BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。 + \return BAD_FUNC_ARG sslがNULLの場合、またはTLS v1.3を使用していない場合。 \return SIDE_ERROR クライアントで呼び出された場合。 - \return WOLFSSL_SUCCESS 成功した場合 + \return WOLFSSL_SUCCESS 成功した場合に返されます。 \return MEMORY_ERROR 秘密を保存するために動的メモリを割り当てる場合に失敗しました。 + _Example_ \code int ret; @@ -8735,11 +10008,31 @@ int wolfSSL_send_hrr_cookie(WOLFSSL* ssl, const unsigned char* secret, unsigned int secretSz); /*! + \ingroup Setup - \brief ハンドシェイクが完了すると、この関数はサーバー上で再開セッションチケットの送信を停止するように呼び出されます。 - \param [in,out] ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 + + \brief この関数はサーバー側で呼び出され、HelloRetryRequestメッセージがクッキーを含んではならないこと、 + DTLSv1.3が使用されている場合にはクッキーの交換がハンドシェークに含まれないことを表明します。 + DTLSv1.3ではクッキー交換を行わないとサーバーがDoS/Amplification攻撃を受けやすくなる可能性があることに留意してください。 + + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + + \return WOLFSSL_SUCCESS 成功時に返されます。 + \return BAD_FUNC_ARG sslがNULLあるいはTLS v1.3を使用していない場合に返されます。 + \return SIDE_ERROR クライアント側でこの関数が呼び出された場合に返されます。 + + \sa wolfSSL_send_hrr_cookie +*/ +int wolfSSL_disable_hrr_cookie(WOLFSSL* ssl); + + +/*! + \ingroup Setup + \brief この関数はサーバー上で呼び出され、ハンドシェイク完了時にセッション再開のためのセッションチケットの送信を行わないようにします。 + \param [in,out] ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 \return BAD_FUNC_ARG CTXがNULLの場合、またはTLS v1.3を使用していない場合。 \return SIDE_ERROR クライアントで呼び出された場合。 + _Example_ \code int ret; @@ -8757,9 +10050,10 @@ int wolfSSL_CTX_no_ticket_TLSv13(WOLFSSL_CTX* ctx); /*! \ingroup Setup \brief ハンドシェイクが完了すると、この関数はサーバー上で再開セッションチケットの送信を停止するように呼び出されます。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \return BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \return BAD_FUNC_ARG sslがNULLの場合、またはTLS v1.3を使用していない場合。 \return SIDE_ERROR クライアントで呼び出された場合。 + _Example_ \code int ret; @@ -8777,8 +10071,9 @@ int wolfSSL_no_ticket_TLSv13(WOLFSSL* ssl); /*! \ingroup Setup \brief この関数は、Authenticationにプリシェアキーを使用している場合、DIFFIE-HELLMAN(DH)スタイルのキー交換を許可するTLS V1.3 WolfSSLコンテキストで呼び出されます。 - \param [in,out] ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 + \param [in,out] ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 \return BAD_FUNC_ARG CTXがNULLの場合、またはTLS v1.3を使用していない場合。 + _Example_ \code int ret; @@ -8795,9 +10090,10 @@ int wolfSSL_CTX_no_dhe_psk(WOLFSSL_CTX* ctx); /*! \ingroup Setup - \brief この関数は、Authenticationのためにプリシェアキーを使用しているときにDiffie-Hellman(DH)スタイルのキー交換を許可するTLS V1.3クライアントまたはサーバーのWolfSSLで呼び出されます。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \return BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。 + \brief この関数は、事前共有鍵を使用しているTLS V1.3クライアントまたはサーバーで、にDiffie-Hellman(DH)スタイルの鍵交換を許可しないように設定します。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \return BAD_FUNC_ARG sslがNULLの場合、またはTLS v1.3を使用していない場合。 + _Example_ \code int ret; @@ -8815,9 +10111,10 @@ int wolfSSL_no_dhe_psk(WOLFSSL* ssl); /*! \ingroup IO \brief この関数は、TLS v1.3クライアントまたはサーバーのwolfsslで呼び出されて、キーのロールオーバーを強制します。KeyUpdateメッセージがピアに送信され、新しいキーが暗号化のために計算されます。ピアはKeyUpdateメッセージを送り、新しい復号化キーWILを計算します。この機能は、ハンドシェイクが完了した後にのみ呼び出すことができます。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \return BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \return BAD_FUNC_ARG sslがNULLの場合、またはTLS v1.3を使用していない場合。 \return WANT_WRITE 書き込みが準備ができていない場合 + _Example_ \code int ret; @@ -8837,10 +10134,11 @@ int wolfSSL_update_keys(WOLFSSL* ssl); /*! \ingroup IO - \brief この関数は、TLS v1.3クライアントまたはサーバーのwolfsslで呼び出され、キーのロールオーバーが進行中かどうかを判断します。wolfssl_update_keys()が呼び出されると、KeyUpdateメッセージが送信され、暗号化キーが更新されます。復号化キーは、応答が受信されたときに更新されます。 - \param [in] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 + \brief この関数は、TLS v1.3クライアントまたはサーバーのwolfsslで呼び出され、キーのロールオーバーが進行中かどうかを判断します。wolfssl_update_keys()が呼び出されると、KeyUpdateメッセージが送信され、暗号化キーが更新されます。復号化キーは、応答が受信されたときに更新されます。 + \param [in] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 \param [out] キー更新応答が必要ない場合は必須0。1キー更新応答が必要ない場合。 \return 0 成功した。 + _Example_ \code int ret; @@ -8862,9 +10160,10 @@ int wolfSSL_key_update_response(WOLFSSL* ssl, int* required); /*! \ingroup Setup \brief この関数は、TLS v1.3クライアントのWolfSSLコンテキストで呼び出され、クライアントはサーバーからの要求に応じてPost Handshakeを送信できるようにします。これは、クライアント認証などを必要としないページを持つWebサーバーに接続するときに役立ちます。 - \param [in,out] ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 + \param [in,out] ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 \return BAD_FUNC_ARG CTXがNULLの場合、またはTLS v1.3を使用していない場合。 \return SIDE_ERROR サーバーで呼び出された場合。 + _Example_ \code int ret; @@ -8883,9 +10182,10 @@ int wolfSSL_CTX_allow_post_handshake_auth(WOLFSSL_CTX* ctx); /*! \ingroup Setup \brief この関数は、TLS V1.3クライアントWolfSSLで呼び出され、クライアントはサーバーからの要求に応じてハンドシェイクを送ります。handshakeクライアント認証拡張機能はClientHelloで送信されます。これは、クライアント認証などを必要としないページを持つWebサーバーに接続するときに役立ちます。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \return BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \return BAD_FUNC_ARG sslがNULLの場合、またはTLS v1.3を使用していない場合。 \return SIDE_ERROR サーバーで呼び出された場合。 + _Example_ \code int ret; @@ -8904,13 +10204,14 @@ int wolfSSL_allow_post_handshake_auth(WOLFSSL* ssl); /*! \ingroup IO \brief この関数は、TLS v1.3クライアントからクライアント証明書を要求します。これは、Webサーバーがクライアント認証やその他のものを必要とするページにサービスを提供している場合に役立ちます。接続で最大256の要求を送信できます。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \return BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \return BAD_FUNC_ARG sslがNULLの場合、またはTLS v1.3を使用していない場合。 \return WANT_WRITE 書き込みが準備ができていない場合 \return SIDE_ERROR クライアントで呼び出された場合。 \return NOT_READY_ERROR ハンドシェイクが終了していないときに呼び出された場合。 \return POST_HAND_AUTH_ERROR 送付後認証が許可されていない場合。 \return MEMORY_E 動的メモリ割り当てが失敗した場合 + _Example_ \code int ret; @@ -8932,9 +10233,10 @@ int wolfSSL_request_certificate(WOLFSSL* ssl); /*! \ingroup Setup \brief この関数は楕円曲線グループのリストを設定して、WolfSSLコンテキストを希望の順に設定します。リストはヌル終了したテキスト文字列、およびコロン区切りリストです。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。 - \param [in,out] ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 - \param [in] 楕円曲線グループのコロン区切りリストである文字列をリストします。 + \param [in,out] ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 + \param [in] list 楕円曲線グループのコロン区切りリストである文字列をリストします。 \return WOLFSSL_FAILURE ポインタパラメータがNULLの場合、wolfssl_max_group_countグループが多い場合は、グループ名が認識されないか、TLS v1.3を使用していません。 + _Example_ \code int ret; @@ -8957,9 +10259,10 @@ int wolfSSL_CTX_set1_groups_list(WOLFSSL_CTX *ctx, char *list); /*! \ingroup Setup \brief この関数は楕円曲線グループのリストを設定して、WolfSSLを希望の順に設定します。リストはヌル終了したテキスト文字列、およびコロン区切りリストです。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \param [in] 鍵交換グループのコロン区切りリストである文字列をリストします。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param [in] list 鍵交換グループのコロン区切りリストである文字列をリストします。 \return WOLFSSL_FAILURE ポインタパラメータがNULLの場合、wolfssl_max_group_countグループが多い場合は、グループ名が認識されないか、TLS v1.3を使用していません。 + _Example_ \code int ret; @@ -8981,11 +10284,12 @@ int wolfSSL_set1_groups_list(WOLFSSL *ssl, char *list); /*! \ingroup TLS - \brief この関数は、クライアントがTLS v1.3ハンドシェイクで使用することを好むキー交換グループを返します。この情報を完了した後にこの機能を呼び出して、サーバーがどのグループが予想されるようにこの情報が将来の接続で使用できるようになるかを決定するために、この情報が将来の接続で鍵交換のための鍵ペアを事前生成することができます。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \return BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。 + \brief この関数は、クライアントがTLS v1.3ハンドシェイクで使用することを好む鍵交換グループを返します。この情報を完了した後にこの機能を呼び出して、サーバーがどのグループが予想されるようにこの情報が将来の接続で使用できるようになるかを決定するために、この情報が将来の接続で鍵交換のための鍵ペアを事前生成することができます。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \return BAD_FUNC_ARG sslがNULLの場合、またはTLS v1.3を使用していない場合。 \return SIDE_ERROR サーバーで呼び出された場合。 \return NOT_READY_ERROR ハンドシェイクが完了する前に呼び出された場合。 + _Example_ \code int ret; @@ -9009,10 +10313,11 @@ int wolfSSL_preferred_group(WOLFSSL* ssl); /*! \ingroup Setup \brief この関数は楕円曲線グループのリストを設定して、WolfSSLコンテキストを希望の順に設定します。リストは、Countで指定された識別子の数を持つグループ識別子の配列です。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。 - \param [in,out] ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 - \param [in] 識別子によって鍵交換グループのリストをグループ化します。 - \param [in] グループ内の鍵交換グループの数を数えます。 + \param [in,out] ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 + \param [in] groups 識別子によって鍵交換グループのリストをグループ化します。 + \param [in] count グループ内の鍵交換グループの数を数えます。 \return BAD_FUNC_ARG ポインタパラメータがNULLの場合、グループ数はwolfssl_max_group_countを超えているか、TLS v1.3を使用していません。 + _Example_ \code int ret; @@ -9039,10 +10344,11 @@ int wolfSSL_CTX_set_groups(WOLFSSL_CTX* ctx, int* groups, /*! \ingroup Setup \brief この関数は、wolfsslを許すために楕円曲線グループのリストを設定します。リストは、Countで指定された識別子の数を持つグループ識別子の配列です。この関数を呼び出して、TLS v1.3接続で使用する鍵交換楕円曲線パラメータを設定します。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \param [in] 識別子によって鍵交換グループのリストをグループ化します。 - \param [in] グループ内の鍵交換グループの数を数えます。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param [in] groups 識別子によって鍵交換グループのリストをグループ化します。 + \param [in] count グループ内の鍵交換グループの数を数えます。 \return BAD_FUNC_ARG ポインタパラメータがNULLの場合、グループ数がWolfSSL_MAX_GROUP_COUNTを超えている場合、任意の識別子は認識されないか、TLS v1.3を使用していません。 + _Example_ \code int ret; @@ -9067,9 +10373,24 @@ int wolfSSL_set_groups(WOLFSSL* ssl, int* groups, int count); /*! \ingroup IO - \brief この関数はクライアント側で呼び出され、サーバーとのTLS v1.3ハンドシェイクを開始します。この関数が呼び出されると、基礎となる通信チャネルはすでに設定されています。 wolfssl_connect()は、ブロックと非ブロックI / Oの両方で動作します。基礎となるI / Oがノンブロッキングされていない場合、wolfssl_connect()は、基になるI / Oがwolfssl_connectのニーズを満たすことができなかったときに戻ります。この場合、wolfssl_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。通話プロセスは、基礎となるI / OがREADYおよびWOLFSSLが停止したときにwolfssl_connect()への呼び出しを繰り返す必要があります。ノンブロッキングソケットを使用する場合は、何も実行する必要がありますが、select()を使用して必要な条件を確認できます。基礎となる入出力がブロックされている場合、wolfssl_connect()はハンドシェイクが終了したら、またはエラーが発生したらのみ戻る。 WolfSSLはOpenSSLよりも証明書検証に異なるアプローチを取ります。クライアントのデフォルトポリシーはサーバーを確認することです。これは、CASを読み込まない場合、サーバーを確認することができ、確認できません(-155)。 SSL_CONNECTを持つことのOpenSSLの動作が成功した場合は、サーバーを検証してセキュリティを抑えることができます.SSL_CTX_SET_VERIFY(CTX、SSL_VERIFY_NONE、0)。 ssl_new()を呼び出す前に。お勧めできませんが。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FATAL_ERROR エラーが発生した場合は返されます。より詳細なエラーコードを取得するには、wolfssl_get_error()を呼び出します。 + \brief この関数はクライアント側で呼び出され、サーバーとのTLS v1.3ハンドシェイクを開始します。 + この関数が呼び出されると、下層の通信チャネルはすでに設定されています。 + wolfSSL_connect()は、ブロックとノンブロックI/Oの両方で動作します。 + 下層I/Oがノンブロッキングの場合、wolfSSL_connect()は、下層I/Oがwolfssl_connectの要求を満たすことができなかったときに戻ります。 + この場合、wolfSSL_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。 + 通話プロセスは、下層I/OがREADYおよびWOLFSSLが停止したときにwolfssl_connect()への呼び出しを繰り返す必要があります。 + ノンブロッキングソケットを使用する場合は、何も実行する必要がありますが、select()を使用して必要な条件を確認できます。 + 基礎となる入出力がブロックされている場合、wolfssl_connect()はハンドシェイクが終了したら、またはエラーが発生したらのみ戻ります。 + WolfSSLはOpenSSLよりも証明書検証に異なるアプローチを取ります。 + クライアントのデフォルトポリシーはサーバーを確認することです。 + これは、CASを読み込まない場合、サーバーを確認することができ、確認できません(-155)。 + SSL_CONNECTを持つことのOpenSSLの動作が成功した場合は、サーバーを検証してセキュリティを抑えることができます。 + SSL_CTX_SET_VERIFY(CTX、SSL_VERIFY_NONE、0)。 + ssl_new()を呼び出す前に。お勧めできませんが。 + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FATAL_ERROR エラーが発生した場合に返されます。より詳細なエラーコードを取得するには、wolfSSL_get_error()を呼び出します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + _Example_ \code int ret = 0; @@ -9089,13 +10410,24 @@ int wolfSSL_set_groups(WOLFSSL* ssl, int* groups, int count); \sa wolfSSL_accept_TLSv13 \sa wolfSSL_accept */ -int wolfSSL_connect_TLSv13(WOLFSSL*); +int wolfSSL_connect_TLSv13(WOLFSSL* ssl); /*! \ingroup IO - \brief この関数はサーバー側で呼び出され、SSL / TLSクライアントがSSL / TLSハンドシェイクを開始するのを待ちます。この関数が呼び出されると、基礎となる通信チャネルはすでに設定されています。 wolfssl_accept()は、ブロックと非ブロッキングI / Oの両方で動作します。基礎となる入出力がノンブロッキングである場合、wolfssl_accept()は、基礎となるI / Oがwolfssl_acceptのニーズを満たすことができなかったときに戻ります。この場合、wolfssl_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。通話プロセスは、読み取り可能なデータが使用可能であり、wolfsslが停止した場所を拾うときに、wolfssl_acceptの呼び出しを繰り返す必要があります。ノンブロッキングソケットを使用する場合は、何も実行する必要がありますが、select()を使用して必要な条件を確認できます。基礎となるI / Oがブロックされている場合、wolfssl_accept()はハンドシェイクが終了したら、またはエラーが発生したら戻ります。古いバージョンのClientHelloメッセージがサポートされていますが、TLS v1.3接続を期待するときにこの関数を呼び出します。 - \return SSL_SUCCESS 成功すると。 - \return SSL_FATAL_ERROR エラーが発生した場合は返されます。より詳細なエラーコードを取得するには、wolfssl_get_error()を呼び出します。 + \brief この関数はサーバー側で呼び出され、SSL/TLSクライアントがSSL/TLSハンドシェイクを開始するのを待ちうけます。 + この関数が呼び出されると、下層の通信チャネルはすでに設定されています。 + wolfSSL_accept()は、ブロックとノンブロッキングI/Oの両方で動作します。 + 下層の入出力がノンブロッキングである場合、wolfSSL_accept()は、下層のI/OがwolfSSL_acceptの要求を満たすことができなかったときに戻ります。 + この場合、wolfSSL_get_error()への呼び出しはSSL_ERROR_WANT_READまたはSSL_ERROR_WANT_WRITEのいずれかを生成します。 + 通話プロセスは、読み取り可能なデータが使用可能であり、wolfsslが停止した場所を拾うときに、wolfssl_acceptの呼び出しを繰り返す必要があります。 + ノンブロッキングソケットを使用する場合は、何も実行する必要がありますが、select()を使用して必要な条件を確認できます。 + 下層のI/Oがブロックされている場合、wolfssl_accept()はハンドシェイクが終了したら、またはエラーが発生したら戻ります。 + 古いバージョンのClientHelloメッセージがサポートされていますが、TLS v1.3接続を期待するときにこの関数を呼び出します。 + + \return SSL_SUCCESS 成功時に返されます。 + \return SSL_FATAL_ERROR エラーが発生した場合に返されます。より詳細なエラーコードを取得するには、wolfSSL_get_error()を呼び出します。 + \param ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + _Example_ \code int ret = 0; @@ -9120,11 +10452,17 @@ wolfSSL_accept_TLSv13(WOLFSSL* ssl); /*! \ingroup Setup - \brief この関数は、WolfSSLコンテキストを使用してTLS V1.3サーバーによって受け入れられる早期データの最大量を設定します。この関数を呼び出して、再生攻撃を軽減するためのプロセスへの早期データの量を制限します。初期のデータは、セッションチケットが送信されたこと、したがってセッションチケットが再開されるたびに同じ接続のキーから派生したキーによって保護されます。値は再開のためにセッションチケットに含まれています。ゼロの値は、セッションチケットを使用してクライアントによって早期データを送信することを示します。早期データバイト数をアプリケーションで実際には可能な限り低く保つことをお勧めします。 - \param [in,out] ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 - \param [in] SZバイト単位で受け入れる早期データの量。 + \brief この関数は、WolfSSLコンテキストを使用してTLS V1.3サーバーによって受け入れられるアーリーデータの最大量を設定します。 + この関数を呼び出して、再生攻撃を軽減するためのプロセスへのアーリーデータの量を制限します。 + 初期のデータは、セッションチケットが送信されたこと、したがってセッションチケットが再開されるたびに同じ接続の鍵から派生した鍵によって保護されます。 + 値は再開のためにセッションチケットに含まれています。 + ゼロの値は、セッションチケットを使用してクライアントによってアーリーデータを送信することを示します。 + アーリーデータバイト数をアプリケーションで実際には可能な限り低く保つことをお勧めします。 + \param [in,out] ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 + \param [in] sz バイト単位で受け入れるアーリーデータのサイズ。 \return BAD_FUNC_ARG CTXがNULLの場合、またはTLS v1.3を使用していない場合。 \return SIDE_ERROR クライアントで呼び出された場合。 + _Example_ \code int ret; @@ -9144,11 +10482,17 @@ int wolfSSL_CTX_set_max_early_data(WOLFSSL_CTX* ctx, /*! \ingroup Setup - \brief この関数は、WolfSSLコンテキストを使用してTLS V1.3サーバーによって受け入れられる早期データの最大量を設定します。この関数を呼び出して、再生攻撃を軽減するためのプロセスへの早期データの量を制限します。初期のデータは、セッションチケットが送信されたこと、したがってセッションチケットが再開されるたびに同じ接続のキーから派生したキーによって保護されます。値は再開のためにセッションチケットに含まれています。ゼロの値は、セッションチケットを使用してクライアントによって早期データを送信することを示します。早期データバイト数をアプリケーションで実際には可能な限り低く保つことをお勧めします。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \param [in] SZクライアントからバイト単位で受け入れる早期データの量。 - \return BAD_FUNC_ARG SSLがNULLの場合、またはTLS v1.3を使用していない場合。 + \brief この関数は、WolfSSLコンテキストを使用してTLS V1.3サーバーによって受け入れられるアーリーデータの最大量を設定します。 + この関数を呼び出して、再生攻撃を軽減するためプロセスへのアーリーデータの量を制限します。 + 初期のデータは、セッションチケットが送信されたこと、したがってセッションチケットが再開されるたびに同じ接続の鍵から派生した鍵によって保護されます。 + 値は再開のためにセッションチケットに含まれています。 + ゼロの値は、セッションチケットを使用してクライアントによってアーリーデータを送信することを示します。 + アーリーデータバイト数をアプリケーションで実際には可能な限り低く保つことをお勧めします。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param [in] SZクライアントからバイト単位で受け入れるアーリーデータのサイズ。 + \return BAD_FUNC_ARG sslがNULLの場合、またはTLS v1.3を使用していない場合。 \return SIDE_ERROR クライアントで呼び出された場合。 + _Example_ \code int ret; @@ -9167,14 +10511,18 @@ int wolfSSL_set_max_early_data(WOLFSSL* ssl, unsigned int sz); /*! \ingroup IO - \brief この関数は、再開時にサーバーに早期データを書き込みます。wolfssl_connect()またはwolfssl_connect_tlsv13()の代わりにこの関数を呼び出して、サーバーに接続してハンドシェイクにデータを送ります。この機能はクライアントでのみ使用されます。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \param [in] データ早期データを保持してサーバーに書き込むバッファ。 - \param [in] SZバイト単位で書き込む早期データの量。 - \param [out] OUTSZバイト単位で書かれた早期データの量。 - \return BAD_FUNC_ARG ポインタパラメータがNULLの場合、SZは0未満またはTLSV1.3を使用しない。 - \return SIDE_ERROR サーバーで呼び出された場合。 - \return WOLFSSL_FATAL_ERROR 接続が行われていない場合。 + \brief この関数は、セッション再開時にサーバーにアーリーデータを書き込みます。 + wolfSSL_connect()またはwolfSSL_connect_tlsv13()の代わりにこの関数を呼び出して、サーバーに接続してハンドシェイクにデータを送ります。 + この機能はクライアントでのみ使用されます。 + \return BAD_FUNC_ARG ポインタパラメータがNULLの場合に返されます。szは0未満またはTLSV1.3を使用しない場合にも返されます。 + \return SIDE_ERROR サーバーで呼び出された場合に返されます。 + \return WOLFSSL_FATAL_ERROR 接続が行われていない場合に返されます。 + + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \param [in] data アーリーデータを保持しているバッファへのポインタ。 + \param [in] sz 書き込むアーリーデータのサイズ + \param [out] outSz 書き込んだアーリーデータのサイズ + _Example_ \code int ret = 0; @@ -9209,14 +10557,15 @@ int wolfSSL_write_early_data(OLFSSL* ssl, const void* data, /*! \ingroup IO - \brief この関数は、再開時にクライアントからの早期データを読み取ります。wolfssl_accept()またはwolfssl_accept_tlsv13()の代わりにこの関数を呼び出して、クライアントを受け入れ、ハンドシェイク内の早期データを読み取ります。ハンドシェイクよりも早期データがない場合は、通常として処理されます。この機能はサーバーでのみ使用されます。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 + \brief この関数は、再開時にクライアントからの早期データを読み取ります。wolfssl_accept()またはwolfssl_accept_tlsv13()の代わりにこの関数を呼び出して、クライアントを受け入れ、ハンドシェイク内の早期データを読み取ります。ハンドシェイクよりも早期データがない場合は、通常として処理されます。この機能はサーバーでのみ使用されます。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 \param [out] データはクライアントから読み込まれた早期データを保持するためのバッファ。 \param [in] バッファのSZサイズバイト数。 \param [out] OUTSZ初期データのバイト数。 \return BAD_FUNC_ARG ポインタパラメータがNULLの場合、SZは0未満またはTLSV1.3を使用しない。 \return SIDE_ERROR クライアントで呼び出された場合。 \return WOLFSSL_FATAL_ERROR 接続を受け入れると失敗した場合 + _Example_ \code int ret = 0; @@ -9250,8 +10599,9 @@ int wolfSSL_read_early_data(WOLFSSL* ssl, void* data, int sz, /*! \ingroup Setup - \brief この関数は、TLS v1.3接続のプレシェアキー(PSK)クライアント側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl_ctx構造体のclient_psk_tls13_cbメンバーを設定します。 - \param [in,out] ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 + \brief この関数は、TLS v1.3接続のプレシェア鍵(PSK)クライアント側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、WOLFSSL_CTX構造体のclient_psk_tls13_cbメンバーを設定します。 + \param [in,out] ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx; @@ -9268,7 +10618,8 @@ void wolfSSL_CTX_set_psk_client_tls13_callback(WOLFSSL_CTX* ctx, /*! \ingroup Setup \brief この関数は、TLS v1.3接続のプレシェアキー(PSK)クライアント側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl構造体のOptionsフィールドのclient_psk_tls13_cbメンバーを設定します。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + _Example_ \code WOLFSSL* ssl; @@ -9284,8 +10635,9 @@ void wolfSSL_set_psk_client_tls13_callback(WOLFSSL* ssl, /*! \ingroup Setup - \brief この関数は、TLS v1.3接続用の事前共有キー(PSK)サーバ側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl_ctx構造体のserver_psk_tls13_cbメンバーを設定します。 - \param [in,out] ctx wolfssl_ctx_new()で作成されたwolfssl_ctx構造へのポインタ。 + \brief この関数は、TLS v1.3接続用の事前共有鍵(PSK)サーバ側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl_ctx構造体のserver_psk_tls13_cbメンバーを設定します。 + \param [in,out] ctx wolfSSL_CTX_new()で作成されたWOLFSSL_CTX構造体へのポインタ。 + _Example_ \code WOLFSSL_CTX* ctx; @@ -9301,8 +10653,9 @@ void wolfSSL_CTX_set_psk_server_tls13_callback(WOLFSSL_CTX* ctx, /*! \ingroup Setup - \brief この関数は、TLS v1.3接続用の事前共有キー(PSK)サーバ側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl構造体のオプションフィールドのserver_psk_tls13_cbメンバーを設定します。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 + \brief この関数は、TLS v1.3接続用の事前共有鍵(PSK)サーバ側コールバックを設定します。コールバックはPSKアイデンティティを見つけ、そのキーと、ハンドシェイクに使用する暗号の名前を返します。この関数は、wolfssl構造体のオプションフィールドのserver_psk_tls13_cbメンバーを設定します。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + _Example_ \code WOLFSSL* ssl; @@ -9319,10 +10672,11 @@ void wolfSSL_set_psk_server_tls13_callback(WOLFSSL* ssl, /*! \ingroup Setup \brief この関数は、キーペアの生成を含むグループからキーシェアエントリを作成します。Keyshareエクステンションには、鍵交換のための生成されたすべての公開鍵が含まれています。この関数が呼び出されると、指定されたグループのみが含まれます。優先グループがサーバーに対して以前に確立されているときにこの関数を呼び出します。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 \param [in] キー交換グループ識別子をグループ化します。 - \return BAD_FUNC_ARG SSLがNULLの場合 - \return MEMORY_E 動的メモリ割り当てが失敗すると失敗すると。 + \return BAD_FUNC_ARG sslがNULLの場合に返されます。 + \return MEMORY_E 動的メモリ割り当てに失敗すると返されます。 + _Example_ \code int ret; @@ -9345,9 +10699,10 @@ int wolfSSL_UseKeyShare(WOLFSSL* ssl, word16 group); /*! \ingroup Setup \brief この関数は、ClientHelloで鍵共有が送信されないように呼び出されます。これにより、ハンドシェイクに鍵交換が必要な場合は、サーバーがHelloretryRequestで応答するように強制します。予想される鍵交換グループが知られておらず、キーの生成を不必要に回避するときにこの機能を呼び出します。鍵交換が必要なときにハンドシェイクを完了するために追加の往復が必要になることに注意してください。 - \param [in,out] SSL wolfssl_new()を使用して作成されたwolfssl構造へのポインタ。 - \return BAD_FUNC_ARG SSLがNULLの場合 + \param [in,out] ssl wolfSSL_new()を使用して作成されたWOLFSSL構造体へのポインタ。 + \return BAD_FUNC_ARG sslがNULLの場合に返されます。 \return SIDE_ERROR サーバーで呼び出された場合。 + _Example_ \code int ret; @@ -9364,9 +10719,10 @@ int wolfSSL_NoKeyShares(WOLFSSL* ssl); /*! \ingroup Setup - \brief この関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 + \brief この関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfSSL_CTX_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 \param [in] ヒープ静的メモリ割り当て中に静的メモリ割り当て器が使用するバッファへのポインタを使用します。 - \return If 成功すると、呼び出しは新しく作成されたwolfssl_method構造体へのポインタを返します。 + \return 新しく作成されたwWOLFSSL_METHOS構造体へのポインタを返します。 + _Example_ \code #include @@ -9395,9 +10751,10 @@ WOLFSSL_METHOD *wolfTLSv1_3_server_method_ex(void* heap); /*! \ingroup Setup - \brief この関数は、アプリケーションがクライアントであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 + \brief この関数は、アプリケーションがクライアントであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfSSL_CTX_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 \param [in] ヒープ静的メモリ割り当て中に静的メモリ割り当て器が使用するバッファへのポインタを使用します。 - \return If 成功すると、呼び出しは新しく作成されたwolfssl_method構造体へのポインタを返します。 + \return 新しく作成されたwWOLFSSL_METHOS構造体へのポインタを返します。 + _Example_ \code #include @@ -9426,8 +10783,9 @@ WOLFSSL_METHOD *wolfTLSv1_3_client_method_ex(void* heap); /*! \ingroup Setup - \brief この関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 - \return If 成功すると、呼び出しは新しく作成されたwolfssl_method構造体へのポインタを返します。 + \brief この関数は、アプリケーションがサーバーであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfSSL_CTX_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 + \return 新しく作成されたwWOLFSSL_METHOS構造体へのポインタを返します。 + _Example_ \code #include @@ -9456,8 +10814,9 @@ WOLFSSL_METHOD *wolfTLSv1_3_server_method(void); /*! \ingroup Setup - \brief この関数は、アプリケーションがクライアントであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfssl_ctx_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 - \return If 成功すると、呼び出しは新しく作成されたwolfssl_method構造体へのポインタを返します。 + \brief この関数は、アプリケーションがクライアントであることを示すために使用され、TLS 1.3プロトコルのみをサポートします。この関数は、wolfSSL_CTX_new()を使用してSSL / TLSコンテキストを作成するときに使用される新しいWolfssl_method構造体のメモリを割り当てて初期化します。 + \return 新しく作成されたwWOLFSSL_METHOS構造体へのポインタを返します。 + _Example_ \code #include @@ -9489,6 +10848,7 @@ WOLFSSL_METHOD *wolfTLSv1_3_client_method(void); \brief この関数は、まだどちらの側(サーバ/クライアント)を決定していないことを除いて、Wolftlsv1_3_client_methodと同様のwolfssl_methodを返します。 \param [in] ヒープ静的メモリ割り当て中に静的メモリ割り当て器が使用するバッファへのポインタを使用します。 \return WOLFSSL_METHOD 成功した作成では、wolfssl_methodポインタを返します + _Example_ \code WOLFSSL* ctx; @@ -9504,6 +10864,7 @@ WOLFSSL_METHOD *wolfTLSv1_3_method_ex(void* heap); \ingroup Setup \brief この関数は、まだどちらの側(サーバ/クライアント)を決定していないことを除いて、Wolftlsv1_3_client_methodと同様のwolfssl_methodを返します。 \return WOLFSSL_METHOD 成功した作成では、wolfssl_methodポインタを返します + _Example_ \code WOLFSSL* ctx; @@ -9707,8 +11068,8 @@ int wolfSSL_get_negotiated_server_cert_type(WOLFSSL* ssl, int* tp); /*! \ingroup SSL \brief この関数はテストのための固定/静的なエフェラルキーを設定します。 - \return 0 キーが正常にロードされました - \param ctx wolfssl_ctxコンテキストポインタ + \return 0 成功時に返されます。 + \param ctx WOLFSSL_CTXコンテキストポインタ \param keyAlgo WC_PK_TYPE_DHおよびWC_PK_TYPE_ECDHのようなenum wc_pktype \param key キーファイルパス(Keysz == 0)または実際のキーバッファ(PEMまたはASN.1) \param keySz キーサイズ(「キー」argはファイルパスの場合は0になります) @@ -9719,8 +11080,8 @@ int wolfSSL_CTX_set_ephemeral_key(WOLFSSL_CTX* ctx, int keyAlgo, const char* key /*! \ingroup SSL \brief この関数はテストのための固定/静的なエフェラルキーを設定します。 - \return 0 キーが正常にロードされました - \param ssl wolfsslオブジェクトポインタ + \return 0 成功時に返されます。 + \param ssl WOLFSSL構造体へのポインタ \param keyAlgo WC_PK_TYPE_DHおよびWC_PK_TYPE_ECDHのようなenum wc_pktype \param key キーファイルパス(Keysz == 0)または実際のキーバッファ(PEMまたはASN.1) \param keySz キーサイズ(「キー」argはファイルパスの場合は0になります) @@ -9730,8 +11091,8 @@ int wolfSSL_set_ephemeral_key(WOLFSSL* ssl, int keyAlgo, const char* key, unsign /*! \ingroup SSL - \brief この関数はasn.1 / derとしてロードされたキーへのポインタを返します - \return 0 キーが正常に戻りました + \brief この関数は ASN.1/DERとしてロードされたキーへのポインタを返します + \return 0 成功時に返されます。 \param ctx wolfssl_ctxコンテキストポインタ \param keyAlgo WC_PK_TYPE_DHおよびWC_PK_TYPE_ECDHのようなenum wc_pktype \param key キーバッファポインタ @@ -9742,9 +11103,9 @@ int wolfSSL_CTX_get_ephemeral_key(WOLFSSL_CTX* ctx, int keyAlgo, /*! \ingroup SSL - \brief この関数はasn.1 / derとしてロードされたキーへのポインタを返します - \return 0 キーが正常に戻りました - \param ssl wolfsslオブジェクトポインタ + \brief この関数は ASN.1/DERとしてロードされた鍵へのポインタを返します + \return 0 成功時に返されます。 + \param ssl WOLFSSL構造体へのポインタ \param keyAlgo WC_PK_TYPE_DHおよびWC_PK_TYPE_ECDHのようなenum wc_pktype \param key キーバッファポインタ \sa wolfSSL_set_ephemeral_key @@ -9754,17 +11115,200 @@ int wolfSSL_get_ephemeral_key(WOLFSSL* ssl, int keyAlgo, /*! \ingroup SSL - \brief 選択したメッセージダイジェスト、パディング、およびRSAキーを使用してメッセージに署名する - \return WOLFSSL_SUCCESS Errorの成功とwolfssl_failureについて + \brief 選択したメッセージダイジェスト、パディング、およびRSAキーを使用してメッセージに署名します。 + \return WOLFSSL_SUCCESS 成功時に返されます。 + \return WOLFSSL_FAILURE エラー発生時に返されます。 + \param type ハッシュNID - \param m 署名するメッセージ。これは署名するメッセージのダイジェストになる可能性が高い + \param m 署名するメッセージ。これは署名するメッセージのダイジェスト \param mLen 署名するメッセージの長さ - \param sigRet 出力バッファ - \param sigLen オン入力:出力時のSigretバッファの長さ:Sigretに書き込まれたデータの長さ - \param rsa RSAキー入力に署名するために使用されます + \param sigRet 出力バッファへのポインタ + \param sigLen 入力時にはsigRetの長さを指定します。出力時にはsigRetに書き込まれたデータの長さを格納します。 + \param rsa 入力に署名するために使用されるRSA鍵 \param flag 1:シグニチャ0:未パワード署名を比較する値を出力します。注:RSA_PKCS1_PSS_PADDINGの場合は、wc_rsapss_checkpadding_ex関数を使用して* VERIFY *関数の出力を確認する必要があります。 + \param padding パディング */ int wolfSSL_RSA_sign_generic_padding(int type, const unsigned char* m, unsigned int mLen, unsigned char* sigRet, unsigned int* sigLen, WOLFSSL_RSA* rsa, int flag, int padding); + +/*! + \ingroup SSL + \brief DTLSv1.3 送信済みだがまだ相手からアクノリッジを受けとっていないメッセージがあるか調べます。 + + \return 1 ペンディングのメッセージがある場合に返されます。それ以外は0が返されます。 + \param ssl WOLFSSL構造体へのポインタ。 +*/ +int wolfSSL_dtls13_has_pending_msg(WOLFSSL *ssl); + +/*! + \ingroup SSL + \brief アーリーデータの最大サイズを取得します。 + + \param [in] s WOLFSSL_SESSION構造体へのポインタ + + \return アーリーデータの最大サイズ(max_early_data) + \param s WOLFSSL_SESSION構造体へのポインタ + + \sa wolfSSL_set_max_early_data + \sa wolfSSL_write_early_data + \sa wolfSSL_read_early_data + */ +unsigned int wolfSSL_SESSION_get_max_early_data(const WOLFSSL_SESSION *s); + +/*! + \ingroup SSL + \brief Get a new index for external data. This entry applies also for the + following API: + - wolfSSL_CTX_get_ex_new_index + - wolfSSL_get_ex_new_index + - wolfSSL_SESSION_get_ex_new_index + - wolfSSL_X509_get_ex_new_index + + \param [in] All input parameters are ignored. The callback functions are not + supported with wolfSSL. + + \return The new index value to be used with the external data API for this + object class. + */ +int wolfSSL_CRYPTO_get_ex_new_index(int, void*, void*, void*, void*); + +/*! + + \brief コネクションID拡張を有効にします。RFC9146とRFC9147を参照してください。 + + \return WOLFSSL_SUCCESS 成功時に返されます。それ以外はエラーコードが返されます。 + + \param ssl WOLFSSL構造体へのポインタ。 + + \sa wolfSSL_dtls_cid_is_enabled + \sa wolfSSL_dtls_cid_set + \sa wolfSSL_dtls_cid_get_rx_size + \sa wolfSSL_dtls_cid_get_rx + \sa wolfSSL_dtls_cid_get_tx_size + \sa wolfSSL_dtls_cid_get_tx +*/ +int wolfSSL_dtls_cid_use(WOLFSSL* ssl); + +/*! + + \brief この関数はハンドシェークが完了した後に呼び出されると、コネクションIDがネゴシエートされたかどうか確認することができます。 + RFC9146とRFC9147を参照してください。 + + \return 1 コネクションIDがネゴシエートされた場合に返されます。それ以外は0が返されます。 + + \param ssl WOLFSSL構造体へのポインタ。 + + \sa wolfSSL_dtls_cid_use + \sa wolfSSL_dtls_cid_set + \sa wolfSSL_dtls_cid_get_rx_size + \sa wolfSSL_dtls_cid_get_rx + \sa wolfSSL_dtls_cid_get_tx_size + \sa wolfSSL_dtls_cid_get_tx +*/ +int wolfSSL_dtls_cid_is_enabled(WOLFSSL* ssl); + +/*! + + \brief このコネクションで他のピアに対してレコードを送信するためのコネクションIDをセットします。 + RFC9146とRFC9147を参照してください。コネクションIDは最大値がDTLS_CID_MAX_SIZEでなければなりません。 + DTLS_CID_MAX_SIZEはビルド時に値を指定が可能ですが255バイトをこえることはできません。 + + + \return WOLFSSL_SUCCESS コネクションIDがセットできた場合に返されます。それ以外はエラーコードが返されます。 + + \param ssl WOLFSSL構造体へのポインタ。 + \param cid コネクションID + \param size コネクションIDのサイズ + + \sa wolfSSL_dtls_cid_use + \sa wolfSSL_dtls_cid_is_enabled + \sa wolfSSL_dtls_cid_get_rx_size + \sa wolfSSL_dtls_cid_get_rx + \sa wolfSSL_dtls_cid_get_tx_size + \sa wolfSSL_dtls_cid_get_tx +*/ +int wolfSSL_dtls_cid_set(WOLFSSL* ssl, unsigned char* cid, + unsigned int size); + +/*! + + \brief コネクションIDのサイズを取得します。RFC9146とRFC9147を参照してください。 + + \return WOLFSSL_SUCCESS コネクションIDが取得できた場合に返されます。それ以外はエラーコードが返されます。 + + \param ssl WOLFSSL構造体へのポインタ。 + \param size コネクションIDのサイズを格納するint型変数へのポインタ。 + + \sa wolfSSL_dtls_cid_use + \sa wolfSSL_dtls_cid_is_enabled + \sa wolfSSL_dtls_cid_set + \sa wolfSSL_dtls_cid_get_rx + \sa wolfSSL_dtls_cid_get_tx_size + \sa wolfSSL_dtls_cid_get_tx +*/ +int wolfSSL_dtls_cid_get_rx_size(WOLFSSL* ssl, + unsigned int* size); + +/*! + + \brief コネクションIDを引数bufferで指定されたバッファにコピーします。 + RFC9146とRFC9147を参照してください。 + バッファのサイズは引数bufferSzで指定してください。 + + \return WOLFSSL_SUCCESS コネクションIDが取得できた場合に返されます。それ以外はエラーコードが返されます。 + + \param ssl WOLFSSL構造体へのポインタ。 + \param buffer コネクションIDがコピーされる先のバッファへのポインタ。 + \param bufferSz バッファのサイズ + + \sa wolfSSL_dtls_cid_use + \sa wolfSSL_dtls_cid_is_enabled + \sa wolfSSL_dtls_cid_set + \sa wolfSSL_dtls_cid_get_rx_size + \sa wolfSSL_dtls_cid_get_tx_size + \sa wolfSSL_dtls_cid_get_tx +*/ +int wolfSSL_dtls_cid_get_rx(WOLFSSL* ssl, unsigned char* buffer, + unsigned int bufferSz); + +/*! + + \brief コネクションIDのサイズを取得します。c + サイズは引数size変数に格納されます。 + + \return WOLFSSL_SUCCESS コネクションIDのサイズが取得できた場合に返されます。それ以外はエラーコードが返されます。 + + \param ssl WOLFSSL構造体へのポインタ。 + \param size コネクションIDのサイズを格納するint型変数へのポインタ。 + + \sa wolfSSL_dtls_cid_use + \sa wolfSSL_dtls_cid_is_enabled + \sa wolfSSL_dtls_cid_set + \sa wolfSSL_dtls_cid_get_rx_size + \sa wolfSSL_dtls_cid_get_rx + \sa wolfSSL_dtls_cid_get_tx +*/ +int wolfSSL_dtls_cid_get_tx_size(WOLFSSL* ssl, unsigned int* size); + +/*! + + \brief コネクションIDを引き数bufferで指定されるバッファにコピーします。RFC9146とRFC9147を参照してください。 + バッファのサイズは引き数bufferSzで指定します。 + + \return WOLFSSL_SUCCESS ConnectionIDが正常にコピーされた際に返されます。それ以外はエラーコードが返されます。 + + \param ssl WOLFSSL構造体へのポインタ。 + \param buffer ConnectionIDがコピーされるバッファへのポインタ。 + \param bufferSz バッファのサイズ + + \sa wolfSSL_dtls_cid_use + \sa wolfSSL_dtls_cid_is_enabled + \sa wolfSSL_dtls_cid_set + \sa wolfSSL_dtls_cid_get_rx_size + \sa wolfSSL_dtls_cid_get_rx + \sa wolfSSL_dtls_cid_get_tx_size +*/ +int wolfSSL_dtls_cid_get_tx(WOLFSSL* ssl, unsigned char* buffer, + unsigned int bufferSz); diff --git a/doc/dox_comments/header_files/asn_public.h b/doc/dox_comments/header_files/asn_public.h index 704340851..e7505e228 100644 --- a/doc/dox_comments/header_files/asn_public.h +++ b/doc/dox_comments/header_files/asn_public.h @@ -1231,7 +1231,7 @@ int wc_DerToPem(const byte* der, word32 derSz, byte* output, word32 pemSz; byte* cipher_info[] { Additional cipher info. } - pemSz = wc_DerToPemEx(der, derSz,pemFormatted,FOURK_BUF, ,CERT_TYPE); + pemSz = wc_DerToPemEx(der, derSz, pemFormatted, FOURK_BUF, cipher_info, CERT_TYPE); \endcode \sa wc_PemCertToDer diff --git a/doc/dox_comments/header_files/ed25519.h b/doc/dox_comments/header_files/ed25519.h index 3f85e3c1f..b4176da9b 100644 --- a/doc/dox_comments/header_files/ed25519.h +++ b/doc/dox_comments/header_files/ed25519.h @@ -1,21 +1,21 @@ /*! \ingroup ED25519 - \brief This function generates the Ed25519 public key from the private key. - It stores the public key in the buffer pubKey, and sets the bytes - written to this buffer in pubKeySz. + \brief This function generates the Ed25519 public key from the private key, + stored in the ed25519_key object. It stores the public key in the buffer + pubKey. \return 0 Returned upon successfully making the public key. - \return BAD_FUNC_ARG Returned ifi key or pubKey evaluate to NULL, or if the + \return BAD_FUNC_ARG Returned if key or pubKey evaluate to NULL, or if the specified key size is not 32 bytes (Ed25519 has 32 byte keys). + \return ECC_PRIV_KEY_E returned if the ed25519_key object does not have + the private key in it. \return MEMORY_E Returned if there is an error allocating memory during function execution. \param [in] key Pointer to the ed25519_key for which to generate a key. - \param [out] out Pointer to the buffer in which to store the public key. - \param [in,out] outLen Pointer to a word32 object with the size available - in out. Set with the number of bytes written to out after successfully - exporting the public key. + \param [out] pubKey Pointer to the buffer in which to store the public key. + \param [in] pubKeySz Size of the public key. Should be ED25519_PUB_KEY_SIZE. _Example_ \code @@ -301,7 +301,7 @@ int wc_ed25519ph_sign_msg(const byte* in, word32 inlen, byte* out, \ingroup ED25519 \brief This function verifies the Ed25519 signature of a message to ensure - authenticity. It returns the answer through res, with 1 corresponding to + authenticity. It returns the answer through ret, with 1 corresponding to a valid signature, and 0 corresponding to an invalid signature. \return 0 Returned upon successfully performing the signature @@ -315,7 +315,7 @@ int wc_ed25519ph_sign_msg(const byte* in, word32 inlen, byte* out, \param [in] siglen Length of the signature to verify. \param [in] msg Pointer to the buffer containing the message to verify. \param [in] msgLen Length of the message to verify. - \param [out] res Pointer to the result of the verification. 1 indicates the + \param [out] ret Pointer to the result of the verification. 1 indicates the message was successfully verified. \param [in] key Pointer to a public Ed25519 key with which to verify the signature. @@ -351,7 +351,7 @@ int wc_ed25519_verify_msg(const byte* sig, word32 siglen, const byte* msg, \brief This function verifies the Ed25519 signature of a message to ensure authenticity. The context is included as part of the data - verified. It returns the answer through res, with 1 corresponding to + verified. It returns the answer through ret, with 1 corresponding to a valid signature, and 0 corresponding to an invalid signature. \return 0 Returned upon successfully performing the signature @@ -365,7 +365,7 @@ int wc_ed25519_verify_msg(const byte* sig, word32 siglen, const byte* msg, \param [in] siglen Length of the signature to verify. \param [in] msg Pointer to the buffer containing the message to verify. \param [in] msgLen Length of the message to verify. - \param [out] res Pointer to the result of the verification. 1 indicates the + \param [out] ret Pointer to the result of the verification. 1 indicates the message was successfully verified. \param [in] key Pointer to a public Ed25519 key with which to verify the signature. @@ -408,7 +408,7 @@ int wc_ed25519ctx_verify_msg(const byte* sig, word32 siglen, const byte* msg, message to ensure authenticity. The context is included as part of the data verified. The hash is the pre-hashed message before signature calculation. The hash algorithm used to create message digest must be SHA-512. - The answer is returned through res, with 1 corresponding to a valid + The answer is returned through ret, with 1 corresponding to a valid signature, and 0 corresponding to an invalid signature. @@ -424,7 +424,7 @@ int wc_ed25519ctx_verify_msg(const byte* sig, word32 siglen, const byte* msg, \param [in] hash Pointer to the buffer containing the hash of the message to verify. \param [in] hashLen Length of the hash to verify. - \param [out] res Pointer to the result of the verification. 1 indicates the + \param [out] ret Pointer to the result of the verification. 1 indicates the message was successfully verified. \param [in] key Pointer to a public Ed25519 key with which to verify the signature. @@ -466,7 +466,7 @@ int wc_ed25519ph_verify_hash(const byte* sig, word32 siglen, const byte* hash, \brief This function verifies the Ed25519 signature of a message to ensure authenticity. The context is included as part of the data verified. The message is pre-hashed before verification. It returns the - answer through res, with 1 corresponding to a valid signature, and 0 + answer through ret, with 1 corresponding to a valid signature, and 0 corresponding to an invalid signature. \return 0 Returned upon successfully performing the signature @@ -480,7 +480,7 @@ int wc_ed25519ph_verify_hash(const byte* sig, word32 siglen, const byte* hash, \param [in] siglen Length of the signature to verify. \param [in] msg Pointer to the buffer containing the message to verify. \param [in] msgLen Length of the message to verify. - \param [out] res Pointer to the result of the verification. 1 indicates the + \param [out] ret Pointer to the result of the verification. 1 indicates the message was successfully verified. \param [in] key Pointer to a public Ed25519 key with which to verify the signature. @@ -562,7 +562,7 @@ void wc_ed25519_free(ed25519_key* key); /*! \ingroup ED25519 - \brief This function imports a public ed25519_key pair from a buffer + \brief This function imports a public ed25519_key from a buffer containing the public key. This function will handle both compressed and uncompressed keys. The public key is checked that it matches the private key when one is present. @@ -600,7 +600,7 @@ int wc_ed25519_import_public(const byte* in, word32 inLen, ed25519_key* key); /*! \ingroup ED25519 - \brief This function imports a public ed25519_key pair from a buffer + \brief This function imports a public ed25519_key from a buffer containing the public key. This function will handle both compressed and uncompressed keys. Check public key matches private key, when present, when not trusted. @@ -649,8 +649,6 @@ int wc_ed25519_import_public_ex(const byte* in, word32 inLen, ed25519_key* key, \param [in] priv Pointer to the buffer containing the private key. \param [in] privSz Length of the private key. - \param [in] pub Pointer to the buffer containing the public key. - \param [in] pubSz Length of the public key. \param [in,out] key Pointer to the ed25519_key object in which to store the imported private key. diff --git a/doc/dox_comments/header_files/ssl.h b/doc/dox_comments/header_files/ssl.h index d0595e1f2..96be94a84 100644 --- a/doc/dox_comments/header_files/ssl.h +++ b/doc/dox_comments/header_files/ssl.h @@ -859,7 +859,7 @@ int wolfSSL_dtls_export(WOLFSSL* ssl, unsigned char* buf, /*! \brief Used to export a serialized TLS session. This function is for - importing a serialized state of the connection. + exporting a serialized state of the connection. In most cases wolfSSL_get1_session should be used instead of wolfSSL_tls_export. Additional debug info can be displayed with the macro @@ -1164,7 +1164,7 @@ int wolfSSL_CTX_use_PrivateKey_file(WOLFSSL_CTX* ctx, const char* file, int form \sa wolfSSL_use_certificate_chain_file */ int wolfSSL_CTX_load_verify_locations(WOLFSSL_CTX* ctx, const char* file, - const char* format); + const char* path); /*! \ingroup CertsKeys @@ -1439,9 +1439,9 @@ int wolfSSL_CTX_use_RSAPrivateKey_file(WOLFSSL_CTX* ctx, const char* file, int f \brief This function returns the maximum chain depth allowed, which is 9 by default, for a valid session i.e. there is a non-null session object (ssl). - \return MAX_CHAIN_DEPTH returned if the WOLFSSL_CTX structure is not + \return MAX_CHAIN_DEPTH returned if the WOLFSSL structure is not NULL. By default the value is 9. - \return BAD_FUNC_ARG returned if the WOLFSSL_CTX structure is NULL. + \return BAD_FUNC_ARG returned if the WOLFSSL structure is NULL. \param ssl a pointer to a WOLFSSL structure, created using wolfSSL_new(). @@ -1794,7 +1794,7 @@ WOLFSSL* wolfSSL_new(WOLFSSL_CTX*); a socket file descriptor. \return SSL_SUCCESS upon success. - \return Bad_FUNC_ARG upon failure. + \return BAD_FUNC_ARG upon failure. \param ssl pointer to the SSL session, created with wolfSSL_new(). \param fd file descriptor to use with SSL/TLS connection. @@ -1828,7 +1828,7 @@ int wolfSSL_set_fd(WOLFSSL* ssl, int fd); addr and addr_len parameters set to NULL. \return SSL_SUCCESS upon success. - \return Bad_FUNC_ARG upon failure. + \return BAD_FUNC_ARG upon failure. \param ssl pointer to the SSL session, created with wolfSSL_new(). \param fd file descriptor to use with SSL/TLS connection. @@ -2822,7 +2822,7 @@ int wolfSSL_GetSessionAtIndex(int index, WOLFSSL_SESSION* session); \return none No return. \param ctx pointer to the SSL context, created with wolfSSL_CTX_new(). - \param mode session timeout value in seconds + \param mode flags indicating verification mode for peer's cert. \param verify_callback callback to be called when verification fails. If no callback is desired, the NULL pointer can be used for verify_callback. @@ -2870,7 +2870,7 @@ void wolfSSL_CTX_set_verify(WOLFSSL_CTX* ctx, int mode, \return none No return. \param ssl pointer to the SSL session, created with wolfSSL_new(). - \param mode session timeout value in seconds. + \param mode flags indicating verification mode for peer's cert. \param verify_callback callback to be called when verification fails. If no callback is desired, the NULL pointer can be used for verify_callback. @@ -3138,6 +3138,7 @@ long wolfSSL_CTX_set_session_cache_mode(WOLFSSL_CTX* ctx, long mode); \param ssl a pointer to a WOLFSSL structure, created using wolfSSL_new(). \param cb a SessionSecretCb type that is a function pointer with the above signature. + \param ctx a pointer to the user context to be stored _Example_ \code @@ -3169,7 +3170,7 @@ int wolfSSL_set_session_secret_cb(WOLFSSL* ssl, SessionSecretCb cb, void* ctx); \return FWRITE_ERROR returned if XFWRITE failed to write to the file. \return BAD_MUTEX_E returned if there was a mutex lock failure. - \param name is a constant char pointer that points to a file for writing. + \param fname is a constant char pointer that points to a file for writing. _Example_ \code @@ -3184,7 +3185,7 @@ int wolfSSL_set_session_secret_cb(WOLFSSL* ssl, SessionSecretCb cb, void* ctx); \sa wolfSSL_restore_session_cache \sa wolfSSL_memrestore_session_cache */ -int wolfSSL_save_session_cache(const char*); +int wolfSSL_save_session_cache(const char* fname); /*! \ingroup IO @@ -3214,7 +3215,7 @@ int wolfSSL_save_session_cache(const char*); \sa XFREAD \sa XFOPEN */ -int wolfSSL_restore_session_cache(const char*); +int wolfSSL_restore_session_cache(const char* fname); /*! \ingroup IO @@ -3312,7 +3313,7 @@ int wolfSSL_get_session_cache_memsize(void); \param ctx a pointer to a WOLFSSL_CTX structure, holding the certificate information. - \param fname the cert cache buffer. + \param fname a constant char pointer that points to a file for writing. _Example_ \code @@ -3344,7 +3345,7 @@ int wolfSSL_CTX_save_cert_cache(WOLFSSL_CTX* ctx, const char* fname); \param ctx a pointer to a WOLFSSL_CTX structure, holding the certificate information. - \param fname the cert cache buffer. + \param fname a constant char pointer that points to a file for reading. _Example_ \code @@ -3462,7 +3463,7 @@ int wolfSSL_CTX_memrestore_cert_cache(WOLFSSL_CTX* ctx, const void* mem, int sz \sa CM_GetCertCacheMemSize */ -int wolfSSL_CTX_get_cert_cache_memsize(WOLFSSL_CTX*); +int wolfSSL_CTX_get_cert_cache_memsize(WOLFSSL_CTX* ctx); /*! \ingroup Setup @@ -3599,7 +3600,7 @@ void wolfSSL_dtls_set_using_nonblock(WOLFSSL* ssl, int nonblock); \sa wolfSSL_dtls_got_timeout \sa wolfSSL_dtls_set_using_nonblock */ -int wolfSSL_dtls_get_using_nonblock(WOLFSSL*); +int wolfSSL_dtls_get_using_nonblock(WOLFSSL* ssl); /*! \brief This function returns the current timeout value in seconds for the WOLFSSL object. When using non-blocking sockets, something in the user @@ -3919,7 +3920,7 @@ int wolfSSL_dtls_get_peer(WOLFSSL* ssl, void* peer, unsigned int* peerSz); \sa wolfSSL_ERR_print_errors_fp \sa wolfSSL_load_error_strings */ -char* wolfSSL_ERR_error_string(unsigned long,char*); +char* wolfSSL_ERR_error_string(unsigned long errNumber, char* data); /*! \ingroup Debug @@ -3963,7 +3964,7 @@ void wolfSSL_ERR_error_string_n(unsigned long e, char* buf, structure is within the WOLFSSL structure. \return 1 SSL_SENT_SHUTDOWN is returned. - \return 2 SS_RECEIVED_SHUTDOWN is returned. + \return 2 SSL_RECEIVED_SHUTDOWN is returned. \param ssl a constant pointer to a WOLFSSL structure, created using wolfSSL_new(). @@ -3989,7 +3990,7 @@ void wolfSSL_ERR_error_string_n(unsigned long e, char* buf, \sa wolfSSL_SESSION_free */ -int wolfSSL_get_shutdown(const WOLFSSL*); +int wolfSSL_get_shutdown(const WOLFSSL* ssl); /*! \ingroup IO @@ -4016,7 +4017,7 @@ int wolfSSL_get_shutdown(const WOLFSSL*); \sa wolfSSL_GetSessionIndex \sa wolfSSL_memsave_session_cache */ -int wolfSSL_session_reused(WOLFSSL*); +int wolfSSL_session_reused(WOLFSSL* ssl); /*! \ingroup TLS @@ -4046,7 +4047,7 @@ int wolfSSL_session_reused(WOLFSSL*); \sa wolfSSL_get_keys \sa wolfSSL_set_shutdown */ -int wolfSSL_is_init_finished(WOLFSSL*); +int wolfSSL_is_init_finished(WOLFSSL* ssl); /*! \ingroup IO @@ -4078,7 +4079,7 @@ int wolfSSL_is_init_finished(WOLFSSL*); \sa wolfSSL_lib_version */ -const char* wolfSSL_get_version(WOLFSSL*); +const char* wolfSSL_get_version(WOLFSSL* ssl); /*! \ingroup IO @@ -4142,7 +4143,7 @@ int wolfSSL_get_current_cipher_suite(WOLFSSL* ssl); \sa wolfSSL_get_cipher_name_internal \sa wolfSSL_get_cipher_name */ -WOLFSSL_CIPHER* wolfSSL_get_current_cipher(WOLFSSL*); +WOLFSSL_CIPHER* wolfSSL_get_current_cipher(WOLFSSL* ssl); /*! \ingroup IO @@ -4482,7 +4483,7 @@ int wolfSSL_BIO_make_bio_pair(WOLFSSL_BIO *b1, WOLFSSL_BIO *b2); \sa wolfSSL_BIO_new, wolfSSL_BIO_s_mem \sa wolfSSL_BIO_new, wolfSSL_BIO_free */ -int wolfSSL_BIO_ctrl_reset_read_request(WOLFSSL_BIO *b); +int wolfSSL_BIO_ctrl_reset_read_request(WOLFSSL_BIO *bio); /*! \ingroup IO @@ -4782,7 +4783,7 @@ char* wolfSSL_X509_NAME_oneline(WOLFSSL_X509_NAME* name, char* in, int sz) \sa wolfSSL_get_peer_certificate \sa wolfSSL_X509_NAME_oneline */ -WOLFSSL_X509_NAME* wolfSSL_X509_get_issuer_name(WOLFSSL_X509*); +WOLFSSL_X509_NAME* wolfSSL_X509_get_issuer_name(WOLFSSL_X509* cert); /*! \ingroup CertsKeys @@ -4811,7 +4812,7 @@ WOLFSSL_X509_NAME* wolfSSL_X509_get_issuer_name(WOLFSSL_X509*); \sa wolfSSL_X509_get_isCA \sa wolfSSL_get_peer_certificate */ -WOLFSSL_X509_NAME* wolfSSL_X509_get_subject_name(WOLFSSL_X509*); +WOLFSSL_X509_NAME* wolfSSL_X509_get_subject_name(WOLFSSL_X509* cert); /*! \ingroup CertsKeys @@ -4823,7 +4824,7 @@ WOLFSSL_X509_NAME* wolfSSL_X509_get_subject_name(WOLFSSL_X509*); structure is returned. \return 0 returned if there is not a valid x509 structure passed in. - \param ssl a pointer to a WOLFSSL structure, created using wolfSSL_new(). + \param cert a pointer to a WOLFSSL_X509 structure. _Example_ \code @@ -4842,7 +4843,7 @@ WOLFSSL_X509_NAME* wolfSSL_X509_get_subject_name(WOLFSSL_X509*); \sa wolfSSL_X509_get_issuer_name \sa wolfSSL_X509_get_isCA */ -int wolfSSL_X509_get_isCA(WOLFSSL_X509*); +int wolfSSL_X509_get_isCA(WOLFSSL_X509* cert); /*! \ingroup CertsKeys @@ -4884,7 +4885,7 @@ int wolfSSL_X509_NAME_get_text_by_NID(WOLFSSL_X509_NAME* name, int nid, \return int an integer value is returned which was retrieved from the x509 object. - \param ssl a pointer to a WOLFSSL structure, created using wolfSSL_new(). + \param cert a pointer to a WOLFSSL_X509 structure. _Example_ \code @@ -4906,7 +4907,7 @@ int wolfSSL_X509_NAME_get_text_by_NID(WOLFSSL_X509_NAME* name, int nid, \sa wolfSSL_X509_notAfter \sa wolfSSL_X509_free */ -int wolfSSL_X509_get_signature_type(WOLFSSL_X509*); +int wolfSSL_X509_get_signature_type(WOLFSSL_X509* cert); /*! \brief This function frees a WOLFSSL_X509 structure. @@ -5192,7 +5193,7 @@ long wolfSSL_CTX_add_extra_chain_cert(WOLFSSL_CTX* ctx, WOLFSSL_X509* x509); \sa wolfSSL_CTX_free \sa wolfSSL_CTX_set_read_ahead */ -int wolfSSL_CTX_get_read_ahead(WOLFSSL_CTX*); +int wolfSSL_CTX_get_read_ahead(WOLFSSL_CTX* ctx); /*! \ingroup Setup @@ -5203,6 +5204,7 @@ int wolfSSL_CTX_get_read_ahead(WOLFSSL_CTX*); \return SSL_FAILURE If ctx is NULL then SSL_FAILURE is returned. \param ctx WOLFSSL_CTX structure to set read ahead flag. + \param v read ahead flag _Example_ \code @@ -5333,7 +5335,7 @@ long wolfSSL_set_options(WOLFSSL *s, long op); \sa wolfSSL_free \sa wolfSSL_set_options */ -long wolfSSL_get_options(const WOLFSSL *s); +long wolfSSL_get_options(const WOLFSSL *ssl); /*! \ingroup Setup @@ -5359,7 +5361,7 @@ long wolfSSL_get_options(const WOLFSSL *s); \sa wolfSSL_new \sa wolfSSL_free */ -long wolfSSL_set_tlsext_debug_arg(WOLFSSL *s, void *arg); +long wolfSSL_set_tlsext_debug_arg(WOLFSSL *ssl, void *arg); /*! \ingroup openSSL @@ -5372,7 +5374,7 @@ long wolfSSL_set_tlsext_debug_arg(WOLFSSL *s, void *arg); \return 1 upon success. \return 0 upon error. - \param s pointer to WolfSSL struct which is created by SSL_new() function + \param s pointer to WOLFSSL struct which is created by SSL_new() function \param type ssl extension type which TLSEXT_STATUSTYPE_ocsp is only supported. @@ -5518,7 +5520,7 @@ void wolfSSL_ERR_print_errors_cb ( \sa wolfSSL_CTX_set_psk_client_callback */ void wolfSSL_CTX_set_psk_client_callback(WOLFSSL_CTX* ctx, - wc_psk_client_callback); + wc_psk_client_callback cb); /*! \brief Sets the PSK client side callback. @@ -14427,7 +14429,7 @@ int wolfSSL_get_ephemeral_key(WOLFSSL* ssl, int keyAlgo, /*! \ingroup SSL \brief Sign a message with the chosen message digest, padding, and RSA key - \return WOLFSSL_SUCCESS on success and WOLFSSL_FAILURE on error + \return WOLFSSL_SUCCESS on success and c on error \param type Hash NID \param m Message to sign. Most likely this will be the digest of the message to sign