[C++] Openssl: interrogation des extensions sur les certificats X509



Answers

Le deuxième paramètre (nid) détermine le type retourné.

En regardant ce code:

http://opengrok.creo.hu/dragonfly/xref/src/crypto/openssl-0.9/crypto/x509v3/v3_purp.c#X509_check_purpose

Il semble que pour le NID d'utilisation de clé, il renvoie un ASN1_BIT_STRING. (ligne 361).

Question

Je travaille avec la classe de certificat X509 de la bibliothèque openSSL, et j'ai besoin d'interroger l'extension "utilisation de clé".

Après avoir abandonné la «documentation» d'openSSL sur les vapourware, quelques recherches sur le web ont finalement révélé que j'avais besoin d'appeler

X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx) 

et la recherche à travers l'en-tête objects.h a révélé le bon NID.

Le problème est, cet appel renvoie un pointeur sur void, qui peut apparemment pointer vers une variété de structures en fonction de l'extension demandée.

Puisqu'aucun d'entre eux ne semble être documenté, on est laissé sans moyen de comprendre comment analyser ce que la fonction renvoie.

Quelqu'un peut-il me diriger vers un document qui en parle, au lieu de simplement énumérer les choses que je peux trouver moi-même (le profil de la fonction, de quel fichier provient-il, etc.)?






Links