es.caib.signatura.provider.impl.common
Class CMSSignatureImpl

java.lang.Object
  extended by es.caib.signatura.provider.impl.common.CMSSignatureImpl
All Implemented Interfaces:
es.caib.signatura.api.Signature, es.caib.signatura.impl.SignatureProviderInterface
Direct Known Subclasses:
CMSSignatureImplv2

public class CMSSignatureImpl
extends java.lang.Object
implements es.caib.signatura.impl.SignatureProviderInterface

Implementación de la interfaz SignatureData para usar con la entidad certificadora Tradisea

Version:
0.98
Author:
3digits
See Also:
Signer, Signature

Constructor Summary
CMSSignatureImpl()
           
 
Method Summary
protected  org.bouncycastle.cms.CMSSignedData addTimeStamp(org.bouncycastle.cms.CMSSignedData signedData, byte[] digest)
           
 java.security.cert.X509Certificate getCert()
           
 java.lang.String getCertCaName()
          Obtiene el nombre de la entidad certificadora usada en la firma
 java.security.cert.X509Certificate[] getCertificateChain()
           
 java.lang.String getCertSubjectAlternativeNames()
           
 java.lang.String getCertSubjectCommonName()
          Obtiene el nombre del certificado usado en la firma
 java.lang.String getContentType()
           
 java.util.Date getDate()
           
 es.caib.signatura.api.ParsedCertificate getParsedCertificate()
           
 byte[] getPkcs7()
           
protected  java.security.cert.X509Certificate[] getTimeStampCertificates(java.util.Collection certCollection)
           
 void setContentType(java.lang.String contentType)
           
 void setSignedData(byte[] pkcs7)
          Crea un nuevo objeto a partir de los atributos de la clase.
 boolean verify()
           
 boolean verify(java.io.InputStream contentStream)
           
 boolean verifyAPosterioriTimestamp(java.io.InputStream contentStream)
           
protected  boolean verifyAPosterioriTimestampRaw(java.io.InputStream contentStream)
           
protected  boolean verifyRaw(java.io.InputStream contentStream)
           
protected  boolean verifyTimestamp(org.bouncycastle.tsp.TimeStampToken tst, org.bouncycastle.cms.SignerInformation si, byte[] documentDigest)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CMSSignatureImpl

public CMSSignatureImpl()
Method Detail

getCertificateChain

public java.security.cert.X509Certificate[] getCertificateChain()
                                                         throws java.lang.Exception
Specified by:
getCertificateChain in interface es.caib.signatura.api.Signature
Specified by:
getCertificateChain in interface es.caib.signatura.impl.SignatureProviderInterface
Throws:
java.lang.Exception

setSignedData

public void setSignedData(byte[] pkcs7)
                   throws java.lang.Exception
Crea un nuevo objeto a partir de los atributos de la clase. Es el constructor que debe usar cada implementación de la interfaz Signature para crear una firma. Se extrae el certificado de la firma y se guarda en la propiedad transient certificate para usarla en los métodos que dan información concreta del certificado

Specified by:
setSignedData in interface es.caib.signatura.impl.SignatureProviderInterface
Parameters:
signatureBytes - array de bytes con la firma digital generada por la api del proveedor de firma electrónica
Throws:
java.lang.Exception

getCertCaName

public java.lang.String getCertCaName()
Obtiene el nombre de la entidad certificadora usada en la firma

Specified by:
getCertCaName in interface es.caib.signatura.api.Signature
Returns:
nombre de la entidad certificadora

getCertSubjectCommonName

public java.lang.String getCertSubjectCommonName()
Obtiene el nombre del certificado usado en la firma

Specified by:
getCertSubjectCommonName in interface es.caib.signatura.api.Signature
Returns:
nombre del certificado (CommonName)

getCertSubjectAlternativeNames

public java.lang.String getCertSubjectAlternativeNames()
Specified by:
getCertSubjectAlternativeNames in interface es.caib.signatura.api.Signature

getTimeStampCertificates

protected java.security.cert.X509Certificate[] getTimeStampCertificates(java.util.Collection certCollection)
                                                                 throws java.lang.Exception
Throws:
java.lang.Exception

getPkcs7

