Valores aceptados como parámetros adicionales para las firmas XAdES:
- useManifest
-
Indica, mediante
true
o false
(por defecto), si debe usarse
un Manifest de XMLDSig
con las referencias de firma en vez de firmar directamente estas referencias.
Esto permite que sea opcional la comprobación del destino y huellas digitales de
las referencias.
- insertEnvelopedSignatureOnNodeByXPath
-
Indica, mediante una expresión XPath (v1), el nodo bajo el cual
debe insertarse el nodo de firma en el caso de una firma Enveloped.
Si la expresión devuelve más de un nodo, se usa solo el primero.
Si la expresión no devuelve nodos o está mal construida se
lanzará una excepción.
Este parámetro solo tiene efecto en firmas Enveloped.
- addKeyInfoKeyValue
-
Indica, mediante
true
(por defecto) o false
, si debe
incluirse el nodo KeyValue
dentro de KeyInfo
de XAdES.
- addKeyInfoKeyName
-
Indica, mediante
true
o false
(por defecto), si debe
incluirse el nodo KeyName
dentro de KeyInfo
de XAdES.
- nodeToSign (no aplica a contrafirmas)
-
Indica un identificador de nodo a firmar, para el caso en el que quiera firmarse
un nodo concreto en vez de todo el documento. Solo aplica a la firma de
documentos XML.
El identificador de nodo debe estar indicado con el valor de un atributo llamado Id,
y se ignorarán los atributos con nombre distinto, aunque se hayan declarado
en el esquema como identificadores (con una línea del tipo
<xs:attribute name="otronombre" type="xs:ID"/>
), para evitar
conflictos con el esquema de XAdES y XMLDSig.
- uri (no aplica a contrafirmas)
- URL en la que se encuentra el documento a firmar, necesario en el caso del formato XAdES Externally Detached.
- format
-
Formato de firma. Se aceptan los siguientes valores:
- policyIdentifier (propiedad compartida con CAdES y PAdES)
- Identificador de la política de firma (normalmente una URL hacia la política en formato XML procesable o una URN de tipo OID).
- policyIdentifierHash (propiedad compartida con CAdES y PAdES)
-
Huella digital del documento de política de firma (normalmente del mismo fichero en formato XML procesable).
Si no se indica, es obligatorio que el parámetro
policyIdentifier
sea una URL accesible universalmente.
- policyIdentifierHashAlgorithm (propiedad compartida con CAdES y PAdES)
- Algoritmo usado para el cálculo de la huella digital indicada en el parámetro
policyIdentifierHash
.
- policyDescription
- Descripción textual de la política
- policyQualifier (propiedad compartida con CAdES y PAdES)
- URL hacia el documento (legible por personas, normalmente en formato PDF) descriptivo de la política de firma.
- includeOnlySignningCertificate (propiedad compartida con CAdES y PAdES)
-
Indica, mediante un
true
o false
, que debe
incluirse en la firma únicamente el certificado utilizado
para firmar y no su cadena de certificación completa.
Por defecto, se incluirá toda la cadena de certificación.
- facturaeSign
-
Indica, mediante un
true
o false
, si se
deben realizar las necesarias restricciones de comportamiento
para la firma de facturas electrónicas (FACTURAe).
Estas restricciones son, no introducir la
transformación de canonicalización de la firma,
ni la transformación XPATH en las firmas Enveloped.
- signerClaimedRoles
-
Lista de cargos atribuidos al firmante separados por el carácter '|'.
Los cargos de la lista no pueden contener el carácter '|' (ya que este se usa como separador).
- precalculatedHashAlgorithm
-
Algoritmo utilizado para el cálculo de la huella digital cuando se proporciona esta en vez de los
datos a firmar. Cuando se proporcione una huella en vez de datos deben tenerse en cuenta los siguientes aspectos:
-
La huella digital debe indicarse en lugar de los datos, en el mismo parámetro del método de firma.
-
Solo puede indicarse una huella cuando no se incluyan los datos dentro de la propia firma, es decir, en firmas
Externally Detached, siendo conveniente además hacer uso de un Manifest.
- signatureProductionCity (propiedad compartida con PAdES y CAdES)
- Ciudad en la que se realiza la firma.
- signatureProductionProvince
- Provincia en la que se realiza la firma.
- signatureProductionPostalCode (propiedad compartida con CAdES)
- Código postal en el que se realiza la firma.
- signatureProductionCountry (propiedad compartida con CAdES)
- País en el que se realiza la firma.
- commitmentTypeIndications (propiedad compartida con CAdES)
-
Número de CommitmentTypeIndications a añadir a la firma XAdES.
En los parámetros siguientes, los CommitmentTypeIndications se numeran a partir de 0 (cero).
- commitmentTypeIndicationnIdentifier (propiedad compartida con CAdES)
-
Tipo de CommitmentTypeIndication (atributo obligatorio, se debe usar el ordinal, nunca el OID directamente):
- 1 = Prueba de origen
- 2 = Prueba de recepción
- 3 = Prueba de entrega
- 4 = Prueba de envío
- 5 = Prueba de aprobación
- 6 = Prueba de creación
- commitmentTypeIndicationnDescription
-
Descripción textual del CommitmentTypeIndication número n (atributo opcional).
- commitmentTypeIndicationnDocumentationReferences
-
Lista de URL separadas por el carácter '|' que se aportan como referencias documentales del
CommitmentTypeIndication número n (atributo opcional).
Las URL de la lista no pueden contener el carácter '|' (ya que este se usa como separador).
- commitmentTypeIndicationnCommitmentTypeQualifiers
-
Lista de indicadores textuales separados por el carácter '|' que se aportan como calificadores adicionales del
CommitmentTypeIndication número n (atributo opcional). Normalmente son OID.
Los elementos de la lista no pueden contener el carácter '|' (ya que este se usa como separador).
- xmlTransforms
-
Número de transformaciones a aplicar al XML antes de firmarlo.
En los parámetros siguientes, las transformaciones se numeran a partir de 0 (cero).
- xmlTransformnType
- Tipo de la transformación n (debe ser la URL del algoritmo según define W3C).
- xmlTransformnSubtype
- Subtipo de la transformación n (por ejemplo, "intersect", "subtract" o "union" para XPATH2).
- xmlTransformnBody
-
Cuerpo de la transformación n.
Los valores aceptados y sus funcionalidades dependen de los valores indicados en
xmlTransformnType
y en xmlTransformnSubtype
.
- referencesDigestMethod
-
Algoritmo de huella digital a usar en las referencias XML (referencesDigestMethod). Debe indicarse como una URL,
aceptándose los siguientes valores:
- http://www.w3.org/2000/09/xmldsig#sha1 (SHA-1)
- http://www.w3.org/2001/04/xmlenc#sha256 (SHA-256, valor recomendado)
- http://www.w3.org/2001/04/xmlenc#sha512 (SHA-512)
- mimeType (no aplica a contrafirmas)
-
MIME-Type de los datos a firmar. Si no se indica se realiza una auto-detección cuyo resultado puede
ser inexacto.
- outputXmlEncoding
-
Codificación del XML de salida.
Si no se indica este valor se intenta auto-detectar a partir del XML de entrada (si los datos a firmar son un XML).
- encoding
-
Codificación de los datos a firmar (ver la
documentación del elemento Object de XMLDSig para más información).
No confundir con la codificación del XML, son valores independientes.
Por restricción de esquema de XMLDsig debe ser una URI:
<element name="Object" type="ds:ObjectType"/>
<complexType name="ObjectType" mixed="true">
<sequence minOccurs="0" maxOccurs="unbounded">
<any namespace="##any" processContents="lax"/>
</sequence>
<attribute name="Id" type="ID" use="optional"/>
<attribute name="MimeType" type="string" use="optional"/>
<attribute name="Encoding" type="anyURI" use="optional"/>
</complexType>
Si se proporcionan datos a firmar previamente codificados en Base64 pero se desea sean considerados como
su forma descodificada, debe establecerse este valor a http://www.w3.org/2000/09/xmldsig#base64
y especificarse el tipo real en el parámetro mimeType
.
Por ejemplo, para firmar una imagen PNG haciendo que la firma se refiera a su forma binaria directa, puede
proporcionarse la imagen directamente codificada en Base64 indicando el encoding
como
http://www.w3.org/2000/09/xmldsig#base64
y el mimeType
como image/png
.
- contentTypeOid (no aplica a contrafirmas)
-
- OID que identifica el tipo de datos a firmar.
- canonicalizationAlgorithm
- Algoritmo de canonicalización.
- xadesNamespace
-
URL de definición del espacio de nombres de XAdES (y por extensión, versión de XAdES).
Si se establece este parámetro es posible que se necesite establecer también el parámetro
signedPropertiesTypeUrl
para evitar incoherencias en la versión de XAdES.
- signedPropertiesTypeUrl
-
URL de definición del tipo de las propiedades firmadas (Signed Properties) de XAdES.
Si se establece este parámetro es posible que se necesite establecer también el parámetro
xadesNamespace
para evitar incoherencias en la versión de XAdES.
Si no se establece se usa el valor por defecto: http://uri.etsi.org/01903#SignedProperties.
- ignoreStyleSheets (no aplica a contrafirmas)
-
Ignora las hojas de estilo externas de los XML (no las firma) si se establece a
true
,
si se establece a false
actúa normalmente (sí las firma).
- avoidBase64Transforms (no aplica a contrafirmas)
-
No declara transformaciones Base64 incluso si son necesarias si se establece a
true
,
si se establece a false
actúa normalmente (sí las declara).
- headLess
-
Evita cualquier interacción con el usuario si se establece a
true
,
si se establece a false
actúa normalmente (puede mostrar diálogos,
por ejemplo, para la dereferenciación de hojas de estilo enlazadas con rutas relativas).
Útil para los procesos desatendidos y por lotes.
Respecto al uso de los parámetros xmlTransform
nType
,
xmlTransform
nSubtype
y xmlTransform
nBody
,
sus valores van ligados, aceptándose las siguientes combinaciones:
Transformación XPATH
-Tipo: http://www.w3.org/TR/1999/REC-xpath-19991116
-Subtipos: No tiene subtipos.
-Cuerpo: Especificado mediante sentencias de tipo XPATH.
Transformación XPATH2
-Tipo: http://www.w3.org/2002/06/xmldsig-filter2
-Subtipos:
subtract: Resta.
intersect: Intersección
union: Unión
-Cuerpo: Especificado mediante sentencias de tipo XPATH2.
Transformación BASE64.
La transformación es inversa, es decir, los datos se descodifican desde Base64 antes de firmarse,
por lo que estos deben estar previamente codificados en Base64 e indicarse mediante el parámetro
adicional encodign=base64
-Tipo: http://www.w3.org/2000/09/xmldsig#base64
-Subtipos: No tiene subtipos.
-Cuerpo: No tiene cuerpo.
No es posible especificar transformaciones complejas que incluyan varias sentencias.
En su lugar, puede declararse una sucesión de transformaciones simples que produzcan el
mismo resultado. Cada una de las transformaciones se aplicará de forma ordenada sobre el
resultado de la anterior.