Essayer de chiffrer un message texte via une ligne de commande sous OSX Yosomite 10.10.2
La clé publique .pem
créée ressemble à ceci:
ssh-keygen -f ~/.ssh/id_rsa.pub -e -t PKCS8 > id_rsa.pem
Si j'essaie de chiffrer myMessage.txt
openssl rsautl -encrypt -inkey ~/.ssh/id_rsa.pem -pubin -in ~/Desktop/myMessage.txt -out ~/Desktop/encrypted.txt
Je reçois unable to load Public key
Si je tape alors:
openssl asn1parse -in id_rsa.pem
Retours: Error: offset too large
Mais je ne sais pas comment le réparer. Que devrais-je changer pour que cela fonctionne?
Je ne sais toujours pas ce qui ne va pas dans ma question, mais j'ai trouvé une solution:
1) Générer une clé RSA:
$ openssl genrsa -out key.pem 1024
$ openssl rsa -in key.pem -text -noout
2) Enregistrez la clé publique dans le fichier pub.pem:
$ openssl rsa -in key.pem -pubout -out pub.pem
$ openssl rsa -in pub.pem -pubin -text -noout
3) Crypter des données:
$ echo test test test > file.txt
$ openssl rsautl -encrypt -inkey pub.pem -pubin -in file.txt -out file.bin
4) Décrypter les données cryptées:
$ openssl rsautl -decrypt -inkey key.pem -in file.bin
Il fonctionne comme un charme
Merci à Marek Marcola d’avoir fourni l’information http://openssl.6102.n7.nabble.com/Re-Can-I-use-my-own-keys-with-openssl-for-RSA-enc-dec- td12506.html
J'ai également fait face à ce problème et pense qu'un bon indice est là:
Il semble que la commande de chiffrement OpenSSL souhaite une clé publique SSL au lieu d'une clé publique RSA.
Nous en savons maintenant assez pour modifier l’exemple et le faire fonctionner. Une clé publique SSL peut être générée à partir d’une clé publique RSA avec
openssl rsa -in id_rsa.pem -RSAPublicKey_in -pubout > id_pub.pem
Il est alors possible de faire l’étape de chiffrement avec
openssl rsautl -encrypt -inkey id_pub.pem -pubin -in ~/Desktop/myMessage.txt -out ~/Desktop/encrypted.txt
La commande OpenSSL par défaut dans MacOSX Yosemite au moment de l'écriture semble être 0.9.8zg. La commande rsa de cette version ne permet pas d’exécuter la première commande ci-dessus. J'ai résolu ce problème en installant OpenSSL 1.0.1p.
J'ai eu le même problème quand j'extrais la clé publique du certificat.
openssl x509 -pubkey -noout -in cert.crt > pubKey.pem
Ensuite, je voulais imprimer des informations sur la clé avec la commande ci-dessous.
openssl rsa -text -pubin -in pubKey.pem
Et obtient une erreur: unable to load Public Key
Solution
J'ai ouvert pubKey.pem dans le Bloc-notes ++ et dans le menu Encodage , la nomenclature UCS-2 LE a été sélectionnée. Je l'ai donc changé en encodage UTF-8. La taille de pubKey.pem était égale à la moitié de celle d'origine après modification de l'encodage. Ensuite, cela fonctionne comme un charme.
Testé sous Windows et PowerShell