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>
B<int X509_NAME_get_index_by_NID(X509_NAME *>I<nom>B<,int> I<nid>B<,int> I<dern_pos>B<);>
B<int X509_NAME_get_index_by_OBJ(X509_NAME *>I<nom>B<,ASN1_OBJECT *>I<obj>B<, int> I<dern_pos>B<);>
B<int X509_NAME_entry_count(X509_NAME *>I<name>B<);>
B<X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *>I<nom>B<, int> I<loc>B<);>
B<int X509_NAME_get_text_by_NID(X509_NAME *>I<nom>B<, int> I<nid>B<, char *>I<buf>B<,int> I<len>B<);>
B<int X509_NAME_get_text_by_OBJ(X509_NAME *>I<nom>B<, ASN1_OBJECT *>I<obj>B<, char *>I<buf,int len>B<);>
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.