/**
 * A `Handshake` message is used between client (Alice)
 * and server (Bob) to capture a handshake prior to a request
 * message exchange. This should be the first payload sent in
 * request to initiate a connection handshake.
 */
message Handshake {

  /**
   * This field is a one time use nonce value that should be a
   * SHA256 hash of the output from a pseudo random number generator.
   */
  bytes nonce = 1;

  /**
   * This field is a BLAKE2b hash of the string "CFSNET1" + nonce
   * where + denotes concatenation.
   */
  bytes key = 2;

  /**
   * This field is a boolean indicating that the handshake
   * was acknowledged by the receiver.
   */
  bool ack = 3;
}
