Conformance posture: STANAG 4774 / 4778¶
Adapter: src/nous/interop/stanag_4774.py (BL-034)
Standard: STANAG 4774 (Confidentiality Label) and STANAG 4778 (Binding Label to Data). The spec lives in the NATO publication.
Current posture: Encode wraps a payload in a JSON envelope with
policyIdentifier, classification, creationTime (UTC ISO-8601,
Z-suffixed), and payload. Encoder refuses to emit when the source
estimate is older than max_age_s (default 60 s); both encode and
decode enforce max_payload_len (default 64 KiB) to bound the
oversized-payload attack surface. Decode parses the JSON back into a
dictionary, returning {"error": ...} on parse failure.
What is supported: Label / payload coupling in JSON. Default
policy is NATO, default classification is UNCLASSIFIED.
What is omitted: XML rendering, ASN.1 binding, signing of the label, the full classification ontology (categories, releasability markings, caveats).
Conformance claim: None. This is a shape-only adapter; real STANAG conformance requires a certified implementation.