Hola, a alguien le sale la firma con Secure Black Box?, en ticketbai he podido realizarlo sin problema, pero en No verifactu, no me sale de ninguna de las maneras.
Al enviar el fichero a hacienda, no me da error, pero en cambio si lo intento validar en
https://valide.redsara.es/valide/val.../ejecutar.html, me da error.
el código que tengo es este:
Código Delphi
[-] sbxXAdESSigner := TsbxXAdESSigner.Create(nil);
sbxXAdESSigner.InputFile := FicheroFactura;
sbxXAdESSigner.OutputFile := FicheroFacturaFirmado;
GDWinCertStorage := TsbxCertificateStorage.Create(nil);
if GDWinCertStorage.Opened then
GDWinCertStorage.Close(True);
GDWinCertStorage.Open(CERTIFICATE_STORAGE_LOCAL);
GDWinCertStorage.Refresh;
for var I := 0 to GDWinCertStorage.Certificates.Count - 1 do
begin
if BinToStr(GDWinCertStorage.Certificates[i].SerialNumber) = GDSerialCertificado then
begin
Cert := GDWinCertStorage.Certificates[i];
Break;
end;
end;
sbxXAdESSigner.SigningCertificate := Cert;
sbxXAdESSigner.NewSignature.SignatureType := cxstEnveloped;
sbxXAdESSigner.NewSignature.CanonicalizationMethod := cxcmCanon;
sbxXAdESSigner.NewSignature.HashAlgorithm := 'SHA256';
sbxXAdESSigner.NewSignature.XMLElement := 'RegistroAlta';
sbxXAdESSigner.NewSignature.XAdES := True;
sbxXAdESSigner.NewSignature.XAdESVersion := TsbxXAdESVersions.xav132;
sbxXAdESSigner.NewSignature.XAdESForm := TsbxXAdESForms.xafEPES;
sbxXAdESSigner.Config('IncludeKey=true');
sbxXAdESSigner.Config('KeyInfoDetails=certificate,issuerserial,subjectname');
sbxXAdESSigner.Config('SigPolicyID=' + SIG_POLICY_ID_ESTATAL); sbxXAdESSigner.Config('SigPolicyHash=' + SIG_POLICY_HASH_ESTATAL); sbxXAdESSigner.Config('SigPolicyHashAlgorithm=' + SIG_POLICY_HASH_ALGORITHM_ESTATAL); sbxXAdESSigner.Config('SigPolicyURI=' + SIG_POLICY_URI_ESTATAL);
sbxXAdESSigner.Sign();
sbxXAdESSigner.Free;
if GDWinCertStorage.Opened then
GDWinCertStorage.Close(True);
Cert.Free;
Cert := nil;
Gracias