Hola Serpic,
Tienes razón, no puse la función de asignación del certificado
Ahí va..
Código Delphi
[-]
procedure TMainForm.SetCertificate(const FileName, Password: string; var Data: Pointer);
var
Cert : ICertificate2;
CertContext : ICertContext;
PCertContext : PCCERT_CONTEXT;
begin
try
Cert := CoCertificate.Create;
except
on E: EOleSysError do
raise Exception.Create('CAPICOM.DLL no está registrada correctamente.')
end;
Cert.Load(FileName, Password, CAPICOM_KEY_STORAGE_EXPORTABLE, CAPICOM_LOCAL_MACHINE_KEY);
CertContext := Cert as ICertContext;
CertContext.Get_CertContext(Integer(PCertContext));
if InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, PCertContext, 4096) = False then
raise Exception.Create ( 'Error al asignar el certificado de cliente' )
end;
Como se ve en el código inicial, hay que importar la libreria CAPICOM.DLL (y registrarla en cada equipo que se vaya a utilizar la app) y generar el TLB y así se pueden utilizar las constantes de CAPICOM
Saludos...
P.D.: Espero no tengas los problemas que estoy experimentando en alqunas máquinas. en el Hilo:
https://www.clubdelphi.com/foros/sho...d.php?p=550756
Saludos.