We use a lot of RODEC encryption for encrypt some data. How can i make RODEC works on latest FPC release?
Any other way to compile this without error, leaving this:
function DesEncriptarArchivoaStream(var MemoryTXT:TMemoryStream; ArchivoEncriptado: AnsiString): boolean;
var
lEncryption: TROEncryption;
iCipherText :TFileStream;
begin
lEncryption := TROEncryption.Create;
lEncryption.EncryptionMethod := tetBlowfish;
lEncryption.EncryptionSendKey := FraseEncriptado;
lEncryption.EncryptionRecvKey := FraseEncriptado;
if not FileExists(ArchivoEncriptado) then
begin
showmessage('No existe el archivo a desencriptar!!!');
result := False;
exit;
end;
iCipherText := TFileStream.Create(ArchivoEncriptado,fmOpenReadWrite);
try
iCipherText.Position := 0;
lEncryption.Decrypt(iCipherText, MemoryTXT);
MemoryTXT.Position := 0;
finally
FreeAndNil(lEncryption);
FreeAndNil(iCipherText);
end;
Result := True;
end;
type
TMyEnvelope = class(TROAESEncryptionEnvelope);
function DesEncriptarArchivoaStream(var MemoryTXT:TMemoryStream; ArchivoEncriptado: AnsiString): boolean;
var
lEncryption: TROAESEncryptionEnvelope;
iCipherText :TFileStream;
begin
lEncryption := TROAESEncryptionEnvelope.Create;
lEncryption.Password := FraseEncriptado;
if not FileExists(ArchivoEncriptado) then
begin
showmessage('No existe el archivo a desencriptar!!!');
result := False;
exit;
end;
iCipherText := TFileStream.Create(ArchivoEncriptado,fmOpenReadWrite);
try
iCipherText.Position := 0;
TMyEnvelope(lEncryption).intProcessIncoming(iCipherText, MemoryTXT,nil); //for encrypting, use intProcessOutgoing
MemoryTXT.Position := 0;
finally
FreeAndNil(lEncryption);
FreeAndNil(iCipherText);
end;
Result := True;
end;