List of usage examples for org.bouncycastle.asn1.x509 DigestInfo getInstance
public static DigestInfo getInstance(Object obj)
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."); }