code: public static List<SNIServerName> explore(byte[] source,
              int offset, int length) throws IOException {
          ByteBuffer byteBuffer =
              ByteBuffer.wrap(source, offset, length).asReadOnlyBuffer();
          return explore(byteBuffer);
      }
docs: Launch and explore the security capabilities from byte array.
  <P>
  Please NOTE that this method must be called before any handshaking
  occurs.  The behavior of this method is not defined in this release
  if the handshake has begun, or has completed.  Once handshake has
  begun, or has completed, the security capabilities can not and
  should not be launched with this method.
  
  @param  source
  a byte array containing inbound or outbound network data for
  an SSL/TLS connection.
  @param  offset
  the start offset in array {@code source} at which the
  network data is read from.
  @param  length
  the maximum number of bytes to read.
  
  @throws IOException on network data error
  @throws BufferUnderflowException if not enough source bytes available
  to make a complete exploration.
  @return the explored capabilities of the SSL/TLS
  connection
  
  @see #explore(ByteBuffer)