Leitura pública / chave privada da memória com OpenSSL
Estou usando chaves públicas / privadas no meu projeto para criptografar / descriptografar alguns dados.
Estou hospedando uma chave pública ("public.pem") em um servidor.
"public.pem" é assim:
-----BEGIN PUBLIC KEY-----
.....
.....
-----END PUBLIC KEY-----
Eu escrevi um lado do cliente que baixa essa chave pública e a salva em disco e depois chama o PEM_read_RSA_PUBKEY () do OpenSSL com um descritor File para esse arquivo. Essa operação funciona muito bem e o resultado é um objeto RSA pronto para criptografia.
Eu gostaria de evitar escrever a chave pública para o disco de cada vez (desde que eu já tenha o buffer na memória).
Como posso fazer a mesma operação sem salvar o buffer no disco? Eu notei uma função chamada: PEM_read_bio_RSAPublicKey (), mas não tenho certeza do uso da estrutura BIO. Eu estou no caminho certo?
Assim, a verdadeira questão seria: Como faço para ler uma chave pública / privada para um objeto RSA diretamente da memória e não de um descritor de arquivo.