Example usage for org.bouncycastle.asn1 ASN1Enumerated getInstance

List of usage examples for org.bouncycastle.asn1 ASN1Enumerated getInstance

Introduction

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

Prototype

public static ASN1Enumerated getInstance(ASN1TaggedObject obj, boolean explicit) 

Source Link

Document

return an Enumerated from a tagged object.

Usage

From source file:jcifs.spnego.NegTokenTarg.java

License:Open Source License

@Override
protected void parse(byte[] token) throws IOException {
    try (ASN1InputStream der = new ASN1InputStream(token)) {
        ASN1TaggedObject tagged = (ASN1TaggedObject) der.readObject();
        ASN1Sequence sequence = ASN1Sequence.getInstance(tagged, true);
        Enumeration<?> fields = sequence.getObjects();
        while (fields.hasMoreElements()) {
            tagged = (ASN1TaggedObject) fields.nextElement();
            switch (tagged.getTagNo()) {
            case 0:
                ASN1Enumerated enumerated = ASN1Enumerated.getInstance(tagged, true);
                setResult(enumerated.getValue().intValue());
                break;
            case 1:
                ASN1ObjectIdentifier mech = ASN1ObjectIdentifier.getInstance(tagged, true);
                setMechanism(new Oid(mech.getId()));
                break;
            case 2:
                ASN1OctetString mechanismToken = ASN1OctetString.getInstance(tagged, true);
                setMechanismToken(mechanismToken.getOctets());
                break;
            case 3:
                ASN1OctetString mechanismListMIC = ASN1OctetString.getInstance(tagged, true);
                setMechanismListMIC(mechanismListMIC.getOctets());
                break;
            default:
                throw new IOException("Malformed token field.");
            }/*w  w  w. j a v a  2  s  . c om*/
        }
    } catch (GSSException e) {
        throw new IOException("Failed to parse Oid", e);
    }
}