FirmaSAT

Usando la línea de comandos

Sintaxis:
FirmaSAT ACCION [OPCIONES] [-o outfile] [-i] infile
Para obtener ayuda sobre el tipo de acciones disponibles
FirmaSAT AYUDA
> FirmaSAT AYUDA
Uso: FirmaSAT ACCION [OPCIONES] [-o outfile] [-i] infile
ACCION (uno de):
 ASCIIFY = reemplazar caracteres no ASCII con referencias de caracteres XML.
 ATTRIBUTE = extracto de un determinado atributo de archivo XML.
 CERTSTRING = obtener los datos del certificado de cadena de un Base64.
 EXTRACTDIGEST = extraer el digestion de la firma.
 FORMDIGEST = formulario el digestion de la cadena.
 GETKEYSTRING = obtener la clave privada en forma de cadena base64.
 AYUDA = muestra esta ayuda (mi aerodeslizador esta lleno de anguilas!).
 AYUDA-OPCIONES = pantalla de ayuda para las opciones de.
 INSERTCERT = insertar detalles de certificado en un archivo XML.
 KEYCHECK = comprobar que el certificado partidos clave.
 LIBINFO = mostrar detalles de la DLL.
 MAKESIG = hacer firma de archivo XML.
 NEWKEY = guardar archivo clave con una nueva contrasena.
 NUMBERCERT = obtener el numero de serie de certificados.
 PIPESTRING = hacer cadena de archivo XML.
 QUERYCERT  = consultar un certificado para un valor dado (uso -q opcion).
 RECEIPTVERSION = obtener el numero de version de comprobante o archivo de ID.
 SIGNXML = crear la firma y establecer el `sello` de campo en el archivo XML.
 UTF8FIX = anadir un UTF-8 marca de orden de bytes en un archivo.
 UUID = generar un UUID.
 VERIFYSIG = verificar la firma en el archivo XML.
 WRITEPFX = crear el archivo PFX de clave privada y certificado.
 XMLOK = validar el archivo XML.
Para obtener ayuda, escriba ``FirmaSAT AYUDA'' (en Ingles ``FirmaSAT HELP'')
Para opciones ``FirmaSAT AYUDA-OPCIONES'' (en Ingles ``FirmaSAT HELP-OPTIONS'')
Para obtener ayuda sobre el tipo de opciones
FirmaSAT AYUDA-OPCIONES
> FirmaSAT AYUDA-OPCIONES
Uso: FirmaSAT ACCION [OPCIONES] [-o outfile] [-i] infile
OPCIONES:
 -a <nom-atributo>   requerido para la accion ATTRIBUTE
 -b procesar grandes archivos con SIGNXML/VERIFYSIG/FORMDIGEST/MAKESIG
 -c <archivo-cert>   especifique el certificado X.509
 -d mostrar informacion de Depuracion; -dd mostrar mas
 -e <nom-elemento>   requerido para la accion ATTRIBUTE
 -f actuar en el nodo tfd:TimbreFiscalDigital en lugar del elemento raiz
 -k <archivo-llave>  requerido para SIGNXML/KEYCHECK/MAKESIG/NEWKEY
 -l (letra 'L') utilizar restricciones XML sueltas con XMLOK: (defecto=strict)
 -m salida cifrada la clave privada en formato peM con GETKEYSTRING/NEWKEY
 -n <nue-contrasena> contrasena nueva para WRITEPFX/NEWKEY
 -p <contrasena> requerido para <archivo-llave>
 -q <query> requerido para QUERYCERT donde <query> es uno de
              {rfc|orgName|notAfter|notBefore|serialNumber|sigAlg|keySize}
 -s <archivo-estado> por defecto=ninguno; para usar stdout ``-s @''
 -t <tracking-info>  seguimiento del Info. opcional para el archivo de estado
 -w salida de la pantalla en la fuente de la consola Windows
 -x eXcluir BOM en archivo de salida con SIGNXML
 -y XML de salida usando las etiquetas de elementos vacios con SIGNXML
 -1 (numero 'uno') salida QUERYCERT/ATTRIBUTE en Latin-1 (defecto=UTF-8)
Para obtener ayuda, escriba ``FirmaSAT AYUDA'' (en Ingles ``FirmaSAT HELP'')
Para opciones ``FirmaSAT AYUDA-OPCIONES'' (en Ingles ``FirmaSAT HELP-OPTIONS'')
Para obtener ayuda acerca de un tipo de acción individual ``FirmaSAT HELP <nombre de acción>``. Por ejemplo
FirmaSAT HELP EXTRACTDIGEST
> FirmaSAT HELP EXTRACTDIGEST
FirmaSAT EXTRACTDIGEST [-c <certfile>] [-f] <xmlfile>
 Extracts the message digest from the signature ('sello') in file <xmlfile>.
 * Use the `-c` option to specify a separate X.509 certificate for the public
   key [default = use embedded certificate]
 * Use the `-f` option to extract the digest from the TFD element, if present.
   Requires `-c <certfile>` of the signer
En espanol: Extractos del resumen del mensaje de la firma ('Sello') en un
   archivo XML.
Para ver la ayuda detallada sobre todo el tipo de acciones
FirmaSAT HELP HELP

Ejemplo

> FirmaSAT SIGNXML -s @ -k emisor.key -p 12345678a -c emisor.cer -i cfdv40-base.xml -o cfdv40_new-signed.xml
STATUS: 0
ERRORDESCRIPTION: OK
DATETIMECREATED: Sun Aug 18 18:52:36 2023

Esto toma un archivo XML de entrada cfdv40-base.xml junto con el archivo de certificado X.509 del firmante emisor.cer y la clave privada emisor.key con la contraseña "12345678a". El documento XML firmado se emite como cfdv40_new-signed.xml.

El XML de entrada es un documento v4.0 CFDI con todos los campos completados, excepto los atributos "Certificado" y "Sello". El archivo de salida tiene firmado estos campos completados.

<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/4"
Version="4.0" ...
NoCertificado="30001000000300023708"
Certificado=""
Sello=""
...>
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/4"
Version="4.0" ...
NoCertificado="30001000000300023708" 
Certificado="MIIE/TCCA+WgAwIBAgIUMzAwMDEwMDAwMD..." 
Sello="Te/+FS80gNruYgYIWu4WXftCSdvSfGI..."
...>
El usuario obtiene el "NoCertificado" de su certificado X.509 utilizando la acción "QUERYCERT".
> FirmaSAT QUERYCERT -q serialNumber emisor.cer
30001000000300023708

Para más detalles sobre el uso de la acción SIGNXML ver XML signo en la FirmaSAT manual.