/*! \ingroup HMAC \brief この関数はHmacオブジェクトを初期化し、暗号化タイプ、鍵、およびHMAC長を設定します。 \return 0 Hmacオブジェクトの初期化に成功した場合に返されます。 \return BAD_FUNC_ARG 入力タイプが無効な場合に返されます(typeパラメータを参照)。 \return MEMORY_E ハッシュに使用する構造体のメモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準の14バイトより短い場合に返されます。 \param hmac 初期化するHmacオブジェクトへのポインタ。 \param type Hmacオブジェクトが使用する暗号化方式を指定するタイプ。有効なオプションは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 \param key Hmacオブジェクトを初期化する鍵を含むバッファへのポインタ。 \param length 鍵の長さ。 _Example_ \code Hmac hmac; byte key[] = { // 暗号化に使用する鍵で初期化 }; if (wc_HmacSetKey(&hmac, WC_MD5, key, sizeof(key)) != 0) { // Hmacオブジェクトの初期化エラー } \endcode \sa wc_HmacUpdate \sa wc_HmacFinal */ int wc_HmacSetKey(Hmac* hmac, int type, const byte* key, word32 keySz); /*! \ingroup HMAC \brief この関数は、HMACを使用して認証するメッセージを更新します。wc_HmacSetKeyでHmacオブジェクトが初期化された後に呼び出す必要があります。この関数は、ハッシュするメッセージを更新するために複数回呼び出すことができます。必要に応じてwc_HmacUpdateを呼び出した後、wc_HmacFinalを呼び出して最終的な認証メッセージタグを取得する必要があります。 \return 0 認証するメッセージの更新に成功した場合に返されます。 \return MEMORY_E ハッシュアルゴリズムで使用するメモリ割り当てエラーがある場合に返されます。 \param hmac メッセージを更新するHmacオブジェクトへのポインタ。 \param msg 追加するメッセージを含むバッファへのポインタ。 \param length 追加するメッセージの長さ。 _Example_ \code Hmac hmac; byte msg[] = { // 認証するメッセージで初期化 }; byte msg2[] = { // メッセージの後半で初期化 }; // hmacを初期化 if( wc_HmacUpdate(&hmac, msg, sizeof(msg)) != 0) { // メッセージ更新エラー } if( wc_HmacUpdate(&hmac, msg2, sizeof(msg)) != 0) { // 2番目のメッセージでの更新エラー } \endcode \sa wc_HmacSetKey \sa wc_HmacFinal */ int wc_HmacUpdate(Hmac* hmac, const byte* in, word32 sz); /*! \ingroup HMAC \brief この関数は、Hmacオブジェクトのメッセージの最終ハッシュを計算します。 \return 0 最終ハッシュの計算に成功した場合に返されます。 \return MEMORY_E ハッシュアルゴリズムで使用するメモリ割り当てエラーがある場合に返されます。 \param hmac 最終ハッシュを計算するHmacオブジェクトへのポインタ。 \param hash 最終ハッシュを保存するバッファへのポインタ。選択したハッシュアルゴリズムに必要なスペースを確保する必要があります。 _Example_ \code Hmac hmac; byte hash[MD5_DIGEST_SIZE]; // タイプとしてMD5でhmacを初期化 // メッセージでwc_HmacUpdate() if (wc_HmacFinal(&hmac, hash) != 0) { // ハッシュ計算エラー } \endcode \sa wc_HmacSetKey \sa wc_HmacUpdate */ int wc_HmacFinal(Hmac* hmac, byte* out); /*! \ingroup HMAC \brief この関数は、設定された暗号スイートに基づいて利用可能な最大のHMACダイジェストサイズを返します。 \return Success 設定された暗号スイートに基づいて利用可能な最大のHMACダイジェストサイズを返します。 \param none パラメータなし。 _Example_ \code int maxDigestSz = wolfSSL_GetHmacMaxSize(); \endcode \sa none */ int wolfSSL_GetHmacMaxSize(void); /*! \ingroup HMAC \brief この関数は、HMAC鍵導出関数(HKDF)へのアクセスを提供します。HMACを利用して、オプションのソルトとオプションの情報を含むinKeyを導出鍵に変換し、outに保存します。ハッシュタイプは、0またはNULLが指定された場合、デフォルトでMD5になります。 HMAC設定オプションは--enable-hmac(デフォルトでオン)、またはソースを直接ビルドする場合はHAVE_HKDFです。 \return 0 指定された入力で鍵の生成に成功した場合に返されます。 \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 \param type HKDFに使用するハッシュタイプ。有効なタイプは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 \param inKey KDFに使用する鍵を含むバッファへのポインタ。 \param inKeySz 入力鍵の長さ。 \param salt オプションのソルトを含むバッファへのポインタ。ソルトを使用しない場合はNULLを使用します。 \param saltSz ソルトの長さ。ソルトを使用しない場合は0を使用します。 \param info オプションの追加情報を含むバッファへのポインタ。追加情報を追加しない場合はNULLを使用します。 \param infoSz 追加情報の長さ。追加情報を使用しない場合は0を使用します。 \param out 導出鍵を保存するバッファへのポインタ。 \param outSz 生成された鍵を保存する出力バッファで利用可能なスペース。 _Example_ \code byte key[] = { // 鍵で初期化 }; byte salt[] = { // ソルトで初期化 }; byte derivedKey[MAX_DIGEST_SIZE]; int ret = wc_HKDF(WC_SHA512, key, sizeof(key), salt, sizeof(salt), NULL, 0, derivedKey, sizeof(derivedKey)); if ( ret != 0 ) { // 導出鍵の生成エラー } \endcode \sa wc_HmacSetKey */ int wc_HKDF(int type, const byte* inKey, word32 inKeySz, const byte* salt, word32 saltSz, const byte* info, word32 infoSz, byte* out, word32 outSz); /*! \ingroup HMAC \brief この関数は、HMAC鍵導出関数(HKDF)へのアクセスを提供します。HMACを利用して、オプションのソルトを含むinKeyを導出鍵に変換し、outに保存します。ハッシュタイプは、0またはNULLが指定された場合、デフォルトでMD5になります。 HMAC設定オプションは--enable-hmac(デフォルトでオン)、またはソースを直接ビルドする場合はHAVE_HKDFです。 \return 0 指定された入力で鍵の生成に成功した場合に返されます。 \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 \param type HKDFに使用するハッシュタイプ。有効なタイプは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 \param salt オプションのソルトを含むバッファへのポインタ。ソルトを使用しない場合はNULLを使用します。 \param saltSz ソルトの長さ。ソルトを使用しない場合は0を使用します。 \param inKey KDFに使用する鍵を含むバッファへのポインタ。 \param inKeySz 入力鍵の長さ。 \param out 導出鍵を保存するバッファへのポインタ。 _Example_ \code byte key[] = { // 鍵で初期化 }; byte salt[] = { // ソルトで初期化 }; byte derivedKey[MAX_DIGEST_SIZE]; int ret = wc_HKDF_Extract(WC_SHA512, salt, sizeof(salt), key, sizeof(key), derivedKey); if ( ret != 0 ) { // 導出鍵の生成エラー } \endcode \sa wc_HKDF \sa wc_HKDF_Extract_ex \sa wc_HKDF_Expand \sa wc_HKDF_Expand_ex */ int wc_HKDF_Extract( int type, const byte* salt, word32 saltSz, const byte* inKey, word32 inKeySz, byte* out); /*! \ingroup HMAC \brief この関数は、HMAC鍵導出関数(HKDF)へのアクセスを提供します。HMACを利用して、オプションのソルトを含むinKeyを導出鍵に変換し、outに保存します。ハッシュタイプは、0またはNULLが指定された場合、デフォルトでMD5になります。これは、ヒープヒントとデバイス識別子を追加する_exバージョンです。 HMAC設定オプションは--enable-hmac(デフォルトでオン)、またはソースを直接ビルドする場合はHAVE_HKDFです。 \return 0 指定された入力で鍵の生成に成功した場合に返されます。 \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 \param type HKDFに使用するハッシュタイプ。有効なタイプは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 \param salt オプションのソルトを含むバッファへのポインタ。ソルトを使用しない場合はNULLを使用します。 \param saltSz ソルトの長さ。ソルトを使用しない場合は0を使用します。 \param inKey KDFに使用する鍵を含むバッファへのポインタ。 \param inKeySz 入力鍵の長さ。 \param out 導出鍵を保存するバッファへのポインタ。 \param heap メモリに使用するヒープヒント。NULLにできます。 \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定します。 _Example_ \code byte key[] = { // 鍵で初期化 }; byte salt[] = { // ソルトで初期化 }; byte derivedKey[MAX_DIGEST_SIZE]; int ret = wc_HKDF_Extract_ex(WC_SHA512, salt, sizeof(salt), key, sizeof(key), derivedKey, NULL, INVALID_DEVID); if ( ret != 0 ) { // 導出鍵の生成エラー } \endcode \sa wc_HKDF \sa wc_HKDF_Extract \sa wc_HKDF_Expand \sa wc_HKDF_Expand_ex */ int wc_HKDF_Extract_ex( int type, const byte* salt, word32 saltSz, const byte* inKey, word32 inKeySz, byte* out, void* heap, int devId); /*! \ingroup HMAC \brief この関数は、HMAC鍵導出関数(HKDF)へのアクセスを提供します。HMACを利用して、オプションの情報を含むinKeyを導出鍵に変換し、outに保存します。ハッシュタイプは、0またはNULLが指定された場合、デフォルトでMD5になります。 HMAC設定オプションは--enable-hmac(デフォルトでオン)、またはソースを直接ビルドする場合はHAVE_HKDFです。 \return 0 指定された入力で鍵の生成に成功した場合に返されます。 \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 \param type HKDFに使用するハッシュタイプ。有効なタイプは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 \param inKey KDFに使用する鍵を含むバッファへのポインタ。 \param inKeySz 入力鍵の長さ。 \param info オプションの追加情報を含むバッファへのポインタ。追加情報を追加しない場合はNULLを使用します。 \param infoSz 追加情報の長さ。追加情報を使用しない場合は0を使用します。 \param out 導出鍵を保存するバッファへのポインタ。 \param outSz 生成された鍵を保存する出力バッファで利用可能なスペース。 _Example_ \code byte key[] = { // 鍵で初期化 }; byte salt[] = { // ソルトで初期化 }; byte derivedKey[MAX_DIGEST_SIZE]; int ret = wc_HKDF_Expand(WC_SHA512, key, sizeof(key), NULL, 0, derivedKey, sizeof(derivedKey)); if ( ret != 0 ) { // 導出鍵の生成エラー } \endcode \sa wc_HKDF \sa wc_HKDF_Extract \sa wc_HKDF_Extract_ex \sa wc_HKDF_Expand_ex */ int wc_HKDF_Expand( int type, const byte* inKey, word32 inKeySz, const byte* info, word32 infoSz, byte* out, word32 outSz); /*! \ingroup HMAC \brief この関数は、HMAC鍵導出関数(HKDF)へのアクセスを提供します。HMACを利用して、オプションの情報を含むinKeyを導出鍵に変換し、outに保存します。ハッシュタイプは、0またはNULLが指定された場合、デフォルトでMD5になります。これは、ヒープヒントとデバイス識別子を追加する_exバージョンです。 HMAC設定オプションは--enable-hmac(デフォルトでオン)、またはソースを直接ビルドする場合はHAVE_HKDFです。 \return 0 指定された入力で鍵の生成に成功した場合に返されます。 \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 \param type HKDFに使用するハッシュタイプ。有効なタイプは:WC_MD5、WC_SHA、WC_SHA256、WC_SHA384、WC_SHA512、WC_SHA3_224、WC_SHA3_256、WC_SHA3_384、またはWC_SHA3_512。 \param inKey KDFに使用する鍵を含むバッファへのポインタ。 \param inKeySz 入力鍵の長さ。 \param info オプションの追加情報を含むバッファへのポインタ。追加情報を追加しない場合はNULLを使用します。 \param infoSz 追加情報の長さ。追加情報を使用しない場合は0を使用します。 \param out 導出鍵を保存するバッファへのポインタ。 \param outSz 生成された鍵を保存する出力バッファで利用可能なスペース。 \param heap メモリに使用するヒープヒント。NULLにできます。 \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定します。 _Example_ \code byte key[] = { // 鍵で初期化 }; byte salt[] = { // ソルトで初期化 }; byte derivedKey[MAX_DIGEST_SIZE]; int ret = wc_HKDF_Expand_ex(WC_SHA512, key, sizeof(key), NULL, 0, derivedKey, sizeof(derivedKey), NULL, INVALID_DEVID); if ( ret != 0 ) { // 導出鍵の生成エラー } \endcode \sa wc_HKDF \sa wc_HKDF_Extract \sa wc_HKDF_Extract_ex \sa wc_HKDF_Expand */ int wc_HKDF_Expand_ex( int type, const byte* inKey, word32 inKeySz, const byte* info, word32 infoSz, byte* out, word32 outSz, void* heap, int devId); /*! \ingroup HMAC \brief この関数は、TLS v1.3鍵導出のためのRFC 5869 HMACベース抽出拡張鍵導出関数(HKDF)へのアクセスを提供します。 \return 0 指定された入力で鍵の生成に成功した場合に返されます。 \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 \param prk 生成された疑似ランダム鍵。 \param salt ソルト。 \param saltLen ソルトの長さ。 \param ikm 鍵材料の出力へのポインタ。 \param ikmLen 入力鍵材料バッファの長さ。 \param digest HKDFに使用するハッシュタイプ。有効なタイプは:WC_SHA256、WC_SHA384、またはWC_SHA512。 _Example_ \code byte secret[] = { // ランダム鍵で初期化 }; byte salt[] = { // オプションのソルトで初期化 }; byte masterSecret[MAX_DIGEST_SIZE]; int ret = wc_Tls13_HKDF_Extract(secret, salt, sizeof(salt), 0, masterSecret, sizeof(masterSecret), WC_SHA512); if ( ret != 0 ) { // 導出鍵の生成エラー } \endcode \sa wc_HKDF \sa wc_HKDF_Extract \sa wc_HKDF_Extract_ex \sa wc_HKDF_Expand \sa wc_Tls13_HKDF_Extract_ex */ int wc_Tls13_HKDF_Extract( byte* prk, const byte* salt, word32 saltLen, byte* ikm, word32 ikmLen, int digest); /*! \ingroup HMAC \brief この関数は、TLS v1.3鍵導出のためのRFC 5869 HMACベース抽出拡張鍵導出関数(HKDF)へのアクセスを提供します。これは、ヒープヒントとデバイス識別子を追加する_exバージョンです。 \return 0 指定された入力で鍵の生成に成功した場合に返されます。 \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 \param prk 生成された疑似ランダム鍵。 \param salt ソルト。 \param saltLen ソルトの長さ。 \param ikm 鍵材料の出力へのポインタ。 \param ikmLen 入力鍵材料バッファの長さ。 \param digest HKDFに使用するハッシュタイプ。有効なタイプは:WC_SHA256、WC_SHA384、またはWC_SHA512。 \param heap メモリに使用するヒープヒント。NULLにできます。 \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定します。 _Example_ \code byte secret[] = { // ランダム鍵で初期化 }; byte salt[] = { // オプションのソルトで初期化 }; byte masterSecret[MAX_DIGEST_SIZE]; int ret = wc_Tls13_HKDF_Extract_ex(secret, salt, sizeof(salt), 0, masterSecret, sizeof(masterSecret), WC_SHA512, NULL, INVALID_DEVID); if ( ret != 0 ) { // 導出鍵の生成エラー } \endcode \sa wc_HKDF \sa wc_HKDF_Extract \sa wc_HKDF_Extract_ex \sa wc_HKDF_Expand \sa wc_Tls13_HKDF_Extract */ int wc_Tls13_HKDF_Extract_ex( byte* prk, const byte* salt, word32 saltLen, byte* ikm, word32 ikmLen, int digest, void* heap, int devId); /*! \ingroup HMAC \brief HMAC、ソルト、ラベル、および情報を使用してデータを拡張します。TLS v1.3は鍵導出のためにこの関数を定義しています。これは、ヒープヒントとデバイス識別子を追加する_exバージョンです。 \return 0 指定された入力で鍵の生成に成功した場合に返されます。 \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 \param okm 生成された疑似ランダム鍵 - 出力鍵材料。 \param okmLen 生成された疑似ランダム鍵の長さ - 出力鍵材料。 \param prk ソルト - 疑似ランダム鍵。 \param prkLen ソルトの長さ - 疑似ランダム鍵。 \param protocol TLSプロトコルラベル。 \param protocolLen TLSプロトコルラベルの長さ。 \param info 拡張する情報。 \param infoLen 情報の長さ。 \param digest HKDFに使用するハッシュタイプ。有効なタイプは:WC_SHA256、WC_SHA384、またはWC_SHA512。 \param heap メモリに使用するヒープヒント。NULLにできます。 \param devId 暗号コールバックまたは非同期ハードウェアで使用するID。使用しない場合はINVALID_DEVID(-2)に設定します。 \sa wc_HKDF \sa wc_HKDF_Extract \sa wc_HKDF_Extract_ex \sa wc_HKDF_Expand \sa wc_Tls13_HKDF_Expand_Label \sa wc_Tls13_HKDF_Expand_Label_Alloc */ int wc_Tls13_HKDF_Expand_Label_ex( byte* okm, word32 okmLen, const byte* prk, word32 prkLen, const byte* protocol, word32 protocolLen, const byte* label, word32 labelLen, const byte* info, word32 infoLen, int digest, void* heap, int devId); /*! \ingroup HMAC \brief HMAC、ソルト、ラベル、および情報を使用してデータを拡張します。TLS v1.3は鍵導出のためにこの関数を定義しています。 \return 0 指定された入力で鍵の生成に成功した場合に返されます。 \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 \param okm 生成された疑似ランダム鍵 - 出力鍵材料。 \param okmLen 生成された疑似ランダム鍵の長さ - 出力鍵材料。 \param prk ソルト - 疑似ランダム鍵。 \param prkLen ソルトの長さ - 疑似ランダム鍵。 \param protocol TLSプロトコルラベル。 \param protocolLen TLSプロトコルラベルの長さ。 \param info 拡張する情報。 \param infoLen 情報の長さ。 \param digest HKDFに使用するハッシュタイプ。有効なタイプは:WC_SHA256、WC_SHA384、またはWC_SHA512。 \sa wc_HKDF \sa wc_HKDF_Extract \sa wc_HKDF_Extract_ex \sa wc_HKDF_Expand \sa wc_Tls13_HKDF_Expand_Label_ex \sa wc_Tls13_HKDF_Expand_Label_Alloc */ int wc_Tls13_HKDF_Expand_Label( byte* okm, word32 okmLen, const byte* prk, word32 prkLen, const byte* protocol, word32 protocolLen, const byte* label, word32 labelLen, const byte* info, word32 infoLen, int digest); /*! \ingroup HMAC \brief この関数はwc_Tls13_HKDF_Expand_Label()と非常に似ていますが、通常使用されるスタックスペースが十分でない場合にメモリを割り当てます。HMAC、ソルト、ラベル、および情報を使用してデータを拡張します。TLS v1.3は鍵導出のためにこの関数を定義しています。これは、ヒープヒントとデバイス識別子を追加する_exバージョンです。 \return 0 指定された入力で鍵の生成に成功した場合に返されます。 \return BAD_FUNC_ARG 無効なハッシュタイプが指定された場合に返されます(typeパラメータを参照)。 \return MEMORY_E メモリ割り当てエラーがある場合に返されます。 \return HMAC_MIN_KEYLEN_E FIPS実装を使用していて、指定された鍵の長さが最小許容FIPS標準より短い場合に返される可能性があります。 \param okm 生成された疑似ランダム鍵 - 出力鍵材料。 \param okmLen 生成された疑似ランダム鍵の長さ - 出力鍵材料。 \param prk ソルト - 疑似ランダム鍵。 \param prkLen ソルトの長さ - 疑似ランダム鍵。 \param protocol TLSプロトコルラベル。 \param protocolLen TLSプロトコルラベルの長さ。 \param info 拡張する情報。 \param infoLen 情報の長さ。 \param digest HKDFに使用するハッシュタイプ。有効なタイプは:WC_SHA256、WC_SHA384、またはWC_SHA512。 \param heap メモリに使用するヒープヒント。NULLにできます。 \sa wc_HKDF \sa wc_HKDF_Extract \sa wc_HKDF_Extract_ex \sa wc_HKDF_Expand \sa wc_Tls13_HKDF_Expand_Label \sa wc_Tls13_HKDF_Expand_Label_ex */ int wc_Tls13_HKDF_Expand_Label_Alloc( byte* okm, word32 okmLen, const byte* prk, word32 prkLen, const byte* protocol, word32 protocolLen, const byte* label, word32 labelLen, const byte* info, word32 infoLen, int digest, void* heap);