Асимметричное шифрование в Lazarus

Есть ли какая-нибудь библиотека для Lazarus (бесплатный паскаль), которая поддерживает асимметричное шифрование?


person opc0de    schedule 04.02.2013    source источник
comment
Вы можете посмотреть здесь: wolfgang-ehrhardt.de/crypt_en.html   -  person    schedule 10.02.2013


Ответы (2)


Чтобы сделать асимметричное шифрование в Lazarus, вам нужно интегрировать openssl.

Если вы используете Windows, загрузите http://slproweb.com/download/Win32OpenSSL_Light-1_0_1e.exe

Теперь вы можете использовать openssl в Lazarus следующим образом:

uses ..., Process;

...

procedure encrypt_file();
var hProcess : TProcess;
begin
  hProcess := TProcess.Create(nil);
  hProcess.Executable := 'openssl';
  hprocess.Parameters.Add('aes-256-cbc');
  hprocess.Parameters.Add('-a -salt');
  hprocess.Parameters.Add('-in secrets.txt'); //input file
  hprocess.Parameters.Add('-out secrets.txt.enc'); //output file  
  hProcess.Options := hProcess.Options + [poWaitOnExit, poUsePipes]; 
  hProcess.Execute;
end;

procedure decrypt_file();
var hProcess : TProcess;
begin
  hProcess := TProcess.Create(nil);
  hProcess.Executable := 'openssl';
  hprocess.Parameters.Add('aes-256-cbc');
  hprocess.Parameters.Add('-d -salt');
  hprocess.Parameters.Add('-in secrets.txt.enc'); //input file
  hprocess.Parameters.Add('-out secrets.txt.new'); //output file  
  hProcess.Options := hProcess.Options + [poWaitOnExit, poUsePipes]; 
  hProcess.Execute;
end;

Примечание. Пример симметричного шифрования для асимметричного. Прочитайте эту статью: http://www.devco.net/archives/2006/02/13/public_-_private_key_encryption_using_openssl.php

person Daniel    schedule 13.02.2013
comment
Ну не нужно использовать openssl? Существуют библиотеки шифрования, такие как dpcrypt, а некоторые встроены в сам FPC... - person reiniero; 09.06.2013
comment
@reiniero А как они называются? - person Pixelcode; 09.04.2021

Lazarus/FPC поставляется с заголовками openssh. Возможно, нет необходимости идти по маршруту внешней программы.

person Marco van de Voort    schedule 20.02.2013
comment
Некоторые наборы сокетов TCP/IP (LNET, Indy, Synapse) могут его использовать. Изучите их код. - person Marco van de Voort; 20.02.2013