Add an implementation of mutual message exchange (bLIP31, Mutual Message Exchange, Bolt12)

Host: jbesraa  -  PR author: TheBlueMatt


This is part two of the review for bLIP/31 named “Mutual Message Exchange”. In the first session we reviewed the bLIP/31 definition, and in this part we will cover the implementation at ldk/2829.


  1. Did you review the PR? Concept ACK, approach ACK, tested ACK, or NACK?
  2. In mutual-message-exchange/src/ we have three public functions, respond_with_message, decode_message, and get_init_bytes. What are the main purposes of these functions?
  3. What is the purpose of get_idx_permutation get_cover_trusted_count functions?
  4. What do we save in the TrustedSet struct and why?
  5. What is variable_time_decryption and how is it used in the code?