Похоже, что вы используете dev-версию OpenSSL (которая станет OpenSSL 3.0). Эти функции устарели в dev, но не устарели в последней стабильной версии (1.1.1).
Предпочтительный метод создания подписей в OpenSSL (в том числе с ECDSA) - это использование EVP_DigestSign*()
API.
Справочные страницы для этих функций находятся здесь:
https://www.openssl.org/docs/man1.1.1/man3/EVP_DigestSignInit.html
Чтобы использовать их, необходимо создать объект EVP_PKEY
, содержащий ключ ECDSA. Обычно это делается путем создания пустого EVP_PKEY
с использованием EVP_PKEY_new()
и последующего присвоения ему EC_KEY с использованием EVP_PKEY_assign_EC_KEY
:
https://www.openssl.org/docs/man1.1.1/man3/EVP_PKEY_assign_EC_KEY.html
Существует пример кода для подписи и проверки с помощью API EVP_DigestSign*()
в вики OpenSSL здесь:
https://wiki.openssl.org/index.php/EVP_Signing_and_Verifying
Другой альтернативой использованию функций EVP является использование текущая стабильная версия (1.1.1), где функции, которые вы пытаетесь использовать, не устарели. Но имейте в виду, что они станут устаревшими после выпуска OpenSSL 3.0.
Третий вариант - просто игнорировать предупреждения об устаревании. Функции все еще присутствуют и работают. Предполагая, что вы не указали компилятору обрабатывать предупреждения как ошибки, вы все равно сможете создавать свое приложение. Имейте в виду, что API, помеченные как устаревшие, в конечном итоге могут быть удалены в будущей версии OpenSSL.