DerParser parser = new DerParser(keyInPkcs1); Asn1Object sequence = parser.read(); if (sequence.getType() != DerParser.SEQUENCE) { throw new IllegalArgumentException("Invalid DER: not a sequence"); //$NON-NLS-1$ parser.read(); // Skip version BigInteger modulus = parser.read().getInteger(); BigInteger publicExp = parser.read().getInteger(); BigInteger privateExp = parser.read().getInteger(); BigInteger prime1 = parser.read().getInteger(); BigInteger prime2 = parser.read().getInteger(); BigInteger exp1 = parser.read().getInteger(); BigInteger exp2 = parser.read().getInteger(); BigInteger crtCoef = parser.read().getInteger();
/** * Read next object. If it's constructed, the value holds encoded content * and it should be parsed by a new parser from * <code>Asn1Object.getParser</code>. * * @return Asn1Object read * @throws IOException if DER parsing error (format). */ public Asn1Object read() throws IOException { int tag = in.read(); if (tag == -1) { throw new IOException("Invalid DER: stream too short, missing tag"); //$NON-NLS-1$ } int length = getLength(); byte[] value = new byte[length]; int n = in.read(value); if (n < length) { throw new IOException("Invalid DER: stream too short, missing value"); //$NON-NLS-1$ } Asn1Object o = new Asn1Object(tag, length, value); return o; }
/** * For constructed field, return a parser for its content. * * @return A parser for the construct. * @throws IOException if DER cannot be parsed. */ public DerParser getParser() throws IOException { if (!isConstructed()) { throw new IOException("Invalid DER: can't parse primitive entity"); //$NON-NLS-1$ } return new DerParser(value); }
/** * For constructed field, return a parser for its content. * * @return A parser for the construct. * @throws IOException if DER cannot be parsed. */ public DerParser getParser() throws IOException { if (!isConstructed()) { throw new IOException("Invalid DER: can't parse primitive entity"); //$NON-NLS-1$ } return new DerParser(value); }
DerParser parser = new DerParser(keyInPkcs1); Asn1Object sequence = parser.read(); if (sequence.getType() != DerParser.SEQUENCE) { throw new IllegalArgumentException("Invalid DER: not a sequence"); //$NON-NLS-1$ parser.read(); // Skip version BigInteger modulus = parser.read().getInteger(); BigInteger publicExp = parser.read().getInteger(); BigInteger privateExp = parser.read().getInteger(); BigInteger prime1 = parser.read().getInteger(); BigInteger prime2 = parser.read().getInteger(); BigInteger exp1 = parser.read().getInteger(); BigInteger exp2 = parser.read().getInteger(); BigInteger crtCoef = parser.read().getInteger();
/** * Read next object. If it's constructed, the value holds encoded content * and it should be parsed by a new parser from * <code>Asn1Object.getParser</code>. * * @return Asn1Object read * @throws IOException if DER parsing error (format). */ public Asn1Object read() throws IOException { int tag = in.read(); if (tag == -1) { throw new IOException("Invalid DER: stream too short, missing tag"); //$NON-NLS-1$ } int length = getLength(); byte[] value = new byte[length]; int n = in.read(value); if (n < length) { throw new IOException("Invalid DER: stream too short, missing value"); //$NON-NLS-1$ } Asn1Object o = new Asn1Object(tag, length, value); return o; }