BoundedAuthorityReportAdapter.Conformance.LocalProfileCase (Bounded Authority Report Adapter v0.5.0)

Copy Markdown View Source

TEST-ONLY loader for BAP's packaged local-loopback profile corpus (0.3.0).

The profile corpus ships in the DEPENDENCY at priv/conformance/application-profiles/local-loopback-http/v1/ — a DIFFERENT tree and schema from the standard V1 corpus (priv/conformance/v1/): an index.json (identity + per-file sha256s + counts), a profile.json (the certified context: issuer, grant, both proofs, request, and the 36 URI cases), and a proof-cases.json (8 cases, each carrying decode_local/decode_standard/envelope_local verdicts plus optional expected_overrides for the wrong-* cases).

The loader REFUSES an unverified corpus: the index's sha256 over BOTH content files is checked at load (a patched corpus reds loudly here, never silently executes). The @external_resource bindings recompile this module on any corpus edit (the same discipline as VectorCase).

Summary

Functions

The baseline %ExpectedRequest{} from the certified context (no overrides) — the shared base expected_request/1 derives every case from.

Builds the %ExpectedRequest{} the verifier-side surface consumes: the certified context's bound fields, the IPv4 proof's target/nonce as the baseline, and per-case expected_overrides applied (the wrong-* cases carry their poison in-corpus — the derivation mirrors BAP's own profile corpus runner, read first-hand at test/bounded_authority_protocol/application_profile/local_loopback_http/v1_test.exs).

The corpus's grant compact (issuer-signed, certified).

The holder public key the certified proofs bind (raw 32 bytes).

The decoded profile-corpus index (identity, revision, counts, file hashes).

The 32-byte issuer trust anchor from the certified context.

The decoded profile.json (certified context + uri_cases).

The decoded proof-cases.json (8 cases with declared verdicts).

The 36 URI admission cases.

Functions

base_expected_request()

The baseline %ExpectedRequest{} from the certified context (no overrides) — the shared base expected_request/1 derives every case from.

expected_request(proof_case)

Builds the %ExpectedRequest{} the verifier-side surface consumes: the certified context's bound fields, the IPv4 proof's target/nonce as the baseline, and per-case expected_overrides applied (the wrong-* cases carry their poison in-corpus — the derivation mirrors BAP's own profile corpus runner, read first-hand at test/bounded_authority_protocol/application_profile/local_loopback_http/v1_test.exs).

grant_compact()

The corpus's grant compact (issuer-signed, certified).

holder_public_key()

The holder public key the certified proofs bind (raw 32 bytes).

index()

The decoded profile-corpus index (identity, revision, counts, file hashes).

issuer_public_key()

The 32-byte issuer trust anchor from the certified context.

profile()

The decoded profile.json (certified context + uri_cases).

proof_cases()

The decoded proof-cases.json (8 cases with declared verdicts).

uri_cases()

The 36 URI admission cases.