Example usage for org.bouncycastle.asn1 DLSequence toArray

List of usage examples for org.bouncycastle.asn1 DLSequence toArray

Introduction

In this page you can find the example usage for org.bouncycastle.asn1 DLSequence toArray.

Prototype

public ASN1Encodable[] toArray() 

Source Link

Usage

From source file:bluecrystal.bcdeps.helper.DerEncoder.java

License:Open Source License

public static Map<String, String> getAIAComplete(byte[] ext) throws UnsupportedEncodingException {
    Map<String, String> ret = new HashMap<String, String>();
    try {//from  w w w.  java 2 s.  c om
        if (ext == null)
            return null;
        ASN1InputStream oAsnInStream = new ASN1InputStream(new ByteArrayInputStream(ext));
        ASN1Primitive derObjAIA = oAsnInStream.readObject();
        DEROctetString dosAia = (DEROctetString) derObjAIA;
        byte[] aiaExtOctets = dosAia.getOctets();

        // ------------ level 2
        ASN1InputStream oAsnInStream2 = new ASN1InputStream(new ByteArrayInputStream(aiaExtOctets));
        ASN1Primitive derObj2 = oAsnInStream2.readObject();
        DLSequence aiaDLSeq = (DLSequence) derObj2;
        ASN1Encodable[] aiaAsArray = aiaDLSeq.toArray();
        for (ASN1Encodable next : aiaAsArray) {
            DLSequence aiaDLSeq2 = (DLSequence) next;
            ASN1Encodable[] aiaAsArray2 = aiaDLSeq2.toArray();
            // oid = 0 / content = 1
            ASN1Encodable aiaOidEnc = aiaAsArray2[0];
            ASN1ObjectIdentifier aiaOid = (ASN1ObjectIdentifier) aiaOidEnc;
            String idStr = aiaOid.getId();
            // if (idStr.compareTo("1.3.6.1.5.5.7.48.2") == 0) {
            ASN1Encodable aiaContent = aiaAsArray2[1];
            DERTaggedObject aiaDTO = (DERTaggedObject) aiaContent;
            ASN1Primitive aiaObj = aiaDTO.getObject();
            DEROctetString aiaDOS = (DEROctetString) aiaObj;
            byte[] aiaOC = aiaDOS.getOctets();
            ret.put(idStr, new String(aiaOC));
            // break;
            // }
        }

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return ret;
}