code: public byte[] getEncodedInternal() throws IOException {
          if (encoded == null) {
              DerOutputStream     out = new DerOutputStream();
              DerOutputStream     tmp = new DerOutputStream();
              for (int i = 0; i < names.length; i++) {
                  names[i].encode(tmp);
              }
              out.write(DerValue.tag_Sequence, tmp);
              encoded = out.toByteArray();
          }
          return encoded;
      }
docs: Returned the encoding as an uncloned byte array. Callers must
  guarantee that they neither modify it not expose it to untrusted
  code.