Ver Mensaje Individual
  #4  
Antiguo 25-06-2019
Angie Rayas Angie Rayas is offline
Registrado
 
Registrado: jun 2019
Posts: 3
Reputación: 0
Angie Rayas Va por buen camino
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?
Responder Con Cita