I don't use the LCL for it, but here is how I code using the library:
I add the following to uses:
DCPrijndael, DCPSha256
Then when loading data from a file (leaving out what I do with the data:
var
Crypt: TDCP_rijndael;
FileData: TFileStream;
Data: TStringStream;
begin
FileData := TFileStream.Create(Filename, fmOpenRead);
Crypt := TDCP_rijndael.Create(nil);
try
Crypt.InitStr(Self.Password, TDCP_sha256); // self-Password is the password used to save the file
Crypt.DecryptStream(FileData, Data, FileData.Size);
Crypt.Burn;
// I then use Data as if it was not encrypted
...
finally
FreeAndNil(Crypt);
FreeAndNil(Data);
FreeAndNil(FileData);
end;
to save a file I do the following:
var
Crypt: TDCP_rijndael;
FileData: TFileStream;
Data: TStringStream;
begin
FileData := TFileStream.Create(Filename, fmCreate);
Data := TStringStream.Create('');
Crypt := TDCP_rijndael.Create(nil);
try
// I write data out to a stream
...
// then using that stream, I encrypt it to a file
Crypt.InitStr(Self.Password, TDCP_sha256);
Crypt.EncryptStream(Data, FileData, Data.Size);
Crypt.Burn;
finally
FreeAndNil(Crypt);
FreeAndNil(Data);
FreeAndNil(FileData);
end;