EVP_KEYMGMT-ED25519
名稱
EVP_PKEY-X25519、EVP_PKEY-X448、EVP_PKEY-ED25519、EVP_PKEY-ED448、EVP_KEYMGMT-X25519、EVP_KEYMGMT-X448、EVP_KEYMGMT-ED25519、EVP_KEYMGMT-ED448 - EVP_PKEY X25519、X448、ED25519 和 ED448 金鑰類型和演算法支援
說明
X25519、X448、ED25519 和 ED448 金鑰類型已在 OpenSSL 的預設和 FIPS 提供者中實作。這些實作支援關聯金鑰,其中包含公開金鑰 pub 和私密金鑰 priv。
金鑰產生參數
- "dhkem-ikm" (OSSL_PKEY_PARAM_DHKEM_IKM) <八位元組字串>
-
DHKEM 需要使用輸入金鑰材質 (種子) 來產生金鑰對。使用此參數來指定用於產生私密金鑰的金鑰材質。此值不應重複用於其他用途。對於 X25519,其長度應至少為 32,對於 X448,其長度應至少為 56。
這僅受 X25519 和 X448 支援。
在呼叫 EVP_PKEY_keygen_init() 之後,請使用 EVP_PKEY_CTX_set_params()。
X25519、X448、ED25519 和 ED448 共用參數
除了所有金鑰類型都應支援的共用參數(請參閱 provider-keymgmt(7) 中的「共用參數」)之外,這些金鑰類型的實作還支援以下參數。
- "group" (OSSL_PKEY_PARAM_GROUP_NAME) <UTF8 字串>
-
這僅受 X25519 和 X448 支援。對於這些演算法,群組名稱必須分別為「x25519」或「x448」。這僅存在於與其他金鑰交換演算法保持一致,通常不需要。
- "pub" (OSSL_PKEY_PARAM_PUB_KEY) <八位元組字串>
-
公開金鑰值。
- "priv" (OSSL_PKEY_PARAM_PRIV_KEY) <八位元組字串>
-
私密金鑰值。
- "encoded-pub-key" (OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY) <八位元組字串>
-
用於取得和設定 X25519 和 X448 金鑰類型的公開金鑰編碼。公開金鑰預期以 RFC7748 定義的格式編碼。
ED25519 和 ED448 參數
- "mandatory-digest" (OSSL_PKEY_PARAM_MANDATORY_DIGEST) <UTF8 字串>
-
空字串,表示未指定摘要。
遵循
- RFC 8032
- RFC 8410
範例
可透過呼叫來取得 EVP_PKEY 內容
EVP_PKEY_CTX *pctx =
EVP_PKEY_CTX_new_from_name(NULL, "X25519", NULL);
EVP_PKEY_CTX *pctx =
EVP_PKEY_CTX_new_from_name(NULL, "X448", NULL);
EVP_PKEY_CTX *pctx =
EVP_PKEY_CTX_new_from_name(NULL, "ED25519", NULL);
EVP_PKEY_CTX *pctx =
EVP_PKEY_CTX_new_from_name(NULL, "ED448", NULL);
可像這樣產生 X25519 金鑰
pkey = EVP_PKEY_Q_keygen(NULL, NULL, "X25519");
X448、ED25519 或 ED448 金鑰也可以用相同方式產生。
另請參閱
EVP_KEYMGMT(3)、EVP_PKEY(3)、provider-keymgmt(7)、EVP_KEYEXCH-X25519(7)、EVP_KEYEXCH-X448(7)、EVP_SIGNATURE-ED25519(7)、EVP_SIGNATURE-ED448(7)
版權
版權所有 2020-2021 The OpenSSL 專案作者。保留所有權利。
在 Apache License 2.0(「授權」)下授權。您不得在不遵守授權的情況下使用此檔案。您可以在原始程式碼散佈中的 LICENSE 檔案或 https://www.openssl.org/source/license.html 取得一份副本。