public final class AOCAdESASiCSSigner
extends java.lang.Object
implements es.gob.afirma.core.signers.AOSigner
Constructor and Description |
---|
AOCAdESASiCSSigner() |
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 extraParams)
Cofirma en formato CAdES los datos encontrados en un contenedor ASiC-S que ya tuviese una firma CAdES o CMS,
añadiendo esta nueva firma a la del contenedor (se sustituye la antigua por la el nuevo fichero con todas las firmas).
|
byte[] |
cosign(byte[] sign,
java.lang.String algorithm,
java.security.PrivateKey key,
java.security.cert.Certificate[] certChain,
java.util.Properties extraParams)
Cofirma en formato CAdES los datos encontrador en un contenedor ASiC-S que ya tuviese una firma CAdES o CMS,
añadiendo esta nueva firma a la del contenedor (se sustituye la antigua por la el nuevo fichero con todas las firmas).
|
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 extraParams) |
byte[] |
getData(byte[] signData) |
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[] signData) |
boolean |
isSign(byte[] is) |
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 CAdES devolviendo el resultado empaquetado como ASiC-S.
|
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, java.io.IOException
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
:
key
- Clave privada a usar para firmar.certChain
- Cadena de certificados del firmante.xParams
- Parámetros adicionales para la firma (detalle).mode
, que aunque se
estableca no tendrá ningún efecto, ya que un contenedor ASiC contendra siempre, y de forma
separada, datos y firma.es.gob.afirma.core.AOException
- Cuando ocurre cualquier problema durante el proceso.java.io.IOException
- Si hay problemas en el tratamiento de datos.public es.gob.afirma.core.util.tree.AOTreeModel getSignersStructure(byte[] sign, boolean asSimpleSignInfo) throws es.gob.afirma.core.AOInvalidFormatException, java.io.IOException
getSignersStructure
in interface es.gob.afirma.core.signers.AOSigner
es.gob.afirma.core.AOInvalidFormatException
java.io.IOException
public boolean isSign(byte[] is) throws java.io.IOException
isSign
in interface es.gob.afirma.core.signers.AOSigner
java.io.IOException
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 byte[] getData(byte[] signData) throws java.io.IOException
getData
in interface es.gob.afirma.core.signers.AOSigner
java.io.IOException
public es.gob.afirma.core.signers.AOSignInfo getSignInfo(byte[] signData) throws es.gob.afirma.core.AOException, java.io.IOException
getSignInfo
in interface es.gob.afirma.core.signers.AOSigner
es.gob.afirma.core.AOException
java.io.IOException
public byte[] cosign(byte[] data, byte[] sign, java.lang.String algorithm, java.security.PrivateKey key, java.security.cert.Certificate[] certChain, java.util.Properties extraParams) throws es.gob.afirma.core.AOException, java.io.IOException
Nota sobre cofirmas cruzadas entre PKCS#7/CMS y CAdES:
Las cofirmas de un documento dan como resultado varias firmas a un mismo nivel sobre este mismo documento,
es decir, que ninguna firma envuelve a la otra ni una prevalece sobre la otra.
A nivel de formato interno, esto quiere decir que cuando cofirmamos un documento ya firmado previamente,
esta firma previa no se modifica. Si tenemos en cuenta que CAdES es en realidad un subconjunto de CMS, el
resultado de una cofirma CAdES sobre un documento firmado previamente con CMS (o viceversa), son dos firmas
independientes, una en CAdES y otra en CMS.
Dado que todas las firmas CAdES son CMS pero no todas las firmas CMS son CAdES, el resultado global de la firma
se adecúa al estándar mas amplio, CMS en este caso.
Otro efecto de compatibilidad de formatos de las cofirmas con varios formatos en un unico documento es la ruptura
de la compatibilidad con PKCS#7, ya que, aunque las firmas generadas por el cliente mediante CMS son compatibles
con PKCS#7, las generadas con CAdES no lo son, por lo que, en el momento que se introduzca una estructura CAdES,
se pierde la compatibilidad PKCS#7 en el global de la firma.
IMPORTANTE: Este método requiere la presencia de es.gob.afirma.signers.multi.cades.asic.AOCAdESASiCSCoSigner
en el CLASSPATH
cosign
in interface es.gob.afirma.core.signers.AOCoSigner
data
- Se ignora este parámetro, los datos se cojen del contenedor ASiC-S.sign
- Contenedor ASiC-S (con un fichero de firmas CAdES o CMS).algorithm
- Algoritmo a usar para la firma.
Se aceptan los siguientes algoritmos en el parámetro algorithm
:
key
- Clave privada a usar para firmarextraParams
- Parámetros adicionales para la firma (detalle).mode
, que aunque se
estableca no tendrá ningún efecto, ya que un contenedor ASiC contendra siempre, y de forma
separada, datos y firma.es.gob.afirma.core.AOException
- Cuando ocurre cualquier problema durante el proceso.java.io.IOException
- Si hay problemas en el tratamiento de datos.public byte[] cosign(byte[] sign, java.lang.String algorithm, java.security.PrivateKey key, java.security.cert.Certificate[] certChain, java.util.Properties extraParams) throws es.gob.afirma.core.AOException, java.io.IOException
Nota sobre cofirmas cruzadas entre PKCS#7/CMS y CAdES:
Las cofirmas de un documento dan como resultado varias firmas a un mismo nivel sobre este mismo documento,
es decir, que ninguna firma envuelve a la otra ni una prevalece sobre la otra.
A nivel de formato interno, esto quiere decir que cuando cofirmamos un documento ya firmado previamente,
esta firma previa no se modifica. Si tenemos en cuenta que CAdES es en realidad un subconjunto de CMS, el
resultado de una cofirma CAdES sobre un documento firmado previamente con CMS (o viceversa), son dos firmas
independientes, una en CAdES y otra en CMS.
Dado que todas las firmas CAdES son CMS pero no todas las firmas CMS son CAdES, el resultado global de la firma
se adecúa al estándar mas amplio, CMS en este caso.
Otro efecto de compatibilidad de formatos de las cofirmas con varios formatos en un unico documento es la ruptura
de la compatibilidad con PKCS#7, ya que, aunque las firmas generadas por el cliente mediante CMS son compatibles
con PKCS#7, las generadas con CAdES no lo son, por lo que, en el momento que se introduzca una estructura CAdES,
se pierde la compatibilidad PKCS#7 en el global de la firma.
IMPORTANTE: Este método requiere la presencia de es.gob.afirma.signers.multi.cades.asic.AOCAdESASiCSCoSigner
en el CLASSPATH
cosign
in interface es.gob.afirma.core.signers.AOCoSigner
sign
- Contenedor ASiC-S (con un fichero de firmas CAdES o CMS).algorithm
- Algoritmo a usar para la firma.
Se aceptan los siguientes algoritmos en el parámetro algorithm
:
key
- Clave privada a usar para firmarextraParams
- Parámetros adicionales para la firma (detalle).mode
, que aunque se
estableca no tendrá ningún efecto, ya que un contenedor ASiC contendra siempre, y de forma
separada, datos y firma.es.gob.afirma.core.AOException
- Cuando ocurre cualquier problema durante el proceso.java.io.IOException
- Si hay problemas en el tratamiento de datos.public 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 extraParams) throws es.gob.afirma.core.AOException, java.io.IOException
countersign
in interface es.gob.afirma.core.signers.AOCounterSigner
es.gob.afirma.core.AOException
java.io.IOException