List of usage examples for org.bouncycastle.asn1.x509 AlgorithmIdentifier getInstance
public static AlgorithmIdentifier getInstance(Object obj)
From source file:com.guardtime.asn1.SignatureInfo.java
License:Apache License
public Asn1SignatureInfo(ASN1Sequence seq) { Enumeration en = seq.getObjects(); // Required elements signatureAlgorithm = AlgorithmIdentifier.getInstance(en.nextElement()); signatureValue = ASN1OctetString.getInstance(en.nextElement()); // Optional elements while (en.hasMoreElements()) { ASN1TaggedObject obj = ASN1TaggedObject.getInstance(en.nextElement()); if (obj.getTagNo() == 0 && pkiReferences == null) { pkiReferences = ASN1Set.getInstance(obj, false); } else {/*from w w w.ja v a2 s . c o m*/ throw new IllegalArgumentException("invalid object in factory: " + obj); } } }
From source file:com.guardtime.asn1.SignedData.java
License:Apache License
/** * Class constructor.//from w w w. j av a2s . c o m * * @param obj ASN.1 representation of signed data. * * @throws Asn1FormatException if provided ASN.1 object has invalid format. */ SignedData(ASN1Encodable obj) throws Asn1FormatException { try { signedData = org.bouncycastle.asn1.cms.SignedData.getInstance(obj); // Extract and check version // // RFC 2630/3161 require version to be 0..4 // GuardTime requires version to be exactly 3 BigInteger ver = signedData.getVersion().getValue(); if (!ver.equals(BigInteger.valueOf(VERSION))) { throw new Asn1FormatException("invalid signed data version: " + ver); } version = ver.intValue(); // Extract and check digest algorithm list // // Digest algorithm list can contain duplicate entries as // RFC 2630 does not directly deny that // // RFC 2630 allows digest algorithm list to be empty digestAlgorithms = new ArrayList(); Enumeration e = signedData.getDigestAlgorithms().getObjects(); while (e.hasMoreElements()) { Object o = e.nextElement(); String algOid = AlgorithmIdentifier.getInstance(o).getAlgorithm().getId(); Asn1Util.checkDigestAlgorithm(algOid); digestAlgorithms.add(algOid); } // Extract and check encapsulated content info ContentInfo eContentInfo = signedData.getEncapContentInfo(); eContentType = eContentInfo.getContentType().toString(); // RFC3161 requires type to be id-ct-TSTInfo if (!eContentType.equals(E_CONTENT_TYPE)) { throw new Asn1FormatException("invalid encapsulated content type: " + eContentType); } DEROctetString eContentData = (DEROctetString) eContentInfo.getContent(); eContent = TstInfo.getInstance(eContentData.getOctetStream()); // Extract certificates (optional field) ASN1Set certificates = signedData.getCertificates(); if (certificates != null && certificates.size() > 0) { byte[] certBytes = certificates.getObjectAt(0).toASN1Primitive().getEncoded(ASN1Encoding.DER); InputStream in = new ByteArrayInputStream(certBytes); CertificateFactory cf = CertificateFactory.getInstance("X.509"); certificate = (X509Certificate) cf.generateCertificate(in); } // Extract CRLs (GuardTime is not currently using CRLs field) ASN1Set rawCrls = signedData.getCRLs(); crls = ((rawCrls == null) ? null : rawCrls.getEncoded(ASN1Encoding.DER)); // Extract and check signer info ASN1Set signerInfos = signedData.getSignerInfos(); // RFC 3161 requires signer info list to contain exactly one entry if (signerInfos.size() != 1) { throw new Asn1FormatException("wrong number of signer infos found: " + signerInfos.size()); } signerInfo = new SignerInfo(signerInfos.getObjectAt(0).toASN1Primitive()); // Make sure digest algorithm is contained in digest algorithm list // TODO: check disabled as this problem is not critical. //String digestAlgorithmOid = signerInfo.getDigestAlgorithm(); //if (!digestAlgorithms.contains(digestAlgorithmOid)) { // throw new Asn1FormatException("digest algorithm not found in list: " + digestAlgorithmOid); //} } catch (Asn1FormatException e) { throw e; } catch (Exception e) { // Also catches IllegalArgumentException, NullPointerException, etc. throw new Asn1FormatException("signed data has invalid format", e); } }
From source file:com.novosec.pkix.asn1.cmp.Challenge.java
License:Open Source License
public Challenge(ASN1Sequence seq) { int idx = 0;/*w w w . j ava 2 s . c o m*/ Object obj = seq.getObjectAt(idx); if (!(obj instanceof DEROctetString)) { owf = AlgorithmIdentifier.getInstance(obj); idx++; } this.witness = (DEROctetString) seq.getObjectAt(idx++); this.challenge = (DEROctetString) seq.getObjectAt(idx); }
From source file:com.novosec.pkix.asn1.cmp.DHBMParameter.java
License:Open Source License
public DHBMParameter(ASN1Sequence seq) { this.owf = AlgorithmIdentifier.getInstance(seq.getObjectAt(0)); this.mac = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); }
From source file:com.novosec.pkix.asn1.cmp.OOBCertHash.java
License:Open Source License
public OOBCertHash(ASN1Sequence seq) { Enumeration e = seq.getObjects(); while (e.hasMoreElements()) { Object obj = e.nextElement(); if (obj instanceof ASN1TaggedObject) { ASN1TaggedObject tagObj = (ASN1TaggedObject) obj; switch (tagObj.getTagNo()) { case 0: hashAlg = AlgorithmIdentifier.getInstance(tagObj.getObject()); break; case 1: certId = CertId.getInstance(tagObj.getObject()); break; }//from ww w . j a v a 2 s . co m } else { hashVal = DERBitString.getInstance(obj); break; } } }
From source file:com.novosec.pkix.asn1.cmp.PKIHeader.java
License:Open Source License
public PKIHeader(ASN1Sequence seq) { Enumeration e = seq.getObjects(); pvno = DERInteger.getInstance(e.nextElement()); sender = GeneralName.getInstance(e.nextElement()); recipient = GeneralName.getInstance(e.nextElement()); while (e.hasMoreElements()) { ASN1TaggedObject tagObj = (ASN1TaggedObject) e.nextElement(); switch (tagObj.getTagNo()) { case 0://ww w . ja va 2s .co m messageTime = DERGeneralizedTime.getInstance(tagObj.getObject()); break; case 1: protectionAlg = AlgorithmIdentifier.getInstance(tagObj.getObject()); break; case 2: senderKID = (DEROctetString) DEROctetString.getInstance(tagObj); break; case 3: recipKID = (DEROctetString) DEROctetString.getInstance(tagObj); break; case 4: transactionID = (DEROctetString) DEROctetString.getInstance(tagObj); break; case 5: senderNonce = (DEROctetString) DEROctetString.getInstance(tagObj); break; case 6: recipNonce = (DEROctetString) DEROctetString.getInstance(tagObj); break; case 7: freeText = PKIFreeText.getInstance(tagObj.getObject()); break; case 8: ASN1Sequence s = (ASN1Sequence) tagObj.getObject(); for (int i = 0; i < s.size(); i++) { generalInfos.addElement(InfoTypeAndValue.getInstance(s.getObjectAt(i))); } break; } } }
From source file:com.novosec.pkix.asn1.crmf.EncryptedValue.java
License:Open Source License
public EncryptedValue(ASN1Sequence seq) { Enumeration e = seq.getObjects(); while (e.hasMoreElements()) { Object obj = e.nextElement(); if (obj instanceof DERTaggedObject) { DERTaggedObject tagObj = (DERTaggedObject) obj; switch (tagObj.getTagNo()) { case 0: this.intendedAlg = AlgorithmIdentifier.getInstance(tagObj.getObject()); break; case 1: this.symmAlg = AlgorithmIdentifier.getInstance(tagObj.getObject()); break; case 2: this.encSymmKey = DERBitString.getInstance(tagObj.getObject()); break; case 3: this.keyAlg = AlgorithmIdentifier.getInstance(tagObj.getObject()); break; case 4: this.valueHint = (DEROctetString) DEROctetString.getInstance(tagObj.getObject()); break; }//ww w .ja v a2s.c o m } else { encValue = DERBitString.getInstance(obj); break; } } }
From source file:com.novosec.pkix.asn1.crmf.PBMParameter.java
License:Open Source License
public PBMParameter(ASN1Sequence seq) { this.salt = (DEROctetString) seq.getObjectAt(0); this.owf = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); this.iterationCount = DERInteger.getInstance(seq.getObjectAt(2)); this.mac = AlgorithmIdentifier.getInstance(seq.getObjectAt(3)); }
From source file:com.novosec.pkix.asn1.crmf.PKMACValue.java
License:Open Source License
public PKMACValue(ASN1Sequence seq) { this.algId = AlgorithmIdentifier.getInstance(seq.getObjectAt(0)); this.value = DERBitString.getInstance(seq.getObjectAt(1)); }
From source file:com.novosec.pkix.asn1.crmf.POPOSigningKey.java
License:Open Source License
public POPOSigningKey(ASN1Sequence seq) { int idx = 0;/*w w w.j av a 2s . c o m*/ Object obj = seq.getObjectAt(idx++); if (obj instanceof ASN1TaggedObject) { ASN1TaggedObject tagObj = (ASN1TaggedObject) obj; if (tagObj.getTagNo() == 0) { this.poposkInput = POPOSigningKeyInput.getInstance(tagObj.getObject()); } else { throw new IllegalArgumentException("unknown tag: " + tagObj.getTagNo()); } } else { idx--; } this.algorithmIdentifier = AlgorithmIdentifier.getInstance(seq.getObjectAt(idx++)); this.signature = DERBitString.getInstance(seq.getObjectAt(idx)); }