Provided by: manpages-fr-extra_20101103_all bug

NOM

       ASN1_generate_nconf, ASN1_generate_v3 - Fonction de generation ASN1

SYNOPSIS

        ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf);
        ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf);

DESCRIPTION

       Ces fonctions generent l'encodage ASN1 d'une chaine dans une structure
       ASN1_TYPE.

       str contient la chaine a encoder. nconf ou cnf contient les
       informations optionnelles de configuration dans lesquelles d'autres
       chaines seront lues. nconf proviendra typiquement d'un fichier de
       configuration tandis que cnf est obtenu dans une structure X509V3_CTX
       qui sera typiquement utilisee par les fonctions d'extension de
       certificats X509v3. cnf ou nconf peuvent valoir NULL si aucune
       configuration additionnelle ne sera utilisee.

FORMAT DES CHA^INES DE G'EN'ERATION

       Les donnees effectivement encodees sont determinees par la chaine str
       et les informations de configuration. Le format general de la chaine
       est:

       [modificateur,]type[:valeur]

       CV'est-a-dire zero modificateur ou plus separes par des virgules suivit
       d'un type, lui-meme suivit de facon optionnelle par un signe deux-point
       et une valeur. Les formats de type, valeur et modificateur sont decrits
       ci-dessous.

   TYPES PRIS EN CHARGE
       Les types pris en charge sont listes ci-dessous. A moinsque ce ne soit
       specifie explicitement, seul le format ASCII est autorise.

       BOOLEAN, BOOL
         Encoder un type booleen. La chaine valeur est obligatoire et devrait
         valoir soit TRUE soit FALSE. Les valeurs TRUE, true, Y, y, YES, yes,
         FALSE, false, N, n, NO et no sont acceptees.

       NULL
         Encoder le type NULL, la chaine valeur ne doit pas etre presente.

       INTEGER, INT
         Encoder un type ASN1 INTEGER. La chaine valeur represente la valeur
         de l'entier. Elle peut etre precedee d'un signe moins et est
         normalement interpretee comme une valeur decimale a moins que le
         prefixe 0x soit inclus.

       ENUMERATED, ENUM
         Encoder un type ASN1 ENUMERATED, par ailleur identique a INTEGER.

       OBJECT, OID
         Encoder untype ASN1 OBJECT IDENTIFIER, la chaine valeur peut etre un
         nom court, un nom long ou un format numerique.

       UTCTIME, UTC
         Encoder une structure ASN1 UTCTime. La valeur doit etre au format
         AAMMDDHHMMSSZ.

       GENERALIZEDTIME, GENTIME
         Encoder une structure ASN1 GeneralizedTime. La valeur doit etre au
         format AAAAMMDDHHMMSSZ.

       OCTETSTRING, OCT
         Encoder un type ASN1 OCTET STRING. La valeur represente le contenu de
         cette structure. Les chaines de format ASCII et HEX peuvent etre
         utilisees pour indiquer le format de valeur.

       BITSTRING, BITSTR
         Encoder un type ASN1 BIT STRING. La valeur represente le contenu de
         cette structure. Les chaines de format ASCII, HEX et BITLIST peuvent
         etre utilisees pour indiquer le format de valeur.

         Si le format differe de BITLIST, le nombre de bits non utilises est
         mis a zero.

       UNIVERSALSTRING, UNIV, IA5, IA5STRING, UTF8, UTF8String, BMP,
       BMPSTRING, VISIBLESTRING, VISIBLE, PRINTABLESTRING, PRINTABLE, T61,
       T61STRING, TELETEXSTRING, GeneralString
         Encoder les types de chaine correspondant. La valeur represente le
         contenu de cette structure.Le format peut etre ASCII ou UTF8.

       SEQUENCE, SEQ, SET
         Formater le resultat en tant que type ASN1 SEQUENCE ou SET. La valeur
         devrait etre un nom de section qui contiendra le contenu. Les noms
         des champs de la section sont ignores et les valeurs sont au format
         de la chaine generee. Si valeur est absent, alors une SEQUENCE vide
         sera encodee.

   MODIFICATEURS
       Les modificateurs affectent les structures suivantes. Ils peuvent etre
       utilises pour ajouter des etiquettes EXPLICIT ou IMPLICIT, ajouter des
       enveloppes ou changer le format de chaine du type et de la valeur
       finale. Les formats pris en charge sont documentes ci-dessous.

       EXPLICIT, EXP
         Ajouter une etiquette explicite a la structure suivante. Cette chaine
         devrait etre suivie par un deux-points et la valeur de l'etiquette a
         utiliser sous forme numerique decimale.

         En faisant suivre le nombre d'un U, A, P ou C, une etiquette de type
         UNIVERSAL, APPLICATION, PRIVATE ou CONTEXT SPECIFIC peut etre
         utilisee (CONTEXT SPECIFIC par defaut).

       IMPLICIT, IMP
         Identique a EXPLICIT sauf qu'un etiquetage IMPLICIT est utilise a la
         place.

       OCTWRAP, SEQWRAP, SETWRAP, BITWRAP
         La structure suivante est entouree par une OCTET STRING, une
         SEQUENCE, un SET ou une BIT STRING respectivement. Pour une BIT
         STRING, le nombre de bits non utilises est mis a zero.

       FORMAT
         Ceci specifie le format de la valeur finale. Il devrait etre suivi
         par un signe deux-points et une des chaines ASCII, UTF8, HEX ou
         BITLIST.

         Si aucune chaine de format n'est inclue alors ASCII est utilisee. Si
         UTF8 est specifiee alors la chaine valeur doit etre une chaine UTF8
         correcte. Pour le format HEX la sortie doit etre un ensemble de
         chiffres hexadecimaux. BITLIST (qui n'est correct que pour une BIT
         STRING) est la liste des index des bits positionnes separes par des
         virgules, tous les autres bits valent zero.

