Bonjour à tous,
J'ai généré une paire de clefs à l'aide d'openssl et je m'intéresse au contenu de ma clef publique :
Le fichier PEM décodé (base64) est le suivant :
Ce qui me pose problème c'est la ligne surlignée en noir et plus particulièrement l'octet final "00".
Si je décode la ligne : 03 82 01 0F 00
J'obtiens : un BIT STRING (03) de longueur 0x010F (82 : longueur codée sur 2 octets).
Pourquoi un "00" avant de continuer avec la séquence suivante (30 82 01 0A ...) ?
J'ai remarqué que ce "00" revenait dans d'autres clef publique générées.
Au format ASN.1, la structure du fichier est la suivante :
Question subsidiaire pour les pros
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SEQUENCE(2 elem)SEQUENCE(2 elem) OBJECT IDENTIFIER1.2.840.113549.1.1.1 NULL BIT STRING(1 elem)SEQUENCE(2 elem)INTEGER(2048 bit) 242362944224136588634419120521565185719929173211644241452991998949002… INTEGER65537
Si on se référe au PKCS #1: RSA Cryptography Specifications Version 2.0, je ne vois pas de trace de ce BIT STRING. Je ne comprends pas son utilité d'autant que ce n'est pas un type structuré. Est ce que c'est spécifique à openssl ? Est ce que toutes les clefs publics contiennent un BIT STRING ?
Merci de m'éclairer de vos lumières
Partager