如何解决ECDSA 是否有像 SSL_CTX_use_*PrivateKey 这样的 OpenSSL 函数?
总的来说,我是加密货币的新手,尤其是 OpenSSL。我仍处于学习阶段,正在查看文档(甚至源代码)。我看到调用的函数: SSL_CTX_use_PrivateKey SSL_CTX_use_RSAPrivateKey
但我没有看到一个类似于 SSL_CTX_use_ECDSAPrivateKey 的东西。
有没有这样的功能,就是找不到?或者 ECDSA 是否以其他方式处理?
解决方法
对于 ECDSA,您应该使用 SSL_CTX_use_PrivateKey
。此函数是用于处理所有键类型的通用函数。事实上,在即将发布的 OpenSSL 3.0 中,SSL_CTX_use_RSAPrivateKey
已被弃用,SSL_CTX_use_PrivateKey
是所有密钥类型(包括 RSA)的首选函数。
为了使用 SSL_CTX_use_PrivateKey
,您需要将密钥作为 EVP_PKEY
对象传递。如果您拥有 EC_KEY
对象形式的键,那么您可以使用 EVP_PKEY
创建一个新的 EVP_PKEY_new()
,然后使用 EC_KEY
将您的 EVP_PKEY_set1_EC_KEY
分配给它或EVP_PKEY_assign_EC_KEY
。见:
https://www.openssl.org/docs/man1.1.1/man3/EVP_PKEY_new.html https://www.openssl.org/docs/man1.1.1/man3/EVP_PKEY_set1_EC_KEY.html
作为替代方案,您可以使用 SSL_CTX_use_PrivateKey_file
,它会自动从文件中加载密钥。同样,您可以将此函数用于任何密钥类型(包括 RSA 和 ECDSA)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。