Gambas France BETA


Pas de compte ? Incription

crypter un fichier texte par la commande openssl

12
AuteurMessages
nanno86#1 Posté le 28/3/2011 à 04:54:00
Salut tout le monde,
SVP y a t-il quelqu'un qui peut m'aider,j'ai un mini projet a faire cette semaine,qui doit crypter un fichier texte en utilisant la commande openssl ,je n'arrive plus à trouver la syntaxe correcte de cette commande,je suis bloquée , :cry:
merci d'avance
manu#2 Posté le 28/3/2011 à 07:27:00
Avec Gambas ca roule !Bonjour et bienvenu,

Openssl est utilisé par un des composants de Gambas pour crypté des mels, mais c'est tout... Personnellement, je ne peux pas t'aider mais j'ai vu qu'il existe beaucoup d'info sur le net a ce sujet.

Désolé de ne pas pouvoir faire mieux que ça !
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
spheris#3 Posté le 28/3/2011 à 11:14:00
nanno86,

En gambas, lorsque tu veux lancer une commande externe dans un terminal, tu peux le faire par la commande EXEC ou SHELL.
voir ici : http://gambaslinux.eg2.fr/articles.php?lng=fr&pg=49

Ensuite il te suffit de consulter la page Man de la commande openssl pour plus d'infos :
http://www.delafond.org/traducmanfr/man/man1/openssl.1.html

Bonne journée
;)
nanno86#4 Posté le 28/3/2011 à 16:16:00
Merci bien Spheris et Manu a vos aides :)
j vais introduire la commande "exec" a mon programme et voir le resultat.
merci beaucoup
nanno86#5 Posté le 28/3/2011 à 19:35:00
salut
j'ai commencée par la génération de clé privé puis crypter celui_ci.Je veux afficher le contenu de cet clé et la le problème."il s'affiche rien"juste la génération de clé.
pouvez vous s'il vous plait m'aider pour faire une syntaxe correcte de la commande more en intégrant "exec" ou bien une méthode pour afficher le contenu de fichier contenant la clé privé
voila mon code:

1
PUBLIC SUB Button1_Click()EXEC ["openssl", "genrsa", "-out", "priv.pem "] EXEC ["openssl", "genrsa", "-out", "priv.pem ", "-passout", "pass:mpssri", "-des", "1024"]EXEC ["more", "priv.pem"] TO TextArea1.TextEND



a l'execution il s'affiche au niveau de console de Gambas2 :

Generating RSA private key, 512 bit long modulus
Generating RSA private key, 1024 bit long modulus
.....++++++++++++
........................++++++++++++
....e is 65537 (0x10001)
..........++++++
....++++++
e is 65537 (0x10001)


MERCI D'AVANCE

Modification: Message remis en forme pour plus de lisibilité
spheris#6 Posté le 29/3/2011 à 11:51:00
nanno86,
si ta clef est stockée dans le fichier priv.pem, il te suffit de le lire comme un fichier texte comme ceci :
http://gambaslinux.eg2.fr/articles.php?lng=fr&pg=364
A bientôt
;) ;)
nanno86#7 Posté le 30/3/2011 à 05:06:00
Salut
J'ai un grand problème concernant l’exécution de cette ligne de code:

'decryptage asymetrique
EXEC ["openssl", "rsautl", "-decrypt", "-in", "crypt.txt ", "-out", "msg.txt", "-inkey", "priv.pem", "-passin", "pass:mpssri"]

voila ce que m'arrive a l’exécution :

Error Reading Input File
5721:error:02001002:system library:fopen:No such file or directory:bss_file.c:126:fopen('crypt.txt ','rb')
5721:error:2006D080:BIO routines:BIO_new_file:no such file:bss_file.c:129:

S'ils vous plait aidez moi,j’attends vos suggestions
Merci d'avance et bonne journée
spheris#8 Posté le 30/3/2011 à 21:07:00
nanno86,
5721:error:02001002:system library:fopen:No such file or directory:bss_file.c:126:fopen('crypt.txt ','rb')


Le message d'erreur est bien à la fin. le fichier crypt.txt n'est pas dispo à cet endroit.
essaye de lui definir le chemin complet du style : /etc/var/monpath/crypt.txt
;) ;)
nanno86#9 Posté le 1/4/2011 à 05:13:00
salut,merci beaucoup pour votre aide.
bien j'ai changée les chemins de touts les fichiers et aussi bien j'ai testée de les ouvrir et ça passe mais ça reste un erreur due au chargement de clé privé mais cela s'arrive parfois, de plus mon programme ne pu pas parfois générer le clé public.je sais pas comment mais il m'a signalé que c'est impossible de charger le clé privé a fin de générer le clé public .
Pourtant il arrive a exécuter les commandes qui nécessitent seulement le clé privé.
voila la partie de code pour générer le clé privé , le crypter et générer la clé public :

1
PUBLIC SUB Form_Open()'generation de clé privéEXEC ["openssl", "genrsa", "-out", "/home/nannouse/Projects/28mars/rep/priv.pem"]'cryptage de clé privéEXEC ["openssl", "genrsa", "-out", "/home/nannouse/Projects/28mars/rep/priv.pem", "-passout", "pass:mpssri", "-des", "1024"]'generation de clé publicEXEC ["openssl", "rsa", "-in", "/home/nannouse/Projects/28mars/rep/priv.pem", "-passin", "pass:mpssri", "-out", "/home/nannouse/Projects/28mars/rep/pub.pem", "-pubout"]END


et voila le résultat de l’exécution:

