Skip to content

Support JSON Canonicalization Scheme to support cryptographic signing scenarios #2013

@butler54

Description

@butler54

Issue description / feature objectives

In investigating the opportunity for using signing in the oscal release process one of the issues is verifiability. For verifiability binary exact outputs need to be repeatable, ideally across systems and implementations.

e.g. given an oscal json object there are potentially different ways this can be represented even as json.**

Json canonicalization scheme RFC 8785 is a method to get a repeatable output for a given functional.

  1. Introduce RFC8785 formatted json (aka JCS) as a supported output type.
  2. Introduce flags throughout CLI commands to support this.
  3. Introduce a command to allow object canonicalisation.

** note yaml does not have a approved normalisation standard see here so we have excluded for now.

Caveats / Assumptions

  • YAML is out of scope
  • XML is out of scope
  • The jcs library is out of scope
  • This is purely canonicalisation. It will not examine other aspects of the build process which are required to get reproducible builds, however, it's addresses a core concern.

Completion Criteria

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    New

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions