OPENSSL-ASN1PARSE(1ssl)

NOM
openssl-asn1parse – Commande d'analyse ASN.1

SYNOPSIS
openssl asn1parse [-help] [-inform DER|PEM|B64] [-in fichier] [-out fichier] [-noout] [-offset nombre] [-length nombre] [-i] [-oid fichier] [-dump] [-dlimit nombre] [-strparse décalage] [-genstr chaîne] [-genconf fichier] [-strictpem] [-item nom]

DESCRIPTION
Cette commande est un utilitaire de diagnostic capable d'analyser les structures ASN.1. Elle peut aussi être utilisée pour extraire des données à partir de données au format ASN.1.

OPTIONS

-help
    Afficher un message d'utilisation.

-inform DER|PEM|B64
    Le format d'entrée ; PEM par défaut. Voir openssl-format-options(1) pour des détails.

-in fichier
    Le fichier d'entrée ; c'est par défaut l'entrée standard.

-out filename
    Le fichier de sortie dans lequel placer les données encodées en DER. Si cette option n'est pas présente, aucune donnée ne sera produite. Cette option est particulièrement utile combinée avec l'option -strparse.

-noout
    Ne pas afficher la version analysée du fichier d'entrée.

-offset nombre
    Décalage de départ pour commencer l'analyse ; par défaut c'est le début du fichier.

-length nombre
    Nombre d'octets à analyser ; par défaut c'est jusqu'à la fin du fichier.

-i  Indenter la sortie en fonction de la « profondeur » des structures.

-oid fichier
    Un fichier contenant des IDENTIFIANTS D'OBJET (OID) supplémentaires. Le format de ce fichier est décrit dans la section NOTES ci-dessous.

-dump
    Décharger les données inconnues au format hexadécimal.

-dlimit nombre
    Comme -dump, mais seuls les premiers nombre octets sont copiés.

-strparse décalage
    Analyser les octets du contenu de l'objet ASN.1 à partir du décalage (« offset »). Cette option peut être utilisée plusieurs fois pour explorer en profondeur une structure imbriquée.

-genstr chaîne, -genconf fichier
    Générer des données codées basées sur chaîne, fichier ou les deux en utilisant le format ASN1_generate_nconf(3). Si seul fichier est présent, la chaîne est obtenue à partir de la section par défaut utilisant le nom asn1. Les données encodées sont traitées par l'analyseur ASN1 et affichées comme si elles provenaient d'un fichier. Le contenu peut ainsi être examiné et écrit dans un fichier à l'aide de l'option -out.

-strictpem
    Si cette option est utilisée, -inform est ignorée. Sans cette option toutes les données du fichier d'entrée au format PEM seront traitées comme si elles étaient encodées en base64 et traitées que les marqueurs PEM normaux BEGIN et END soient présents ou non. Cette option ignorera les données précédant le marqueur BEGIN ou suivant le marqueur END dans un fichier PEM.

-item nom
    Tenter de décoder et d'afficher les données comme un nom ASN1_ITEM. L'option peut être utilisée pour afficher les champs de toute structure ASN.1 prise en charge si le type est connu.

  Sortie
La sortie contiendra typiquement des lignes comme celles-ci :

  0:d=0  hl=4 l= 681 cons: SEQUENCE

.....

  229:d=3  hl=3 l= 141 prim: BIT STRING
  373:d=2  hl=3 l= 162 cons: cont [ 3 ]
  376:d=3  hl=3 l= 159 cons: SEQUENCE
  379:d=4  hl=2 l=  29 cons: SEQUENCE
  381:d=5  hl=2 l=   3 prim: OBJECT            :X509v3 Subject Key Identifier
  386:d=5  hl=2 l=  22 prim: OCTET STRING
  410:d=4  hl=2 l= 112 cons: SEQUENCE
  412:d=5  hl=2 l=   3 prim: OBJECT            :X509v3 Authority Key Identifier
  417:d=5  hl=2 l= 105 prim: OCTET STRING
  524:d=4  hl=2 l=  12 cons: SEQUENCE

