EVP_KDF-TLS13_KDF
名稱
EVP_KDF-TLS13_KDF - TLS 1.3 EVP_KDF 實作
說明
透過 EVP_KDF API 支援運算 TLS 1.3 版本的 HKDF KDF。
EVP_KDF-TLS13_KDF 演算法實作 TLS 1.3 使用的 HKDF 金鑰衍生函數。
身分
此實作的名稱為「TLS13-KDF」;可搭配 EVP_KDF_fetch() 函數使用。
支援的參數
支援的參數如下
- 「屬性」(OSSL_KDF_PARAM_PROPERTIES) <UTF8 字串>
- 「摘要」(OSSL_KDF_PARAM_DIGEST) <UTF8 字串>
- 「金鑰」(OSSL_KDF_PARAM_KEY) <八位元組字串>
- 「鹽」(OSSL_KDF_PARAM_SALT) <八位元組字串>
-
這些參數的運作方式如 EVP_KDF(3) 中的「參數」 所述。
- 「前置」(OSSL_KDF_PARAM_PREFIX) <八位元組字串>
-
此參數設定指定的 TLS 1.3 KDF 環境中的標籤前置。對於 TLS 1.3,應設定為 ASCII 字串「tls13 」,不含尾隨零位元組。有關詳細資訊,請參閱 RFC 8446 第 7.1 節「金鑰排程」。
- 「標籤」(OSSL_KDF_PARAM_LABEL) <八位元組字串>
-
此參數設定指定的 TLS 1.3 KDF 環境中的標籤。有關詳細資訊,請參閱 RFC 8446 第 7.1 節「金鑰排程」。
- 「資料」(OSSL_KDF_PARAM_DATA) <八位元組字串>
-
此參數設定指定的 TLS 1.3 KDF 環境中的環境資料。有關詳細資訊,請參閱 RFC 8446 第 7.1 節「金鑰排程」。
- 「模式」(OSSL_KDF_PARAM_MODE) <UTF8 字串> 或 <整數>
-
此參數設定 TLS 1.3 KDF 作業的模式。目前定義了兩種模式
- 「EXTRACT_ONLY」或 EVP_KDF_HKDF_MODE_EXTRACT_ONLY
-
在此模式中,呼叫 EVP_KDF_derive(3) 僅會執行萃取作業。傳回的值會是中間固定長度的偽亂數金鑰 K。keylen 參數必須與 K 的大小相符,可以在設定模式和摘要後,透過呼叫 EVP_KDF_CTX_get_kdf_size() 來查詢。
在衍生金鑰之前,必須設定摘要、金鑰和鹽值,否則會發生錯誤。
- 「僅展開」或 EVP_KDF_HKDF_MODE_EXPAND_ONLY
-
在此模式中,呼叫 EVP_KDF_derive(3) 將僅執行展開操作。輸入金鑰應設定為先前萃取操作傳回的中間固定長度偽亂數金鑰 K。
在衍生金鑰之前,必須設定摘要、金鑰和資訊值,否則將發生錯誤。
注意事項
此 KDF 旨在供 libssl 中的 TLS 1.3 實作使用。它不支援 HKDF 支援的所有選項和功能。
傳遞給 EVP_KDF_derive(3) 或 EVP_KDF_CTX_set_params(3) 的 OSSL_PARAM 陣列必須指定所有必要的參數。此 KDF 不支援提供這些參數的逐步方法。
可透過呼叫取得 TLS 1.3 KDF 的內容:
EVP_KDF *kdf = EVP_KDF_fetch(NULL, "TLS13-KDF", NULL);
EVP_KDF_CTX *kctx = EVP_KDF_CTX_new(kdf);
TLS 1.3 KDF 展開操作的輸出長度是透過 EVP_KDF_derive(3) 函式的 keylen 參數指定的。使用 EVP_KDF_HKDF_MODE_EXTRACT_ONLY 時,keylen 參數必須等於中間固定長度偽亂數金鑰的大小,否則將發生錯誤。對於該模式,可以在設定 EVP_KDF_CTX 上的模式和摘要後,透過呼叫 EVP_KDF_CTX_get_kdf_size() 來查詢固定的輸出大小。
遵循
RFC 8446
另請參閱
EVP_KDF(3)、EVP_KDF_CTX_new(3)、EVP_KDF_CTX_free(3)、EVP_KDF_CTX_get_kdf_size(3)、EVP_KDF_CTX_set_params(3)、EVP_KDF_derive(3)、EVP_KDF(3) 中的「參數」、EVP_KDF-HKDF(7)
歷程
此功能已新增至 OpenSSL 3.0。
版權
版權所有 2021 The OpenSSL Project Authors。保留所有權利。
根據 Apache 授權條款 2.0(「授權條款」)授權。您不得使用此檔案,除非符合授權條款。您可以在原始程式碼散佈中的 LICENSE 檔案或 https://www.openssl.org/source/license.html 取得副本。