Example usage for org.bouncycastle.asn1.cms CompressedData getInstance

List of usage examples for org.bouncycastle.asn1.cms CompressedData getInstance

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.cms CompressedData getInstance.

Prototype

public static CompressedData getInstance(Object obj) 

Source Link

Document

Return a CompressedData object from the given object.

Usage

From source file:es.gob.afirma.applet.CMSInformation.java

License:Open Source License

/**
 * Obtiene la información de un tipo Compressed Data.
 * @return  Representación de los datos.
 *///w  w  w.ja  v  a 2 s . c o  m
private static String getFromCompressedData(final ASN1TaggedObject doj) {
    String detalle = ""; //$NON-NLS-1$
    detalle = detalle + "Tipo:" + SP + COMPRESSED_DATA + CR; //$NON-NLS-1$
    final CompressedData ed = CompressedData.getInstance(doj.getObject());

    //obtenemos la version
    detalle = detalle + AppletMessages.getString("CMSInformation.1") + SP + ed.getVersion() + CR; //$NON-NLS-1$

    final AlgorithmIdentifier aid = ed.getCompressionAlgorithmIdentifier();
    if (aid.getAlgorithm().toString().equals("1.2.840.113549.1.9.16.3.8")) { //$NON-NLS-1$
        detalle = detalle + "OID del Algoritmo de firma: ZLIB" + CR; //$NON-NLS-1$
    } else {
        detalle = detalle + "OID del Algoritmo de firma:" + SP + aid.getAlgorithm() + CR; //$NON-NLS-1$
    }

    return detalle;
}

From source file:es.gob.afirma.envelopers.cms.CMSCompressedData.java

License:Open Source License

/** Método que extrae el contenido de un tipo CompressedData.
 * @param data//from w  ww.j  a v a  2  s.  c  om
 *        El tipo CompressedData.
 * @return El contenido del envoltorio.
 * @throws IOException
 *         Se produce cuando hay un error de lectura de datos. */
static byte[] getContentCompressedData(final byte[] data) throws IOException {
    final ASN1Sequence contentEnvelopedData = Utils.fetchWrappedData(data);
    final CompressedData compressed = CompressedData.getInstance(contentEnvelopedData);
    final DEROctetString dos = (DEROctetString) compressed.getEncapContentInfo().getContent();

    return BinaryUtils.uncompress(dos.getOctets());

}

From source file:es.gob.afirma.envelopers.cms.ValidateCMS.java

License:Open Source License

/** Método que verifica que es una firma de tipo "CompressedData"
 * @param data/*from w  w w .ja  va2  s  .  com*/
 *        Datos CMS.
 * @return si es de este tipo. */
static boolean isCMSCompressedData(final byte[] data) {
    boolean isValid = true;
    try {
        // Leemos el fichero que contiene la firma.
        final ASN1InputStream is = new ASN1InputStream(data);
        // Comenzamos a obtener los datos.
        final ASN1Sequence dsq = (ASN1Sequence) is.readObject();
        is.close();
        final Enumeration<?> e = dsq.getObjects();
        // Elementos que contienen los elementos OID CompressedData.
        final ASN1ObjectIdentifier doi = (ASN1ObjectIdentifier) e.nextElement();
        if (!doi.equals(CMSObjectIdentifiers.compressedData)) {
            isValid = false;
        } else {
            // Contenido de CompressedData
            final ASN1TaggedObject doj = (ASN1TaggedObject) e.nextElement();
            final ASN1Sequence compressedData = (ASN1Sequence) doj.getObject();
            CompressedData.getInstance(compressedData);
        }
    } catch (final Exception ex) {
        isValid = false;
    }
    return isValid;
}