Example usage for org.bouncycastle.asn1 DLSequence size

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

Introduction

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

Prototype

public int size() 

Source Link

Document

Return the number of objects in this sequence.

Usage

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

License:Open Source License

public static String extractHashId(byte[] sign) throws Exception {
    String ret = null;/*  www  .  j a  v  a2  s. c  o m*/
    ASN1InputStream is = new ASN1InputStream(new ByteArrayInputStream(sign));
    ASN1Primitive topLevel = is.readObject();
    LOG.debug("top level:" + topLevel.getClass().getName());

    if (topLevel instanceof org.bouncycastle.asn1.DLSequence) {
        DLSequence topLevelDLS = (DLSequence) topLevel;
        if (topLevelDLS.size() == 2) {
            ASN1Encodable level1 = topLevelDLS.getObjectAt(1);
            LOG.debug("level1:" + level1.getClass().getName());
            if (level1 instanceof org.bouncycastle.asn1.DERTaggedObject) {
                DERTaggedObject level1TO = (DERTaggedObject) level1;
                ASN1Primitive level2 = level1TO.getObject();
                LOG.debug("level2:" + level2.getClass().getName());
                if (level2 instanceof org.bouncycastle.asn1.DERSequence) {
                    DERSequence level2DS = (DERSequence) level2;
                    LOG.debug("level2 len:" + level2DS.size());

                    ASN1Encodable level3_1 = level2DS.getObjectAt(1);
                    LOG.debug("level3_1:" + level3_1.getClass().getName());

                    if (level3_1 instanceof org.bouncycastle.asn1.DERSet) {
                        DERSet level3_1Set = (DERSet) level3_1;
                        ASN1Encodable level4_1 = level3_1Set.getObjectAt(0);
                        LOG.debug("level4_1:" + level4_1.getClass().getName());

                        if (level4_1 instanceof org.bouncycastle.asn1.DERSequence) {
                            DERSequence level4_1Seq = (DERSequence) level4_1;
                            ASN1Encodable level5_0 = level4_1Seq.getObjectAt(0);

                            LOG.debug("level5_0:" + level5_0.getClass().getName());

                            if (level5_0 instanceof org.bouncycastle.asn1.ASN1ObjectIdentifier) {
                                ASN1ObjectIdentifier level5_0Seq = (ASN1ObjectIdentifier) level5_0;
                                LOG.debug(level5_0Seq.toString());
                                ret = level5_0Seq.toString();

                            } else {
                                throw new Exception("DER enconding error");
                            }

                        } else {
                            throw new Exception("DER enconding error");
                        }

                    } else {
                        throw new Exception("DER enconding error");
                    }
                } else {
                    throw new Exception("DER enconding error");
                }

            } else {
                throw new Exception("DER enconding error");
            }
        } else {
            throw new Exception("DER enconding error");
        }

    } else {
        throw new Exception("DER enconding error");
    }

    return ret;
}

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

License:Open Source License

