List of usage examples for org.bouncycastle.asn1 ASN1Sequence getObjectAt
public ASN1Encodable getObjectAt(int index)
From source file:org.jnotary.dvcs.DVCSCertInfo.java
License:Open Source License
@SuppressWarnings("rawtypes") private DVCSCertInfo(ASN1Sequence seq) { Enumeration e = seq.getObjects(); Object obj = e.nextElement(); if (obj instanceof ASN1Integer) { this.version = DERInteger.getInstance(obj); obj = e.nextElement();//from ww w . ja va2 s.co m } this.dvReqInfo = DVCSRequestInformation.getInstance(obj); this.messageImprint = DigestInfo.getInstance(e.nextElement()); this.serialNumber = DERInteger.getInstance(e.nextElement()); this.responseTime = DVCSTime.getInstance(e.nextElement()); for (; e.hasMoreElements();) { obj = e.nextElement(); if (obj instanceof ASN1TaggedObject) { ASN1TaggedObject tagObj = (ASN1TaggedObject) obj; switch (tagObj.getTagNo()) { case 0: dvStatus = PKIStatusInfo.getInstance(tagObj.getObject()); break; case 1: policy = PolicyInformation.getInstance(tagObj.getObject()); break; case 2: reqSignature = SignerInfo.getInstance(tagObj.getObject()); break; case 3: ASN1Sequence seqCerts = DERSequence.getInstance(tagObj.getObject()); certs = new TargetEtcChain[seqCerts.size()]; for (int i = 0; i < seqCerts.size(); ++i) { certs[i] = TargetEtcChain.getInstance(seqCerts.getObjectAt(i)); } break; } } else { Extensions.getInstance(obj); } } }
From source file:org.jnotary.dvcs.PathProcInput.java
License:Open Source License
private PathProcInput(ASN1Sequence seq) { Enumeration e = seq.getObjects(); ASN1Sequence policies = DERSequence.getInstance(e.nextElement()); acceptablePolicySet = new PolicyInformation[policies.size()]; for (int i = 0; i < policies.size(); ++i) { acceptablePolicySet[i] = PolicyInformation.getInstance(policies.getObjectAt(i)); }/*from w w w . j a v a2 s. c o m*/ inhibitPolicyMapping = DERBoolean.getInstance(e.nextElement()); explicitPolicyReqd = DERBoolean.getInstance(e.nextElement()); }
From source file:org.jnotary.dvcs.TargetEtcChain.java
License:Open Source License
private TargetEtcChain(ASN1Sequence seq) { Enumeration e = seq.getObjects(); target = CertEtcToken.getInstance(e.nextElement()); if (!e.hasMoreElements()) return;//from w w w . j a v a 2 s.c o m Object obj = e.nextElement(); if (!(obj instanceof ASN1TaggedObject)) { ASN1Sequence policies = DERSequence.getInstance(obj); chain = new CertEtcToken[policies.size()]; for (int i = 0; i < policies.size(); ++i) { chain[i] = CertEtcToken.getInstance(policies.getObjectAt(i)); } if (!e.hasMoreElements()) return; obj = e.nextElement(); } ASN1TaggedObject tagObj = (ASN1TaggedObject) obj; pathProcInput = PathProcInput.getInstance(tagObj.getObject()); }
From source file:org.jruby.ext.openssl.impl.EncContent.java
License:LGPL
/** * EncryptedContentInfo ::= SEQUENCE {// ww w . java2 s. co m * contentType ContentType, * contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier, * encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL } * * EncryptedContent ::= OCTET STRING */ public static EncContent fromASN1(ASN1Encodable content) { ASN1Sequence sequence = (ASN1Sequence) content; ASN1ObjectIdentifier contentType = (ASN1ObjectIdentifier) (sequence.getObjectAt(0)); int nid = ASN1Registry.obj2nid(contentType); EncContent ec = new EncContent(); ec.setContentType(nid); ec.setAlgorithm(AlgorithmIdentifier.getInstance(sequence.getObjectAt(1))); if (sequence.size() > 2 && sequence.getObjectAt(2) instanceof ASN1TaggedObject && ((ASN1TaggedObject) (sequence.getObjectAt(2))).getTagNo() == 0) { ASN1Encodable ee = ((ASN1TaggedObject) (sequence.getObjectAt(2))).getObject(); if (ee instanceof ASN1Sequence && ((ASN1Sequence) ee).size() > 0) { ByteList combinedOctets = new ByteList(); Enumeration enm = ((ASN1Sequence) ee).getObjects(); while (enm.hasMoreElements()) { byte[] octets = ((ASN1OctetString) enm.nextElement()).getOctets(); combinedOctets.append(octets); } ec.setEncData(new DEROctetString(combinedOctets.bytes())); } else { ec.setEncData((ASN1OctetString) ee); } } return ec; }
From source file:org.jruby.ext.openssl.impl.Envelope.java
License:LGPL
/** * EnvelopedData ::= SEQUENCE {//ww w.j a v a2 s .co m * version Version, * recipientInfos RecipientInfos, * encryptedContentInfo EncryptedContentInfo } * * Version ::= INTEGER * * RecipientInfos ::= SET OF RecipientInfo * */ public static Envelope fromASN1(ASN1Encodable content) { ASN1Sequence sequence = (ASN1Sequence) content; ASN1Integer version = (ASN1Integer) sequence.getObjectAt(0); ASN1Set recipients = (ASN1Set) sequence.getObjectAt(1); ASN1Encodable encContent = sequence.getObjectAt(2); Envelope envelope = new Envelope(); envelope.setVersion(version.getValue().intValue()); envelope.setRecipientInfo(recipientInfosFromASN1Set(recipients)); envelope.setEncData(EncContent.fromASN1(encContent)); return envelope; }
From source file:org.jruby.ext.openssl.impl.NetscapeCertRequest.java
License:Open Source License
public NetscapeCertRequest(final byte[] request) throws NoSuchAlgorithmException, InvalidKeySpecException, IllegalArgumentException { ASN1InputStream input = new ASN1InputStream(new ByteArrayInputStream(request)); ASN1Sequence spkac; try {/*from w ww .j av a 2s .c om*/ spkac = ASN1Sequence.getInstance(input.readObject()); } catch (IOException e) { throw new IllegalArgumentException(e); } // // SignedPublicKeyAndChallenge ::= SEQUENCE { // publicKeyAndChallenge PublicKeyAndChallenge, // signatureAlgorithm AlgorithmIdentifier, // signature BIT STRING // } // if (spkac.size() != 3) { throw new IllegalArgumentException("invalid SPKAC (size):" + spkac.size()); } final ASN1Sequence signatureId = (ASN1Sequence) spkac.getObjectAt(1); this.sigAlg = AlgorithmIdentifier.getInstance(signatureId); this.signatureBits = ((DERBitString) spkac.getObjectAt(2)).getBytes(); // // PublicKeyAndChallenge ::= SEQUENCE { // spki SubjectPublicKeyInfo, // challenge IA5STRING // } // ASN1Sequence pkac = (ASN1Sequence) spkac.getObjectAt(0); if (pkac.size() != 2) { throw new IllegalArgumentException("invalid PKAC (len): " + pkac.size()); } this.challenge = ((DERIA5String) pkac.getObjectAt(1)).getString(); final String keyAlgorithm; final X509EncodedKeySpec encodedKeySpec; try { //this could be dangerous, as ASN.1 decoding/encoding //could potentially alter the bytes this.content = new DERBitString(pkac); final SubjectPublicKeyInfo pubKeyInfo = new SubjectPublicKeyInfo((ASN1Sequence) pkac.getObjectAt(0)); encodedKeySpec = new X509EncodedKeySpec(new DERBitString(pubKeyInfo).getBytes()); this.keyAlg = pubKeyInfo.getAlgorithm(); keyAlgorithm = keyAlg.getAlgorithm().getId(); } catch (Exception e) { // new DERBitString throw IOExcetpion since BC 1.49 //if ( e instanceof IOException ) { // throw new IllegalArgumentException(e); //} if (e instanceof RuntimeException) throw (RuntimeException) e; throw new IllegalArgumentException(e); } KeyFactory keyFactory = SecurityHelper.getKeyFactory(keyAlgorithm); this.publicKey = keyFactory.generatePublic(encodedKeySpec); }
From source file:org.jruby.ext.openssl.impl.PKey.java
License:LGPL
public static KeyPair readPrivateKey(byte[] input, String type) throws IOException, GeneralSecurityException { KeySpec pubSpec = null;//from w ww .j av a 2s .c o m KeySpec privSpec = null; ASN1Sequence seq = (ASN1Sequence) new ASN1InputStream(input).readObject(); if (type.equals("RSA")) { ASN1Integer mod = (ASN1Integer) seq.getObjectAt(1); ASN1Integer pubExp = (ASN1Integer) seq.getObjectAt(2); ASN1Integer privExp = (ASN1Integer) seq.getObjectAt(3); ASN1Integer p1 = (ASN1Integer) seq.getObjectAt(4); ASN1Integer p2 = (ASN1Integer) seq.getObjectAt(5); ASN1Integer exp1 = (ASN1Integer) seq.getObjectAt(6); ASN1Integer exp2 = (ASN1Integer) seq.getObjectAt(7); ASN1Integer crtCoef = (ASN1Integer) seq.getObjectAt(8); pubSpec = new RSAPublicKeySpec(mod.getValue(), pubExp.getValue()); privSpec = new RSAPrivateCrtKeySpec(mod.getValue(), pubExp.getValue(), privExp.getValue(), p1.getValue(), p2.getValue(), exp1.getValue(), exp2.getValue(), crtCoef.getValue()); } else { // assume "DSA" for now. ASN1Integer p = (ASN1Integer) seq.getObjectAt(1); ASN1Integer q = (ASN1Integer) seq.getObjectAt(2); ASN1Integer g = (ASN1Integer) seq.getObjectAt(3); ASN1Integer y = (ASN1Integer) seq.getObjectAt(4); ASN1Integer x = (ASN1Integer) seq.getObjectAt(5); privSpec = new DSAPrivateKeySpec(x.getValue(), p.getValue(), q.getValue(), g.getValue()); pubSpec = new DSAPublicKeySpec(y.getValue(), p.getValue(), q.getValue(), g.getValue()); } KeyFactory fact = KeyFactory.getInstance(type); return new KeyPair(fact.generatePublic(pubSpec), fact.generatePrivate(privSpec)); }
From source file:org.jruby.ext.openssl.impl.PKey.java
License:LGPL
public static KeyPair readRSAPrivateKey(byte[] input) throws IOException, GeneralSecurityException { KeyFactory fact = KeyFactory.getInstance("RSA"); ASN1Sequence seq = (ASN1Sequence) (new ASN1InputStream(input).readObject()); if (seq.size() == 9) { BigInteger mod = ((ASN1Integer) seq.getObjectAt(1)).getValue(); BigInteger pubexp = ((ASN1Integer) seq.getObjectAt(2)).getValue(); BigInteger privexp = ((ASN1Integer) seq.getObjectAt(3)).getValue(); BigInteger primep = ((ASN1Integer) seq.getObjectAt(4)).getValue(); BigInteger primeq = ((ASN1Integer) seq.getObjectAt(5)).getValue(); BigInteger primeep = ((ASN1Integer) seq.getObjectAt(6)).getValue(); BigInteger primeeq = ((ASN1Integer) seq.getObjectAt(7)).getValue(); BigInteger crtcoeff = ((ASN1Integer) seq.getObjectAt(8)).getValue(); PrivateKey priv = fact.generatePrivate( new RSAPrivateCrtKeySpec(mod, pubexp, privexp, primep, primeq, primeep, primeeq, crtcoeff)); PublicKey pub = fact.generatePublic(new RSAPublicKeySpec(mod, pubexp)); return new KeyPair(pub, priv); } else {//from ww w . j a v a 2s .c o m return null; } }
From source file:org.jruby.ext.openssl.impl.PKey.java
License:LGPL
public static PublicKey readRSAPublicKey(byte[] input) throws IOException, GeneralSecurityException { KeyFactory fact = KeyFactory.getInstance("RSA"); ASN1Sequence seq = (ASN1Sequence) (new ASN1InputStream(input).readObject()); if (seq.size() == 2) { BigInteger mod = ((ASN1Integer) seq.getObjectAt(0)).getValue(); BigInteger pubexp = ((ASN1Integer) seq.getObjectAt(1)).getValue(); return fact.generatePublic(new RSAPublicKeySpec(mod, pubexp)); } else {/*from w w w . j a v a2 s .com*/ return null; } }
From source file:org.jruby.ext.openssl.impl.PKey.java
License:LGPL
public static KeyPair readDSAPrivateKey(byte[] input) throws IOException, GeneralSecurityException { KeyFactory fact = KeyFactory.getInstance("DSA"); ASN1Sequence seq = (ASN1Sequence) (new ASN1InputStream(input).readObject()); if (seq.size() == 6) { BigInteger p = ((ASN1Integer) seq.getObjectAt(1)).getValue(); BigInteger q = ((ASN1Integer) seq.getObjectAt(2)).getValue(); BigInteger g = ((ASN1Integer) seq.getObjectAt(3)).getValue(); BigInteger y = ((ASN1Integer) seq.getObjectAt(4)).getValue(); BigInteger x = ((ASN1Integer) seq.getObjectAt(5)).getValue(); PrivateKey priv = fact.generatePrivate(new DSAPrivateKeySpec(x, p, q, g)); PublicKey pub = fact.generatePublic(new DSAPublicKeySpec(y, p, q, g)); return new KeyPair(pub, priv); } else {/*from w w w . j av a 2s .c o m*/ return null; } }