Skip to content

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.