public byte[] getPkcs7()
Specified by:
getPkcs7 in interface es.caib.signatura.api.Signature

getDate

public java.util.Date getDate()
                       throws es.caib.signatura.api.SignatureTimestampException
Specified by:
getDate in interface es.caib.signatura.api.Signature
Throws:
es.caib.signatura.api.SignatureTimestampException

verify

public boolean verify()
               throws es.caib.signatura.api.SignatureVerifyException
Specified by:
verify in interface es.caib.signatura.api.Signature
Throws:
es.caib.signatura.api.SignatureVerifyException

getCert

public java.security.cert.X509Certificate getCert()
Specified by:
getCert in interface es.caib.signatura.api.Signature

verifyAPosterioriTimestamp

public boolean verifyAPosterioriTimestamp(java.io.InputStream contentStream)
                                   throws es.caib.signatura.api.SignatureProviderException,
                                          java.io.IOException,
                                          es.caib.signatura.api.SignatureVerifyException
Specified by:
verifyAPosterioriTimestamp in interface es.caib.signatura.api.Signature
Throws:
es.caib.signatura.api.SignatureProviderException
java.io.IOException
es.caib.signatura.api.SignatureVerifyException

verifyAPosterioriTimestampRaw

protected boolean verifyAPosterioriTimestampRaw(java.io.InputStream contentStream)
                                         throws es.caib.signatura.api.SignatureProviderException,
                                                java.io.IOException,
                                                es.caib.signatura.api.SignatureVerifyException
Throws:
es.caib.signatura.api.SignatureProviderException
java.io.IOException
es.caib.signatura.api.SignatureVerifyException

verifyTimestamp

protected boolean verifyTimestamp(org.bouncycastle.tsp.TimeStampToken tst,
                                  org.bouncycastle.cms.SignerInformation si,
                                  byte[] documentDigest)
                           throws es.caib.signatura.api.SignatureProviderException,
                                  java.io.IOException,
                                  es.caib.signatura.api.SignatureVerifyException
Throws:
es.caib.signatura.api.SignatureProviderException
java.io.IOException
es.caib.signatura.api.SignatureVerifyException

addTimeStamp

protected org.bouncycastle.cms.CMSSignedData addTimeStamp(org.bouncycastle.cms.CMSSignedData signedData,
                                                          byte[] digest)
                                                   throws es.caib.signatura.api.SignatureTimestampException,
                                                          java.io.IOException,
                                                          org.bouncycastle.tsp.TSPException,
                                                          org.bouncycastle.cms.CMSException,
                                                          java.security.NoSuchAlgorithmException,
                                                          java.security.NoSuchProviderException
Throws:
es.caib.signatura.api.SignatureTimestampException
java.io.IOException
org.bouncycastle.tsp.TSPException
org.bouncycastle.cms.CMSException
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException

verify

public boolean verify(java.io.InputStream contentStream)
               throws es.caib.signatura.api.SignatureProviderException,
                      java.io.IOException,
                      es.caib.signatura.api.SignatureVerifyException
Specified by:
verify in interface es.caib.signatura.api.Signature
Throws:
es.caib.signatura.api.SignatureProviderException
java.io.IOException
es.caib.signatura.api.SignatureVerifyException

verifyRaw

protected boolean verifyRaw(java.io.InputStream contentStream)
                     throws es.caib.signatura.api.SignatureProviderException,
                            java.io.IOException,
                            es.caib.signatura.api.SignatureVerifyException
Throws:
es.caib.signatura.api.SignatureProviderException
java.io.IOException
es.caib.signatura.api.SignatureVerifyException

setContentType

public void setContentType(java.lang.String contentType)
                    throws java.lang.Exception
Specified by:
setContentType in interface es.caib.signatura.impl.SignatureProviderInterface
Throws:
java.lang.Exception

getContentType

public java.lang.String getContentType()
Specified by:
getContentType in interface es.caib.signatura.api.Signature

getParsedCertificate

public es.caib.signatura.api.ParsedCertificate getParsedCertificate()
Specified by:
getParsedCertificate in interface es.caib.signatura.api.Signature


Copyright © 2009 Direcció General de Tecnologia i Comunicacions. Govern de les Illes Balears. All Rights Reserved.