[gelöst] TProcess: openssl zur Verschlüssellung

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

[gelöst] TProcess: openssl zur Verschlüssellung

Beitrag von Swirl »

Hallo
habe eine Verständnisfrage zu TProcess...

Code: Alles auswählen

uses
  ..., process; 

procedure TForm1.Button1Click(Sender: TObject);
var
  AProcess: TProcess;
begin
  AProcess := TProcess.Create(nil);
  AProcess.Executable:= 'openssl';
  AProcess.Parameters.Add(' enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -k dummypasswort' +
                          ' -in /home/swirl/Schreibtisch/Encrypt/Text -out /home/swirl/Schreibtisch/Encrypt/Text.enc');
  AProcess.Options := AProcess.Options + [poWaitOnExit];
  AProcess.Execute;
  AProcess.Free;
end;  
Wenn ich (unter Mint21) in der Kommandozeile den Text von openssl... bis ...Text.enc eingebe,
erzeugt das Kommando die Text.enc. Bei oben genanntem Code funktioniert es nicht.

Hat jemand eine Idee?

LG,
Michael
Zuletzt geändert von Swirl am Fr 2. Sep 2022, 08:21, insgesamt 1-mal geändert.
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: TProcess: openssl zur Verschlüssellung

Beitrag von theo »

Schon mal mit einem absoluten Pfad versucht?
"/usr/bin/openssl" oder was
which openssl
halt angibt.

Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

Re: TProcess: openssl zur Verschlüssellung

Beitrag von Swirl »

Hatte ich, Theo. Läuft auch leider nicht... :(
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: TProcess: openssl zur Verschlüssellung

Beitrag von theo »

Hast du das durch?
https://wiki.lazarus.freepascal.org/Exe ... rograms/de
Vielleicht auch aufrufen via /bin/bash ?
Manchmal, wenn es mir zu kompliziert wird, mache ich einfach ein Shell-Skript und rufe das aus Lazarus auf.

chmod222
Beiträge: 14
Registriert: Do 19. Aug 2021, 17:29

Re: TProcess: openssl zur Verschlüssellung

Beitrag von chmod222 »

Der Unterschied ist, wenn du es in der Konsole eingibst übernimmt deine Shell für dich das Parameter splitting, hier musst du es selbst machen.

Dein openssl Prozess kriegt hier einen einzigen Parameter, nämlich "enc -aes-256-cbc -md sha512 -pbkdf2 ...." und kann damit nichts anfangen,

Du musst etwas wie das Folgende machen:

Code: Alles auswählen

AProcess.Parameters.Add('enc');
AProcess.Parameters.Add('-aes-256-cbc');
AProcess.Parameters.Add('-md');
AProcess.Parameters.Add('sha512');
// ...
AProcess.Parameters.Add('-k');
AProcess.Parameters.Add('dummypasswort welches hier auch leerzeichen enthalten dürfte');

Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

Re: TProcess: openssl zur Verschlüssellung

Beitrag von Swirl »

Habe beides ausprobiert,

frei nach Theos Vorschlag zur Laufzeit eine .sh zusammengestückelt
und aufgerufen. Löppt... Hätte ich auch selbst d'rauf kommen können.

Chmod222's Vorschlag läuft natürlich genau so gut.

Besten Dank Euch beiden!
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: TProcess: openssl zur Verschlüssellung

Beitrag von Socke »

Swirl hat geschrieben:
Fr 2. Sep 2022, 08:20
frei nach Theos Vorschlag zur Laufzeit eine .sh zusammengestückelt
und aufgerufen.
Sobald dein Script Usereingaben enthält, musst du sehr auf das Escaping der der Script-Datei achten - oder bestimmte Zeichen nicht zulassen.
Ein Kennwort kann auch sehr gut Zeichen wie "';\ enthalten und mit deinem Script dann mehr machen als das, was du vorgesehen hast.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

Re: [gelöst] TProcess: openssl zur Verschlüssellung

Beitrag von Swirl »

thx - hätte ich nicht bedacht.
Gut zu wissen...
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Antworten