docs: private SslHandshakeResult initializeSocket(SocketChannel sc, boolean clientMode, List<Long> clockSkews)
              throws IOException {
          ByteBuffer timeBuffer = ByteBuffer.allocate(Long.BYTES);
          if (clientMode) {
              synchronized (sc.blockingLock()) {
                  boolean isBlocking = sc.isBlocking();
                  // Just being lazy and using blocking mode here to get the server's current timestamp
                  sc.configureBlocking(true);
                  do {
                      sc.read(timeBuffer);
                  } while (timeBuffer.hasRemaining());
                  sc.configureBlocking(isBlocking);
              }
              if (clockSkews != null) {
                  clockSkews.add(System.currentTimeMillis() - ((ByteBuffer) timeBuffer.flip()).getLong());
              }
          } else {
              timeBuffer.putLong(System.currentTimeMillis());
              timeBuffer.flip();
              do {
                  sc.write(timeBuffer);
              } while (timeBuffer.hasRemaining());
          }
          return setupSSLIfNeeded(sc, clientMode);
      }