fr::crypto::X509_NAME_add_entry_by_txt(3SSL)

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>

int X509_NAME_add_entry_by_txt(X509_NAME *nom, const char *champ, int type, const unsigned char *bytes, int len, int loc, int set);

int X509_NAME_add_entry_by_OBJ(X509_NAME *nom, ASN1_OBJECT *obj, int type, unsigned char *bytes, int len, int loc, int set);

int X509_NAME_add_entry_by_NID(X509_NAME *nom, int nid, int type, unsigned char *bytes, int len, int loc, int set);

int X509_NAME_add_entry(X509_NAME *nom,X509_NAME_ENTRY *ne, int loc, int set);

X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *nom, int loc);

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.