private static boolean handshakeTLS(final SocketChannel channel,
      final NioSslEngine filter,
      final ByteBuffer peerNetData,
      final String context) throws IOException {
    final boolean blocking = channel.isBlocking();
    try {
      channel.configureBlocking(false);
      final boolean result =
          filter.handshake(channel, 6_000, peerNetData);
      System.out.println(
          String.format(
              "%s TLS settings after successful handshake: Protocol: %s, Cipher Suite: %s",
              context,
              filter.engine.getSession().getProtocol(),
              filter.engine.getSession().getCipherSuite()));
      return result;
    } finally {
      channel.configureBlocking(blocking);
    }
  }
@param filter is a newly constructed and intitialized object; it has not been used
       for handshakes previously.
@param peerNetData on entry: don't care about read/write state or contents
geode-core/src/integrationTest/java/org/apache/geode/internal/net/NioSslEngineKeyUpdateTest.java