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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions