Example usage for org.bouncycastle.asn1.x509 DigestInfo getInstance

List of usage examples for org.bouncycastle.asn1.x509 DigestInfo getInstance

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.x509 DigestInfo getInstance.

Prototype

public static DigestInfo getInstance(Object obj) 

Source Link

Usage

From source file:com.opentrust.spi.pdf.PDFEnvelopedSignature.java

License:Mozilla Public License

/**
 * Verifies a signature using the sub-filter adbe.x509.rsa_sha1.
 * @param contentsKey the /Contents key/*from  w w w .  j  a v  a2  s.com*/
 * @param certsKey the /Cert key
 * @param provider the provider or <code>null</code> for the default provider
 */
public PDFEnvelopedSignature(byte[] contentsKey, byte[] certsKey, String provider, AcroFields acroFields,
        String signatureFieldName) {
    try {
        log.debug(Channel.TECH, "Verifying a adbe.x509.rsa_sha1 signature");
        this.acroFields = acroFields;
        this.signatureFieldName = signatureFieldName;
        this.subFilter = SF_ADBE_X509_RSA_SHA1;
        this.dictionaryCert = certsKey;
        X509CertParser cr = new X509CertParser();
        cr.engineInit(new ByteArrayInputStream(certsKey));
        certs = cr.engineReadAll();
        signCert = (X509Certificate) certs.iterator().next();
        crls = new ArrayList();
        ASN1InputStream in = new ASN1InputStream(new ByteArrayInputStream(contentsKey));
        pkcs1SigValue = ((DEROctetString) in.readObject()).getOctets();

        Cipher c = Cipher.getInstance("RSA/NONE/PKCS1Padding", BouncyCastleProvider.PROVIDER_NAME);
        c.init(Cipher.DECRYPT_MODE, signCert);
        byte[] raw = c.doFinal(pkcs1SigValue);
        ASN1Sequence in3 = (ASN1Sequence) ASN1Object.fromByteArray(raw);
        DigestInfo di = DigestInfo.getInstance(in3);
        dataDigestAlgorithm = di.getAlgorithmId().getAlgorithm().getId();
        keyAndParameterAlgorithm = ID_RSA;

        if (provider == null)
            sig = Signature.getInstance(getSignatureAlgorithm());
        else
            sig = Signature.getInstance(getSignatureAlgorithm(), provider);
        sig.initVerify(signCert.getPublicKey());
    } catch (Exception e) {
        throw new ExceptionConverter(e);
    }
}

From source file:org.jnotary.dvcs.Data.java

License:Open Source License

public static Data getInstance(int serviceType, Object obj) {
    switch (serviceType) {
    case ServiceType.CPD:
    case ServiceType.VSD:
        return new Data((DEROctetString) DEROctetString.getInstance(obj));
    case ServiceType.CCPD:
        return new Data(DigestInfo.getInstance(obj));
    case ServiceType.VPKC:
        return new Data(DERSequence.getInstance(obj));
    }//from  w  w w .j av  a 2s.  co  m

    return null;
}

From source file:org.jnotary.dvcs.DVCSCertInfo.java

License:Open Source License

@SuppressWarnings("rawtypes")
private DVCSCertInfo(ASN1Sequence seq) {
    Enumeration e = seq.getObjects();

    Object obj = e.nextElement();
    if (obj instanceof ASN1Integer) {
        this.version = DERInteger.getInstance(obj);
        obj = e.nextElement();/*from ww w  . j a va 2  s. c o  m*/
    }
    this.dvReqInfo = DVCSRequestInformation.getInstance(obj);
    this.messageImprint = DigestInfo.getInstance(e.nextElement());
    this.serialNumber = DERInteger.getInstance(e.nextElement());
    this.responseTime = DVCSTime.getInstance(e.nextElement());

    for (; e.hasMoreElements();) {
        obj = e.nextElement();
        if (obj instanceof ASN1TaggedObject) {
            ASN1TaggedObject tagObj = (ASN1TaggedObject) obj;
            switch (tagObj.getTagNo()) {
            case 0:
                dvStatus = PKIStatusInfo.getInstance(tagObj.getObject());
                break;
            case 1:
                policy = PolicyInformation.getInstance(tagObj.getObject());
                break;
            case 2:
                reqSignature = SignerInfo.getInstance(tagObj.getObject());
                break;
            case 3:
                ASN1Sequence seqCerts = DERSequence.getInstance(tagObj.getObject());
                certs = new TargetEtcChain[seqCerts.size()];
                for (int i = 0; i < seqCerts.size(); ++i) {
                    certs[i] = TargetEtcChain.getInstance(seqCerts.getObjectAt(i));
                }

                break;
            }
        } else {
            Extensions.getInstance(obj);
        }
    }

}

From source file:org.opensc.pkcs15.asn1.ref.URLWithDigest.java

License:Apache License

/**
 * @param obj The ASN.1 object to decode.
 * @return An URLWithDigest instance.//from  w w w . j a  va2 s.co  m
 */
public static URLWithDigest getInstance(Object obj) {
    if (obj instanceof URLWithDigest)
        return (URLWithDigest) obj;

    if (obj instanceof ASN1TaggedObject) {
        ASN1TaggedObject to = (ASN1TaggedObject) obj;

        if (to.getTagNo() != 3)
            throw new IllegalArgumentException("Invalid tag [" + to.getTagNo() + "] in URL.");

        ASN1Sequence seq = ASN1Sequence.getInstance(to.getObject());

        Enumeration<Object> objs = seq.getObjects();

        if (!objs.hasMoreElements())
            throw new IllegalArgumentException("Missing url member in URLWithDigest SEQUENCE.");

        DERIA5String url = DERIA5String.getInstance(objs.nextElement());

        if (!objs.hasMoreElements())
            throw new IllegalArgumentException("Missing digest member in URLWithDigest SEQUENCE.");

        DigestInfo digest = DigestInfo.getInstance(objs.nextElement());

        return new URLWithDigest(url.getString(), digest);
    }

    throw new IllegalArgumentException("AccessControlRule must be encoded as an ASN.1 tagged object.");
}