.....

Cet exemple fait partie d'un certificat auto-signé. Chaque ligne débute par le décalage en décimal. « d=XX » indique la profondeur actuelle. La profondeur est augmentée dans la portée d’un SET ou d'une SEQUENCE. « hl=XX » donne la longueur de l'en-tête (octets d'étiquette et de longueur) du type actuel. « l=XX » donne la longueur des octets du contenu.

L'option -i peut être utilisée pour rendre la sortie plus lisible.

Certaines connaissances sur la structure ASN.1 sont nécessaires pour interpréter la sortie.

Dans cet exemple, la chaîne de bits (BIT STRING) au décalage 229 correspond à la clé publique du certificat. Les octets de ce contenu contiendront les informations de la clé publique. Cela peut être examiné à l'aide de l'option « -strparse 229 » pour obtenir :

    0:d=0  hl=3 l= 137 cons: SEQUENCE
    3:d=1  hl=3 l= 129 prim: INTEGER           :E5D21E1F5C8D208EA7A2166C7FAF9F6BDF2059669C60876DDB70840F1A5AAFA59699FE471F379F1DD6A487E7D5409AB6A88D4A9746E24B91D8CF55DB3521015460C8EDE44EE8A4189F7A7BE77D6CD3A9AF2696F486855CF58BF0EDF2B4068058C7A947F52548DDF7E15E96B385F86422BEA9064A3EE9E1158A56E4A6F47E5897
  135:d=1  hl=2 l=   3 prim: INTEGER           :010001

NOTES
Si un OID ne fait pas partie de la table interne d'OpenSSL, il sera représenté sous forme numérique (par exemple 1.2.3.4). Le fichier transmis à l'option -oid permet que d'autres OID supplémentaires soient inclus. Chaque ligne consiste en trois colonnes, la première est l'OID au format numérique suivi d'une espace. La seconde colonne est le « nom court » qui est un mot unique suivi d'une espace. La dernière colonne, le reste de la ligne, est le « nom long ». Exemple :

« 1.2.3.4 Nomcourt Un nom long »

Pour tout OID associé à un nom court et un nom long, cette commande affichera le nom long.

EXEMPLES
Analyser un fichier :

 openssl asn1parse -in fichier.pem

Analyser un fichier DER :

 openssl asn1parse -inform DER -in fichier.der

Générer une chaîne UTF-8 (UTF8String) simple :

 openssl asn1parse -genstr 'UTF8:Bonjour le monde'

Générer et écrire une chaîne UTF-8 (UTF8String), ne pas afficher la sortie analysée :

 openssl asn1parse -genstr 'UTF8:Bonjour le monde' -noout -out utf8.der

Générer à l'aide d'un fichier de configuration :

 openssl asn1parse -genconf asn1.cnf -noout -out asn1.der

Exemple de fichier de configuration :

 asn1=SEQUENCE:seq_sect

 [seq_sect]

 field1=BOOL:TRUE
 field2=EXP:0, UTF8:some random string

BOGUES
Des options devraient exister pour modifier le format des lignes de sortie. La sortie de certains types ASN.1 n'est pas bien gérée (voire pas du tout).

VOIR AUSSI
openssl(1), ASN1_generate_nconf(3)

COPYRIGHT
Copyright 2000-2023 Les auteurs du projet OpenSSL. Tous droits réservés.

Sous licence Apache 2.0 (la « Licence »). Vous ne pouvez utiliser ce fichier que conformément à la Licence. Vous trouverez une copie dans le fichier LICENSE de la distribution du source ou à l'adresse <https://www.openssl.org/source/license.html>.

TRADUCTION
La traduction française de cette page de manuel a été créée par Nicolas François <nicolas.francois@centraliens.net>, David Prévot <david@tilapin.org>, Oliver Hamm <oliver.c.hamm@gmail.com> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.