.\" 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::ASN1_generate_nconf 3SSL" .TH fr::crypto::ASN1_generate_nconf 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" ASN1_generate_nconf, ASN1_generate_v3 \- Fonction de génération \s-1ASN1\s0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" \fB#include \fR .PP \fB\s-1ASN1_TYPE\s0 *ASN1_generate_nconf(char *\fR\fIstr\fR\fB, \s-1CONF\s0 *\fR\fInconf\fR\fB);\fR \fB\s-1ASN1_TYPE\s0 *ASN1_generate_v3(char *\fR\fIstr\fR\fB, X509V3_CTX *\fR\fIcnf\fR\fB);\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" Ces fonctions génèrent l'encodage \s-1ASN1\s0 d'une chaîne dans une structure \&\fB\s-1ASN1_TYPE\s0\fR. .PP \&\fIstr\fR contient la chaîne à encoder. \fInconf\fR ou \fIcnf\fR contiennent les renseignements facultatifs de configuration dans lesquelles d'autres chaînes seront lues. \fInconf\fR proviendra typiquement d'un fichier de configuration tandis que \fIcnf\fR est obtenu dans une structure \fBX509V3_CTX\fR qui sera typiquement utilisée par les fonctions d'extension de certificats X509 v3. \fIcnf\fR ou \fInconf\fR peuvent valoir \s-1NULL\s0 si aucune configuration supplémentaire n'est utilisée. .SH "FORMAT DES CHAÎNES DE GÉNÉRATION" .IX Header "FORMAT DES CHAÎNES DE GÉNÉRATION" Les données effectivement encodées sont déterminées par la chaîne \fIstr\fR et les informations de configuration. Le format général de la chaîne est : .IP "[\fImodificateur\fR\fB,\fR]\fItype\fR[\fB:\fR\fIvaleur\fR]" 2 .IX Item "[modificateur,]type[:valeur]" .PP C'est\-à\-dire zéro modificateur ou plus, séparés par des virgules, suivis d'un type, lui\-même suivi de façon facultative par un deux-points et une valeur. Les formats de \fItype\fR, \fIvaleur\fR et \fImodificateur\fR sont décrits ci-dessous. .SS "\s-1TYPES PRIS EN CHARGE\s0" .IX Subsection "TYPES PRIS EN CHARGE" Les types pris en charge sont décrits ci-dessous. À moins que ce ne soit indiqué explicitement, seul le format \fB\s-1ASCII\s0\fR est autorisé. .IP "\fB\s-1BOOLEAN\s0\fR, \fB\s-1BOOL\s0\fR" 2 .IX Item "BOOLEAN, BOOL" Encoder un type booléen. La chaîne \fIvaleur\fR est obligatoire et devrait valoir soit \fB\s-1TRUE\s0\fR, soit \fB\s-1FALSE\s0\fR. Les valeurs \fB\s-1TRUE\s0\fR, \fBtrue\fR, \fBY\fR, \&\fBy\fR, \fB\s-1YES\s0\fR, \fByes\fR, \fB\s-1FALSE\s0\fR, \fBfalse\fR, \fBN\fR, \fBn\fR, \fB\s-1NO\s0\fR et \fBno\fR sont acceptées. .IP "\fB\s-1NULL\s0\fR" 2 .IX Item "NULL" Encoder le type \s-1NULL,\s0 la chaîne \fIvaleur\fR ne doit pas être présente. .IP "\fB\s-1INTEGER\s0\fR, \fB\s-1INT\s0\fR" 2 .IX Item "INTEGER, INT" Encoder un type \s-1ASN1 \s0\fB\s-1INTEGER\s0\fR. La chaîne \fIvaleur\fR représente la valeur de l'entier. Elle peut être précédée d'un signe moins et est normalement interprétée comme une valeur décimale à moins que le préfixe \fB0x\fR soit inclus. .IP "\fB\s-1ENUMERATED\s0\fR, \fB\s-1ENUM\s0\fR" 2 .IX Item "ENUMERATED, ENUM" Encoder un type \s-1ASN1 \s0\fB\s-1ENUMERATED\s0\fR, par ailleurs identique à \fB\s-1INTEGER\s0\fR. .IP "\fB\s-1OBJECT\s0\fR, \fB\s-1OID\s0\fR" 2 .IX Item "OBJECT, OID" Encoder un type \s-1ASN1 \s0\fB\s-1OBJECT IDENTIFIER\s0\fR, la chaîne \fIvaleur\fR peut être un nom court, un nom long ou un format numérique. .IP "\fB\s-1UTCTIME\s0\fR, \fB\s-1UTC\s0\fR" 2 .IX Item "UTCTIME, UTC" Encoder une structure \s-1ASN1 \s0\fBUTCTime\fR. La \fIvaleur\fR doit être au format \&\fI\s-1AAMMDDHHMMSSZ\s0\fR. .IP "\fB\s-1GENERALIZEDTIME\s0\fR, \fB\s-1GENTIME\s0\fR" 2 .IX Item "GENERALIZEDTIME, GENTIME" Encoder une structure \s-1ASN1 \s0\fBGeneralizedTime\fR. La \fIvaleur\fR doit être au format \fI\s-1AAAAMMDDHHMMSSZ\s0\fR. .IP "\fB\s-1OCTETSTRING\s0\fR, \fB\s-1OCT\s0\fR" 2 .IX Item "OCTETSTRING, OCT" Encoder un type \s-1ASN1 \s0\fB\s-1OCTET STRING\s0\fR. La \fIvaleur\fR représente le contenu de cette structure. Les chaînes de format \fB\s-1ASCII\s0\fR et \fB\s-1HEX\s0\fR peuvent être utilisées pour indiquer le format de \fIvaleur\fR. .IP "\fB\s-1BITSTRING\s0\fR, \fB\s-1BITSTR\s0\fR" 2 .IX Item "BITSTRING, BITSTR" Encoder un type \s-1ASN1 \s0\fB\s-1BIT STRING\s0\fR. La \fIvaleur\fR représente le contenu de cette structure. Les chaînes de format \fB\s-1ASCII\s0\fR, \fB\s-1HEX\s0\fR et \fB\s-1BITLIST\s0\fR peuvent être utilisées pour indiquer le format de \fIvaleur\fR. .Sp Si le format diffère de \fB\s-1BITLIST\s0\fR, le nombre de bits non utilisés est mis à zéro. .IP "\fB\s-1UNIVERSALSTRING\s0\fR, \fB\s-1UNIV\s0\fR, \fB\s-1IA5\s0\fR, \fB\s-1IA5STRING\s0\fR, \fB\s-1UTF8\s0\fR, \fBUTF8String\fR, \fB\s-1BMP\s0\fR, \fB\s-1BMPSTRING\s0\fR, \fB\s-1VISIBLESTRING\s0\fR, \fB\s-1VISIBLE\s0\fR, \fB\s-1PRINTABLESTRING\s0\fR, \fB\s-1PRINTABLE\s0\fR, \fBT61\fR, \fBT61STRING\fR, \fB\s-1TELETEXSTRING\s0\fR, \fBGeneralString\fR, \fB\s-1NUMERICSTRING\s0\fR, \fB\s-1NUMERIC\s0\fR" 2 .IX Item "UNIVERSALSTRING, UNIV, IA5, IA5STRING, UTF8, UTF8String, BMP, BMPSTRING, VISIBLESTRING, VISIBLE, PRINTABLESTRING, PRINTABLE, T61, T61STRING, TELETEXSTRING, GeneralString, NUMERICSTRING, NUMERIC" Encoder les types de chaîne correspondant. La \fIvaleur\fR représente le contenu de cette structure. Le format peut être \fB\s-1ASCII\s0\fR ou \fB\s-1UTF8\s0\fR. .IP "\fB\s-1SEQUENCE\s0\fR, \fB\s-1SEQ\s0\fR, \fB\s-1SET\s0\fR" 2 .IX Item "SEQUENCE, SEQ, SET" Formater le résultat en tant que type \s-1ASN1 \s0\fB\s-1SEQUENCE\s0\fR ou \fB\s-1SET\s0\fR. La \&\fIvaleur\fR devrait être un nom de section qui contiendra le contenu. Les noms des champs de la section sont ignorés et les valeurs sont au format de la chaîne créée. Si \fIvaleur\fR est absent, alors une \s-1SEQUENCE\s0 vide sera encodée. .SS "\s-1MODIFICATEURS\s0" .IX Subsection "MODIFICATEURS" Les modificateurs affectent les structures suivantes. Ils peuvent être utilisés pour ajouter des étiquettes \s-1EXPLICIT\s0 ou \s-1IMPLICIT,\s0 ajouter des enveloppes ou changer le format de chaîne du type et de la valeur finale. Les formats pris en charge sont documentés ci-dessous. .IP "\fB\s-1EXPLICIT\s0\fR, \fB\s-1EXP\s0\fR" 2 .IX Item "EXPLICIT, EXP" Ajouter une étiquette explicite à la structure suivante. Cette chaîne devrait être suivie par un deux-points et la valeur de l'étiquette à utiliser sous forme numérique décimale. .Sp En faisant suivre le nombre d'un \fBU\fR, \fBA\fR, \fBP\fR ou \fBC\fR, une étiquette de type \s-1UNIVERSAL, APPLICATION, PRIVATE\s0 ou \s-1CONTEXT SPECIFIC\s0 peut être utilisée (\s-1CONTEXT SPECIFIC\s0 par défaut). .IP "\fB\s-1IMPLICIT\s0\fR, \fB\s-1IMP\s0\fR" 2 .IX Item "IMPLICIT, IMP" Identique à \fB\s-1EXPLICIT\s0\fR sauf qu'un étiquetage \s-1IMPLICIT\s0 est utilisé à la place. .IP "\fB\s-1OCTWRAP\s0\fR, \fB\s-1SEQWRAP\s0\fR, \fB\s-1SETWRAP\s0\fR, \fB\s-1BITWRAP\s0\fR" 2 .IX Item "OCTWRAP, SEQWRAP, SETWRAP, BITWRAP" La structure suivante est entourée par une \s-1OCTET STRING,\s0 une \s-1SEQUENCE,\s0 un \&\s-1SET\s0 ou une \s-1BIT STRING\s0 respectivement. Pour une \s-1BIT STRING,\s0 le nombre de bits non utilisés est mis à zéro. .IP "\fB\s-1FORMAT\s0\fR" 2 .IX Item "FORMAT" Indique le format de la valeur finale. Il devrait être suivi par un deux-points et une des chaînes \fB\s-1ASCII\s0\fR, \fB\s-1UTF8\s0\fR, \fB\s-1HEX\s0\fR ou \fB\s-1BITLIST\s0\fR. .Sp Si aucune chaîne de format n'est incluse, \fB\s-1ASCII\s0\fR est utilisée. Si \fB\s-1UTF8\s0\fR est indiquée, alors la chaîne \fIvaleur\fR doit être une chaîne \fB\s-1UTF8\s0\fR correcte. Pour le format \fB\s-1HEX\s0\fR, la sortie doit être un ensemble de chiffres hexadécimaux. \fB\s-1BITLIST\s0\fR (qui n'est correct que pour une \s-1BIT STRING\s0) est la liste des index des bits positionnés séparés par des virgules, tous les autres bits valent zéro. .SH "EXEMPLES" .IX Header "EXEMPLES" Une IA5String simple : .PP .Vb 1 \& IA5STRING:Salut le monde .Ve .PP Une IA5String étiquetée explicitement : .PP .Vb 1 \& EXPLICIT:0,IA5STRING:Salut le monde .Ve .PP Une IA5String étiquetée explicitement et utilisant une étiquette \&\s-1APPLICATION :\s0 .PP .Vb 1 \& EXPLICIT:0A,IA5STRING:Salut le monde .Ve .PP Une \s-1BITSTRING\s0 avec les bits 1 et 5 activés et tous les autres à zéro : .PP .Vb 1 \& FORMAT:BITLIST,BITSTRING:1,5 .Ve .PP Un exemple plus complexe utilisant un fichier de configuration pour produire une \s-1SEQUENCE\s0 constituée d'un \s-1BOOL,\s0 d'un \s-1OID\s0 et d'une UTF8String : .PP .Vb 1 \& asn1 = SEQUENCE:seq_section \& \& [seq_section] \& \& field1 = BOOLEAN:TRUE \& field2 = OID:commonName \& field3 = UTF8:Troisième champ .Ve .PP Cet exemple produit une structure RSAPrivateKey. Il s'agit de la clef contenue dans le fichier client.pem de toute distribution OpenSSL (remarque : les noms des champs comme « coeff » sont ignorés et ne sont présents que par souci de clarté. .PP .Vb 3 \& asn1=SEQUENCE:private_key \& [private_key] \& version=INTEGER:0 \& \& n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\e \& D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9 \& \& e=INTEGER:0x010001 \& \& d=INTEGER:0x6F05EAD2F27FFAEC84BEC360C4B928FD5F3A9865D0FCAAD291E2A52F4A\e \& F810DC6373278C006A0ABBA27DC8C63BF97F7E666E27C5284D7D3B1FFFE16B7A87B51D \& \& p=INTEGER:0xF3929B9435608F8A22C208D86795271D54EBDFB09DDEF539AB083DA912\e \& D4BD57 \& \& q=INTEGER:0xC50016F89DFF2561347ED1186A46E150E28BF2D0F539A1594BBD7FE467\e \& 46EC4F \& \& exp1=INTEGER:0x9E7D4326C924AFC1DEA40B45650134966D6F9DFA3A7F9D698CD4ABEA\e \& 9C0A39B9 \& \& exp2=INTEGER:0xBA84003BB95355AFB7C50DF140C60513D0BA51D637272E355E397779\e \& E7B2458F \& \& coeff=INTEGER:0x30B9E4F2AFA5AC679F920FC83F1F2DF1BAF1779CF989447FABC2F5\e \& 628657053A .Ve .PP Cet exemple est la clef publique correspondante dans une structure SubjectPublicKeyInfo : .PP .Vb 2 \& # Commencer par une SEQUENCE \& asn1=SEQUENCE:pubkeyinfo \& \& # pubkeyinfo contient un identificateur d\*(Aqalgorithme et la clef publique \& # enveloppés dans une BIT STRING \& [pubkeyinfo] \& algorithm=SEQUENCE:rsa_alg \& pubkey=BITWRAP,SEQUENCE:rsapubkey \& \& # l\*(Aqidentifiant d\*(Aqalgorithme pour RSA est un simple OID et un NULL \& [rsa_alg] \& algorithm=OID:rsaEncryption \& parameter=NULL \& \& # Véritable clef publique : module et exposant \& [rsapubkey] \& n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\e \& D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9 \& \& e=INTEGER:0x010001 .Ve .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" \&\fBASN1_generate_nconf\fR() et \fBASN1_generate_v3\fR() renvoient les données encodées sous la forme d'une structure \fB\s-1ASN1_TYPE\s0\fR ou \s-1NULL\s0 si une erreur est survenue. .PP Les codes d'erreur peuvent être obtenus avec \fBERR_get_error\fR(3). .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBERR_get_error\fR(3) .SH "HISTORIQUE" .IX Header "HISTORIQUE" \&\fBASN1_generate_nconf\fR() et \fBASN1_generate_v3\fR() ont été ajoutées dans la version 0.9.8 d'OpenSSL. .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.