Provided by: manpages-fr-extra_20151231_all bug

NOM

       OBJ_nid2obj, OBJ_nid2ln, OBJ_nid2sn, OBJ_obj2nid, OBJ_txt2nid, OBJ_ln2nid, OBJ_sn2nid,
       OBJ_cmp, OBJ_dup, OBJ_txt2obj, OBJ_obj2txt, OBJ_create, OBJ_cleanup - Fonctions
       utilitaires de l'objet ASN1.

SYNOPSIS

        #include <openssl/objects.h>

        ASN1_OBJECT * OBJ_nid2obj(int n);
        const char *  OBJ_nid2ln(int n);
        const char *  OBJ_nid2sn(int n);

        int OBJ_obj2nid(const ASN1_OBJECT *o);
        int OBJ_ln2nid(const char *ln);
        int OBJ_sn2nid(const char *sn);

        int OBJ_txt2nid(const char *s);

        ASN1_OBJECT * OBJ_txt2obj(const char *s, int no_name);
        int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name);

        int OBJ_cmp(const ASN1_OBJECT *a,const ASN1_OBJECT *b);
        ASN1_OBJECT * OBJ_dup(const ASN1_OBJECT *o);

        int OBJ_create(const char *oid,const char *sn,const char *ln);
        void OBJ_cleanup(void);

DESCRIPTION

       Les fonctions utilitaires de l'objet ASN1 traitent les structures ASN1_OBJECT qui sont une
       représentation du type ASN1 OBJECT IDENTIFIER (OID).

       OBJ_nid2obj(), OBJ_nid2ln() et OBJ_nid2sn() convertissent le NID n en une structure
       ASN1_OBJECT, son nom long et son nom court respectivement, ou NULL s'il y a eu une erreur.

       OBJ_obj2nid(), OBJ_ln2nid() et OBJ_sn2nid() renvoient le NID correspondant à l'objet o, le
       nom long <ln> ou le nom court <sn> respectivement, ou NID_undef s'il y a eu une erreur.

       OBJ_txt2nid() renvoie NID correspondant à la chaîne de caractères <s>. s peut être un nom
       long, un nom court ou une représentation numérique d'un objet.

       OBJ_txt2obj() convertit la chaîne de caractères s en une structure ASN1_OBJECT. Si no_name
       vaut 0, alors les noms longs et courts ainsi que les formes numériques seront interprétés.
       Si no_name vaut 1, seule la forme numérique est acceptée.

       OBJ_obj2txt() convertit le ASN1_OBJECT a en une représentation textuelle. La
       représentation est écrite sous forme de chaîne, terminée par null, dans buf avec une
       taille maximale de buf_len, le résultat est tronqué si nécessaire. La taille de l'espace
       nécessaire est renvoyée. Si no_name vaut 0 et si l'objet a un nom long ou court alors ce
       nom sera utilisé, sinon la valeur numérique sera utilisée. Si no_name vaut 1 alors la
       forme numérique sera toujours utilisée.

       OBJ_cmp() compare a et b. Si les deux sont identiques, le code de retour sera 0.

       OBJ_dup() renvoie une copie de o.

       OBJ_create() ajoute un nouvel objet à la table interne. oid est la forme numérique
       provenant de l'objet, sn le nom court et ln le nom long. Un nouvel NID est renvoyé pour
       l'objet créé.

       OBJ_cleanup() nettoie la table d'objets interne d'OpenSSL : celle-ci devrait être appelée
       avant qu'une application se termine si un objet a été ajouté en utilisant OBJ_create().

NOTES

       Dans OpenSSL, les objets peuvent avoir un nom court, un nom long et un identifiant
       numérique (NID) qui leur sont associés. Un ensemble d'objets est représenté comme une
       table interne. Les valeurs appropriées sont définies dans le fichier d'en-tête objects.h.

       Par exemple, l'OID pour commonName a les définitions suivantes :

        #define SN_commonName                   "CN"
        #define LN_commonName                   "commonName"
        #define NID_commonName                  13

       De nouveaux objets peuvent être ajoutés en appelant OBJ_create().

       Les tables ont un certain avantage par rapport aux autres objets : par exemple, leurs NID
       peuvent être utilisés dans une déclaration de switch en C. Ce sont aussi des objets
       statiques constants qui sont échangés : il n'y a qu'une unique structure constante pour
       chaque table.

       Les objets n'étant pas dans la table ont NID_undef comme valeur de NID.

       Les objets n'ont pas besoin de tables internes pour être traités, les fonctions
       OBJ_txt2obj() et OBJ_obj2txt() peuvent traiter la forme numérique d'un OID.

EXEMPLES

       Créer un objet pour commonName:

        ASN1_OBJECT *o;
        o = OBJ_nid2obj(NID_commonName);

       Vérifier si un objet est commonName

        if (OBJ_obj2nid(obj) == NID_commonName)
               /* Faire quelque chose */

       Créer un nouveau NID et initialiser un objet à partir de celui-ci :

        int new_nid;
        ASN1_OBJECT *obj;
        new_nid = OBJ_create("1.2.3.4", "NewOID", "New Object Identifier");

        obj = OBJ_nid2obj(new_nid);

       Créer directement un nouvel objet :

        obj = OBJ_txt2obj("1.2.3.4", 1);

BOGUES

       OBJ_obj2txt() est délicate et compliquée à utiliser : elle ne suit pas les conventions des
       autres fonctions d'OpenSSL où le tampon peut être mis à NULL pour déterminer la quantité
       de données qui devraient être écrites. Au lieu de cela buf doit pointer vers un tampon
       valide et buf_len doit être une valeur positive. Un tampon ayant une longueur de 80
       devrait être suffisant pour traiter n'importe quel OID rencontré.

VALEURS DE RETOUR

       OBJ_nid2obj() renvoie une structure ASN1_OBJECT ou NULL en cas d'erreur.

       OBJ_nid2ln() et OBJ_nid2sn() renvoient une chaîne de caractères valide ou NULL en cas
       d'erreur.

       OBJ_obj2nid(), OBJ_ln2nid(), OBJ_sn2nid() et OBJ_txt2nid() renvoient un NID ou NID_undef
       en cas d'erreur.

VOIR AUSSI

       ERR_get_error(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.