Приведет ли игнорирование вызова openssl EVP_cleanup к серьезным ошибкам или утечкам памяти?

У меня странная ситуация в моем приложении. Я использую методы EVP в OpenSSL для вычисления дайджестов и выполнения шифрования. В конце я выполняю EVP_cleanup () в деструкторе моего класса CryptoProvider (основной шлюз для моего приложения). Он выгружает все алгоритмы и т. Д. Из состояния OpenSSL.

Однако это делает невозможным беспрепятственное использование OpenSSL вне моего приложения, если клиент использует его для чего-то другого. Это очищает их работу, а также.

Теперь я остаюсь с этим выбором:

  • Игнорировать EVP_cleanup (). Это приведет к утечкам или другим последствиям?

  • Установите статическое API для очистки в моем приложении, которое клиент должен вызывать в конце своего срока службы, то есть намного позже срока службы моего приложения.

  • Просто доверьте клиенту вызов EVP_cleanup в конце его жизни.

Как вы думаете, что вы будете делать здесь?

2

Решение

У меня был этот вопрос сегодня утром, и я наткнулся на эту ветку … Это сэкономило бы мне время, если бы я нашел следующий ответ:

Функция EVP_cleanup () устарела в версиях OpenSSL 1.0.2h и 1.1.0.

Видеть их переключающий журнал для полной информации.

Выдержка:

Msgstr «Сделайте различные подпрограммы очистки неактивными и пометите их как устаревшие. Большинство глобальных функций очистки больше не требуются, потому что они обрабатываются с помощью auto-deinit (см. Справочные страницы OPENSSL_init_crypto и OPENSSL_init_ssl). Явное деинсталляция может вызвать проблемы (например, когда библиотека, которая использует OpenSSL-де-inits, но приложение все еще использует его). затронутые функции CONF_modules_free (), ENGINE_cleanup (), OBJ_cleanup (), EVP_cleanup (), BIO_sock_cleanup (), CRYPTO_cleanup_all_ex_data (), RAND_cleanup (), SSL_COMP_free_compression_methods (), ERR_free_strings () и COMP_zlib_cleanup (). «

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]