После использования pem_read_bio_pubkey я не могу разгрузить Win DllC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 После использования pem_read_bio_pubkey я не могу разгрузить Win Dll

Сообщение Anonymous »

Итак, я работаю над Windows DLL, который загружается сторонним исполнительным файлом. Он имеет функциональность остановки, которая разгружает мой DLL. Я вижу, что во время работы в Visual Studio Debugger: < /p>
'3rdparty.exe '(win32): разгрузка' c: \ my_dll.dll '< /p>
Теперь, если я добавлю этот код: < /p>

Код: Выделить всё

const std::string& public_key = my_public_key;
auto bio = BIO_new(BIO_s_mem());

if (!BIO_write(bio, public_key.c_str(), static_cast(public_key.size())))
{
error();
}

EVP_PKEY* pkey = nullptr;
if (!PEM_read_bio_PUBKEY(bio, &pkey, nullptr, nullptr) || pkey == nullptr)
{
error();
}

if (pkey)
{
EVP_PKEY_free(pkey);
}

if (bio)
BIO_free_all(bio);
< /code>
Остановка моего DLL, разгрузка больше не происходит.
Пробовал несколько вещей, используя пользовательский контекст: < /p>
  OSSL_LIB_CTX* lib_ctx = OSSL_LIB_CTX_new();
if (!PEM_read_bio_PUBKEY_ex(bio, &pkey, nullptr, nullptr, lib_ctx, nullptr) || pkey == nullptr)
{
error();
}
...
OSSL_LIB_CTX_free(lib_ctx);
< /code>
Также различные методы очистки: < /p>
EVP_cleanup();                // Clean up EVP layer (legacy compatibility)
CRYPTO_cleanup_all_ex_data(); // Clean up extra data
ERR_free_strings();           // Free error strings
SSL_COMP_free_compression_methods(); // Free compression methods (if SSL is used)
ничего не помогает.
Как именно третья сторона останавливает мою dll, я не знаю, и у меня нет доступа к этому коду.< /p>
Я использую SSL: OpenSSL 3.2.1, 30 января 2024 г.
Я статически связываюсь с библиотеками libcrypto.lib и libssl.lib.
Я использую следующий протокол SSL: OpenSSL 3.2.1, 30 января 2024 г.
Я статически связываюсь с библиотеками libcrypto.lib и libssl.lib.
п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... ad-win-dll
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»