使用OPENSSL的ECDSA
我想在OPENSSL中实现ECDSA。但我的警告越来越少了 ECDSA\u sign已弃用&ECDSA\u do\u verify已弃用使用OPENSSL的ECDSA,openssl,public-key-encryption,ecdsa,openssl-engine,Openssl,Public Key Encryption,Ecdsa,Openssl Engine,我想在OPENSSL中实现ECDSA。但我的警告越来越少了 ECDSA\u sign已弃用&ECDSA\u do\u verify已弃用 有人能告诉我如何处理这个错误吗 您似乎正在使用OpenSSL的开发版本(将成为OpenSSL 3.0)。这些函数在dev中已弃用,但在最新的稳定版本(1.1.1)中未弃用 在OpenSSL(包括ECDSA)中进行签名的首选方法是使用EVP\u DigestSign*()API 这些功能的手册页如下: 为了使用这些密钥,您需要创建一个包含ECDSA密钥的EVP
有人能告诉我如何处理这个错误吗 您似乎正在使用OpenSSL的开发版本(将成为OpenSSL 3.0)。这些函数在dev中已弃用,但在最新的稳定版本(1.1.1)中未弃用 在OpenSSL(包括ECDSA)中进行签名的首选方法是使用
EVP\u DigestSign*()
API
这些功能的手册页如下:
为了使用这些密钥,您需要创建一个包含ECDSA密钥的EVP_PKEY
对象。通常通过使用EVP_PKEY_new()
创建一个空的EVP_PKEY
,然后使用EVP_PKEY_assign_EC_KEY
为其分配一个EC_密钥来完成:
这里有使用OpenSSL wiki上的EVP\u DigestSign*()
API进行签名和验证的示例代码:
使用EVP函数的另一种替代方法是使用当前的稳定版本(1.1.1),其中您尝试使用的函数未被弃用。但请记住,当OpenSSL 3.0发布时,它们将被弃用
第三种选择是忽略弃用警告。这些功能仍然存在并发挥作用。假设您没有指示编译器将警告视为错误,那么您仍然可以构建应用程序。请记住,标记为不推荐的API最终可能会在OpenSSL的某些未来版本中被删除。非常感谢@Matt Caswellhow在引擎端为上述函数注册函数,例如engine_set_ECDSA?engine_set_pkey_meths()(遗憾的是没有文档记录)。此代码用于RSA: