Hola de nuevo. Después de corregir algunos errores en el XML del TicketBAI, en la petición, formato del gzip, etc. ahora me devuelve este otro error:
FirmaElectronica: La firma no cumple los requisitos de la polÃ*tica de firma TicketBAI.(EPES: S ALGORITMO: rsa-sha256:2048 POLITICA: N CERTIFICADO_ADMITIDO: S )
He usado el código para firma que encontré en el foro, el que usa los componentes de SecureBlackBox 2020. (He suprimido la parte del código que uso para cargar el certificado):
Código Delphi
[-]procedure FirmarXML(archivo : string);
var
CertificateStorage: TsbxCertificateStorage;
CertificateManager: TsbxCertificateManager;
sbxXAdESSigner1 : TsbxXAdESSigner;
cert : TsbxCertificate;
i : Integer;
begin
sbxXAdESSigner1 := TsbxXAdESSigner.Create(nil);
sbxXAdESSigner1.InputFile := archivo;
sbxXAdESSigner1.OutputFile := 'firmado.xml';
sbxXAdESSigner1.SignatureType := cxstEnveloped;
sbxXAdESSigner1.CanonicalizationMethod := cxcmCanon;
sbxXAdESSigner1.HashAlgorithm := 'SHA256';
sbxXAdESSigner1.XMLElement := ''; sbxXAdESSigner1.EnableXAdES := True;
sbxXAdESSigner1.XAdESVersion := xav132;
sbxXAdESSigner1.XAdESForm := xafEPES;
sbxXAdESSigner1.Config('SigPolicyID=https://ticketbai.eus/politicafirma');
sbxXAdESSigner1.Config('SigPolicyHash=39D59C038EBB3B7DF6C61ED2F740B318F0C50F93ADCD35E26BE8FF8E76D21D A8');
sbxXAdESSigner1.Config('SigPolicyHashAlgorithm=SHA256');
sbxXAdESSigner1.Config('SigPolicyURI=https://ticketbai.eus/politicafirma');
try
sbxXAdESSigner1.Sign();
except
MessageDlg('Error en el proceso de firma', mtError, [mbOK], 0);
end;
end;
No sé si las URLs han cambiado y ahora son distintas. En la documentación he encontrado otra URL...
https://www.euskadi.eus/contenidos/i...irma_v_1_0.pdf
...pero incluso añadiendo esa URL y su correspondiente HASH (que he calculado en
https://www.fileformat.info/tool/hash.htm), me devuelve el mismo error.
Como los errores que devuelve Bizkaia son muy ambiguos, no sé si el problema es ese o es otro, la verdad.