Вызов pem_read_privatekey заставляет программу сбой в OpenSSL 3.xC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Вызов pem_read_privatekey заставляет программу сбой в OpenSSL 3.x

Сообщение Anonymous »

Я вызываю pem_read_privatekey , чтобы прочитать закрытый ключ, используя следующий код, однако после вызова pem_read_privatekey Программа сбоят (существует с кодом ошибки 1) в Windows 11.

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

std::string pem = get_pem();

FILE* tmp = tmpfile();

if (!tmp) {
return;
}

for (char ch : pem) fputc(ch, tmp);
rewind(tmp);

auto pkey = PEM_read_PrivateKey(tmp, NULL, NULL, NULL);
if (!pkey) {
fclose(tmp);
return;
}

fclose(tmp);
Этот код работал нормально в Openssl версии 1.x, но после обновления до любой версии 3.x вызов PEM_Read_privateKey сбоя в Windows. Другими словами, следующий код работает нормально < /p>
auto pem = get_pem();

BIO* bio = BIO_new_mem_buf(pem.data(), (int)pem.size());
if (!bio) {
return;
}

EVP_PKEY* pkey = PEM_read_bio_PrivateKey(bio, nullptr, nullptr, nullptr);
BIO_free(bio);

if (!pkey) {
return;
}

// ... use pkey
< /code>
Я пробовал разные версии openssl 3.x, поведение остается неизменным. В чем может быть проблема?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... penssl-3-x
Ответить

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

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

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

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

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