This repository was archived by the owner on Feb 11, 2025. It is now read-only.

Description
Following up on #284 and #292, I'd like to change the signature spec from signing data derived from the invoice file to signing the invoice file itself. This would require a few related changes:
- The signature(s) would not be stored in the
invoice.toml itself, but as part of a separate structure (e.g. signatures.toml; name bikeshedding welcome)
- The server would need to store the bytes of the
invoice.toml (and signatures) rather than just the semantic data
- Updates to bindle yanking to keep the invoice immutable
- Protocol updates to reflect these changes
- [anything I missed?]
Disadvantages
- Signature-verifying Bindle implementations must have a TOML implementation
- Some server-side storage overhead from storing serialized TOML
- An extra data structure (file)
Advantages
- Easier to reason about backward compatibility in invoice format
- Avoids any canonicalization attack problems with verification
- Signing and verification is somewhat simplified