ECDSA с OPENSSL - PullRequest
       101

ECDSA с OPENSSL

0 голосов
/ 26 марта 2020

Я хочу внедрить ECDSA в OPENSSL. Но я получаю ниже предупреждения

ECDSA_sign устарела и ECDSA_do_verify устарела.

Может кто-нибудь, пожалуйста, подскажите, как справиться с этой ошибкой.

1 Ответ

1 голос
/ 26 марта 2020

Похоже, что вы используете 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.

...