private int readLength() throws IOException
protected int readLength() throws IOException
  private int readLength() throws IOException  {    int i = in.read();    if (i == -1)      throw new EOFException();    encBuf.write(i);    if ((i & ~0x7F) == 0)      {        return i;      }    else if (i < 0xFF)      {        byte[] octets = new byte[i & 0x7F];        in.read(octets);        encBuf.write(octets);        return new BigInteger(1, octets).intValue();      }    throw new DEREncodingException();  }