Provided by: manpages-fr-extra_20151231_all bug

NOM

       ASN1_generate_nconf, ASN1_generate_v3 - Fonction de génération ASN1

SYNOPSIS

        #include <openssl/asn1.h>

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

DESCRIPTION

       Ces fonctions génèrent l'encodage ASN1 d'une chaîne dans une structure ASN1_TYPE.

       str contient la chaîne à encoder. nconf ou cnf contiennent les renseignements facultatifs de
       configuration dans lesquelles d'autres chaînes seront lues. nconf proviendra typiquement d'un fichier de
       configuration tandis que cnf est obtenu dans une structure X509V3_CTX qui sera typiquement utilisée par
       les fonctions d'extension de certificats X509 v3. cnf ou nconf peuvent valoir NULL si aucune
       configuration supplémentaire n'est utilisée.

FORMAT DES CHAÎNES DE GÉNÉRATION

       Les données effectivement encodées sont déterminées par la chaîne str et les informations de
       configuration. Le format général de la chaîne est :

       [modificateur,]type[:valeur]

       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  type,  valeur  et  modificateur  sont
       décrits ci-dessous.

   TYPES PRIS EN CHARGE
       Les  types  pris en charge sont décrits ci-dessous. À moins que ce ne soit indiqué explicitement, seul le
       format ASCII est autorisé.

       BOOLEAN, BOOL
         Encoder un type booléen. La chaîne 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 acceptées.

       NULL
         Encoder le type NULL, la chaîne valeur ne doit pas être présente.

       INTEGER, INT
         Encoder  un  type  ASN1  INTEGER.  La  chaîne  valeur  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 0x soit inclus.

       ENUMERATED, ENUM
         Encoder un type ASN1 ENUMERATED, par ailleurs identique à INTEGER.

       OBJECT, OID
         Encoder  un  type  ASN1  OBJECT  IDENTIFIER, la chaîne valeur peut être un nom court, un nom long ou un
         format numérique.

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

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

       OCTETSTRING, OCT
         Encoder un type ASN1 OCTET STRING. La valeur représente le contenu de cette structure. Les  chaînes  de
         format ASCII et HEX peuvent être utilisées pour indiquer le format de valeur.

       BITSTRING, BITSTR
         Encoder  un  type  ASN1  BIT STRING. La valeur représente le contenu de cette structure. Les chaînes de
         format ASCII, HEX et BITLIST peuvent être utilisées pour indiquer le format de valeur.

         Si le format diffère de BITLIST, le nombre de bits non utilisés est mis à zéro.

       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 valeur représente  le  contenu  de  cette  structure.  Le
         format peut être ASCII ou UTF8.

       SEQUENCE, SEQ, SET
         Formater  le  résultat  en tant que type ASN1 SEQUENCE ou SET. La valeur 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 valeur est absent, alors une SEQUENCE vide sera encodée.

   MODIFICATEURS
       Les modificateurs affectent les  structures  suivantes.  Ils  peuvent  être  utilisés  pour  ajouter  des
       étiquettes  EXPLICIT  ou IMPLICIT, 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.

       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.

         En faisant suivre le nombre d'un U, A, P ou C, une étiquette de type UNIVERSAL, APPLICATION, PRIVATE ou
         CONTEXT SPECIFIC peut être utilisée (CONTEXT SPECIFIC par défaut).

       IMPLICIT, IMP
         Identique à EXPLICIT sauf qu'un étiquetage IMPLICIT est utilisé à la place.

       OCTWRAP, SEQWRAP, SETWRAP, BITWRAP
         La  structure  suivante  est  entourée  par  une  OCTET  STRING, une SEQUENCE, un SET ou une BIT STRING
         respectivement. Pour une BIT STRING, le nombre de bits non utilisés est mis à zéro.

       FORMAT
         Indique le format de la valeur finale. Il devrait être suivi par un  deux-points  et  une  des  chaînes
         ASCII, UTF8, HEX ou BITLIST.

         Si  aucune  chaîne  de  format n'est incluse, ASCII est utilisée. Si UTF8 est indiquée, alors la chaîne
         valeur doit être une chaîne UTF8 correcte. Pour le format HEX, la  sortie  doit  être  un  ensemble  de
         chiffres  hexadécimaux.  BITLIST (qui n'est correct que pour une BIT STRING) est la liste des index des
         bits positionnés séparés par des virgules, tous les autres bits valent zéro.

EXEMPLES

       Une IA5String simple :

        IA5STRING:Salut le monde

       Une IA5String étiquetée explicitement :

        EXPLICIT:0,IA5STRING:Salut le monde

       Une IA5String étiquetée explicitement et utilisant une étiquette APPLICATION :

        EXPLICIT:0A,IA5STRING:Salut le monde

       Une BITSTRING avec les bits 1 et 5 activés et tous les autres à zéro :

        FORMAT:BITLIST,BITSTRING:1,5

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

        asn1 = SEQUENCE:seq_section

        [seq_section]

        field1 = BOOLEAN:TRUE
        field2 = OID:commonName
        field3 = UTF8:Troisième champ

       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é.

        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 clef publique correspondante dans une structure SubjectPublicKeyInfo :

        # Commencer par une SEQUENCE
        asn1=SEQUENCE:pubkeyinfo

        # pubkeyinfo contient un identificateur d'algorithme et la clef publique
        # enveloppés dans une BIT STRING
        [pubkeyinfo]
        algorithm=SEQUENCE:rsa_alg
        pubkey=BITWRAP,SEQUENCE:rsapubkey

        # l'identifiant d'algorithme 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\
        D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9

        e=INTEGER:0x010001

VALEURS DE RETOUR

       ASN1_generate_nconf()  et ASN1_generate_v3() renvoient les données encodées sous la forme d'une structure
       ASN1_TYPE ou NULL si une erreur est survenue.

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

VOIR AUSSI

       ERR_get_error(3)

HISTORIQUE

       ASN1_generate_nconf() et ASN1_generate_v3() ont été ajoutées dans la version 0.9.8 d'OpenSSL.

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.

1.0.2a 1.0.2c                                      2015-12-31              fr::crypto::ASN1_generate_nconf(3SSL)