Skip to content

Manifest should be sent as base64 #166

@rozbb

Description

@rozbb

The current proposed format for a WAICT manifest is a JSON object with fields for hashes, policy, delimiters, etc. For transparency, the manifest must be signed. This means that a client has to ingest the JSON object, canonicalize it, serialize to bytes then check the signature on that bytestring. As we know from recent history, mixing canonicalization with signatures can be disastrous.

There is an easy way to avoid all this. Instead of specifying manifest as a JSON object, I it should be a bytestring, probably base64-encoded. The bytestring, when parsed, will be a JSON object, but transmitting it as raw bytes avoids the need for canonicalization altogether. This still means that we need to ensure parsers behave the same, but we needed that anyway.

@ezzak @rich-hansen

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions