Cita:
Empezado por ermendalenda
Hola, prueba algo así, en vez de alias es mejor esto subject.contains:XXXXXXXX donde XXXXXXXXX es el cif,nif,o nie del certificado, y así no va a fallar.
Pero no sé si falta o sobra algo. De momento no voy a trabajar en las firmas. Pero creo que te faltan las politicas de firma tambien:
Código:
AutoFirmaCommandLine.exe sign -i c:\...\Fichero_vfactu_3_2-1-110.xml -o c:\...\Fichero_vfactu_3_2-1-110.xml.sign -format facturae -store pkcs12:"C:\...\fichero.pt2 o fichero.pfx" -password pepito -filter subject.contains:A29XXXXX -format xades -xml -config "format=XAdES Enveloped \npolicyIdentifier=urn:oid:2.16.724.1.3.1.1.2.1.9 \npolicyIdentifierHash=Dkx2R3nMv8kWo7iSAh+/1SQ70hfseOEaQbpJnURk+pg= \npolicyIdentifierHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256 \npolicyQualifier=https://sede.administracion.gob.es/politica_de_firma_anexo_1.pdf"
Si te funciona mandalo a verifactu el firmado a ver si es aceptado y despues al correo verifactu para que te lo corroboren, aunque es dificl que funcione a la primera, no tengo ahora el autofirma instalado y no he visto resultados.
|
Hola. Usando tu código sugerido, y comparando la salida con el archivo firmado de ejemplo proporcionado por la AEAT, veo que se añade un nodo extra dentro de <xades:SignedProperties> llamado <xades:SignedDataObjectProperties> con el siguiente contenido:
Código:
<xades:SignedDataObjectProperties>
<xades:DataObjectFormat ObjectReference="#Reference-f90e12c9-a8c8-4705-ac51-4ada280e7e32">
<xades:Description/>
<xades:ObjectIdentifier>
<xades:Identifier Qualifier="OIDAsURN">urn:oid:1.2.840.10003.5.109.10</xades:Identifier>
<xades:Description/>
</xades:ObjectIdentifier>
<xades:MimeType>text/xml</xades:MimeType>
<xades:Encoding/>
</xades:DataObjectFormat>
</xades:SignedDataObjectProperties>
Además, donde dice:
Código:
<xades:SigningCertificate><xades:Cert><xades:CertDigest><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
debería poner
Código:
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
.
También dentro del nodo <ds:SignedInfo> debería hacer mención a sha256, pero está poniendo sha512 en todas.
Dentro de <ds:Reference><ds:Transforms> se añade:
Código:
<ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
<ds:XPath xmlns:ds="http://www.w3.org/2000/09/xmldsig#">not(ancestor-or-self::ds:Signature)</ds:XPath>
</ds:Transform>
Uso AutoFirma 1.8.3 para Windows. Todavía no he llegado a la parte de enviar. ¿Alguien puede corroborar si este fichero resultante sería igualmente válido y el WebService se lo traga?