Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ members = [
"crates/registry-platform-authcommon",
"crates/registry-platform-cache",
"crates/registry-platform-config",
"crates/registry-platform-consent",
"crates/registry-platform-crypto",
"crates/registry-platform-httpsec",
"crates/registry-platform-httputil",
Expand Down Expand Up @@ -63,6 +64,7 @@ registry-platform-audit = { path = "crates/registry-platform-audit", version = "
registry-platform-authcommon = { path = "crates/registry-platform-authcommon", version = "0.9.0" }
registry-platform-cache = { path = "crates/registry-platform-cache", version = "0.9.0" }
registry-platform-config = { path = "crates/registry-platform-config", version = "0.9.0" }
registry-platform-consent = { path = "crates/registry-platform-consent", version = "0.9.0" }
registry-platform-crypto = { path = "crates/registry-platform-crypto", version = "0.9.0" }
registry-platform-httpsec = { path = "crates/registry-platform-httpsec", version = "0.9.0" }
registry-platform-httputil = { path = "crates/registry-platform-httputil", version = "0.9.0" }
Expand Down
19 changes: 19 additions & 0 deletions crates/registry-platform-consent/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[package]
name = "registry-platform-consent"
version.workspace = true
edition.workspace = true
license.workspace = true
readme = "README.md"
repository.workspace = true
publish = false

[lints]
workspace = true

[dependencies]
base64.workspace = true
registry-platform-crypto = { workspace = true }
serde.workspace = true
serde_json.workspace = true
thiserror.workspace = true
zeroize.workspace = true
18 changes: 18 additions & 0 deletions crates/registry-platform-consent/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# registry-platform-consent

Shared, offline verification for Registry Stack consent evidence.

The first implementation slice accepts one compact Ed25519 JWS per evaluation.
It validates the closed `ConsentEvidenceV1` payload, verifies the signature
against deployment-pinned JWKs, and enforces exact subject, recipient,
assurance, purpose, time, and optional profile bindings. It intentionally has
no source-status adapter, resolver, network access, or consent collection UI.

Raw compact artifacts are bounded at 8 KiB and deliberately do not implement
`Debug` or `Serialize`. Callers should retain only `VerifiedConsent`, and put
only the domain-separated keyed commitment in audit data.

The portable fixtures under `tests/fixtures/` publish the exact payload,
public JWK, compact JWS, and keyed-commitment result used by the verification
tests. The maximum-field test separately proves that the largest valid Ed25519
artifact remains below the 8 KiB wire limit.
Loading
Loading