Cita:
Empezado por elguille
Ese codigo en delphi 10.3 me da error aqui Código Delphi [-] pStore := PFXImportCertStore(DataBlob, PWideChar(widestring(pass)), PKCS12_INCLUDE_EXTENDED_PROPERTIES);
debido a que cambia Código Delphi [-]DataBlob.pbData := @PFX[1];
si lo dejo en Código Delphi [-]DataBlob.pbData := @PFX[0];
va bien pero en la linea internetsetoption recibo el mismo error que al principio, "codigo error 6"
|
He revisado el codigo y hay un monton de errores ahi dentro
el codigo que carga el certificado esta correcto
pero no se transmite el password a la DLL
y en la DLL el array de sesiones se comprueba al llegar a la zona de carga del certificado de forma erronea.
creo que corrigiendo esto:
en el componente:
Código:
function TVerifactu.validNIF(nif, nombre:string; var resultado, nombreRes:string):boolean;
var
valida_nif: TValidadorNIF;
j:integer;
begin
checkAutoRun;
result:=false;
valida_nif.nombreCertificado:=Certificado;
valida_nif.passwordCerficado:=passwordCertificado;
valida_nif.nifvalidar :=nif;
valida_nif.nombre :=nombre;
valida_nif.resultado :='';
valida_Nif.error :=true;
validarNIF( valida_nif );
if valida_Nif.error then
begin
resultado:='';
nombreRes:='';
result:=false;
exit;
end;
resultado:=valida_Nif.resultado;
nombreRes:=valida_Nif.resultadoN;
result:=true;
end;
y esto en la DLL:
Código:
procedure TEventosWebNode.WebNodeBeforePost(const HTTPReqResp: THTTPReqResp;
Data: Pointer);
var
pStore: HCERTSTORE;
pCert: PCERT_CONTEXT;
DataBlob: CRYPT_BIT_BLOB;
PFX: TBytes;
pass,cert:string;
begin
if sesion=-1 then // viene de un validador de nif
begin
pass:=nifValidatorPass;
cert:=nifValidator;
end
else // viene de un objeto verifactu
begin
pass:=sesiones[sesion].inicio.passwordCertificado;
cert:=sesiones[sesion].inicio.nombreCertificado;
end;
if (pos('.PFX',uppercase(cert))=0) and
(pos('.P12',uppercase(cert))=0) then exit;
cargaCertificado(data, cert, pass);
end;
ya deberia funcionar, a mi me funciona.
A principios de la semana que viene publicare una nueva version corregida.
Pero ya esta solucionado.
slds