public static byte[] extractSignature(byte[] sign) throws Exception {
    byte[] ret = null;
    ASN1InputStream is = new ASN1InputStream(new ByteArrayInputStream(sign));
    ASN1Primitive topLevel = is.readObject();
    LOG.debug("top level:" + topLevel.getClass().getName());

    if (topLevel instanceof org.bouncycastle.asn1.DLSequence) {
        DLSequence topLevelDLS = (DLSequence) topLevel;
        if (topLevelDLS.size() == 2) {
            ASN1Encodable level1 = topLevelDLS.getObjectAt(1);
            LOG.debug("level1:" + level1.getClass().getName());
            if (level1 instanceof org.bouncycastle.asn1.DERTaggedObject) {
                DERTaggedObject level1TO = (DERTaggedObject) level1;
                ASN1Primitive level2 = level1TO.getObject();
                LOG.debug("level2:" + level2.getClass().getName());
                if (level2 instanceof org.bouncycastle.asn1.DERSequence) {
                    DERSequence level2DS = (DERSequence) level2;
                    LOG.debug("level2 len:" + level2DS.size());
                    ASN1Encodable level3_4 = level2DS.getObjectAt(level2DS.size() - 1);
                    LOG.debug("level3_4:" + level3_4.getClass().getName());
                    if (level3_4 instanceof org.bouncycastle.asn1.DERSet) {
                        DERSet level3_4DS = (DERSet) level3_4;
                        ASN1Encodable level3_4_0 = level3_4DS.getObjectAt(0);
                        LOG.debug("level3_4_0:" + level3_4_0.getClass().getName());
                        if (level3_4_0 instanceof org.bouncycastle.asn1.DERSequence) {
                            DERSequence level3_4_0DS = (DERSequence) level3_4_0;
                            LOG.debug("level3_4_0DS len:" + level3_4_0DS.size());
                            ASN1Encodable signature = level3_4_0DS.getObjectAt(level3_4_0DS.size() - 1);
                            LOG.debug("signature:" + signature.getClass().getName());
                            if (signature instanceof org.bouncycastle.asn1.DEROctetString) {
                                DEROctetString signDOS = (DEROctetString) signature;
                                ret = signDOS.getOctets();
                            }/*  w w  w.  j  a  v  a2 s.  co  m*/
                        } else {
                            throw new Exception("DER enconding error");
                        }

                    } else {
                        throw new Exception("DER enconding error");
                    }
                } else {
                    throw new Exception("DER enconding error");
                }

            } else {
                throw new Exception("DER enconding error");
            }
        } else {
            throw new Exception("DER enconding error");
        }

    } else {
        throw new Exception("DER enconding error");
    }

    return ret;
}

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

License:Open Source License

public static DERTaggedObject extractDTOSignPolicyOid(byte[] sign, SignCompare signCompare) throws Exception {

    DERTaggedObject ret = null;//from   w  w  w.ja va  2 s.c  om
    ASN1InputStream is = new ASN1InputStream(new ByteArrayInputStream(sign));
    ASN1Primitive topLevel = is.readObject();
    LOG.debug("top level:" + topLevel.getClass().getName());

    if (topLevel instanceof org.bouncycastle.asn1.DLSequence) {
        DLSequence topLevelDLS = (DLSequence) topLevel;
        if (topLevelDLS.size() == 2) {
            ASN1Encodable level1 = topLevelDLS.getObjectAt(1);
            LOG.debug("level1:" + level1.getClass().getName());
            if (level1 instanceof org.bouncycastle.asn1.DERTaggedObject) {
                DERTaggedObject level1TO = (DERTaggedObject) level1;
                ASN1Primitive level2 = level1TO.getObject();
                LOG.debug("level2:" + level2.getClass().getName());
                if (level2 instanceof org.bouncycastle.asn1.DERSequence) {
                    DERSequence level2DS = (DERSequence) level2;
                    LOG.debug("level2 len:" + level2DS.size());
                    signCompare.setNumCerts(extractCertCount(level2DS));
                    ret = extractSignedAttributes(level2DS);
                } else {
                    throw new Exception("DER enconding error");
                }

            } else {
                throw new Exception("DER enconding error");
            }
        } else {
            throw new Exception("DER enconding error");
        }

    } else {
        throw new Exception("DER enconding error");
    }

    return ret;
}

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

License:Open Source License