Generating RSA private key, 512 bit long modulus
unable to load Private Key
3203:error:0906D06C:PEM routines:PEM_read_bio:no start lineem_lib.c:650:Expecting: ANY PRIVATE KEY
...++++++Generating RSA private key, 1024 bit long modulus
+.++++.+
...........++.+++++++.+++
e is 65537 (0x10001)
....++++++
...............++++++
e is 65537 (0x10001)

s'ils vous plait aidez moi, je suis vraiment bloquée et je sais pas comment sortir de ce problème.
spheris#10 Posté le 1/4/2011 à 09:39:00
nanno86,

extrait la clef privée et verifie ton certificat en utilisant le parameètre -CAfile comme ceci :

1
openssl verify -CAFile pk-XXXXX.pem
Prokopy#11 Posté le 1/4/2011 à 18:31:00
Kinder PinguiIl semble que tu veuilles utiliser un cryptage asymétrique pour crypter ton fichier (RSA apraramment). Le problème c'est qu'on utilise le cryptage asymétrique seulement pour crypter des flux de données (SSH par exemple), ce pourquoi on utilise deux clés.

Pour crypter/décrypter un fichier avec une clé, on utilise le cryptage symétrique. Il y a plein d'algorithmes qui existent :

  • Vernam;
  • RC4 / RC5;
  • ACS;
  • … et j'en passe des tonnes.
s mal, je choisis au hasard RC4 :

1
PUBLIC FUNCTION Crypter(fichier AS STRING, cle AS STRING) AS STRING DIM fichierCrypte AS STRING EXEC ["openssl", "enc", "-rc4", "-in", fichier, "-k", cle] TO fichierCrypte RETURN fichierCrypte 'Commande originale : openssl enc -rc4 -in fichier.txt -k cle EndPublic Function Decrypter(fichier As String, cle As String) As String Dim fichierCrypte As String Exec ["openssl", "enc", "-d", "-rc4", "-in", fichier, "-k", cle] To fichierCrypte Return fichierCrypte 'Commande originale : openssl enc -d -rc4 -in fichiercrypte.txt -k cle End
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
nanno86#12 Posté le 3/4/2011 à 04:13:00
Merci spheris et Prokopy,ça m'aide beaucoup a progresser
bon j'arrivais a générer les deux clés privé et public complétement mais j'ai un problème concernant la visualisation de fichiers cryptés , j' essayer d'afficher le contenu d'un fichier crypté ,par cryptage symétrique ,dans un textarea mais j’arrive a rien.voila mon code:
'msg_sym.txt est crypté maintenant
hFile = OPEN "/home/nannouse/Projects/28mars/rep/msg_sym.txt" FOR INPUT
WHILE NOT Eof(hFile)
LINE INPUT #hFile, sLine
sFile &= "\n" & sLine

WEND

TextArea1.text = sFile

voila le résultat de l’exécution

(28mars:10310): Gtk-CRITICAL **: gtk_text_buffer_emit_insert: assertion `g_utf8_validate (text, len, NULL)' failed

Pourtant j'ai testé ce bloc de code et ça passe bien avec les fichiers textes non cryptés donc ma question es qu'il y a une commande spéciale pour visualiser un fichier crypté ?
merci d'avance et bonne journée
Prokopy#13 Posté le 3/4/2011 à 10:13:00
Kinder PinguiUn fichier crypté c'est du n'importe quoi, pas du texte (et encore moins de l'UTF8), et je ne connais pas de méthode particulière pour afficher du texte crypté. Ceci dit, ça m'étonne qu'il n'arrive pas à l'afficher. Ça doit être encore un bug de gb.gtk … ;)

bon j'arrivais a générer les deux clés privé et public


Non, en cryptage symétrique tu n'utilises qu'une seule clé, et la plupart du temps tu la choisis. Tu devras t'en souvenir si tu veux pouvoir décrypter le fichier correctement.
Les clés publique et privée ne s'utilisent qu'en cryptage asymétrique : la clé publique sert à crypter, la privée à décrypter. :)

J'ai juste une question : pourquoi veux-tu afficher le fichier crypté ? Ça n'a aucun intérêt je trouve … :|
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
nanno86#14 Posté le 3/4/2011 à 13:26:00
bonjour
merci pour ta question .c'est un travail de mini projet de tp cryptographie .mon application doit être capable de crypter/décrypter de fichiers textes soit par cryptage symétrique en utilisant "le des",soit par cryptage asymétrique en utilisant "le rsa",soitpar signature/vérification ou bien se servir par le hachage en utilisant "le md5".
d’abord j’arrive a crypter/décrypter les fichiers par "algorithme des" sans avoir besoin de clé privé/public ,juste j’introduis un fichier key.txt contenant un mot de pass .
Maintenant j'ai générée une paire de clé:privé/public.
Concernant le cryptage asymétrique ,je crypte avec la public et je décrypte avec la privé.pour la signature j'ai utilisée le clé privé par contre pour la vérification j'ai utilisée le clé public.Pour le hachage j'avais pas utilisée la paire de clé juste le dgst,md5 m'ont servit.
selon le travail demandé il faut que l'utilisateur de mon application arriver a visualiser le fichier avant et après cryptage c'est pour cela je cherche une méthode pour afficher le fichier crypté ce n'est pas nécessaire de récupérer le contenu de celui ci dans un textarea mais juste es-qu'il y a une méthode pour faire l'appeler et l'afficher par Gedit par exemple??
Pardonnez moi s'il vous plait,je ne suis pas excellente en langue française. :oops:
spheris#15 Posté le 23/4/2011 à 10:36:00
Nanno86,
As-tu essayé de l'ouvrir par un éditeur hexadécimal (hexedit) puis d'importer le résultat dans une textarea ?
;)
12