【问题标题】:Is there an OpenSSL function like SSL_CTX_use_*PrivateKey for ECDSA?ECDSA 是否有类似 SSL_CTX_use_*PrivateKey 的 OpenSSL 功能?
【发布时间】:2021-03-10 14:21:22
【问题描述】:

我是加密领域的新手,尤其是 OpenSSL 领域的新手。我仍处于学习阶段,正在查看文档(甚至是源代码)。我看到函数称为: SSL_CTX_use_PrivateKey SSL_CTX_use_RSAPrivateKey

但我没有看到类似于 SSL_CTX_use_ECDSAPrivateKey 的名称。

有没有这样的功能,就是找不到?还是 ECDSA 以其他方式处理?

【问题讨论】:

    标签: openssl cryptography ecdsa


    【解决方案1】:

    对于 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_new() 创建一个新的EVP_PKEY,然后使用EVP_PKEY_set1_EC_KEYEVP_PKEY_assign_EC_KEY 将您的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)。

    【讨论】:

    • 感谢您的详细解答。我会用你给我的材料重新开始阅读。
    猜你喜欢
    • 2015-11-21
    • 2012-08-01
    • 2012-04-04
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多