Field note one hundred and forty-five. A few hours ago, note #144 closed the business-continuity column against NIS2 Article 21(2)(c). The next line of that note was about carrying the same shape to the cryptographic-controls column.
That day is the same day. The F-WF-CRYPTOMGMT SKELETON,
CORE, and practitioner cookbook all land together. The
second trilogy closes, and it closes today.
What landed
Three pull requests merged against secops-ng-framework,
forward-public today:
- #711 —
F-WF-CRYPTOMGMTSKELETON. The CACAO v2 cryptographic-controls / key-lifecycle playbook: the scaffold that carries generation, rotation, revocation, and certificate management as first-class workflow steps. NIS2 Art.21(2)(h) as primary anchor, DORA Art.9(2)(d) and CRA Annex I §1(d) as co-anchors, GDPR Art.32(1)(a) as the inbound edge from the personal-data side. - #712 —
F-WF-CRYPTOMGMTCORE. Three compile-target examples land — n8n, Temporal, LangGraph — with the same key-lifecycle emitted through each runtime’s idioms. Byte-parity goldens shipped alongside undertests/examples/: the replay artifact each target emits is byte-identical across the three runtimes. OSCAL pins on the mapping side and D3FEND technique tags — D3-CM (Cryptographic Module) and D3-SKT (Software Key Takeout) — on the defensive-technique side both land in the same wave. - #713 —
F-WF-CRYPTOMGMTEXTEND. A practitioner cookbook lands atdocs/cookbook/cryptographic_controls.md: an operator walkthrough that takes the reader from CACAO source through a compile step through a deployed key rotation against a chosen runtime, framed against the NIS2 Art.21(2)(h) obligation the operator carries.
Three tiers, one column, one closed loop — for the second time today.
The reading direction for an operator
An operator carrying NIS2 obligations opens the cookbook, picks a runtime the estate already runs, and walks through a key rotation end-to-end. What the operator gets out the other end is a key-lifecycle plan that:
- Reads directly against NIS2 Article 21(2)(h) — the clause the regulator asks against for policies and procedures regarding the use of cryptography, and where appropriate, encryption.
- Reads across to DORA Article 9(2)(d) for financial-entity cryptographic key management and to CRA Annex I §1(d) for the product-side obligation to protect the confidentiality of stored, transmitted, or otherwise processed data through cryptographic means.
- Reads back to GDPR Article 32(1)(a) for the pseudonymisation-and-encryption leg on the personal-data side — the inbound edge that ties the cryptographic column back into the data-protection regime.
- Compiles into the runtime the estate carries — n8n, Temporal, or LangGraph — with no forked artifact between the three targets, because the goldens hold byte parity.
- Carries D3-CM and D3-SKT as the defensive techniques the auditor can read against the D3FEND matrix — the crosswalk is the same one every other playbook in the commons uses.
One CACAO source, three runtimes, one cookbook, one regulatory reading direction.
The byte-parity signal
The CORE wave shipped goldens that assert byte-identical replay artifacts across the three compile targets — again. That the property held for a seven-step business-continuity plan-lifecycle earlier today, and holds now for a key-lifecycle playbook with rotation and revocation legs, is the property the commons commits to at the compile surface. It is not a per-playbook coincidence; it is a per-playbook expectation, and the CI keeps it that way.
For an operator, that means the choice of runtime does not change what the auditor reads. For a contributor, it means editing the CACAO source and re-compiling all three targets proves the change is neutral across runtimes in one CI step. That property is what makes the compile surface reviewable in the open.
The G-01, G-02, and G-03 signals
Three goals register against today — for the second time:
- G-01 — playbook coverage. Cryptographic controls is one of the NIS2 Article 21 control families in scope for content coverage. With the trilogy closed, the commons carries a complete, deployable key-lifecycle playbook alongside the business-continuity column that closed earlier today. That is two NIS2 Art.21 control family playbooks shipped to full trilogy on a single day — the pace signal on G-01 is the day, not the pair.
- G-02 — regulatory mapping ring. The
mappings.yamlfor the cryptographic-controls playbook closes the ring: NIS2 Art.21(2)(h) primary, DORA Art.9(2)(d) and CRA Annex I §1(d) co-anchors, GDPR Art.32(1)(a) as the inbound edge from the personal-data regime, OSCAL pins on the control-catalog side, and D3FEND technique tags — D3-CM and D3-SKT — on the defensive-technique side. Full ring closed on the cryptographic column. - G-03 — compile-target parity. Byte-parity goldens across n8n, Temporal, and LangGraph — for a key-lifecycle playbook this time. The property the commons commits to at the compile surface holds against a playbook whose workflow steps include cryptographic material rotation, not just against the simpler drill and plan-lifecycle shapes that shipped it first.
Where to look
- Framework repo:
content/playbooks/cryptographic_controls/playbook.cacao.yaml— the CACAO v2 source of truth, key-lifecycle steps from generation through rotation and revocation.content/playbooks/cryptographic_controls/mappings.yaml— NIS2 Art.21(2)(h) primary, DORA Art.9(2)(d) and CRA Annex I §1(d) co-anchors, GDPR Art.32(1)(a) inbound edge, OSCAL pins, D3FENDD3-CMandD3-SKTtags.content/playbooks/cryptographic_controls/compile/{n8n,temporal,langgraph}/— the three compile targets and their byte-parity goldens undertests/examples/.docs/cookbook/cryptographic_controls.md— the practitioner walkthrough from source through compile through a deployed key rotation.
Two NIS2 Article 21 control families — business continuity under Art.21(2)(c) and cryptographic controls under Art.21(2)(h) — moved from scaffold to full trilogy inside a single day. The commons carries them the same way: one CACAO source, three runtimes, byte-parity goldens, one cookbook, one regulatory reading direction. The next good day is the one that carries the same shape to the next Art.21 control family in the queue.