2011-05-22 3 views
5

Je travaille sur un client HTTPS et j'ai réussi à établir une connexion sécurisée et obtenir le certificat X509 en utilisant:
X509 *cert = SSL_get_certificate(ssl); (SSL est SSL *). Comment puis-je enregistrer le certificat dans un fichier?

En outre, je dois obtenir les champs «DN de l'objet» et «DN de l'émetteur» du certificat.Enregistrer le certificat X509 dans un fichier

Répondre

7

- Comment enregistrer le certificat dans un fichier?

#include <openssl/pem.h> 
int PEM_write_X509(FILE *fp, X509 *x); 

- , je dois aussi obtenir des champs "Sujet DN" et "DN" émetteur du certificat.

#include <openssl/x509.h> 
X509_NAME *  X509_get_issuer_name(X509 *a); 
X509_NAME *  X509_get_subject_name(X509 *a); 
+2

'X509_NAME_oneline()' est utile pour convertir les structures 'X509_NAME' en chaînes de texte brut. – caf

2

Pour encoder le certificat dans un fichier que vous pouvez utiliser cette fonction OpenSSL:

int i2d_X509_fp(X509 *x, FILE *fp); 

Il code pour le fichier dans la structure X509 pointée par x en utilisant le codage DER. Plus de détails sur le OpenSSL API reference.

+0

La forme correcte est 'int i2d_X509_fp (FICHIER * fp, X509 * x);' – Kyrol

Questions connexes