Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   PGP con Delphi (https://www.clubdelphi.com/foros/showthread.php?t=94027)

Angie Rayas 24-06-2019 21:31:29

PGP con Delphi
 
Hola a todos, soy Angie y son nueva en este foro.
El día de hoy vengo a solicitar de su apoyo, ya que nunca he trabajado con la encriptación de archivos en mis proyectos y el día de hoy se me a solicitado que el archivo que se vaya a procesar por la interfaz creada se pueda desencriptar, ya que el usuario lo enviará encriptado, esto a través de una llave publica de PGP y el archivo generado como resultado del proceso poder encriptarlo igualmente.

Ustedes sabrán de algún componente que funcione para Delphi XE5 para este proceso y en donde podría ver ejemplos?

De antemano, gracias.

Casimiro Notevi 24-06-2019 22:18:27

Puede que este funcione, echa un vistazo.

Neftali [Germán.Estévez] 25-06-2019 10:43:18

En hilos anteriores (si buscas seguro que encuentras alguno) hemos hablado de los Secure Blackbox (https://www.secureblackbox.com/sbb/), seguramente el mejor paquete para trabajar con encriptación, firmas, certificados,... desde Delphi.
Eso sí, son muy buenos, pero son de pago.


Revisa este link: https://www.secureblackbox.com/kb/he...ncryptkey.html

Angie Rayas 25-06-2019 17:06:43

Muchas gracias por tu respuesta Casimiro Notevi, Neftali, si estuve revisando BlackBox, pero me comentaron que lo requieren gratuito :(

Ahorita me encuentro haciendo pruebas con cryptlib.pas y DelphiCryptlib.pas, pero tengo algunas dudas, no se si alguien lo a usado?.

Estoy haciendo pruebas con este código en donde se encripta un archivo.

Código Delphi [-]
var
  InputData, OutputData: TStream;
  Encrypt: TCryptEnvelope;
begin
  InputData := TFileStream.Create('MyTestfile.txt', fmOpenRead);  { open input file }
  OutputData := TFileStream.Create('EncodedFile.bin', fmCreate);  { open output file }
  Encrypt := TCryptEnvelope.Create(CRYPT_FORMAT_SMIME);           { create encryption object }
  Encrypt.Password := 'MyPassword';                               { set password for encryption }
  Encrypt.SetAttribute(CRYPT_OPTION_ENCR_ALGO, CRYPT_ALGO_AES);   { set algorithm to AES }
  Encrypt.StreamIO(InputData, OutputData);                        { do the encryption }
  Encrypt.Free;                                                   { delete all objects used }
  InputData.Free;                                                 { close inputfile }
  OutputData.Free;                                                { clode outputfile }
end;

La idea es que se toma un archivo llamado 'MyTestfile.txt' y al encriptarlo se guarda con el nombre EncodedFile.bin.

Yo hice los siguientes cambios:
Código Delphi [-]
var
  InputData, OutputData: TStream;
  Encrypt: TCryptEnvelope;
begin
  InputData := TFileStream.Create('MyTestfile.txt', fmOpenRead);  { open input file }
  OutputData := TFileStream.Create('EncodedFile.bin', fmCreate);  { open output file }
  Encrypt := TCryptEnvelope.Create(CRYPT_FORMAT_PGP);           { create encryption object }
  Encrypt.EncryptingKey:= 'pubring.pkr';                               { set password for encryption }
  Encrypt.SetAttribute(CRYPT_OPTION_ENCR_ALGO,CRYPT_ALGO_CAST);   { set algorithm to AES }
  Encrypt.StreamIO(InputData, OutputData);                        { do the encryption }
  Encrypt.Free;                                                   { delete all objects used }
  InputData.Free;                                                 { close inputfile }
  OutputData.Free;                                                { clode outputfile }
end;

La primer línea con cambio se debe a que estoy especificando que usaré PGP en lugar de SMIME.
La segunda línea con cambio quiero asignar la llave publica en lugar de la contraseña. (Me marca error)
La tercer línea es el "conventionl encryption" que corresponde para OpenPGP "CRYPT_ALGO_CAST = 4; { CAST-128 (only used for OpenPGP) }"

El problema es que no se como colocar la llave publica (archivo pkr) generada con OpenPGP para que pueda encriptarme el archivo.

Alguien a usado esto para encriptar? :(:(

Angie Rayas 26-06-2019 17:23:05

Buenos días, debido a los problemas que se presentaron al tratar de utilizar las opciones gratuitas, realicé mis pruebas con Secure BlackBox como lo sugirió Neftalí y me funciono a la perfección.
El día de hoy probaré con IP*Works! y dependiendo los resultados, les comparto mi experiencia.

Gracias por su apoyo. :)


La franja horaria es GMT +2. Ahora son las 11:50:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi