So, irgendwie hab eich es jetzt geschaft:
Delphi-Quellcode:
procedure EncodeFile(Filename, PW: String; hWnd: THandle);
var
SrcStream: TStreamProgressAdapter;
DestStream: TFileStream;
begin
SrcStream := TStreamProgressAdapter.Create(TFileStream.Create(Filename, fmOpenRead or fmShareDenyNone), 0, hWnd);
if Assigned(SrcStream) then
begin
try
DestStream := TFileStream.Create(Filename+EXTENSION, fmCreate);
if Assigned(DestStream) then
begin
try
with CipherClass.Create(PW, nil) do
begin
Mode := cmCFB;
InitKey(PW, nil);
EnCodeStream(SrcStream, DestStream, -1);
end;
finally
FreeAndNil(DestStream);
end;
end;
finally
FreeAndNil(SrcStream);
end;
end;
end;
Mit:
CipherClass: TCipherClass = TCipher_Blowfish;
Das ganze ist jetzt noch ohne Hash der original Datei und ohne Datei-Header und es ist noch nicht in einem Thread, was auch noch kommt.