TBlowfish En-/Decrypt-Stream

Rund um die LCL und andere Komponenten
Antworten
ore12
Beiträge: 20
Registriert: Fr 3. Feb 2012, 16:37

TBlowfish En-/Decrypt-Stream

Beitrag von ore12 »

Hallo,

ich möchte Daten aus einem TBlowfishEncrypt-Stream in einen TFileStream weiterleiten. Weiß jemand, wie (und ob überhaupt) das geht? Der normale Mechanismus mit (TFileStream).CopyFrom geht anscheinden nicht - dem BlowfishEnryptStream muß man beim Create immer einen Puffer geben, in den er schreibt.

Danke im Voraus für Eure Hinweise

Olaf

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

Re: TBlowfish En-/Decrypt-Stream

Beitrag von theo »

Warum gibst du dem TBlowFishEncryptStream.Create keinen TFileStream als "Dest" mit?

ore12
Beiträge: 20
Registriert: Fr 3. Feb 2012, 16:37

Re: TBlowfish En-/Decrypt-Stream

Beitrag von ore12 »

Danke für den Hinweis. Mit dem von TStream geerbten Konstruktor geht es mehr oder weniger:

Ich werde bloß den TBlowFishEncryptStream nicht wieder los:

Code: Alles auswählen

 
  inStream := TFileStream.Create(inFileName, fmOpenRead);
  outStream := TFileStream.Create(inFileName + '.crypt', fmCreate);
  enStream := TBlowfishEncryptStream.Create(pass, outStream);
  enStream.CopyFrom(inStream, 0);   // neue *.crypt Datei wird erzeugt
  outStream.Free;
  inStream.Free;
  enStream.Free;    // ***hier gibt's eine External: SIGSEGV Exception, unklar warum
 
Wenn man die CopyFrom-Funktion nicht aufruft, läßt sich der BlowFishStream entsorgen.

Vielleicht weiß jemand eine Lösung.
Danke
Olaf

magnetron
Beiträge: 44
Registriert: Di 4. Nov 2014, 14:04

Re: TBlowfish En-/Decrypt-Stream

Beitrag von magnetron »

Hallo Olaf,

versuch doch mal zuerst den BlowFishStream zu schliessen,
und danach den FileStream.
Vielleicht mag er das nicht, wenn plötzlich der outputstream fehlt.
Bei mir hat es so ähnlich funtktioniert.
Grüße, Stefan

wp_xyz
Beiträge: 5130
Registriert: Fr 8. Apr 2011, 09:01

Re: TBlowfish En-/Decrypt-Stream

Beitrag von wp_xyz »

Grundregel: Klassen immer in der umgekehrten Reihenfolge freigeben, in der sie erzeugt wurden.

ore12
Beiträge: 20
Registriert: Fr 3. Feb 2012, 16:37

Re: TBlowfish En-/Decrypt-Stream

Beitrag von ore12 »

Danke an Stefan und wp_xyz,
so funktioniert es tatsächlich!

Gruß

Olaf

Antworten