EXEMPLES

       Une IA5String simple:

        IA5STRING:Hello World

       Une IA5String etiquettee explicitement:

        EXPLICIT:0,IA5STRING:Hello World

       Une IA5String etiquettee explicitement et utilisant une etiquette
       APPLICATION:

        EXPLICIT:0A,IA5STRING:Hello World

       Une BITSTRING avec les bits 1 et 5actives et tous les autres a zero:

        FORMAT:BITLIST,BITSTRING:1,5

       Un exemple plus complexe utilisant un fichier de configuration pour
       produire une SEQUENCE constituee d'un BOOL, d'un OID et d'une
       UTF8String:

        asn1 = SEQUENCE:seq_section

        [seq_section]

        field1 = BOOLEAN:TRUE
        field2 = OID:commonName
        field3 = UTF8:Third field

       Cet exemple produit une structure RSAPrivateKey. Il s'agit de la cle
       contenue dans le fichier client.pem de toute distribution OpenSSL
       (note: les noms des champs comme <<coeff>> sont ignores et ne sont
       present que pour des raisons de clarte.

        asn1=SEQUENCE:private_key
        [private_key]
        version=INTEGER:0

        n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\
        D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9

        e=INTEGER:0x010001

        d=INTEGER:0x6F05EAD2F27FFAEC84BEC360C4B928FD5F3A9865D0FCAAD291E2A52F4A\
        F810DC6373278C006A0ABBA27DC8C63BF97F7E666E27C5284D7D3B1FFFE16B7A87B51D

        p=INTEGER:0xF3929B9435608F8A22C208D86795271D54EBDFB09DDEF539AB083DA912\
        D4BD57

        q=INTEGER:0xC50016F89DFF2561347ED1186A46E150E28BF2D0F539A1594BBD7FE467\
        46EC4F

        exp1=INTEGER:0x9E7D4326C924AFC1DEA40B45650134966D6F9DFA3A7F9D698CD4ABEA\
        9C0A39B9

        exp2=INTEGER:0xBA84003BB95355AFB7C50DF140C60513D0BA51D637272E355E397779\
        E7B2458F

        coeff=INTEGER:0x30B9E4F2AFA5AC679F920FC83F1F2DF1BAF1779CF989447FABC2F5\
        628657053A

       Cet exemple est la cle publique correspondante dan,s une structure
       SubjectPublicKeyInfo:

        # Start with a SEQUENCE
        asn1=SEQUENCE:pubkeyinfo

        # pubkeyinfo contains an algorithm identifier and the public key wrapped
        # in a BIT STRING
        [pubkeyinfo]
        algorithm=SEQUENCE:rsa_alg
        pubkey=BITWRAP,SEQUENCE:rsapubkey

        # algorithm ID for RSA is just an OID and a NULL
        [rsa_alg]
        algorithm=OID:rsaEncryption
        parameter=NULL

        # Actual public key: modulus and exponent
        [rsapubkey]
        n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\
        D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9

        e=INTEGER:0x010001

VALEURS DE RETOUR

       ASN1_generate_nconf() et ASN1_generate_v3() renvoient les donnees
       encodees sous la forme d'une structure ASN1_TYPE ou NULL si une erreur
       est survenue.

       Les codes d'erreur peuvent etre obtenus avec ERR_get_error(3).

VOIR AUSSI

       ERR_get_error(3)

HISTORIQUE

       ASN1_generate_nconf() et ASN1_generate_v3() ont ete ajoutees dans la
       version 0.9.8 d'OpenSSL.

0.9.8n                            2010-11fr::crypto::ASN1_generate_nconf(3SSL)