Skip to content

Latest commit

 

History

History
221 lines (214 loc) · 86.5 KB

File metadata and controls

221 lines (214 loc) · 86.5 KB

PEAC Conformance Matrix

Generated: Do not edit manually. Source: node scripts/conformance/generate-matrix.mjs Version: 0.15.0

Wire 0.2 Protocol Requirements

ID Section Summary Class Coverage Fixture Test Error
WIRE02-MEDIA-001 2 Issuers MUST emit compact form typ value issuance covered wire-02/identifier-stack/conformance.json
WIRE02-MEDIA-002 2 Verifiers MUST accept full media type form hard_fail covered wire-02/identifier-stack/conformance.json E_INVALID_FORMAT
WIRE02-MEDIA-003 2 Full media type MUST be normalized to compact form hard_fail deferred (v0.12.1) E_INVALID_FORMAT
WIRE02-MEDIA-004 2 Issuers MUST NOT emit full media type form issuance implicit (advisory/issuance)
WIRE02-MEDIA-005 2 Verifiers MUST enforce typ/peac_version coherence hard_fail covered wire-02/identifier-stack/conformance.json, wire-02/invalid.json, wire-02/replay-prevention/boundary-jti-length.json, wire-02/valid.json, wire-02/warnings.json E_WIRE_VERSION_MISMATCH
WIRE02-MEDIA-006 2 Strict mode: typ MUST be present hard_fail deferred (v0.12.1) E_INVALID_FORMAT
WIRE02-MEDIA-007 2 Strict mode: typ MUST match interaction-record+jwt hard_fail deferred (v0.12.1) E_INVALID_FORMAT
WIRE02-ENV-001 3 Unknown top-level fields MUST be rejected hard_fail covered wire-02/kinds/conformance.json E_INVALID_FORMAT
WIRE02-ENV-002 3 peac_version is REQUIRED hard_fail deferred (v0.12.1) E_MISSING_REQUIRED_CLAIM
WIRE02-ENV-003 3 kind is REQUIRED hard_fail deferred (v0.12.1) E_MISSING_REQUIRED_CLAIM
WIRE02-ENV-004 3 type is REQUIRED hard_fail deferred (v0.12.1) E_MISSING_REQUIRED_CLAIM
WIRE02-ENV-005 3 iss is REQUIRED hard_fail deferred (v0.12.1) E_MISSING_REQUIRED_CLAIM
WIRE02-ENV-006 3 iat is REQUIRED hard_fail deferred (v0.12.1) E_MISSING_REQUIRED_CLAIM
WIRE02-ENV-007 3 jti is REQUIRED hard_fail deferred (v0.12.1) E_MISSING_REQUIRED_CLAIM
WIRE02-ENV-008 3 sub is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-ENV-009 3 pillars is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-ENV-010 3 actor is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-ENV-011 3 policy is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-ENV-012 3 representation is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-ENV-013 3 occurred_at is OPTIONAL (evidence kind only) advisory implicit (advisory/issuance)
WIRE02-ENV-014 3 purpose_declared is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-ENV-015 3 extensions is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-ENV-016 3 Every Wire 0.2 receipt MUST include 6 required fields hard_fail deferred (v0.12.1) E_MISSING_REQUIRED_CLAIM
WIRE02-ENV-017 3 policy.digest is REQUIRED when policy block present hard_fail covered wire-02/valid.json E_INVALID_FORMAT
WIRE02-ENV-018 3 policy.uri is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-ENV-019 3 policy.version is OPTIONAL advisory covered wire-02/valid.json
WIRE02-ENV-020 3 policy.uri MUST start with https:// hard_fail deferred (v0.12.1) E_INVALID_FORMAT
WIRE02-ENV-021 3 Implementations MUST NOT auto-fetch policy.uri advisory implicit (advisory/issuance)
WIRE02-ENV-022 3 representation.content_hash is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-ENV-023 3 representation.content_type is OPTIONAL advisory covered wire-02/invalid.json, wire-02/replay-prevention/boundary-jti-length.json, wire-02/valid.json, wire-02/warnings.json
WIRE02-ENV-024 3 representation.content_length is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-ENV-025 3 actor.id is REQUIRED hard_fail deferred (v0.12.1) E_INVALID_FORMAT
WIRE02-ENV-026 3 actor.proof_type is REQUIRED hard_fail deferred (v0.12.1) E_INVALID_FORMAT
WIRE02-ENV-027 3 actor.origin is REQUIRED hard_fail deferred (v0.12.1) E_INVALID_FORMAT
WIRE02-COMPAT-001 4 Implementations MUST preserve unrecognized open field values hard_fail deferred (v0.12.1) E_INVALID_FORMAT
WIRE02-COMPAT-002 4 Pillars array MUST be sorted ascending lexicographic hard_fail deferred (v0.12.1) E_PILLARS_NOT_SORTED
WIRE02-KIND-001 5 occurred_at MUST NOT appear on challenge receipts hard_fail covered wire-02/invalid.json, wire-02/kinds/conformance.json, wire-02/occurred-at/conformance.json, wire-02/replay-prevention/boundary-jti-length.json, wire-02/valid.json, wire-02/warnings.json E_OCCURRED_AT_ON_CHALLENGE
WIRE02-KIND-002 5 Challenges SHOULD include the challenge extension group advisory implicit (advisory/issuance)
WIRE02-KIND-003 5 A single type MAY appear with either kind advisory covered wire-02/kinds/conformance.json
WIRE02-TYPE-001 6 type domain MUST contain at least one dot hard_fail covered wire-02/types/conformance.json E_INVALID_FORMAT
WIRE02-TYPE-002 6 type domain MUST match domain character pattern hard_fail covered wire-02/types/conformance.json E_INVALID_FORMAT
WIRE02-TYPE-003 6 type segment MUST be non-empty hard_fail covered wire-02/types/conformance.json E_INVALID_FORMAT
WIRE02-TYPE-004 6 type segment MUST match segment character pattern hard_fail covered wire-02/types/conformance.json E_INVALID_FORMAT
WIRE02-TYPE-005 6 type domain MUST start with alphanumeric hard_fail covered wire-02/types/conformance.json E_INVALID_FORMAT
WIRE02-TYPE-006 6 type segment MUST start with alphanumeric hard_fail covered wire-02/types/conformance.json E_INVALID_FORMAT
WIRE02-TYPE-007 6 Reverse-DNS type values SHOULD be lowercase ASCII warning_only covered wire-02/types/conformance.json
WIRE02-TYPE-008 6 Verifiers MAY emit warning for uppercase reverse-DNS type advisory implicit (advisory/issuance)
WIRE02-PILLAR-001 7 Unknown pillar values MUST be rejected hard_fail covered wire-02/pillars/conformance.json E_INVALID_FORMAT
WIRE02-PILLAR-002 7 Pillars array MUST contain at least one element when present hard_fail covered wire-02/pillars/conformance.json E_INVALID_FORMAT
WIRE02-PILLAR-003 7 Pillar values MUST be in ascending lexicographic order hard_fail covered wire-02/invalid.json, wire-02/pillars/conformance.json, wire-02/valid.json, wire-02/warnings.json E_PILLARS_NOT_SORTED
WIRE02-PILLAR-004 7 Duplicate pillar values MUST be rejected hard_fail covered wire-02/pillars/conformance.json E_PILLARS_NOT_SORTED
WIRE02-PILLAR-005 7 Receipt MAY have type not corresponding to any single pillar advisory implicit (advisory/issuance)
WIRE02-PILLAR-006 7 Receipt MAY have multiple pillars for a single type advisory implicit (advisory/issuance)
WIRE02-ISS-001 8 iss scheme MUST be lowercase https hard_fail covered wire-02/invalid.json, wire-02/issuers/conformance.json, wire-02/replay-prevention/boundary-jti-length.json, wire-02/valid.json, wire-02/warnings.json E_ISS_NOT_CANONICAL
WIRE02-ISS-002 8 iss host MUST be lowercase ASCII hard_fail covered wire-02/issuers/conformance.json E_ISS_NOT_CANONICAL
WIRE02-ISS-003 8 Default port 443 MUST NOT appear explicitly hard_fail covered wire-02/issuers/conformance.json E_ISS_NOT_CANONICAL
WIRE02-ISS-004 8 iss MUST equal reconstructed origin exactly hard_fail covered wire-02/issuers/conformance.json E_ISS_NOT_CANONICAL
WIRE02-ISS-005 8 DID method MUST be lowercase letters and digits only hard_fail covered wire-02/invalid.json, wire-02/issuers/conformance.json, wire-02/valid.json E_ISS_NOT_CANONICAL
WIRE02-ISS-006 8 DID method-specific-id MUST NOT contain path/query/fragment chars hard_fail covered wire-02/issuers/conformance.json E_ISS_NOT_CANONICAL
WIRE02-ISS-007 8 All non-https/did schemes produce E_ISS_NOT_CANONICAL hard_fail covered wire-02/issuers/conformance.json E_ISS_NOT_CANONICAL
WIRE02-ISS-008 8 Callers MUST always provide publicKey directly advisory implicit (advisory/issuance)
WIRE02-OCC-001 9 occurred_at value MUST be valid ISO 8601/RFC 3339 datetime hard_fail covered wire-02/invalid.json, wire-02/kinds/conformance.json, wire-02/occurred-at/conformance.json, wire-02/warnings.json E_INVALID_FORMAT
WIRE02-JOSE-001 10 alg MUST be EdDSA; all others rejected hard_fail covered wire-02/jose/conformance.json E_INVALID_FORMAT
WIRE02-JOSE-002 10 kid is REQUIRED in JWS header hard_fail covered wire-02/jose/conformance.json E_JWS_MISSING_KID
WIRE02-JOSE-003 10 Embedded key jwk MUST cause hard error hard_fail covered wire-02/invalid.json, wire-02/jose/conformance.json E_JWS_EMBEDDED_KEY
WIRE02-JOSE-004 10 crit header MUST be rejected hard_fail covered wire-02/invalid.json, wire-02/jose/conformance.json E_JWS_CRIT_REJECTED
WIRE02-JOSE-005 10 b64:false MUST be rejected hard_fail covered wire-02/invalid.json, wire-02/jose/conformance.json E_JWS_B64_REJECTED
WIRE02-JOSE-006 10 zip header MUST be rejected hard_fail covered wire-02/invalid.json, wire-02/jose/conformance.json E_JWS_ZIP_REJECTED
WIRE02-JOSE-007 10 kid MUST be present and non-empty hard_fail covered wire-02/invalid.json, wire-02/jose/conformance.json E_JWS_MISSING_KID
WIRE02-JOSE-008 10 kid MUST NOT exceed 256 characters hard_fail covered wire-02/jose/conformance.json E_JWS_MISSING_KID
WIRE02-JOSE-009 10 JWS compact serialization MUST NOT exceed 256 KB hard_fail covered wire-02/jose/conformance.json E_INVALID_FORMAT
WIRE02-POLICY-001 11 policyDigest option MUST match sha256:<64hex> format hard_fail covered wire-02/policy-binding/conformance.json, wire-02/valid.json, wire-02/validation/conformance.json E_INVALID_FORMAT
WIRE02-POLICY-002 11 policy.uri MUST be https:// URL hard_fail covered wire-02/policy-binding/conformance.json E_INVALID_FORMAT
WIRE02-POLICY-003 11 Implementations MUST NOT auto-fetch policy URI advisory implicit (advisory/issuance)
WIRE02-EXT-001 12 Extension keys MUST conform to domain/segment grammar hard_fail covered wire-02/extensions/conformance.json, wire-02/valid.json E_INVALID_EXTENSION_KEY
WIRE02-EXT-002 12 Extension key domain MUST have at least one dot hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_KEY
WIRE02-EXT-003 12 Extension key domain label MUST NOT exceed 63 chars hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_KEY
WIRE02-EXT-004 12 Extension key segment MUST be non-empty hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_KEY
WIRE02-EXT-005 12 Extension key segment MUST match lowercase pattern hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_KEY
WIRE02-EXT-006 12 Commerce: payment_rail is REQUIRED hard_fail covered wire-02/extensions/conformance.json, wire-02/valid.json, wire-02/warnings.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-007 12 Commerce: amount_minor is REQUIRED hard_fail covered wire-02/extensions/conformance.json, wire-02/valid.json, wire-02/warnings.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-008 12 Commerce: currency is REQUIRED hard_fail covered wire-02/extensions/conformance.json, wire-02/valid.json, wire-02/warnings.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-009 12 amount_minor MUST be base-10 integer string hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-010 12 Issuers SHOULD use distinct type for negative amounts advisory implicit (advisory/issuance)
WIRE02-EXT-011 12 Access: resource is REQUIRED hard_fail covered wire-02/extensions/conformance.json, wire-02/valid.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-012 12 Access: action is REQUIRED hard_fail covered wire-02/extensions/conformance.json, wire-02/valid.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-013 12 Access: decision is REQUIRED hard_fail covered wire-02/extensions/conformance.json, wire-02/valid.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-014 12 trace_id MUST match 32 lowercase hex chars hard_fail covered wire-02/extensions/conformance.json, wire-02/valid.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-015 12 span_id MUST match 16 lowercase hex chars hard_fail covered wire-02/extensions/conformance.json, wire-02/valid.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-016 12 Unknown extension keys MUST be preserved hard_fail covered wire-02/extensions/conformance.json E_INVALID_FORMAT
WIRE02-EXT-017 12 Unknown extension keys MUST trigger warning warning_only covered wire-02/extensions/conformance.json
WIRE02-EXT-018 12 Unknown extension keys MUST NOT cause validation error hard_fail covered wire-02/extensions/conformance.json E_INVALID_FORMAT
WIRE02-EXT-019 12 Consent: consent_basis is REQUIRED hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-020 12 Consent: consent_status is REQUIRED (closed enum) hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-021 12 Consent: data_categories is OPTIONAL advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-022 12 Consent: retention_period is OPTIONAL (ISO 8601 duration) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-024 12 Consent: .strict() rejects unknown properties hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-031 12 Privacy: data_classification is REQUIRED hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-032 12 Privacy: processing_basis is OPTIONAL advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-033 12 Privacy: retention_mode is OPTIONAL (closed enum) hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-034 12 Privacy: recipient_scope is OPTIONAL (closed enum) hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-035 12 Privacy: anonymization_method is OPTIONAL advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-036 12 Privacy: transfer_mechanism is OPTIONAL advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-037 12 Safety: review_status is REQUIRED (closed enum) hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-038 12 Safety: risk_level is OPTIONAL (closed enum) hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-039 12 Safety: assessment_method is OPTIONAL advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-040 12 Safety: safety_measures is OPTIONAL (max 32 items) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-041 12 Safety: incident_ref is OPTIONAL advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-042 12 Safety: model_ref is OPTIONAL advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-043 12 Compliance: framework is REQUIRED hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-044 12 Compliance: compliance_status is REQUIRED (closed enum) hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-045 12 Compliance: audit_date is OPTIONAL (ISO 8601 date) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-046 12 Compliance: validity_period is OPTIONAL (ISO 8601 duration) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-047 12 Compliance: evidence_ref is OPTIONAL (SHA-256 digest) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-048 12 Compliance: .strict() rejects unknown properties hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-049 12 Provenance: source_type is REQUIRED hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-050 12 Provenance: source_ref is OPTIONAL advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-051 12 Provenance: custody_chain is OPTIONAL (max 16 items) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-052 12 Provenance: slsa is OPTIONAL (structured metadata) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-053 12 Provenance: .strict() rejects unknown properties in extension and nested schemas hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-054 12 Provenance: source_uri and build_provenance_uri are locator hints only advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-055 12 Attribution: creator_ref is REQUIRED hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-056 12 Attribution: license_spdx is OPTIONAL (parser-grade validator) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-057 12 Attribution: content_signal_source is OPTIONAL (closed enum) hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-058 12 Attribution: content_digest is OPTIONAL (SHA-256 digest) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-059 12 Attribution: .strict() rejects unknown properties hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-060 12 Attribution: not an identity attestation; observational only advisory implicit (advisory/issuance)
WIRE02-EXT-061 12 Purpose: external_purposes is REQUIRED (min 1, max 32) hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-062 12 Purpose: compatible_purposes is OPTIONAL (max 32, unique tokens) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-063 12 Purpose: purpose_basis is OPTIONAL advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-064 12 Purpose: .strict() rejects unknown properties hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-065 12 Purpose: external_purposes items MUST match machine-safe token grammar and be unique hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-066 12 Purpose: peac_purpose_mapping is OPTIONAL (validated against PURPOSE_TOKEN_REGEX) advisory covered wire-02/extensions/conformance.json
WIRE02-EXT-071 12 Purpose: compatible_purposes items MUST be unique hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-067 12 Type-to-extension: expected extension group MUST be present in strict mode hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-068 12 Type-to-extension: interop mode downgrades absence to warning warning_only covered wire-02/extensions/conformance.json
WIRE02-EXT-069 12 Type-to-extension: mismatch MUST be reported in strict mode hard_fail covered wire-02/extensions/conformance.json E_INVALID_EXTENSION_FORMAT
WIRE02-EXT-070 12 Type-to-extension: custom/unmapped types exempt from enforcement advisory covered wire-02/extensions/conformance.json
WIRE02-CHAL-001 13 Challenge problem.status is REQUIRED hard_fail covered wire-02/challenge.json, wire-02/invalid.json, wire-02/valid.json E_INVALID_EXTENSION_FORMAT
WIRE02-CHAL-002 13 Challenge problem.type is REQUIRED hard_fail covered wire-02/challenge.json packages/protocol/tests/strictness.property.test.ts E_INVALID_EXTENSION_FORMAT
WIRE02-CHAL-003 13 Challenge problem.title is OPTIONAL advisory covered wire-02/challenge.json
WIRE02-CHAL-004 13 Challenge problem.detail is OPTIONAL advisory covered wire-02/challenge.json
WIRE02-CHAL-005 13 Challenge problem.instance is OPTIONAL advisory covered wire-02/challenge.json
WIRE02-CHAL-006 13 Challenge resource is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-CHAL-007 13 Challenge action is OPTIONAL advisory implicit (advisory/issuance)
WIRE02-WARN-001 14 Warning code is REQUIRED hard_fail covered packages/protocol/tests/verify-local-wire-02-warnings.test.ts E_INVALID_FORMAT
WIRE02-WARN-002 14 Warning message is REQUIRED hard_fail covered packages/protocol/tests/verify-local-wire-02-warnings.test.ts E_INVALID_FORMAT
WIRE02-WARN-003 14 Warning message MUST NOT be used for conformance testing advisory implicit (advisory/issuance)
WIRE02-WARN-004 14 New warning codes MAY be added in future advisory implicit (advisory/issuance)
WIRE02-WARN-005 14 Existing warning codes MUST NOT be removed or renamed advisory implicit (advisory/issuance)
WIRE02-WARN-006 14 Consumers MUST tolerate unknown warning codes advisory implicit (advisory/issuance)
WIRE02-WARN-007 14 Warnings MUST be sorted by (pointer, code) hard_fail covered packages/protocol/tests/verify-local-wire-02-warnings.test.ts E_INVALID_FORMAT
WIRE02-WARN-008 14 Conformance MUST assert on code and pointer only advisory implicit (advisory/issuance)
WIRE02-WARN-009 14 message MUST NOT be used for conformance testing (14.5) advisory implicit (advisory/issuance)
WIRE02-DUAL-001 15 Implementations MUST verify typ/peac_version coherence after routing hard_fail covered wire-02/dual-stack.json packages/protocol/tests/strictness.property.test.ts E_WIRE_VERSION_MISMATCH
WIRE02-DUAL-002 15 Wire 0.1 route payload MUST NOT contain peac_version 0.2 hard_fail covered wire-02/dual-stack.json packages/protocol/tests/strictness.property.test.ts E_WIRE_VERSION_MISMATCH
WIRE02-DUAL-003 15 Wire 0.2 route payload MUST contain peac_version 0.2 hard_fail covered wire-02/dual-stack.json packages/protocol/tests/strictness.property.test.ts E_WIRE_VERSION_MISMATCH
WIRE02-STRICT-001 16 Strict: JWS typ MUST be present hard_fail covered packages/protocol/tests/verify-local.test.ts E_INVALID_FORMAT
WIRE02-STRICT-002 16 Strict: typ MUST be a recognized value hard_fail covered packages/protocol/tests/verify-local.test.ts E_INVALID_FORMAT
WIRE02-STRICT-003 16 Production deployments SHOULD use strict mode advisory implicit (advisory/issuance)
WIRE02-IDENT-001 18 Issuers MUST emit compact form typ (18.3) issuance covered wire-02/identifier-stack/conformance.json
WIRE02-IDENT-002 18 Verifiers MUST accept media-type form (18.3) hard_fail covered wire-02/identifier-stack/conformance.json E_INVALID_FORMAT
WIRE02-IDENT-003 18 MUST NOT perform content-type parameter parsing hard_fail covered wire-02/identifier-stack/conformance.json E_INVALID_FORMAT
WIRE02-IDENT-004 18 typ and peac_version MUST agree (18.4) hard_fail covered wire-02/identifier-stack/conformance.json E_WIRE_VERSION_MISMATCH
WIRE02-IDENT-005 18 Production SHOULD use strict mode (18.5) advisory implicit (advisory/issuance)
WIRE02-IDENT-006 18 Future implementations MAY relax unknown minor version advisory implicit (advisory/issuance)
WIRE02-IDENT-007 18 Multiple package versions MAY implement same wire version advisory implicit (advisory/issuance)
WIRE02-VALID-001 19 Steps MUST be performed in specified order hard_fail covered wire-02/validation/conformance.json packages/protocol/tests/verify-local-order.test.ts E_INVALID_FORMAT
WIRE02-VALID-002 19 Hard error MUST terminate validation immediately hard_fail covered wire-02/validation/conformance.json packages/protocol/tests/verify-local-order.test.ts E_INVALID_FORMAT
WIRE02-VALID-003 19 Verifier MUST NOT continue after hard error hard_fail covered wire-02/validation/conformance.json packages/protocol/tests/verify-local-order.test.ts E_INVALID_FORMAT
WIRE02-VALID-004 19 jws input is REQUIRED hard_fail covered wire-02/validation/conformance.json E_INVALID_FORMAT
WIRE02-VALID-005 19 publicKey input is REQUIRED hard_fail covered wire-02/validation/conformance.json E_INVALID_FORMAT
WIRE02-VALID-006 19 Step 1: alg MUST be EdDSA hard_fail covered wire-02/validation/conformance.json E_INVALID_FORMAT
WIRE02-VALID-007 19 Step 3: kernel constraints fail-closed hard_fail covered wire-02/validation/conformance.json packages/protocol/tests/verify-local-order.test.ts E_CONSTRAINT_VIOLATION
WIRE02-VALID-008 19 Step 9: iat MUST NOT exceed now + maxClockSkew hard_fail covered wire-02/validation/conformance.json E_NOT_YET_VALID
WIRE02-VALID-009 19 Step 10a: jti is REQUIRED (enforced by schema) hard_fail covered wire-02/validation/conformance.json E_MISSING_REQUIRED_CLAIM
WIRE02-VALID-010 19 Step 10b: Verifiers with replay cache SHOULD reject duplicates advisory implicit (advisory/issuance)
WIRE02-VALID-011 19 Step 10b: Verifiers without cache MAY skip replay check advisory implicit (advisory/issuance)
WIRE02-VALID-012 19 HTTP mapping SHOULD use 400 Bad Request advisory implicit (advisory/issuance)
WIRE02-REPLAY-001 20 jti claim is REQUIRED on all Wire 0.2 receipts hard_fail covered wire-02/replay/conformance.json, wire-02/validation/conformance.json E_MISSING_REQUIRED_CLAIM
WIRE02-REPLAY-002 20 Issuers MUST ensure jti uniqueness issuance implicit (advisory/issuance)
WIRE02-REPLAY-003 20 jti MUST be 1 to 256 characters hard_fail covered wire-02/replay/conformance.json E_MISSING_REQUIRED_CLAIM
WIRE02-REPLAY-004 20 Implementations SHOULD use 128+ bits of entropy for jti advisory implicit (advisory/issuance)
WIRE02-REPLAY-005 20 Verifiers with cache SHOULD reject duplicate jti per iss advisory implicit (advisory/issuance)
WIRE02-REPLAY-006 20 Verifiers without cache MAY skip replay detection advisory implicit (advisory/issuance)
WIRE02-REPLAY-007 20 Replay caches SHOULD use iat-based expiry advisory implicit (advisory/issuance)
WIRE02-REPLAY-008 20 RECOMMENDED cache window is 2x tolerance (600s) advisory implicit (advisory/issuance)
WIRE02-REPLAY-009 20 Caches SHOULD be scoped per iss advisory implicit (advisory/issuance)
WIRE02-REPLAY-010 20 Implementations MAY use probabilistic structures advisory implicit (advisory/issuance)
WIRE02-REPLAY-011 20 aud claim is OPTIONAL in Wire 0.2 advisory implicit (advisory/issuance)
WIRE02-REPLAY-012 20 Verifiers checking aud SHOULD reject unaddressed receipts advisory implicit (advisory/issuance)
WIRE02-REPLAY-013 20 Each receipt in bundle MUST have unique jti hard_fail covered wire-02/replay/conformance.json E_MISSING_REQUIRED_CLAIM

Carrier Contract Requirements

ID Summary Class Coverage Fixture Error
CARRIER-A2A-001 Transport boundary check hard_fail covered carrier-boundary/conformance.json E_CARRIER_SIZE_EXCEEDED
CARRIER-HTTP-001 Transport boundary check hard_fail covered carrier-boundary/conformance.json E_CARRIER_SIZE_EXCEEDED
CARRIER-MCP-001 Transport boundary check hard_fail covered carrier-boundary/conformance.json E_CARRIER_SIZE_EXCEEDED

Summary

Metric Count
Wire 0.2 requirements 192
covered 130
implicit (advisory/issuance) 46
deferred (PR 3) 0
deferred (v0.12.1) 16
UNCOVERED 0
Carrier requirements 3