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

proposal: Update invoice signature spec #318

@lann

Description

@lann

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions