.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "fr::crypto::OBJ_nid2obj 3SSL" .TH fr::crypto::OBJ_nid2obj 3SSL "2015-12-31" "1.0.2a 1.0.2c" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOM" .IX Header "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 \s-1ASN1.\s0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& 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); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Les fonctions utilitaires de l'objet \s-1ASN1\s0 traitent les structures \&\s-1ASN1_OBJECT\s0 qui sont une représentation du type \s-1ASN1 OBJECT IDENTIFIER \&\s0(\s-1OID\s0). .PP \&\fIOBJ_nid2obj()\fR, \fIOBJ_nid2ln()\fR et \fIOBJ_nid2sn()\fR convertissent le \s-1NID \s0\fBn\fR en une structure \s-1ASN1_OBJECT,\s0 son nom long et son nom court respectivement, ou \s-1NULL\s0 s'il y a eu une erreur. .PP \&\fIOBJ_obj2nid()\fR, \fIOBJ_ln2nid()\fR et \fIOBJ_sn2nid()\fR renvoient le \s-1NID\s0 correspondant à l'objet \fBo\fR, le nom long ou le nom court respectivement, ou NID_undef s'il y a eu une erreur. .PP \&\fIOBJ_txt2nid()\fR renvoie \s-1NID\s0 correspondant à la chaîne de caractères . \fBs\fR peut être un nom long, un nom court ou une représentation numérique d'un objet. .PP \&\fIOBJ_txt2obj()\fR convertit la chaîne de caractères \fBs\fR en une structure \&\s-1ASN1_OBJECT.\s0 Si \fBno_name\fR vaut 0, alors les noms longs et courts ainsi que les formes numériques seront interprétés. Si \fBno_name\fR vaut 1, seule la forme numérique est acceptée. .PP \&\fIOBJ_obj2txt()\fR convertit le \fB\s-1ASN1_OBJECT\s0\fR \fBa\fR en une représentation textuelle. La représentation est écrite sous forme de chaîne, terminée par null, dans \fBbuf\fR avec une taille maximale de \fBbuf_len\fR, le résultat est tronqué si nécessaire. La taille de l'espace nécessaire est renvoyée. Si \&\fBno_name\fR 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 \fBno_name\fR vaut 1 alors la forme numérique sera toujours utilisée. .PP \&\fIOBJ_cmp()\fR compare \fBa\fR et \fBb\fR. Si les deux sont identiques, le code de retour sera 0. .PP \&\fIOBJ_dup()\fR renvoie une copie de \fBo\fR. .PP \&\fIOBJ_create()\fR ajoute un nouvel objet à la table interne. \fBoid\fR est la forme numérique provenant de l'objet, \fBsn\fR le nom court et \fBln\fR le nom long. Un nouvel \s-1NID\s0 est renvoyé pour l'objet créé. .PP \&\fIOBJ_cleanup()\fR 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 \fIOBJ_create()\fR. .SH "NOTES" .IX Header "NOTES" Dans OpenSSL, les objets peuvent avoir un nom court, un nom long et un identifiant numérique (\s-1NID\s0) 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 \fBobjects.h\fR. .PP Par exemple, l'\s-1OID\s0 pour commonName a les définitions suivantes : .PP .Vb 3 \& #define SN_commonName "CN" \& #define LN_commonName "commonName" \& #define NID_commonName 13 .Ve .PP De nouveaux objets peuvent être ajoutés en appelant \fIOBJ_create()\fR. .PP Les tables ont un certain avantage par rapport aux autres objets : par exemple, leurs \s-1NID\s0 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. .PP Les objets n'étant pas dans la table ont NID_undef comme valeur de \s-1NID.\s0 .PP Les objets n'ont pas besoin de tables internes pour être traités, les fonctions \fIOBJ_txt2obj()\fR et \fIOBJ_obj2txt()\fR peuvent traiter la forme numérique d'un \s-1OID.\s0 .SH "EXEMPLES" .IX Header "EXEMPLES" Créer un objet pour \fBcommonName\fR: .PP .Vb 2 \& ASN1_OBJECT *o; \& o = OBJ_nid2obj(NID_commonName); .Ve .PP Vérifier si un objet est \fBcommonName\fR .PP .Vb 2 \& if (OBJ_obj2nid(obj) == NID_commonName) \& /* Faire quelque chose */ .Ve .PP Créer un nouveau \s-1NID\s0 et initialiser un objet à partir de celui-ci : .PP .Vb 3 \& int new_nid; \& ASN1_OBJECT *obj; \& new_nid = OBJ_create("1.2.3.4", "NewOID", "New Object Identifier"); \& \& obj = OBJ_nid2obj(new_nid); .Ve .PP Créer directement un nouvel objet : .PP .Vb 1 \& obj = OBJ_txt2obj("1.2.3.4", 1); .Ve .SH "BOGUES" .IX Header "BOGUES" \&\fIOBJ_obj2txt()\fR est délicate et compliquée à utiliser : elle ne suit pas les conventions des autres fonctions d'OpenSSL où le tampon peut être mis à \s-1NULL\s0 pour déterminer la quantité de données qui devraient être écrites. Au lieu de cela \fBbuf\fR doit pointer vers un tampon valide et \fBbuf_len\fR doit être une valeur positive. Un tampon ayant une longueur de 80 devrait être suffisant pour traiter n'importe quel \s-1OID\s0 rencontré. .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" \&\fIOBJ_nid2obj()\fR renvoie une structure \fB\s-1ASN1_OBJECT\s0\fR ou \s-1NULL\s0 en cas d'erreur. .PP \&\fIOBJ_nid2ln()\fR et \fIOBJ_nid2sn()\fR renvoient une chaîne de caractères valide ou \&\s-1NULL\s0 en cas d'erreur. .PP \&\fIOBJ_obj2nid()\fR, \fIOBJ_ln2nid()\fR, \fIOBJ_sn2nid()\fR et \fIOBJ_txt2nid()\fR renvoient un \s-1NID\s0 ou \fBNID_undef\fR en cas d'erreur. .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fIERR_get_error\fR\|(3) .SH "HISTORIQUE" .IX Header "HISTORIQUE" À préciser .SH "TRADUCTION" .IX Header "TRADUCTION" La traduction de cette page de manuel est maintenue par les membres de la liste . Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.