OpenSSL

密碼學及 SSL/TLS 工具包

EVP_PKEY-X448

名稱

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)

Copyright 2020-2021 The OpenSSL Project Authors。保留所有權利。

根據 Apache 許可證 2.0 版(「許可證」)取得許可。您不得使用此檔案,除非符合許可證。您可以在原始程式碼散佈中的 LICENSE 檔案或 https://www.openssl.org/source/license.html 取得副本。