@Override
  public void prepareResponder(final NodeKey nodeKey) {
    checkState(
        status.compareAndSet(
            Handshaker.HandshakeStatus.UNINITIALIZED, Handshaker.HandshakeStatus.IN_PROGRESS),
        "handshake was already prepared");

    this.initiator = false;
    this.nodeKey = nodeKey;
    this.ephKeyPair = signatureAlgorithm.generateKeyPair();
    this.responderNonce = Bytes32.wrap(random(32), 0);
    LOG.trace("Prepared ECIES handshake under RESPONDER role");
  }
An Elliptic Curve Integrated Encryption Scheme implementation, following the handshake ceremony
of Ethereum.

@see <a href="https://github.com/ethereum/devp2p/blob/master/rlpx.md#encrypted-handshake">RLPx
    encrypted handshake</a>
ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/rlpx/handshake/ecies/ECIESHandshaker.java