Also change signature calculation to be in line
with libmacaroons.
Because libmacaroons uses the sha256 output directly
as the encryption key for third party caveat verification
ids, we change the representation of hashes to be
an array rather than a slice. This means that if the
relative sizes change at some point in the future (for
example if a different hash algorithm is used), the
compiler will tell us that there is a problem.
Each field contains a trailing newline character.
Also change signature calculation to be in line with libmacaroons.
Because libmacaroons uses the sha256 output directly as the encryption key for third party caveat verification ids, we change the representation of hashes to be an array rather than a slice. This means that if the relative sizes change at some point in the future (for example if a different hash algorithm is used), the compiler will tell us that there is a problem.