Convertir Array char a FILE pointer en C

Esto trabajando con la funcion de PEM_read_PrivateKey()

EVP_PKEY *PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x,pem_password_cb *cb, void *u);

de OpenSSL y quiero pasar el primer argumento directamente con Array del archivo Key, por ejemplo.

char key[] = {0x33, 0x53, 0x73, 0x62, 0x4e, 0x52, 0x67, 0x54, 0x54, 0x69, 0x59, 0x57, 0x35, 0x36, 0x73, 0x5a}....
EVP_PKEY *PEM_read_PrivateKey(key, EVP_PKEY **x,pem_password_cb *cb, void *u);
0
задан 30.12.2016, 02:05
0 ответов

Ты будешь должен использовать другая семья функций, ..._bio_...

Структура BIO предоставляемая OpenSSL он позволяет именно это тебе, использовать твои собственные абстракции I/O.

В твоем случае,

char key[] = { ... };
BIO *mem;

mem = BIO_new_mem_buf( key, TAMAÑO ); // ¡ Cuidado con strlen( ) si no hay 0 al final !

EVP_PKEY *PEM_read_bio_PrivateKey( mem, EVP_PKEY **x, pem_password_cb *cb, void *u );
1
ответ дан 03.12.2019, 17:56