code: private void init(byte[] data, int offset, int len) throws IOException {
          if ((offset+2 > data.length) || (offset+len > data.length)) {
              throw new IOException("Encoding bytes too short");
          }
          // check for indefinite length encoding
          if (DerIndefLenConverter.isIndefinite(data[offset+1])) {
              byte[] inData = new byte[len];
              System.arraycopy(data, offset, inData, 0, len);
  
              DerIndefLenConverter derIn = new DerIndefLenConverter();
              buffer = new DerInputBuffer(derIn.convert(inData));
          } else
              buffer = new DerInputBuffer(data, offset, len);
          buffer.mark(Integer.MAX_VALUE);
      }
docs: /*
  private helper routine