ECDSA with OPENSSL



我想在OPENSSL中实现ECDSA。但我收到的警告低于

ECDSA_ sign已弃用&ECDSA_do_verify已弃用。

谁能告诉我如何处理这个错误吗。

您似乎使用的是OpenSSL的开发版本(将成为OpenSSL 3.0(。这些函数在开发中被弃用,但在最新的稳定版本(1.1.1(中没有被弃用。

在OpenSSL(包括ECDSA(中进行签名的首选方法是使用EVP_DigestSign*()API。

这些功能的手册页在这里:

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

为了使用这些,您需要创建一个包含ECDSA密钥的EVP_PKEY对象。通常,这是通过使用EVP_PKEY_new()创建一个空的EVP_PKEY,然后使用EVP_PKEY_assign_EC_KEY:为其分配一个EC_KEY来完成的

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

以下是在OpenSSL wiki上使用EVP_DigestSign*()API进行签名和验证的示例代码:

https://wiki.openssl.org/index.php/EVP_Signing_and_Verifying

使用EVP函数的另一种选择是使用当前稳定版本(1.1.1(,在该版本中,您尝试使用的函数不会被弃用。但请记住,当OpenSSL 3.0发布时,它们将被弃用。

第三种选择是忽略弃用警告。这些职能仍然存在并发挥作用。假设您没有指示编译器将警告视为错误,那么您应该仍然能够构建应用程序。请记住,标记为弃用的API最终可能会在OpenSSL的某些未来版本中被删除。

最新更新