List of usage examples for org.bouncycastle.asn1 DLSequence size
public int size()
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. } }