2015-12-21 4 views
1

Мне нужно создать ключ EVP_PKEY, содержащий закрытый ключ. Изначально закрытый ключ в формате PEM хранится в переменной pKey.BIO_new_mem_buf не удалось создать EVP_PKEY Key``

Теперь я пытаюсь создать ключ EVP_PKEY с помощью BIO mem.

EVP_PKEY *privkey; 
BIO *mem; 
mem = BIO_new_mem_buf(pKey, -1); 
privkey = PEM_read_bio_PrivateKey(mem, NULL, NULL, 0); 

Почему PEM_read_bio_PrivateKey возвращает NULL?

pKey contains valid Key bytes in PEM format. 

Какая возможная причина PEM_read_bio_PrivateKey() не работает?

+0

Есть ли каждая строка вашего pKey с '\ r \ n'? Это необходимо для функций PEM_read. –

+0

[ERR_print_errors()] (https://www.openssl.org/docs/manmaster/crypto/ERR_print_errors.html) может предоставить дополнительную информацию. –

ответ

0

Вы можете иметь зашифрованный PKEY и ключевая фраза отсутствует, и/или вы не звонили OpenSSL_add_all_algorithms(); который инициализирует шифры EVP для дешифрования инкапсулированного ключа.