Authenticate blinded payment paths (Blinded Paths, Bolt12, Offer)

https://github.com/lightningdevkit/rust-lightning/pull/3435

Host: vincenzopalazzo  -  PR author: jkczyz

Notes

Questions

  1. Did you review ldk/3435? Is it a Concept ACK, Approach ACK, Tested ACK, or NACK?
  2. What problem is this patch solving? Can you provide a user story?
  3. What is the concept behind the HMAC in LDK? See the [online definition](https://en.wikipedia.org/wiki/HMAC#:~:text=In%20cryptography%2C%20an%20HMAC%20(sometimes,and%20a%20secret%20cryptographic%20key.)
  4. In commit 7cdcd, why is the struct ExpandedKey used?
  5. Does LDK authenticate a keysend payment? If yes, what is the commit that proves it is true?
  6. When is the payment_context Some? Is it specified when just routing an HTLC and the LDK node is just a middle hop in the path? If yes, why?