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 : 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;
}
Merci à ceux qui m'aideront!

A+