Estoy utilizando SSL con éxito hasta el momento, pero me he encontrado con un obstáculo confuso. Genero un par de llaves RSA, y anteriormente estaba usando PEM_write_bio_RSAPrivateKey (...) para exportarlos. Sin embargo, las páginas man dicen que el formato está desactualizado (y de hecho se ve diferente al formato PEM habitual). En su lugar, recomienda PEM_write_bio_PKCS8PrivateKey (...).C++ clave privada de exportación OpenSSL
Sin embargo, PEM_write_bio_PKCS8PrivateKey acepta un objeto EVP_PKEY. ¿Cómo puedo convertir mi par de llaves RSA * en una estructura EVP_PKEY * para usar en esa función?
EVP_PKEY* evpkey = EVP_PKEY_new();
if (!EVP_PKEY_assign_RSA(evpkey, keypair))
throw ReadError();
int ret = PEM_write_bio_PKCS8PrivateKey(bio, evpkey, EVP_aes_256_cbc(),
pass_char_str, pass_len, NULL, NULL);
ret es siempre 0. Utilizando la mayor PEM_write_bio_RSAPrivateKey funciona para mí. Estoy buscando exportar mis llaves para que se vean así:
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCvdbGZes3N/v3EqbbwYHW4rr4Wgav9eD36kVD7Hn5LIKwhfAqd
...
-----END RSA PRIVATE KEY-----
Thanks.
¿Cuál es el valor de 'pass_len'? –