OpenSSL

密碼學和 SSL/TLS 工具組

EVP_PKEY-ED448

名稱

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 金鑰類型和演算法支援

說明

X25519X448ED25519ED448 金鑰類型已在 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) <八位元組字串>

用於取得和設定 X25519X448 金鑰類型的公開金鑰編碼。公開金鑰預期以 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");

X448ED25519ED448 金鑰也可以用相同方式產生。

另請參閱

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 OpenSSL 專案作者。保留所有權利。

依據 Apache 許可證 2.0(「許可證」)授權。您只能在遵守許可證的情況下使用此檔案。您可以在原始程式碼散佈中的 LICENSE 檔案中取得一份副本,或在 https://www.openssl.org/source/license.html 取得。