Clé nulle en sortie de PEM_read_bio_PrivateKey
Salut!
Pour ceux qui suivent un peu le forum, je suis toujours tanké sur le même problème. Je n'arrive pas à lire en C++ une clef stockée dans un fichier PEM. J'ai même récupéré des exemples avec leurs propres fichiers PEM et j'ai le même problème: en sortie de PEM_read_bio_PrivateKey ma clef est nulle. Et il n'y a pas de crash, juste un code retour egal à 1. Avant, avec la méthode PEM_read_PrivateKey ca se terminait en crash. En gros j'ai un peu avancé mais pas tant que ca. Visiblement le fait que je sois sous Visual Studio, dans le monde windows a beaucoup à voir dans mes problèmes. Le code pour lire la clé privée dans le fichier PEM est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| EVP_PKEY *ReadPrivateKey(const char *keyfile)
{
FILE *fp = fopen(keyfile, "r");
EVP_PKEY *pkey;
BIO *bio;
char *password;
if (!fp)
return NULL;
ERR_clear_error();
SSL_load_error_strings();
bio = BIO_new( BIO_s_file() );
BIO_read_filename( bio, fp );
pkey = PEM_read_bio_PrivateKey( bio, &pkey, NULL, password );
fclose (fp);
BIO_free(bio);
if (pkey == NULL) // ici pkey est toujours nulle.... :(
ERR_print_errors_fp (stderr);
if (pkey != NULL)
EVP_PKEY_free(pkey);
ERR_remove_state(0);
EVP_cleanup();
ERR_free_strings();
return pkey;
} |
Merci à ceux qui m'aideront!
A+