public final class AOXMLDSigSigner
extends java.lang.Object
implements es.gob.afirma.core.signers.AOSigner
Constructor and Description |
---|
AOXMLDSigSigner() |
Modifier and Type | Method and Description |
---|---|
byte[] |
cosign(byte[] data,
byte[] sign,
java.lang.String algorithm,
java.security.PrivateKey key,
java.security.cert.Certificate[] certChain,
java.util.Properties xParams)
Cofirma una firma en formato XMLdSig.
|
byte[] |
cosign(byte[] sign,
java.lang.String algorithm,
java.security.PrivateKey key,
java.security.cert.Certificate[] certChain,
java.util.Properties xParams)
Cofirma una firma en formato XMLdSig.
|
byte[] |
countersign(byte[] sign,
java.lang.String algorithm,
es.gob.afirma.core.signers.CounterSignTarget targetType,
java.lang.Object[] targets,
java.security.PrivateKey key,
java.security.cert.Certificate[] certChain,
java.util.Properties xParams)
Contrafirma firmas en formato XMLdSig.
|
byte[] |
getData(byte[] sign) |
java.lang.String |
getSignedName(java.lang.String originalName,
java.lang.String inText) |
es.gob.afirma.core.util.tree.AOTreeModel |
getSignersStructure(byte[] sign,
boolean asSimpleSignInfo) |
es.gob.afirma.core.signers.AOSignInfo |
getSignInfo(byte[] sign) |
boolean |
isSign(byte[] sign) |
boolean |
isValidDataFile(byte[] data) |
byte[] |
sign(byte[] data,
java.lang.String algorithm,
java.security.PrivateKey key,
java.security.cert.Certificate[] certChain,
java.util.Properties xParams)
Firma datos en formato XMLDSig 1.0 (XML Digital Signature).
|
public byte[] sign(byte[] data, java.lang.String algorithm, java.security.PrivateKey key, java.security.cert.Certificate[] certChain, java.util.Properties xParams) throws es.gob.afirma.core.AOException
En el caso de que se firma un fichero con formato XML que contenga hojas de estilo XSL, y siempre que no se haya establecido el parámetro ignoreStyleSheets a true, se sigue la siguiente convención para la firma es estas:
sign
in interface es.gob.afirma.core.signers.AOSimpleSigner
data
- Datos que deseamos firmar.algorithm
- Algoritmo a usar para la firma.
Se aceptan los siguientes algoritmos en el parámetro algorithm
:
AOSignConstants.SIGN_ALGORITHM_SHA1WITHRSA
)AOSignConstants.SIGN_ALGORITHM_SHA256WITHRSA
)AOSignConstants.SIGN_ALGORITHM_SHA384WITHRSA
)AOSignConstants.SIGN_ALGORITHM_SHA512WITHRSA
)key
- Clave privada a usar para firmarcertChain
- Cadena de certificados del firmantexParams
- Parámetros adicionales para la firma.
Se aceptan los siguientes valores en el parámetro xParams
:
AOSignConstants.SIGN_MODE_EXPLICIT
)AOSignConstants.SIGN_MODE_IMPLICIT
)AOSignConstants.SIGN_FORMAT_XMLDSIG_DETACHED
)AOSignConstants.SIGN_FORMAT_XMLDSIG_EXTERNALLY_DETACHED
)AOSignConstants.SIGN_FORMAT_XMLDSIG_ENVELOPED
)AOSignConstants.SIGN_FORMAT_XMLDSIG_ENVELOPING
)true
, si se establece a false
sí las firmatrue
, si se establece a false
actúa normalmente (sí las declara)
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
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.
es.gob.afirma.core.AOException
- Cuando ocurre cualquier problema durante el procesopublic byte[] getData(byte[] sign) throws es.gob.afirma.core.AOInvalidFormatException
getData
in interface es.gob.afirma.core.signers.AOSigner
es.gob.afirma.core.AOInvalidFormatException
public byte[] cosign(byte[] data, byte[] sign, java.lang.String algorithm, java.security.PrivateKey key, java.security.cert.Certificate[] certChain, java.util.Properties xParams) throws es.gob.afirma.core.AOException
Este método firma todas las referencias a datos declaradas en la firma original, ya apunten estas a datos, hojas de estilo o cualquier otro elemento. En cada referencia firmada se introduciran las mismas transformaciones que existiesen en la firma original.
A nivel de formato interno, cuando cofirmamos un documento ya firmado previamente, esta
firma previa no se modifica. Si tenemos en cuenta que XAdES es en realidad un subconjunto
de XMLDSig, el resultado de una cofirma XMLdSig sobre un documento firmado previamente con
XAdES (o viceversa), son dos firmas independientes, una en XAdES y otra en XMLDSig.
Dado que todas las firmas XAdES son XMLDSig pero no todas las firmas XMLDSig son XAdES,
el resultado global de la firma se adecúa al estandar mas amplio, XMLDSig en este caso.
cosign
in interface es.gob.afirma.core.signers.AOCoSigner
data
- No se utiliza.sign
- Firma que se desea cofirmar.algorithm
- Algoritmo a usar para la firma.
Se aceptan los siguientes algoritmos en el parámetro algorithm
:
AOSignConstants.SIGN_ALGORITHM_SHA1WITHRSA
)AOSignConstants.SIGN_ALGORITHM_SHA256WITHRSA
)AOSignConstants.SIGN_ALGORITHM_SHA384WITHRSA
)AOSignConstants.SIGN_ALGORITHM_SHA512WITHRSA
)key
- Clave privada a usar para firmarcertChain
- Cadena de certificados del firmantexParams
- Parámetros adicionales para la firma.
Se aceptan los siguientes valores en el parámetro xParams
:
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.
es.gob.afirma.core.AOException
- Cuando ocurre cualquier problema durante el procesopublic byte[] cosign(byte[] sign, java.lang.String algorithm, java.security.PrivateKey key, java.security.cert.Certificate[] certChain, java.util.Properties xParams) throws es.gob.afirma.core.AOException
Este método firma todas las referencias a datos declaradas en la firma original, ya apunten estas a datos, hojas de estilo o cualquier otro elemento. En cada referencia firmada se introduciran las mismas transformaciones que existiesen en la firma original.
A nivel de formato interno, cuando cofirmamos un documento ya firmado previamente, esta
firma previa no se modifica. Si tenemos en cuenta que XAdES es en realidad un subconjunto
de XMLDSig, el resultado de una cofirma XMLdSig sobre un documento firmado previamente con
XAdES (o viceversa), son dos firmas independientes, una en XAdES y otra en XMLDSig.
Dado que todas las firmas XAdES son XMLDSig pero no todas las firmas XMLDSig son XAdES,
el resultado global de la firma se adecúa al estandar mas amplio, XMLDSig en este caso.
cosign
in interface es.gob.afirma.core.signers.AOCoSigner
sign
- Firma que se desea cofirmar.algorithm
- Algoritmo a usar para la firma.
Se aceptan los siguientes algoritmos en el parámetro algorithm
:
AOSignConstants.SIGN_ALGORITHM_SHA1WITHRSA
)AOSignConstants.SIGN_ALGORITHM_SHA256WITHRSA
)AOSignConstants.SIGN_ALGORITHM_SHA384WITHRSA
)AOSignConstants.SIGN_ALGORITHM_SHA512WITHRSA
)key
- Clave privada a usar para firmarcertChain
- Cadena de certificados del firmantexParams
- Parámetros adicionales para la firma.
Se aceptan los siguientes valores en el parámetro xParams
:
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.
es.gob.afirma.core.AOException
- Cuando ocurre cualquier problema durante el procesopublic byte[] countersign(byte[] sign, java.lang.String algorithm, es.gob.afirma.core.signers.CounterSignTarget targetType, java.lang.Object[] targets, java.security.PrivateKey key, java.security.cert.Certificate[] certChain, java.util.Properties xParams) throws es.gob.afirma.core.AOException
Este método contrafirma los nodos de firma indicados de un documento de firma.
countersign
in interface es.gob.afirma.core.signers.AOCounterSigner
sign
- Documento con las firmas iniciales.algorithm
- Algoritmo a usar para la firma.
Se aceptan los siguientes algoritmos en el parámetro algorithm
:
targetType
- Mecanismo de selección de los nodos de firma que se deben
contrafirmar.
Las distintas opciones son:
target
target
Cada uno de estos tipos se define en CounterSignTarget
.
targets
- Listado de nodos o firmantes que se deben contrafirmar según el
targetType
seleccionado.key
- Clave privada a usar para firmar.certChain
- Cadena de certificados del firmante.xParams
- Parámetros adicionales para la firma.
Se aceptan los siguientes valores en el parámetro xParams
:
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.es.gob.afirma.core.AOException
- Cuando ocurre cualquier problema durante el procesopublic es.gob.afirma.core.util.tree.AOTreeModel getSignersStructure(byte[] sign, boolean asSimpleSignInfo)
getSignersStructure
in interface es.gob.afirma.core.signers.AOSigner
public boolean isSign(byte[] sign)
isSign
in interface es.gob.afirma.core.signers.AOSigner
public boolean isValidDataFile(byte[] data)
isValidDataFile
in interface es.gob.afirma.core.signers.AOSigner
public java.lang.String getSignedName(java.lang.String originalName, java.lang.String inText)
getSignedName
in interface es.gob.afirma.core.signers.AOSigner
public es.gob.afirma.core.signers.AOSignInfo getSignInfo(byte[] sign) throws es.gob.afirma.core.AOException
getSignInfo
in interface es.gob.afirma.core.signers.AOSigner
es.gob.afirma.core.AOException