List of usage examples for org.bouncycastle.asn1 DERBitString getInstance
public static DERBitString getInstance(ASN1TaggedObject obj, boolean explicit)
From source file:com.novosec.pkix.asn1.crmf.CertTemplate.java
License:Open Source License
public CertTemplate(ASN1Sequence seq) { Enumeration e = (seq == null ? null : seq.getObjects()); while (e != null && e.hasMoreElements()) { DERTaggedObject obj = (DERTaggedObject) e.nextElement(); int tagno = (obj == null ? -1 : obj.getTagNo()); switch (tagno) { case 0:// w w w .j a v a 2s. c o m this.version = DERInteger.getInstance(obj, false); break; case 1: this.serialNumber = DERInteger.getInstance(obj, false); break; case 2: this.signingAlg = AlgorithmIdentifier.getInstance(obj, false); break; case 3: this.issuer = X509Name.getInstance(obj, bNameIsExplicit); break; case 4: this.validity = OptionalValidity.getInstance(obj, false); break; case 5: this.subject = X509Name.getInstance(obj, bNameIsExplicit); break; case 6: this.publicKey = SubjectPublicKeyInfo.getInstance(obj, false); break; case 7: this.issuerUID = DERBitString.getInstance(obj, false); break; case 8: this.subjectUID = DERBitString.getInstance(obj, false); break; case 9: this.extensions = X509Extensions.getInstance(obj, false); break; default: throw new IllegalArgumentException("invalid asn1 sequence"); } } }
From source file:jcifs.spnego.NegTokenInit.java
License:Open Source License
@Override protected void parse(byte[] token) throws IOException { try (ASN1InputStream is = new ASN1InputStream(token)) { DERApplicationSpecific constructed = (DERApplicationSpecific) is.readObject(); if (constructed == null || !constructed.isConstructed()) throw new IOException("Malformed SPNEGO token " + constructed + (constructed != null ? " " + constructed.isConstructed() + " " + constructed.getApplicationTag() : "")); try (ASN1InputStream der = new ASN1InputStream(constructed.getContents())) { ASN1ObjectIdentifier spnego = (ASN1ObjectIdentifier) der.readObject(); if (!SPNEGO_OID.equals(spnego)) { throw new IOException("Malformed SPNEGO token, OID " + spnego); }// w w w .j a va 2s .c o m ASN1TaggedObject tagged = (ASN1TaggedObject) der.readObject(); if (tagged.getTagNo() != 0) { throw new IOException("Malformed SPNEGO token: tag " + tagged.getTagNo() + " " + tagged); } ASN1Sequence sequence = ASN1Sequence.getInstance(tagged, true); Enumeration<ASN1Object> fields = sequence.getObjects(); while (fields.hasMoreElements()) { tagged = (ASN1TaggedObject) fields.nextElement(); switch (tagged.getTagNo()) { case 0: sequence = ASN1Sequence.getInstance(tagged, true); Oid[] mechs = new Oid[sequence.size()]; for (int i = mechs.length - 1; i >= 0; i--) { ASN1ObjectIdentifier mechanism = (ASN1ObjectIdentifier) sequence.getObjectAt(i); mechs[i] = new Oid(mechanism.getId()); } setMechanisms(mechs); break; case 1: DERBitString ctxFlags = DERBitString.getInstance(tagged, true); setContextFlags(ctxFlags.getBytes()[0] & 0xff); break; case 2: ASN1OctetString mechanismToken = ASN1OctetString.getInstance(tagged, true); setMechanismToken(mechanismToken.getOctets()); break; case 3: if (!(tagged.getObject() instanceof DEROctetString)) { break; } case 4: ASN1OctetString mechanismListMIC = ASN1OctetString.getInstance(tagged, true); setMechanismListMIC(mechanismListMIC.getOctets()); break; default: throw new IOException("Malformed token field."); } } } catch (GSSException e) { throw new IOException("Failed to read OID", e); } } }