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.