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:
Merci à ceux qui m'aideront!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
A+
Partager