Provided by:
manpages-fr-extra_20080921_all 
NOM
rsautl - Utilitaire pour RSA
SYNOPSIS
openssl rsautl [-in fichier] [-out fichier] [-inkey fichier] [-pubin]
[-certin] [-sign] [-verify] [-encrypt] [-decrypt] [-pkcs] [-ssl] [-raw]
[-hexdump] [-asn1parse]
DESCRIPTION
La commande rsautl peut A~Xtre utilisA~Xe pour signer, vA~Xrifier,
chiffrer et dA~Xchiffrer des donnA~Xes en utilisant l’algorithme RSA.
OPTIONS DE LA COMMANDE
-in nom_fichier
Ceci spA~Xcifie le nom de fichier d’entrA~Xe oA~X lire les
donnA~Xes. Par dA~Xfaut, si cette option n’est pas fournie, les
donnA~Xes sont lues depuis l’entrA~Xe standard.
-out nom_fichier
Le nom du fichier de sortie. Par dA~Xfaut, la sortie standard est
utilisA~Xe.
-inkey fichier
le fichier avec la clA~X d’entrA~Xe. Par dA~Xfaut, ce doit A~Xtre
une clA~X privA~Xe RSA.
-pubin
le fichier d’entrA~Xe est une clA~X publique RSA.
-certin
le fichier d’entrA~Xe est un certificat contenant la clA~X publique
RSA.
-sign
signer les donnA~Xes d’entrA~Xe et fournir le rA~Xsultat chiffrA~X.
Ceci nA~Xcessite une clA~X privA~Xe RSA.
-verify
vA~Xrifier les donnA~Xe d’entrA~Xe et fournir les donnA~Xes
convertie.
-encrypt
chiffrer les donnA~Xes d’entrA~Xe en utilisant la clA~X publique
RSA.
-decrypt
dA~Xchiffrer les donnA~Xes d’entrA~Xe en utilisant la clA~X
privA~Xe.
-pkcs, -oaep, -ssl, -raw
le type de remplissage (AX padding AX) A~ utiliser :
respectivement PKCS#1 v1.5 (par dA~Xfaut), PKCS#1 OAEP, remplissage
particulier utilisA~X pour la compatibilitA~X arriA~Xre avec les
poignA~Xes de mains SSL v2, ou pas de remplissage. Pour les
signatures, seules les options -pkcs et -raw peuvent A~Xtre
utilisA~Xes.
-hexdump
affichage hexadA~Xcimal des donnA~Xes de sortie.
-asn1parse
analyser les donnA~Xes de sortie avec asn1parse. C’est utile
lorsqu’elle est associA~Xe A~ l’option -verify.
NOTES
Parce qu’elle utilise l’algorithme RSA directement, la commande rsautl
ne peut A~Xtre utilisA~Xe que pour signer ou vA~Xrifier des donnA~Xes
de petite taille.
EXEMPLES
Signer des donnA~Xes en utilisant une clA~X privA~Xe :
openssl rsautl -sign -in file -inkey key.pem -out sig
RA~XcupA~Xrer les donnA~Xes signA~Xes :
openssl rsautl -verify -in sig -inkey key.pem
Examiner les donnA~Xes brutes signA~Xe :
openssl rsautl -verify -in file -inkey key.pem -raw -hexdump
0000 - 00 01 ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0010 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0020 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0030 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0040 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0050 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0060 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0070 - ff ff ff ff 00 68 65 6c-6c 6f 20 77 6f 72 6c 64 .....hello world
Le format du bloc PKCS#1 est A~Xvident ici. S’il avait A~XtA~X crA~XA~X
avec encrypt/decrypt, le bloc aurrait A~XtA~X de type 2 (le deuxiA~Xme
octet) et des donnA~Xes de remplissage alA~Xatoires auraient A~XtA~X
utilisA~Xes A~ la place des octets 0xff.
Il est possible d’analyser la signature de certificats en utilisant cet
utilitaire avec asn1parse. Par exemple avec un certificat auto-signA~X
certs/pca-cert.pem, exA~Xcuter asn1parse produit :
openssl asn1parse -in pca-cert.pem
0:d=0 hl=4 l= 742 cons: SEQUENCE
4:d=1 hl=4 l= 591 cons: SEQUENCE
8:d=2 hl=2 l= 3 cons: cont [ 0 ]
10:d=3 hl=2 l= 1 prim: INTEGER :02
13:d=2 hl=2 l= 1 prim: INTEGER :00
16:d=2 hl=2 l= 13 cons: SEQUENCE
18:d=3 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption
29:d=3 hl=2 l= 0 prim: NULL
31:d=2 hl=2 l= 92 cons: SEQUENCE
33:d=3 hl=2 l= 11 cons: SET
35:d=4 hl=2 l= 9 cons: SEQUENCE
37:d=5 hl=2 l= 3 prim: OBJECT :countryName
42:d=5 hl=2 l= 2 prim: PRINTABLESTRING :AU
....
599:d=1 hl=2 l= 13 cons: SEQUENCE
601:d=2 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption
612:d=2 hl=2 l= 0 prim: NULL
614:d=1 hl=3 l= 129 prim: BIT STRING
Le AX BIT STRING AX final contient la signature. Elle peut A~Xtre
extraite de cette faA~Xon :
openssl asn1parse -in pca-cert.pem -out sig -noout -strparse 614
La clA~X public du certificat peut A~Xtre extraite avec :
openssl x509 -in test/testx509.pem -pubkey -noout >pubkey.pem
La signature peut A~Xtre analysA~Xe avec :
openssl rsautl -in sig -verify -asn1parse -inkey pubkey.pem -pubin
0:d=0 hl=2 l= 32 cons: SEQUENCE
2:d=1 hl=2 l= 12 cons: SEQUENCE
4:d=2 hl=2 l= 8 prim: OBJECT :md5
14:d=2 hl=2 l= 0 prim: NULL
16:d=1 hl=2 l= 16 prim: OCTET STRING
0000 - f3 46 9e aa 1a 4a 73 c9-37 ea 93 00 48 25 08 b5 .F...Js.7...H%..
Il s’agit de la version lisible de la structure ASN1 DigestInfo. On
peut voir que l’algorithme de hachage utilisA~X A~Xtait md5. La partie
du certificat qui a A~XtA~X signA~Xe peut A~Xtre extraite avec :
openssl asn1parse -in pca-cert.pem -out tbs -noout -strparse 4
Et son condensA~X peut A~Xtre calculA~X avec :
openssl md5 -c tbs
MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5
qui, on peut le voir, est cohA~Xrent avec la valeur rA~XcupA~XrA~Xe ci-
dessus.
VOIR AUSSI
dgst(1), rsa(1), genrsa(1)