code: private int readPlaintextData(final ByteBuffer dst) {
          final int sslRead;
          final int pos = dst.position();
          if (dst.isDirect()) {
              sslRead = SSL.readFromSSL(ssl, bufferAddress(dst) + pos, dst.limit() - pos);
              if (sslRead > 0) {
                  dst.position(pos + sslRead);
              }
          } else {
              final int limit = dst.limit();
              final int len = min(maxEncryptedPacketLength0(), limit - pos);
              final ByteBuf buf = alloc.directBuffer(len);
              try {
                  sslRead = SSL.readFromSSL(ssl, memoryAddress(buf), len);
                  if (sslRead > 0) {
                      dst.limit(pos + sslRead);
                      buf.getBytes(buf.readerIndex(), dst);
                      dst.limit(limit);
                  }
              } finally {
                  buf.release();
              }
          }
  
          return sslRead;
      }
docs: Read plaintext data from the OpenSSL internal BIO