public static void extractSignCompare2(byte[] sign, SignCompare2 signCompare) throws Exception {
    saveDebug(sign);/*from  w  w  w  .  j a  v  a  2s. co  m*/
    DERTaggedObject ret = null;
    ASN1InputStream is = new ASN1InputStream(new ByteArrayInputStream(sign));
    ASN1Primitive topLevel = is.readObject();
    LOG.debug("top level:" + topLevel.getClass().getName());

    if (topLevel instanceof org.bouncycastle.asn1.DLSequence) {
        DLSequence topLevelDLS = (DLSequence) topLevel;
        if (topLevelDLS.size() == 2) {
            ASN1Encodable level1 = topLevelDLS.getObjectAt(1);
            LOG.debug("level1:" + level1.getClass().getName());
            if (level1 instanceof org.bouncycastle.asn1.DERTaggedObject) {
                DERTaggedObject level1TO = (DERTaggedObject) level1;
                ASN1Primitive level2 = level1TO.getObject();
                LOG.debug("level2:" + level2.getClass().getName());
                if (level2 instanceof org.bouncycastle.asn1.DERSequence) {
                    DERSequence level2DS = (DERSequence) level2;
                    LOG.debug("level2 len:" + level2DS.size());
                    signCompare.setNumCerts(extractCertCount(level2DS));
                    ret = extractSignedAttributes(level2DS);
                } else {
                    throw new Exception("DER enconding error");
                }

            } else {
                throw new Exception("DER enconding error");
            }
        } else {
            throw new Exception("DER enconding error");
        }

    } else {
        throw new Exception("DER enconding error");
    }

    //      return ret;
}

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

License:Open Source License

public static List<byte[]> extractCertList(byte[] sign) throws Exception {
    List<byte[]> ret = null;
    ASN1InputStream is = new ASN1InputStream(new ByteArrayInputStream(sign));
    ASN1Primitive topLevel = is.readObject();
    LOG.debug("top level:" + topLevel.getClass().getName());

    if (topLevel instanceof org.bouncycastle.asn1.DLSequence) {
        DLSequence topLevelDLS = (DLSequence) topLevel;
        if (topLevelDLS.size() == 2) {
            ASN1Encodable level1 = topLevelDLS.getObjectAt(1);
            LOG.debug("level1:" + level1.getClass().getName());
            if (level1 instanceof org.bouncycastle.asn1.DERTaggedObject) {
                DERTaggedObject level1TO = (DERTaggedObject) level1;
                ASN1Primitive level2 = level1TO.getObject();
                LOG.debug("level2:" + level2.getClass().getName());
                if (level2 instanceof org.bouncycastle.asn1.DERSequence) {
                    DERSequence level2DS = (DERSequence) level2;
                    LOG.debug("level2 len:" + level2DS.size());
                    ret = extractCertArray(level2DS);
                } else {
                    throw new Exception("DER enconding error");
                }/*from www.j av  a2 s.c o  m*/

            } else {
                throw new Exception("DER enconding error");
            }
        } else {
            throw new Exception("DER enconding error");
        }

    } else {
        throw new Exception("DER enconding error");
    }

    return ret;
}

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

License:Open Source License

