fr::crypto::X509_NAME_get_index_by_NID(3SSL)

NOM
X509_NAME_get_index_by_NID, X509_NAME_get_index_by_OBJ, X509_NAME_get_entry, X509_NAME_entry_count, X509_NAME_get_text_by_NID, X509_NAME_get_text_by_OBJ - Fonctions de recherche et d'indexation de structures X509_NAME

SYNOPSIS
 #include <openssl/x509.h>

int X509_NAME_get_index_by_NID(X509_NAME *nom,int nid,int dern_pos);
 int X509_NAME_get_index_by_OBJ(X509_NAME *nom,ASN1_OBJECT *obj, int dern_pos);

int X509_NAME_entry_count(X509_NAME *name);
 X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *nom, int loc);

int X509_NAME_get_text_by_NID(X509_NAME *nom, int nid, char *buf,int len);
 int X509_NAME_get_text_by_OBJ(X509_NAME *nom, ASN1_OBJECT *obj, char *buf,int len);

DESCRIPTION
Ces fonctions permettent d'examiner une structure X509_NAME. La structure X509_NAME est la même que celle de type Name définie dans la RFC2459 (et ailleurs) et utilisée par exemple dans le sujet du certificat et les noms d'émetteur.

X509_NAME_get_index_by_NID() et X509_NAME_get_index_by_OBJ() récupèrent le prochain indice concordant à nid ou obj après dern_pos. dern_pos devrait d'abord être mis à -1. S'il n'y a pas plus d'entrées, -1 est renvoyé.

X509_NAME_entry_count() renvoie le nombre total d'entrées dans nom .

X509_NAME_get_entry() récupère la structure X509_NAME_ENTRY dans nom correspondant à l'indice loc. Les valeurs acceptables pour loc vont de 0 à (X509_NAME_entry_count(name) − 1). La valeur renvoyée est un pointeur interne qui ne doit pas être libéré.

X509_NAME_get_text_by_NID(), X509_NAME_get_text_by_OBJ() récupèrent le « texte » de la première entrée dans nom qui correspond à nid ou obj. Si aucune entrée n'existe, -1 est renvoyé. Au moins len octets seront écrits et le texte écrit sur buf sera terminé par NULL. La longueur de la chaîne de sortie est renvoyée, à l'exclusion du caractère NULL de fin. Si buf est NULL, alors la quantité d'espace nécessaire dans buf (hors NULL final) est renvoyée.

NOTES
X509_NAME_get_text_by_NID() et X509_NAME_get_text_by_OBJ() sont des fonctions anciennes qui ont diverses limitations qui rendent leur utilisation restreinte dans la pratique. Elles ne peuvent trouver que la première entrée correspondante et copier le contenu du champ in extenso : ce peut être très déroutant si la cible est une chaîne multi-caractères comme un BMPString ou un UTF8String.

Pour une solution plus générale, X509_NAME_get_index_by_NID() ou X509_NAME_get_index_by_OBJ() doit être utilisée, suivie par X509_NAME_get_entry() sur chaque indice correspondant, puis les divers utilitaires X509_NAME_ENTRY sur le résultat.

La liste de tous les codes NID_* et OBJ_* est disponible dans les fichiers d’en-têtes de code source <openssl/obj_mac.h> et <openssl/objects.h>.

EXEMPLES
Traiter toutes les entrées :

 int i;
 X509_NAME_ENTRY *e;

 for (i = 0; i < X509_NAME_entry_count(nm); i++)
        {
        e = X509_NAME_get_entry(nm, i);
        /* Faire quelque chose avec e */
        }

Traiter toutes les entrées commonName :

 int loc;
 X509_NAME_ENTRY *e;

 loc = -1;
 for (;;)
        {
        dern_pos = X509_NAME_get_index_by_NID(nm, NID_commonName, dern_pos);
        if (dern_pos == -1)
                break;
        e = X509_NAME_get_entry(nm, dern_pos);
        /* Faire quelque chose avec e */
        }

VALEURS DE RETOUR
X509_NAME_get_index_by_NID() et X509_NAME_get_index_by_OBJ() renvoient l'index de la prochaine entrée correspondante ou -1 si elle n'est pas trouvée.

X509_NAME_entry_count() renvoie le nombre total d'entrées.

X509_NAME_get_entry() renvoie un pointeur X509_NAME vers l'entrée demandée ou NULL si l'index n'est pas valable.

VOIR AUSSI
ERR_get_error(3), d2i_X509_NAME(3)

HISTORIQUE
À préciser

TRADUCTION
La traduction de cette page de manuel est maintenue par les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.