簡體   English   中英

如何使用25519打開SSL 1.1.1 ECDH

[英]how to openSSL 1.1.1 ECDH with 25519

我需要使用openssl用25519實現ecdh。

使用:

key = EC_KEY_new_by_curve_name(NID_X25519)

失敗。

使用這個:

EVP_PKEY *pkey = NULL;
EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new_id(NID_X25519, NULL);
EVP_PKEY_keygen_init(pctx);
EVP_PKEY_keygen(pctx, &pkey);

似乎有效,但我不知道如何以未壓縮的bin格式導出公鑰。 或如何導入對方的公共密鑰。

有什么幫助嗎?

可以使用EVP_PKEY_new_raw_public_key()函數從原始二進制格式導入另一方的公鑰。 手冊頁在這里:

https://www.openssl.org/docs/man1.1.1/man3/EVP_PKEY_new_raw_public_key.html

以原始二進制格式導出公鑰會有些棘手,因為沒有函數可以執行此操作。 您可以使用此處描述的i2d_PUBKEY()以SubjectPublicKeyInfo格式進行操作:

https://www.openssl.org/docs/man1.1.1/man3/i2d_PUBKEY.html

幸運的是,SubjectPublicKeyInfo格式具有原始公鑰作為其輸出的最后32個字節。 因此,您可以使用i2d_PUBKEY()並僅使用最后32個字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM