Crear firmas XML
Para crear una firma XML para un documento XML, abra el documento para el que desea crear la firma. Después haga clic en el comando de menú XML | Crear firma XML. A continuación se abre el cuadro de diálogo "Crear firma XML" (ver imagen siguiente), cuyas opciones se explican a continuación.
Método de autenticación: certificado o contraseña
La firma puede estar basada en un certificado o en una contraseña. Seleccione el botón de opción del método que desea usar.
•Certificado: haga clic en el botón Seleccionar y busque el certificado que desea usar. El certificado debe tener una clave privada. La firma se genera usando la clave privada del certificado. Para verificar la firma, es necesario tener acceso al certificado (o a una versión del certificado de clave pública). La clave pública del certificado se usa para verificar la firma. Para más información sobre los certificados, consulte el apartado Trabajar con certificados.
•Contraseña: introduzca una contraseña de como mínimo cinco caracteres (y 16 caracteres como máximo). A partir de este momento esta contraseña será necesaria para verificar la firma.
Nota: | La función para firmas XML de XMLSpy es compatible con todos los algoritmos requeridos. |
Transformaciones
Los datos XML se transforman y el resultado de la transformación se utiliza para crear la firma. Puede especificar el algoritmo de canonización que se debe aplicar a los datos XML del archivo (el contenido de SignedInfo) antes de realizar los cálculos de la firma. Tenga en cuenta que hay diferencias entre usar un tipo de transformación u otro:
•Transformación canónica XML con o sin comentarios: si se incluyen comentarios para el cálculo de la firma, cualquier cambio en los comentarios de los datos XML darán lugar a un error de verificación. Aparte de esto, puede cambiar los comentarios o añadir comentarios nuevos en el documento XML después de firmarlo y la firma seguirá siendo auténtica.
•Base64: se considera que el elemento raíz (o de documento) del documento XML tiene codificación Base64 y se lee en formato binario. Si el elemento raíz no tiene codificación Base64, se genera un error o se interpreta que el elemento está vacío.
•Ninguna: no se realiza ninguna transformación y los datos XML del archivo binario guardado en el disco se pasan directamente para crear la firma. Si después se realizan cambios en los datos, se produce un error de verificación de la firma. No obstante, si marca la casilla Eliminar los espacios en blanco, se eliminan todos los espacios en blanco y los cambios en los espacios en blanco se omiten. La principal diferencia entre no usar ninguna transformación y usar una transformación canónica es que la canonización da lugar a una secuencia de datos XML, en la que algunas diferencias (como diferencias en el orden de los atributos) están normalizadas. Como consecuencia, una transformación canónica normalizará determinados cambios, como por ejemplo los cambios en el orden de los atributos (y la verificación se realizará correctamente). Por el contrario, si no se realiza ninguna transformación, ese tipo de cambios se tendrá en cuenta y se producirá un error de verificación. Recuerde que si la firma se incrusta en el documento (ya sea como firma envuelta o envolvente), entonces se realiza una canonización por defecto. De modo que los datos XML se usarán tal y como están (es decir, sin transformación) cuando la firma esté en un archivo separado, cuando se seleccione la opción Ninguna y cuando esté desactivada la casilla Eliminar los espacios en blanco.
Posición de la firma
Puede colocar la firma dentro del archivo XML o guardarla en un archivo separado. Estas son las opciones de sondeo disponibles:
•Firmas envueltas: el elemento Signature se crea como último elemento secundario del elemento (de documento) raíz.
•Firmas envolventes: el elemento Signature se crea como elemento (de documento) raíz y el documento XML se inserta como elemento secundario de este.
•Firma separada: la firma XML se crea en un archivo separado. En este caso puede indicar la extensión de archivo del archivo de firma y si el nombre del archivo se crea: (i) uniendo la extensión de archivo al nombre del archivo XML (p.ej. test.xml.xsig) o (ii) usando el nombre del archivo XML pero con la extensión del archivo de firma en lugar de la extensión XML (p.ej. test.xsig). También puede indicar si en el archivo de firma la referencia al archivo XML es una ruta de acceso relativa o absoluta.
Nota: | Las firmas XML para archivos de esquema XML (.xsd) se pueden crear en la vista Esquema como archivos de firma separados (no como firma incrustada). Las firmas XML para archivos XBRL se pueden crear en la vista XBRL como archivos de firma separados (no como firma incrustada). Las firmas XML para archivos WSDL se pueden crear en la vista WSDL como archivos de firma separados o como firmas envueltas en el archivo WSDL. |
Nota: | Si la firma XML se crea como archivo separado, entonces se crea una referencia en el archivo de firma que asocia el archivo XML con el archivo de firma. Por tanto, cuando la firma es un archivo externo, su verificación debe hacerse con el archivo de firma activo y no con el archivo XML activo. |
Anexar información de clave
La opción Anexar información de clave está disponible si la firma está basada en un certificado. Si la firma está basada en una contraseña, esta opción se deshabilita.
Si selecciona esta opción, la información de clave pública se coloca dentro de la firma. De lo contrario, la información de clave no se incluye en la firma. El incluir la información de clave tiene la ventaja de que el certificado propiamente dicho (en concreto, su información de clave pública) no será necesario para el proceso de verificación (puesto que la información de clave está presente en la firma).