NOM¶
X509_NAME_add_entry_by_txt, X509_NAME_add_entry_by_OBJ,
X509_NAME_add_entry_by_NID, X509_NAME_add_entry, X509_NAME_delete_entry -
Fonctions de modification des structures X509_NAME
SYNOPSIS¶
#include <openssl/x509.h>
B<int X509_NAME_add_entry_by_txt(X509_NAME *>I<nom>B<, const char *>I<champ>B<, int> I<type>B<, const unsigned char *>I<bytes>B<, int> I<len>B<, int> I<loc>B<, int> I<set>B<);>
B<int X509_NAME_add_entry_by_OBJ(X509_NAME *>I<nom>B<, ASN1_OBJECT *>I<obj>B<, int> I<type>B<, unsigned char *>I<bytes>B<, int> I<len>B<, int> I<loc>B<, int> I<set>B<);>
B<int X509_NAME_add_entry_by_NID(X509_NAME *>I<nom>B<, int> I<nid>B<, int> I<type>B<, unsigned char *>I<bytes>B<, int> I<len>B<, int> I<loc>B<, int> I<set>B<);>
B<int X509_NAME_add_entry(X509_NAME *>I<nom>B<,X509_NAME_ENTRY *>I<ne>B<, int> I<loc>B<, int> I<set>B<);>
B<X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *>I<nom>B<, int> I<loc>B<);>
DESCRIPTION¶
X509_NAME_add_entry_by_txt(),
X509_NAME_add_entry_by_OBJ() et
X509_NAME_add_entry_by_NID() ajoutent un champ dont le nom est
défini par une chaîne
champ, un objet
obj ou un
NID
nid respectivement. La valeur du champ à ajouter est dans
bytes de longueur
len. Si
len est -1 alors la longueur du
champ est calculé en interne à l'aide de
strlen(bytes).
Le type de champ est déterminé par
type qui peut
être soit une définition du type de
bytes (tel que
MBSTRING_ASC) ou un type ASN1 standard (tel que
V_ASN1_IA5STRING). La nouvelle entrée est ajoutée
à une position déterminée par
loc et
set.
X509_NAME_add_entry() ajoute une copie de la structure
X509_NAME_ENTRY ne à
nom. La nouvelle
entrée est ajoutée à une position
déterminée par
loc et
set. Puisqu'une copie de
ne est ajoutée,
ne doit être libéré
après l'appel.
X509_NAME_delete_entry() supprime une entrée de
nom
à la position
loc. L'entrée supprimée est
renvoyée et doit être libérée.
NOTES¶
L'utilisation des types chaîne telles que
MBSTRING_ASC ou
MBSTRING_UTF8 est vivement recommandée pour le paramètre
type. Cela permet au code interne de déterminer correctement le
type de champ et d'appliquer des contrôles de longueur selon les normes
en vigueur. Cela est fait en utilisant
ASN1_STRING_set_by_NID().
Si un type ASN1 est utilisé à la place, alors aucun
contrôle n'est effectué et les données dans
bytes
sont utilisées directement.
Dans
X509_NAME_add_entry_by_txt() la chaîne
field
représente le nom du champ à l'aide de
OBJ_txt2obj(
champ, 0).
Les paramètres
loc et
set déterminent où une
nouvelle entrée devrait être ajoutée. Pour la
quasi-totalité des applications
loc peut être
réglé à -1 et
set à 0. Cela ajoute une
nouvelle entrée à la fin de
nom comme une valeur unique
de « RelativeDistinguishedName » (RDN).
loc détermine en fait l'index où la nouvelle entrée
est insérée : s’il vaut -1, elle est
ajoutée à la fin.
set détermine comment le nouveau type est ajouté.
S’il vaut zéro, un nouveau RDN est créé.
Si
set est -1 ou 1, il est ajouté respectivement à la
structure RDN précédente ou suivante. Ce sera alors un RDN
multi-valeur : comme les RDN
multi-valeur sont
très rarement utilisés,
set est presque toujours mis
à zéro.
EXEMPLES¶
Créer une structure
X509_NAME :
"C=FR, O=Organisation désorganisée, CN=Joe Bloggs"
X509_NAME *nm;
nm = X509_NAME_new();
if (nm == NULL)
/* Une erreur*/
if S<( X509_NAME_add_entry_by_txt(nm,> "C", MBSTRING_ASC,
"FR", -1, -1, 0))
/* Erreur */
if S<( !X509_NAME_add_entry_by_txt(nm,> "O", MBSTRING_ASC,
"Organisation désorganisée", -1, -1, 0))
/* Erreur */
if S<( !X509_NAME_add_entry_by_txt(nm,> "CN", MBSTRING_ASC,
"Joe Bloggs", -1, -1, 0))
/* Erreur */
VALEURS DE RETOUR¶
X509_NAME_add_entry_by_txt(),
X509_NAME_add_entry_by_OBJ(),
X509_NAME_add_entry_by_NID() et
X509_NAME_add_entry() renvoient
1 en cas de succès et 0 si une erreur s'est produite.
X509_NAME_delete_entry() renvoie soit la structure
X509_NAME_ENTRY
supprimée ou NULL si une erreur s'est produite.
BOGUES¶
type peut être positionné à
V_ASN1_APP_CHOOSE
pour utiliser un algorithme différent pour déterminer les types
de champ. Puisque cette forme ne peut pas comprendre les types
multi-caractères, qu'elle n'effectue aucune vérification de
longueur et qu'elle peut entraîner des types de champs non valables,
son utilisation est fortement déconseillée.
VOIR AUSSI¶
ERR_get_error(3),
d2i_X509_NAME(3)
HISTORIQUE¶
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.