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