LINUX.ORG.RU

чё-то не то с PEM


0

0

Проблема такова - открываю с помощью PEM_read_PrivateKey (OpenSSL API) ключ RSA, зашифрованный. Получаю сообщение об ошибке с кодом 114, "Unsupported Encryption". При этом echo "GoodPassword" | openssl rsa -in KEY -noout -check -passin stdin читает ключ нормально. Я для теста вместо задания callback-а в нуль поставил там функцию для проверки - оказывается, она просто ни разу не вызывается. Какова может быть причина? Ниже полный листинг...

#include <stdio.h> #include <openssl/pem.h> #include <openssl/err.h>

int main( void) { ERR_load_crypto_strings(void)

FILE *kfile = fopen("KEY", "rb"); EVP_PKEY *key = PEM_read_PrivateKey(kfile, NULL, NULL, "GoodPassword"); if(key == NULL) { ERR_print_errors(stderr); } }

Для RSA надо юзать: PEM_read_RSAPublicKey

aton
()
Ответ на: комментарий от aton

Хм... Для использования при подписывании сертификатов (то, что идёт дальше в программе) нужен объект EVP_PKEY. Кстати, PEM_read_RSAPrivateKey вернул то же самое. Опять таки, расшифрованный ключ читается без проблем, зашифрованный - не читается, callback не вызывается. :-(

Spectrum
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.