hs-v3: Simplify decrypt_desc_layer interface

Here is how decrypt_desc_layer is called:

  superencrypted_len = decrypt_desc_layer(desc,
                                 desc->plaintext_data.superencrypted_blob,
                                 desc->plaintext_data.superencrypted_blob_size,
                                 NULL, 1, &superencrypted_plaintext);
  encrypted_len = decrypt_desc_layer(desc,
                                 desc->superencrypted_data.encrypted_blob,
                                 desc->superencrypted_data.encrypted_blob_size,
                                 descriptor_cookie, 0, &encrypted_plaintext);

There is no point in passing desc->superencrypted_data.encrypted_blob and desc->superencrypted_data.encrypted_blob_size since we are already passing the whole desc and is_superencrypted_layer which should be enough to figure out which fields to use.

We could either of the following two things:

  • Ditch desc as an argument and pass desc->plaintext_data.blinded_pubkey explicitly.
  • Ditch encrypted_blob and encrypted_blob_size as arguments and get them off desc.

I prefer the first, but I'm fine with either, since it will make the interface cleaner.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information