Repository navigation
docs(aid-emit-1): note the self-describing content digest form (1.1.1) - #585
Merged
Merged
Conversation
An informative note in section 9.2 on unmapped."cpex.content": the two members, input_hash and output_hash, are the host's values carried as opaque strings inside the hashed bytes, and the emitter defines no digest scheme. The form self-describes: hmac-sha256:<key_id>:<hex> for the keyed digest praxis-proxy/policy PR #84 (2d717e8 and later) records under a deployment secret the sink never sees, with key ids that make digests comparable only under one key; sha256:<hex> for the unkeyed digest cpex PR #166 records and PPE records under its explicit unkeyed setting, with the caveat that an unkeyed digest of redacted content is guessable. A verifier must not require a scheme, recompute either value, or read a null output_hash as "unchanged". The committed vectors do not enable provenance, so no vector changes. Patch bump to 1.1.1-draft, recorded in section 13; no covered byte changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019BKU46zuw1Yu8E8yBQj4DP
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019BKU46zuw1Yu8E8yBQj4DP
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
#584 moved the OCSF audit plugin onto the keyed content digest praxis-proxy/policy#84 now records, and noted that AID-EMIT-1 pins no digest scheme under
cpex.content. That is still true, and it is the right rule, but a verifier reading a record should not have to discover from the reference implementation what the two forms mean and when they are comparable. This writes it down.What
docs/specs/aid-emit-1.md, section 9.2: an informative paragraph onunmapped."cpex.content". Both members are the host's values, opaque strings inside the hashed bytes; the emitter defines no scheme and a verifier MUST NOT require one or recompute either value. The two self-describing forms are named:hmac-sha256:<key_id>:<hex>(feat(audit): decision and effect auditing praxis-proxy/policy#84 at2d717e8and later, keyed under a deployment secret the sink never sees, comparable only under one key id) andsha256:<hex>(cpex, feat: first-class decision & effect auditing (the audit seam) contextforge-org/cpex#166, and PPE under its explicitunkeyedsetting, with the caveat that an unkeyed digest of redacted content is guessable). A nulloutput_hashmeans nothing was digested, never "unchanged". The committed vectors do not enable provenance.Informative text only. No covered byte, vocabulary, or vector changes, so no verifier or emitter change follows from it.
Generated with Claude Code
https://claude.ai/code/session_019BKU46zuw1Yu8E8yBQj4DP