public static void extractSignPolicyRefFromSignedAttrib(DERTaggedObject signedAttribsDTO,
        SignCompare signCompare) throws Exception {
    //      String SignCompare = null;
    ASN1Primitive dtoObj = signedAttribsDTO.getObject();
    if (dtoObj instanceof DLSequence) {
        DLSequence topSeq = (DLSequence) dtoObj;
        List<String> signedAttribOid = new ArrayList<String>();
        signCompare.setSignedAttribs(signedAttribOid);
        for (int i = 0; i < topSeq.size(); i++) {
            // treat each SIGNED ATTRIBUTE
            ASN1Encodable objL1 = topSeq.getObjectAt(i);
            if (objL1 instanceof DERSequence) {
                DERSequence seqL1 = (DERSequence) objL1;
                ASN1Encodable objL2 = seqL1.getObjectAt(0);
                if (objL2 instanceof ASN1ObjectIdentifier) {
                    ASN1ObjectIdentifier saOid = (ASN1ObjectIdentifier) objL2;
                    String saOIdStr = saOid.toString();
                    // System.out.println(saOIdStr);
                    signedAttribOid.add(saOIdStr);

                    if (saOIdStr.compareTo(DerEncoder.ID_SIG_POLICY) == 0) {
                        ASN1Encodable objL21 = seqL1.getObjectAt(1);
                        if (objL21 instanceof DERSet) {
                            DERSet objL21Set = (DERSet) objL21;
                            ASN1Encodable objL3 = objL21Set.getObjectAt(0);
                            if (objL3 instanceof DERSequence) {
                                DERSequence objL3Seq = (DERSequence) objL3;
                                ASN1Encodable objL4 = objL3Seq.getObjectAt(0);
                                if (objL4 instanceof ASN1ObjectIdentifier) {
                                    ASN1ObjectIdentifier objL4Oid = (ASN1ObjectIdentifier) objL4;
                                    signCompare.setPsOid(objL4Oid.toString());
                                }//from   ww  w.ja  v  a  2  s  .  c  o  m
                                ASN1Encodable objL42 = getAt(objL3Seq, 2);
                                if (objL42 instanceof DERSequence) {
                                    DERSequence objL42DerSeq = (DERSequence) objL42;
                                    ASN1Encodable objL420 = getAt(objL42DerSeq, 0);
                                    if (objL420 instanceof DERSequence) {
                                        DERSequence objL420DerSeq = (DERSequence) objL420;
                                        ASN1Encodable psUrl = getAt(objL420DerSeq, 1);
                                        if (psUrl instanceof DERIA5String) {
                                            DERIA5String psUrlIA5 = (DERIA5String) psUrl;
                                            signCompare.setPsUrl(psUrlIA5.getString());
                                        }
                                    }
                                }

                            }
                        }
                    } else if (saOIdStr.compareTo(DerEncoder.ID_SIGNING_TIME) == 0) {
                        ASN1Encodable objL2SetTime = seqL1.getObjectAt(1);
                        if (objL2SetTime instanceof DERSet) {
                            DERSet objL2SetTimeDer = (DERSet) objL2SetTime;
                            ASN1Encodable objL2SignTime = objL2SetTimeDer.getObjectAt(0);
                            if (objL2SignTime instanceof ASN1UTCTime) {
                                ASN1UTCTime objL2SignTimeUTC = (ASN1UTCTime) objL2SignTime;
                                signCompare.setSigningTime(objL2SignTimeUTC.getDate());
                            }

                        }

                    }
                }
            }
        }
    }

}

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

License:Open Source License

public static byte[] getAKI(byte[] extensionValue, int index) {
    byte[] ret = null;
    try {//from w w  w  .jav  a2 s .c  o m
        if (extensionValue == null) {
            return null;
        }
        ASN1InputStream oAsnInStream = new ASN1InputStream(new ByteArrayInputStream(extensionValue));
        ASN1Primitive derObjCP = oAsnInStream.readObject();
        DEROctetString dosCP = (DEROctetString) derObjCP;
        byte[] cpOctets = dosCP.getOctets();
        ASN1InputStream oAsnInStream2 = new ASN1InputStream(new ByteArrayInputStream(cpOctets));
        ASN1Primitive derObj2 = oAsnInStream2.readObject();
        // derObj2 = oAsnInStream2.readObject();
        DLSequence derSeq = (DLSequence) derObj2;
        int seqLen = derSeq.size();
        // for(int i = 0; i < seqLen; i++){
        ASN1Encodable derObj3 = derSeq.getObjectAt(0);
        DERTaggedObject derTO = (DERTaggedObject) derObj3;
        int tag = derTO.getTagNo();
        boolean empty = derTO.isEmpty();
        ASN1Primitive derObj4 = derTO.getObject();
        DEROctetString ocStr4 = (DEROctetString) derObj4;
        ret = ocStr4.getOctets();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return ret;
}

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

License:Open Source License

public static Map<String, String> getCertPolicies(byte[] certPols, int index)
        throws CertificateParsingException, IOException {
    Map<String, String> ret = new HashMap<String, String>();
    if (certPols == null) {
        return null;
    }/* w w  w.jav a2  s.c om*/
    ASN1InputStream oAsnInStream = new ASN1InputStream(new ByteArrayInputStream(certPols));
    ASN1Primitive derObjCP = oAsnInStream.readObject();
    DEROctetString dosCP = (DEROctetString) derObjCP;
    byte[] cpOctets = dosCP.getOctets();
    ASN1InputStream oAsnInStream2 = new ASN1InputStream(new ByteArrayInputStream(cpOctets));
    ASN1Primitive derObj2 = oAsnInStream2.readObject();
    DLSequence dlCP = (DLSequence) derObj2;
    int seqLen = dlCP.size();
    for (int i = 0; i < seqLen; i++) {
        ASN1Encodable nextObj = dlCP.getObjectAt(i);
        DLSequence dlCP2 = (DLSequence) nextObj;
        // for(int j = 0; j < dlCP2.size(); j++){
        ASN1Encodable nextObj2 = dlCP2.getObjectAt(0);
        ASN1ObjectIdentifier pcOID = (ASN1ObjectIdentifier) nextObj2;
        ret.put(String.format(CERT_POL_OID, index), pcOID.toString());
        if (pcOID.toString().startsWith(ICP_BRASIL_PC_PREFIX_OID)) {

            ret.put(String.format(CertConstants.CERT_USAGE_D, index), getCertUsage(pcOID.toString()));
        }

        if (dlCP2.size() == 2) {
            nextObj2 = dlCP2.getObjectAt(1);

            ASN1Encodable nextObj3 = null;
            if (nextObj2 instanceof DLSequence) {
                DLSequence dlCP3 = (DLSequence) nextObj2;
                nextObj3 = dlCP3.getObjectAt(0);
            } else if (nextObj2 instanceof DERSequence) {
                DERSequence dlCP3 = (DERSequence) nextObj2;
                if (dlCP3.size() > 1) {
                    nextObj3 = dlCP3.getObjectAt(0);
                }

            }
            if (nextObj3 != null) {
                DLSequence dlCP4 = (DLSequence) nextObj3;
                ASN1Encodable nextObj4a = dlCP4.getObjectAt(0);
                ASN1Encodable nextObj4b = dlCP4.getObjectAt(1);

                ret.put(String.format(CERT_POL_QUALIFIER, index), nextObj4b.toString());
            }
        }
    }
    return ret;

}

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

License:Open Source License

public static ASN1Encodable getAt(DLSequence seq, int index) {
    return seq.size() > index ? seq.getObjectAt(index) : null;
}

From source file:com.google.bitcoin.core.ECKey.java

License:Apache License

private static BigInteger extractPrivateKeyFromASN1(byte[] asn1privkey) {
    // To understand this code, see the definition of the ASN.1 format for EC private keys in the OpenSSL source
    // code in ec_asn1.c:
    ///*from  ww  w  .j a v a 2  s  .  co  m*/
    // ASN1_SEQUENCE(EC_PRIVATEKEY) = {
    //   ASN1_SIMPLE(EC_PRIVATEKEY, version, LONG),
    //   ASN1_SIMPLE(EC_PRIVATEKEY, privateKey, ASN1_OCTET_STRING),
    //   ASN1_EXP_OPT(EC_PRIVATEKEY, parameters, ECPKPARAMETERS, 0),
    //   ASN1_EXP_OPT(EC_PRIVATEKEY, publicKey, ASN1_BIT_STRING, 1)
    // } ASN1_SEQUENCE_END(EC_PRIVATEKEY)
    //
    try {
        ASN1InputStream decoder = new ASN1InputStream(asn1privkey);
        DLSequence seq = (DLSequence) decoder.readObject();
        checkArgument(seq.size() == 4, "Input does not appear to be an ASN.1 OpenSSL EC private key");
        checkArgument(((DERInteger) seq.getObjectAt(0)).getValue().equals(BigInteger.ONE),
                "Input is of wrong version");
        Object obj = seq.getObjectAt(1);
        byte[] bits = ((ASN1OctetString) obj).getOctets();
        decoder.close();
        return new BigInteger(1, bits);
    } catch (IOException e) {
        throw new RuntimeException(e); // Cannot happen, reading from memory stream.
    }
}