2010-01-07 3 views
3

Y at-il une fonction api openssl pour convertir le fichier PKCS7 en PEM? Je suis capable de convertir un fichier PKCS12 en PEM en utilisant la fonction PKCS12_parse() qui renvoie la clé et le certificat avec le mot de passe. Il n'y a pas de fonction similaire pour pkcs7.Existe-t-il une fonction OpenSSL pour convertir le fichier PKCS7 en PEM?

Mon entrée pkcs7 a juste le certificat au format binaire. Je suis capable de faire la conversion en utilisant la commande

openssl pkcs7 -inform DER -in input.p7b -printcerts -text 

Comment faire cela dans un programme C? Je suis capable de le lire à une structure PKCS7 comme ceci

FILE* fp; 
if (!(fp = fopen("ca.p7b", "rb"))) { 
    fprintf(stderr, "Error reading input pkcs7 file\n"); 
    exit(1); 
} 
PKCS7 *p7; 
p7 = d2i_PKCS7_fp(cafp, NULL); 

Répondre

1

Après quelques recherches, je suis capable de le faire.

if(p7->d.sign->cert != NULL){ 
    PEM_write_X509(fp, sk_X509_value(p7->d.sign->cert, 0)); 
} 

où P7 est un pointeur vers pkcs7 struct et fp est le pointeur de fichier à fichier PEM

Questions connexes