IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Clé nulle en sortie de PEM_read_bio_PrivateKey


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14
    Par défaut 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 : 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+

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Je ne connais pas du tout cette interface, mais j'ai trouvé ça sur le net:
    A frequent cause of problems is attempting to use the PEM routines like this:

    X509 *x;
    PEM_read_bio_X509(bp, &x, 0, NULL);

    this is a bug because an attempt will be made to reuse the data at x which is an uninitialised pointer.
    Ou un peu plus loin dans le même article:
    BUGS

    The PEM read routines in some versions of OpenSSL will not correctly reuse an existing structure. Therefore the following:

    PEM_read_bio_X509(bp, &x, 0, NULL);

    where x already contains a valid certificate, may not work, whereas:

    X509_free(x);
    x = PEM_read_bio_X509(bp, NULL, 0, NULL);

    is guaranteed to work.
    Peut être devrais-tu essayer de modifier ton appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkey  = PEM_read_bio_PrivateKey( bio, &pkey, NULL, password );
    Par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkey  = PEM_read_bio_PrivateKey( bio, NULL, NULL, password );

Discussions similaires

  1. [PHP 5.4] Erreur sortie de nulle part
    Par thebarbarius dans le forum Langage
    Réponses: 7
    Dernier message: 12/03/2010, 05h06
  2. Sorties, en exécution, nulles
    Par rihab1509 dans le forum Fortran
    Réponses: 4
    Dernier message: 27/04/2009, 16h02
  3. Pointeur en parametre de sortie : toujours NULL !
    Par Ange_blond dans le forum C++
    Réponses: 6
    Dernier message: 16/04/2009, 16h47
  4. Réponses: 5
    Dernier message: 24/10/2005, 15h11
  5. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo