<?xml version="1.0" encoding="UTF-8"?>
<metanorma xmlns="https://www.metanorma.org/ns/standoc" type="semantic" version="3.4.10" schema-version="v2.2.0" flavor="iso">
<bibdata type="standard"><docidentifier type="ISO" primary="true">ISO/AWI 99999:2026</docidentifier><docidentifier type="iso-reference">ISO/AWI 99999:2026(E)</docidentifier><docidentifier type="URN">urn:iso:std:iso:99999:stage-20.00:en</docidentifier><docidentifier type="iso-undated">ISO/AWI 99999</docidentifier><docidentifier type="iso-with-lang">ISO/AWI 99999:2026(en)</docidentifier><docnumber>99999</docnumber><contributor><role type="author"/><organization>
<name>International Organization for Standardization</name>
<abbreviation>ISO</abbreviation></organization></contributor><contributor><role type="author"><description>committee</description></role><organization>
<name>International Organization for Standardization</name>
<subdivision type="Technical committee" subtype="TC">
<name>Processes, data elements and documents in commerce, industry and administration</name>
<identifier>TC 154</identifier><identifier type="full">TC 154</identifier></subdivision><abbreviation>ISO</abbreviation></organization></contributor><contributor><role type="authorizer"><description>Agency</description></role><organization>
<name>International Organization for Standardization</name>
<abbreviation>ISO</abbreviation></organization></contributor><contributor><role type="author"><description>secretariat</description></role><organization>
<name>International Organization for Standardization</name>
<subdivision type="Secretariat">
<name>BSI</name>
</subdivision><abbreviation>ISO</abbreviation></organization></contributor><contributor><role type="publisher"/><organization>
<name>International Organization for Standardization</name>
<abbreviation>ISO</abbreviation></organization></contributor><contributor><role type="authorizer"><description>committee</description></role><organization>
<name>International Organization for Standardization</name>
<subdivision type="Technical committee" subtype="TC">
<name>Processes, data elements and documents in commerce, industry and administration</name>
<identifier>TC 154</identifier><identifier type="full">TC 154</identifier></subdivision><abbreviation>ISO</abbreviation></organization></contributor><edition>1</edition><language>en</language><script>Latn</script><status><stage abbreviation="AWI">20</stage><substage>00</substage></status><copyright><from>2026</from><owner><organization>
<name>International Organization for Standardization</name>
<abbreviation>ISO</abbreviation></organization></owner></copyright><ext><doctype>international-standard</doctype><flavor>iso</flavor><ics><code>03.100.99</code><text>Other standards related to company organization and management</text></ics><structuredidentifier><project-number>ISO 99999</project-number></structuredidentifier><stagename abbreviation="AWI">International Standard</stagename></ext></bibdata><metanorma-extension><semantic-metadata><stage-published>false</stage-published></semantic-metadata>
<presentation-metadata><document-scheme>2024</document-scheme><toc-heading-levels>2</toc-heading-levels><html-toc-heading-levels>2</html-toc-heading-levels><doc-toc-heading-levels>3</doc-toc-heading-levels><pdf-toc-heading-levels>3</pdf-toc-heading-levels></presentation-metadata><table anchor="_misccontainer_anchor_aliases" id="_81b5c41b-d057-8ed0-4349-8d582862e980"><tbody><tr><th>rc-architecture-1</th><td>/req/architecture</td><td>_req_architecture</td></tr><tr><th>r-architecture-1-1</th><td>/req/architecture/four-level-model</td><td>_req_architecture_four-level-model</td></tr><tr><th>r-architecture-1-2</th><td>/req/architecture/delegation-certificate</td><td>_req_architecture_delegation-certificate</td></tr><tr><th>r-architecture-1-3</th><td>/req/architecture/delegation-scope-narrowing</td><td>_req_architecture_delegation-scope-narrowing</td></tr><tr><th>r-architecture-1-4</th><td>/req/architecture/end-certificate-contents</td><td>_req_architecture_end-certificate-contents</td></tr><tr><th>r-architecture-1-5</th><td>/req/architecture/trust-graph-pathfinding</td><td>_req_architecture_trust-graph-pathfinding</td></tr><tr><th>r-architecture-1-6</th><td>/req/architecture/path-transparency-inclusion</td><td>_req_architecture_path-transparency-inclusion</td></tr><tr><th>r-architecture-1-7</th><td>/req/architecture/path-revocation-checking</td><td>_req_architecture_path-revocation-checking</td></tr><tr><th>r-architecture-1-8</th><td>/req/architecture/chain-discovery</td><td>_req_architecture_chain-discovery</td></tr><tr><th>r-architecture-1-9</th><td>/req/architecture/anchor-bundle-self-contained</td><td>_req_architecture_anchor-bundle-self-contained</td></tr><tr><th>r-architecture-1-10</th><td>/req/architecture/anchor-bundle-versioning</td><td>_req_architecture_anchor-bundle-versioning</td></tr><tr><th>r-architecture-1-11</th><td>/req/architecture/anchor-bundle-distributable</td><td>_req_architecture_anchor-bundle-distributable</td></tr><tr><th>rc-artifact-format-1</th><td>/req/artifact-format</td><td>_req_artifact-format</td></tr><tr><th>r-artifact-format-1-1</th><td>/req/artifact-format/canonical-binding</td><td>_req_artifact-format_canonical-binding</td></tr><tr><th>r-artifact-format-1-2</th><td>/req/artifact-format/algorithm-identification</td><td>_req_artifact-format_algorithm-identification</td></tr><tr><th>r-artifact-format-1-3</th><td>/req/artifact-format/signer-identification</td><td>_req_artifact-format_signer-identification</td></tr><tr><th>r-artifact-format-1-4</th><td>/req/artifact-format/chain-availability</td><td>_req_artifact-format_chain-availability</td></tr><tr><th>r-artifact-format-1-5</th><td>/req/artifact-format/self-description</td><td>_req_artifact-format_self-description</td></tr><tr><th>r-artifact-format-1-6</th><td>/req/artifact-format/canonical-determinism</td><td>_req_artifact-format_canonical-determinism</td></tr><tr><th>r-artifact-format-1-7</th><td>/req/artifact-format/format-profile-satisfaction</td><td>_req_artifact-format_format-profile-satisfaction</td></tr><tr><th>r-artifact-format-1-8</th><td>/req/artifact-format/version-compatibility</td><td>_req_artifact-format_version-compatibility</td></tr><tr><th>r-artifact-format-1-9</th><td>/req/artifact-format/cosignature-block</td><td>_req_artifact-format_cosignature-block</td></tr><tr><th>r-artifact-format-1-10</th><td>/req/artifact-format/cosignature-independent-verification</td><td>_req_artifact-format_cosignature-independent-verification</td></tr><tr><th>r-artifact-format-1-11</th><td>/req/artifact-format/cosignature-canonical-binding</td><td>_req_artifact-format_cosignature-canonical-binding</td></tr><tr><th>r-artifact-format-1-12</th><td>/req/artifact-format/format-profile-cosignature-encoding</td><td>_req_artifact-format_format-profile-cosignature-encoding</td></tr><tr><th>r-artifact-format-1-13</th><td>/req/artifact-format/cross-domain-no-cross-recognition</td><td>_req_artifact-format_cross-domain-no-cross-recognition</td></tr><tr><th>r-artifact-format-1-14</th><td>/req/artifact-format/trust-cement</td><td>_req_artifact-format_trust-cement</td></tr><tr><th>r-artifact-format-1-15</th><td>/req/artifact-format/dimensional-convergence</td><td>_req_artifact-format_dimensional-convergence</td></tr><tr><th>r-artifact-format-1-16</th><td>/req/artifact-format/time-dimension</td><td>_req_artifact-format_time-dimension</td></tr><tr><th>r-artifact-format-1-17</th><td>/req/artifact-format/living-artifact</td><td>_req_artifact-format_living-artifact</td></tr><tr><th>r-artifact-format-1-18</th><td>/req/artifact-format/wrapping-prevention</td><td>_req_artifact-format_wrapping-prevention</td></tr><tr><th>r-artifact-format-1-19</th><td>/req/artifact-format/replay-protection</td><td>_req_artifact-format_replay-protection</td></tr><tr><th>rc-algorithms-1</th><td>/req/algorithms</td><td>_req_algorithms</td></tr><tr><th>r-algorithms-1-1</th><td>/req/algorithms/classical-algorithms</td><td>_req_algorithms_classical-algorithms</td></tr><tr><th>r-algorithms-1-2</th><td>/req/algorithms/post-quantum-algorithms</td><td>_req_algorithms_post-quantum-algorithms</td></tr><tr><th>r-algorithms-1-3</th><td>/req/algorithms/composite-and-semantics</td><td>_req_algorithms_composite-and-semantics</td></tr><tr><th>r-algorithms-1-4</th><td>/req/algorithms/migration-phases</td><td>_req_algorithms_migration-phases</td></tr><tr><th>r-algorithms-1-5</th><td>/req/algorithms/algorithm-agility-identifiers</td><td>_req_algorithms_algorithm-agility-identifiers</td></tr><tr><th>r-algorithms-1-6</th><td>/req/algorithms/encryption-at-rest</td><td>_req_algorithms_encryption-at-rest</td></tr><tr><th>r-algorithms-1-7</th><td>/req/algorithms/minimum-security-parameters</td><td>_req_algorithms_minimum-security-parameters</td></tr><tr><th>rc-threshold-signing-1</th><td>/req/threshold-signing</td><td>_req_threshold-signing</td></tr><tr><th>r-threshold-signing-1-1</th><td>/req/threshold-signing/threshold-every-level</td><td>_req_threshold-signing_threshold-every-level</td></tr><tr><th>r-threshold-signing-1-2</th><td>/req/threshold-signing/quorum-in-delegation</td><td>_req_threshold-signing_quorum-in-delegation</td></tr><tr><th>r-threshold-signing-1-3</th><td>/req/threshold-signing/aggregate-key-continuity</td><td>_req_threshold-signing_aggregate-key-continuity</td></tr><tr><th>r-threshold-signing-1-4</th><td>/req/threshold-signing/nested-threshold</td><td>_req_threshold-signing_nested-threshold</td></tr><tr><th>r-threshold-signing-1-5</th><td>/req/threshold-signing/fta-formation</td><td>_req_threshold-signing_fta-formation</td></tr><tr><th>r-threshold-signing-1-6</th><td>/req/threshold-signing/fta-recursive-composition</td><td>_req_threshold-signing_fta-recursive-composition</td></tr><tr><th>r-threshold-signing-1-7</th><td>/req/threshold-signing/fta-hierarchy-spanning</td><td>_req_threshold-signing_fta-hierarchy-spanning</td></tr><tr><th>r-threshold-signing-1-8</th><td>/req/threshold-signing/fta-reshare</td><td>_req_threshold-signing_fta-reshare</td></tr><tr><th>r-threshold-signing-1-9</th><td>/req/threshold-signing/ceremony-threshold-property</td><td>_req_threshold-signing_ceremony-threshold-property</td></tr><tr><th>r-threshold-signing-1-10</th><td>/req/threshold-signing/rogue-key-prevention</td><td>_req_threshold-signing_rogue-key-prevention</td></tr><tr><th>r-threshold-signing-1-11</th><td>/req/threshold-signing/ceremony-robustness</td><td>_req_threshold-signing_ceremony-robustness</td></tr><tr><th>r-threshold-signing-1-12</th><td>/req/threshold-signing/ceremony-record-production</td><td>_req_threshold-signing_ceremony-record-production</td></tr><tr><th>rc-scope-1</th><td>/req/scope</td><td>_req_scope</td></tr><tr><th>r-scope-1-1</th><td>/req/scope/scope-structure</td><td>_req_scope_scope-structure</td></tr><tr><th>r-scope-1-2</th><td>/req/scope/monotonic-narrowing</td><td>_req_scope_monotonic-narrowing</td></tr><tr><th>r-scope-1-3</th><td>/req/scope/widening-rejection</td><td>_req_scope_widening-rejection</td></tr><tr><th>r-scope-1-4</th><td>/req/scope/scope-conditions</td><td>_req_scope_scope-conditions</td></tr><tr><th>r-scope-1-5</th><td>/req/scope/condition-determinism</td><td>_req_scope_condition-determinism</td></tr><tr><th>r-scope-1-6</th><td>/req/scope/scope-encoding</td><td>_req_scope_scope-encoding</td></tr><tr><th>r-scope-1-7</th><td>/req/scope/four-layer-enforcement</td><td>_req_scope_four-layer-enforcement</td></tr><tr><th>r-scope-1-8</th><td>/req/scope/scope-in-transparency</td><td>_req_scope_scope-in-transparency</td></tr><tr><th>rc-revocation-1</th><td>/req/revocation</td><td>_req_revocation</td></tr><tr><th>r-revocation-1-1</th><td>/req/revocation/crl-profile</td><td>_req_revocation_crl-profile</td></tr><tr><th>r-revocation-1-2</th><td>/req/revocation/hash-binding</td><td>_req_revocation_hash-binding</td></tr><tr><th>r-revocation-1-3</th><td>/req/revocation/propagation</td><td>_req_revocation_propagation</td></tr><tr><th>r-revocation-1-4</th><td>/req/revocation/flag-semantics</td><td>_req_revocation_flag-semantics</td></tr><tr><th>r-revocation-1-5</th><td>/req/revocation/query-interface</td><td>_req_revocation_query-interface</td></tr><tr><th>r-revocation-1-6</th><td>/req/revocation/offline-grace-period</td><td>_req_revocation_offline-grace-period</td></tr><tr><th>r-revocation-1-7</th><td>/req/revocation/scope-condition-withdrawal</td><td>_req_revocation_scope-condition-withdrawal</td></tr><tr><th>rc-transparency-1</th><td>/req/transparency</td><td>_req_transparency</td></tr><tr><th>r-transparency-1-1</th><td>/req/transparency/merkle-append-only</td><td>_req_transparency_merkle-append-only</td></tr><tr><th>r-transparency-1-2</th><td>/req/transparency/inclusion-proof</td><td>_req_transparency_inclusion-proof</td></tr><tr><th>r-transparency-1-3</th><td>/req/transparency/tree-head-anchoring</td><td>_req_transparency_tree-head-anchoring</td></tr><tr><th>r-transparency-1-4</th><td>/req/transparency/mirror-integrity</td><td>_req_transparency_mirror-integrity</td></tr><tr><th>r-transparency-1-5</th><td>/req/transparency/gossip-quorum</td><td>_req_transparency_gossip-quorum</td></tr><tr><th>r-transparency-1-6</th><td>/req/transparency/mandatory-inclusion</td><td>_req_transparency_mandatory-inclusion</td></tr><tr><th>r-transparency-1-7</th><td>/req/transparency/multi-log-quorum</td><td>_req_transparency_multi-log-quorum</td></tr><tr><th>r-transparency-1-8</th><td>/req/transparency/consistency-proofs</td><td>_req_transparency_consistency-proofs</td></tr><tr><th>rc-verification-1</th><td>/req/verification</td><td>_req_verification</td></tr><tr><th>r-verification-1-1</th><td>/req/verification/pipeline-architecture</td><td>_req_verification_pipeline-architecture</td></tr><tr><th>r-verification-1-2</th><td>/req/verification/hard-checks</td><td>_req_verification_hard-checks</td></tr><tr><th>r-verification-1-3</th><td>/req/verification/pathfinding</td><td>_req_verification_pathfinding</td></tr><tr><th>r-verification-1-4</th><td>/req/verification/coverage-report</td><td>_req_verification_coverage-report</td></tr><tr><th>r-verification-1-5</th><td>/req/verification/classification-policy</td><td>_req_verification_classification-policy</td></tr><tr><th>r-verification-1-6</th><td>/req/verification/acceptance-policy</td><td>_req_verification_acceptance-policy</td></tr><tr><th>r-verification-1-7</th><td>/req/verification/time-freshness-window</td><td>_req_verification_time-freshness-window</td></tr><tr><th>r-verification-1-8</th><td>/req/verification/offline-verification</td><td>_req_verification_offline-verification</td></tr><tr><th>rc-key-lifecycle-1</th><td>/req/key-lifecycle</td><td>_req_key-lifecycle</td></tr><tr><th>r-key-lifecycle-1-1</th><td>/req/key-lifecycle/key-generation</td><td>_req_key-lifecycle_key-generation</td></tr><tr><th>r-key-lifecycle-1-2</th><td>/req/key-lifecycle/encrypted-storage</td><td>_req_key-lifecycle_encrypted-storage</td></tr><tr><th>r-key-lifecycle-1-3</th><td>/req/key-lifecycle/import-export</td><td>_req_key-lifecycle_import-export</td></tr><tr><th>r-key-lifecycle-1-4</th><td>/req/key-lifecycle/hsm-interface</td><td>_req_key-lifecycle_hsm-interface</td></tr><tr><th>r-key-lifecycle-1-5</th><td>/req/key-lifecycle/csr-pop</td><td>_req_key-lifecycle_csr-pop</td></tr><tr><th>r-key-lifecycle-1-6</th><td>/req/key-lifecycle/key-rotation</td><td>_req_key-lifecycle_key-rotation</td></tr><tr><th>rc-delivery-1</th><td>/req/delivery</td><td>_req_delivery</td></tr><tr><th>r-delivery-1-1</th><td>/req/delivery/barcode-encoding</td><td>_req_delivery_barcode-encoding</td></tr><tr><th>r-delivery-1-2</th><td>/req/delivery/passport-format</td><td>_req_delivery_passport-format</td></tr><tr><th>r-delivery-1-3</th><td>/req/delivery/embedded-delivery</td><td>_req_delivery_embedded-delivery</td></tr><tr><th>r-delivery-1-4</th><td>/req/delivery/log-reference-delivery</td><td>_req_delivery_log-reference-delivery</td></tr><tr><th>r-delivery-1-5</th><td>/req/delivery/connected-delivery</td><td>_req_delivery_connected-delivery</td></tr><tr><th>r-delivery-1-6</th><td>/req/delivery/challenge-response</td><td>_req_delivery_challenge-response</td></tr><tr><th>rc-ceremony-1</th><td>/req/ceremony</td><td>_req_ceremony</td></tr><tr><th>r-ceremony-1-1</th><td>/req/ceremony/transcript-contents</td><td>_req_ceremony_transcript-contents</td></tr><tr><th>r-ceremony-1-2</th><td>/req/ceremony/transcript-signing</td><td>_req_ceremony_transcript-signing</td></tr><tr><th>r-ceremony-1-3</th><td>/req/ceremony/transcript-persistence</td><td>_req_ceremony_transcript-persistence</td></tr><tr><th>r-ceremony-1-4</th><td>/req/ceremony/transcript-log-cross-reference</td><td>_req_ceremony_transcript-log-cross-reference</td></tr><tr><th>r-ceremony-1-5</th><td>/req/ceremony/audit-algorithm</td><td>_req_ceremony_audit-algorithm</td></tr><tr><th>rc-manifest-1</th><td>/req/manifest</td><td>_req_manifest</td></tr><tr><th>r-manifest-1-1</th><td>/req/manifest/manifest-format</td><td>_req_manifest_manifest-format</td></tr><tr><th>r-manifest-1-2</th><td>/req/manifest/manifest-topology</td><td>_req_manifest_manifest-topology</td></tr><tr><th>r-manifest-1-3</th><td>/req/manifest/manifest-algorithms</td><td>_req_manifest_manifest-algorithms</td></tr><tr><th>r-manifest-1-4</th><td>/req/manifest/manifest-transparency</td><td>_req_manifest_manifest-transparency</td></tr><tr><th>r-manifest-1-5</th><td>/req/manifest/manifest-validation-acyclic</td><td>_req_manifest_manifest-validation-acyclic</td></tr><tr><th>r-manifest-1-6</th><td>/req/manifest/manifest-validation-quorum</td><td>_req_manifest_manifest-validation-quorum</td></tr><tr><th>r-manifest-1-7</th><td>/req/manifest/manifest-versioning</td><td>_req_manifest_manifest-versioning</td></tr><tr><th>rc-governance-1</th><td>/req/governance</td><td>_req_governance</td></tr><tr><th>r-governance-1-1</th><td>/req/governance/topology-declaration</td><td>_req_governance_topology-declaration</td></tr><tr><th>r-governance-1-2</th><td>/req/governance/root-governance</td><td>_req_governance_root-governance</td></tr><tr><th>r-governance-1-3</th><td>/req/governance/issuing-authority-assurance</td><td>_req_governance_issuing-authority-assurance</td></tr><tr><th>r-governance-1-4</th><td>/req/governance/mutual-recognition</td><td>_req_governance_mutual-recognition</td></tr><tr><th>r-governance-1-5</th><td>/req/governance/topology-conformance</td><td>_req_governance_topology-conformance</td></tr><tr><th>rc-algorithm-agility-1</th><td>/req/algorithm-agility</td><td>_req_algorithm-agility</td></tr><tr><th>r-algorithm-agility-1-1</th><td>/req/algorithm-agility/algorithm-registry</td><td>_req_algorithm-agility_algorithm-registry</td></tr><tr><th>r-algorithm-agility-1-2</th><td>/req/algorithm-agility/deprecation-process</td><td>_req_algorithm-agility_deprecation-process</td></tr><tr><th>r-algorithm-agility-1-3</th><td>/req/algorithm-agility/migration-declaration</td><td>_req_algorithm-agility_migration-declaration</td></tr><tr><th>r-algorithm-agility-1-4</th><td>/req/algorithm-agility/composite-backward-compatibility</td><td>_req_algorithm-agility_composite-backward-compatibility</td></tr><tr><th>cc-architecture-1</th><td>/conf/architecture</td><td>_conf_architecture</td></tr><tr><th>ct-architecture-1-1</th><td>/conf/architecture/four-level-model</td><td>_conf_architecture_four-level-model</td></tr><tr><th>ct-architecture-1-2</th><td>/conf/architecture/delegation-certificate</td><td>_conf_architecture_delegation-certificate</td></tr><tr><th>ct-architecture-1-3</th><td>/conf/architecture/delegation-scope-narrowing</td><td>_conf_architecture_delegation-scope-narrowing</td></tr><tr><th>ct-architecture-1-4</th><td>/conf/architecture/end-certificate-contents</td><td>_conf_architecture_end-certificate-contents</td></tr><tr><th>ct-architecture-1-5</th><td>/conf/architecture/trust-graph-pathfinding</td><td>_conf_architecture_trust-graph-pathfinding</td></tr><tr><th>ct-architecture-1-6</th><td>/conf/architecture/path-transparency-inclusion</td><td>_conf_architecture_path-transparency-inclusion</td></tr><tr><th>ct-architecture-1-7</th><td>/conf/architecture/path-revocation-checking</td><td>_conf_architecture_path-revocation-checking</td></tr><tr><th>ct-architecture-1-8</th><td>/conf/architecture/chain-discovery</td><td>_conf_architecture_chain-discovery</td></tr><tr><th>ct-architecture-1-9</th><td>/conf/architecture/anchor-bundle-self-contained</td><td>_conf_architecture_anchor-bundle-self-contained</td></tr><tr><th>ct-architecture-1-10</th><td>/conf/architecture/anchor-bundle-versioning</td><td>_conf_architecture_anchor-bundle-versioning</td></tr><tr><th>ct-architecture-1-11</th><td>/conf/architecture/anchor-bundle-distributable</td><td>_conf_architecture_anchor-bundle-distributable</td></tr><tr><th>cc-artifact-format-1</th><td>/conf/artifact-format</td><td>_conf_artifact-format</td></tr><tr><th>ct-artifact-format-1-1</th><td>/conf/artifact-format/canonical-binding</td><td>_conf_artifact-format_canonical-binding</td></tr><tr><th>ct-artifact-format-1-2</th><td>/conf/artifact-format/algorithm-identification</td><td>_conf_artifact-format_algorithm-identification</td></tr><tr><th>ct-artifact-format-1-3</th><td>/conf/artifact-format/signer-identification</td><td>_conf_artifact-format_signer-identification</td></tr><tr><th>ct-artifact-format-1-4</th><td>/conf/artifact-format/chain-availability</td><td>_conf_artifact-format_chain-availability</td></tr><tr><th>ct-artifact-format-1-5</th><td>/conf/artifact-format/self-description</td><td>_conf_artifact-format_self-description</td></tr><tr><th>ct-artifact-format-1-6</th><td>/conf/artifact-format/canonical-determinism</td><td>_conf_artifact-format_canonical-determinism</td></tr><tr><th>ct-artifact-format-1-7</th><td>/conf/artifact-format/format-profile-satisfaction</td><td>_conf_artifact-format_format-profile-satisfaction</td></tr><tr><th>ct-artifact-format-1-8</th><td>/conf/artifact-format/version-compatibility</td><td>_conf_artifact-format_version-compatibility</td></tr><tr><th>ct-artifact-format-1-9</th><td>/conf/artifact-format/cosignature-block</td><td>_conf_artifact-format_cosignature-block</td></tr><tr><th>ct-artifact-format-1-10</th><td>/conf/artifact-format/cosignature-independent-verification</td><td>_conf_artifact-format_cosignature-independent-verification</td></tr><tr><th>ct-artifact-format-1-11</th><td>/conf/artifact-format/cosignature-canonical-binding</td><td>_conf_artifact-format_cosignature-canonical-binding</td></tr><tr><th>ct-artifact-format-1-12</th><td>/conf/artifact-format/format-profile-cosignature-encoding</td><td>_conf_artifact-format_format-profile-cosignature-encoding</td></tr><tr><th>ct-artifact-format-1-13</th><td>/conf/artifact-format/cross-domain-no-cross-recognition</td><td>_conf_artifact-format_cross-domain-no-cross-recognition</td></tr><tr><th>ct-artifact-format-1-14</th><td>/conf/artifact-format/trust-cement</td><td>_conf_artifact-format_trust-cement</td></tr><tr><th>ct-artifact-format-1-15</th><td>/conf/artifact-format/dimensional-convergence</td><td>_conf_artifact-format_dimensional-convergence</td></tr><tr><th>ct-artifact-format-1-16</th><td>/conf/artifact-format/time-dimension</td><td>_conf_artifact-format_time-dimension</td></tr><tr><th>ct-artifact-format-1-17</th><td>/conf/artifact-format/living-artifact</td><td>_conf_artifact-format_living-artifact</td></tr><tr><th>ct-artifact-format-1-18</th><td>/conf/artifact-format/wrapping-prevention</td><td>_conf_artifact-format_wrapping-prevention</td></tr><tr><th>ct-artifact-format-1-19</th><td>/conf/artifact-format/replay-protection</td><td>_conf_artifact-format_replay-protection</td></tr><tr><th>cc-algorithms-1</th><td>/conf/algorithms</td><td>_conf_algorithms</td></tr><tr><th>ct-algorithms-1-1</th><td>/conf/algorithms/classical-algorithms</td><td>_conf_algorithms_classical-algorithms</td></tr><tr><th>ct-algorithms-1-2</th><td>/conf/algorithms/post-quantum-algorithms</td><td>_conf_algorithms_post-quantum-algorithms</td></tr><tr><th>ct-algorithms-1-3</th><td>/conf/algorithms/composite-and-semantics</td><td>_conf_algorithms_composite-and-semantics</td></tr><tr><th>ct-algorithms-1-4</th><td>/conf/algorithms/migration-phases</td><td>_conf_algorithms_migration-phases</td></tr><tr><th>ct-algorithms-1-5</th><td>/conf/algorithms/algorithm-agility-identifiers</td><td>_conf_algorithms_algorithm-agility-identifiers</td></tr><tr><th>ct-algorithms-1-6</th><td>/conf/algorithms/encryption-at-rest</td><td>_conf_algorithms_encryption-at-rest</td></tr><tr><th>ct-algorithms-1-7</th><td>/conf/algorithms/minimum-security-parameters</td><td>_conf_algorithms_minimum-security-parameters</td></tr><tr><th>cc-threshold-signing-1</th><td>/conf/threshold-signing</td><td>_conf_threshold-signing</td></tr><tr><th>ct-threshold-signing-1-1</th><td>/conf/threshold-signing/threshold-every-level</td><td>_conf_threshold-signing_threshold-every-level</td></tr><tr><th>ct-threshold-signing-1-2</th><td>/conf/threshold-signing/quorum-in-delegation</td><td>_conf_threshold-signing_quorum-in-delegation</td></tr><tr><th>ct-threshold-signing-1-3</th><td>/conf/threshold-signing/aggregate-key-continuity</td><td>_conf_threshold-signing_aggregate-key-continuity</td></tr><tr><th>ct-threshold-signing-1-4</th><td>/conf/threshold-signing/nested-threshold</td><td>_conf_threshold-signing_nested-threshold</td></tr><tr><th>ct-threshold-signing-1-5</th><td>/conf/threshold-signing/fta-formation</td><td>_conf_threshold-signing_fta-formation</td></tr><tr><th>ct-threshold-signing-1-6</th><td>/conf/threshold-signing/fta-recursive-composition</td><td>_conf_threshold-signing_fta-recursive-composition</td></tr><tr><th>ct-threshold-signing-1-7</th><td>/conf/threshold-signing/fta-hierarchy-spanning</td><td>_conf_threshold-signing_fta-hierarchy-spanning</td></tr><tr><th>ct-threshold-signing-1-8</th><td>/conf/threshold-signing/fta-reshare</td><td>_conf_threshold-signing_fta-reshare</td></tr><tr><th>ct-threshold-signing-1-9</th><td>/conf/threshold-signing/ceremony-threshold-property</td><td>_conf_threshold-signing_ceremony-threshold-property</td></tr><tr><th>ct-threshold-signing-1-10</th><td>/conf/threshold-signing/rogue-key-prevention</td><td>_conf_threshold-signing_rogue-key-prevention</td></tr><tr><th>ct-threshold-signing-1-11</th><td>/conf/threshold-signing/ceremony-robustness</td><td>_conf_threshold-signing_ceremony-robustness</td></tr><tr><th>ct-threshold-signing-1-12</th><td>/conf/threshold-signing/ceremony-record-production</td><td>_conf_threshold-signing_ceremony-record-production</td></tr><tr><th>cc-scope-1</th><td>/conf/scope</td><td>_conf_scope</td></tr><tr><th>ct-scope-1-1</th><td>/conf/scope/scope-structure</td><td>_conf_scope_scope-structure</td></tr><tr><th>ct-scope-1-2</th><td>/conf/scope/monotonic-narrowing</td><td>_conf_scope_monotonic-narrowing</td></tr><tr><th>ct-scope-1-3</th><td>/conf/scope/widening-rejection</td><td>_conf_scope_widening-rejection</td></tr><tr><th>ct-scope-1-4</th><td>/conf/scope/scope-conditions</td><td>_conf_scope_scope-conditions</td></tr><tr><th>ct-scope-1-5</th><td>/conf/scope/condition-determinism</td><td>_conf_scope_condition-determinism</td></tr><tr><th>ct-scope-1-6</th><td>/conf/scope/scope-encoding</td><td>_conf_scope_scope-encoding</td></tr><tr><th>ct-scope-1-7</th><td>/conf/scope/four-layer-enforcement</td><td>_conf_scope_four-layer-enforcement</td></tr><tr><th>ct-scope-1-8</th><td>/conf/scope/scope-in-transparency</td><td>_conf_scope_scope-in-transparency</td></tr><tr><th>cc-revocation-1</th><td>/conf/revocation</td><td>_conf_revocation</td></tr><tr><th>ct-revocation-1-1</th><td>/conf/revocation/crl-profile</td><td>_conf_revocation_crl-profile</td></tr><tr><th>ct-revocation-1-2</th><td>/conf/revocation/hash-binding</td><td>_conf_revocation_hash-binding</td></tr><tr><th>ct-revocation-1-3</th><td>/conf/revocation/propagation</td><td>_conf_revocation_propagation</td></tr><tr><th>ct-revocation-1-4</th><td>/conf/revocation/flag-semantics</td><td>_conf_revocation_flag-semantics</td></tr><tr><th>ct-revocation-1-5</th><td>/conf/revocation/query-interface</td><td>_conf_revocation_query-interface</td></tr><tr><th>ct-revocation-1-6</th><td>/conf/revocation/offline-grace-period</td><td>_conf_revocation_offline-grace-period</td></tr><tr><th>ct-revocation-1-7</th><td>/conf/revocation/scope-condition-withdrawal</td><td>_conf_revocation_scope-condition-withdrawal</td></tr><tr><th>cc-transparency-1</th><td>/conf/transparency</td><td>_conf_transparency</td></tr><tr><th>ct-transparency-1-1</th><td>/conf/transparency/merkle-append-only</td><td>_conf_transparency_merkle-append-only</td></tr><tr><th>ct-transparency-1-2</th><td>/conf/transparency/inclusion-proof</td><td>_conf_transparency_inclusion-proof</td></tr><tr><th>ct-transparency-1-3</th><td>/conf/transparency/tree-head-anchoring</td><td>_conf_transparency_tree-head-anchoring</td></tr><tr><th>ct-transparency-1-4</th><td>/conf/transparency/mirror-integrity</td><td>_conf_transparency_mirror-integrity</td></tr><tr><th>ct-transparency-1-5</th><td>/conf/transparency/gossip-quorum</td><td>_conf_transparency_gossip-quorum</td></tr><tr><th>ct-transparency-1-6</th><td>/conf/transparency/mandatory-inclusion</td><td>_conf_transparency_mandatory-inclusion</td></tr><tr><th>ct-transparency-1-7</th><td>/conf/transparency/multi-log-quorum</td><td>_conf_transparency_multi-log-quorum</td></tr><tr><th>ct-transparency-1-8</th><td>/conf/transparency/consistency-proofs</td><td>_conf_transparency_consistency-proofs</td></tr><tr><th>cc-verification-1</th><td>/conf/verification</td><td>_conf_verification</td></tr><tr><th>ct-verification-1-1</th><td>/conf/verification/pipeline-architecture</td><td>_conf_verification_pipeline-architecture</td></tr><tr><th>ct-verification-1-2</th><td>/conf/verification/hard-checks</td><td>_conf_verification_hard-checks</td></tr><tr><th>ct-verification-1-3</th><td>/conf/verification/pathfinding</td><td>_conf_verification_pathfinding</td></tr><tr><th>ct-verification-1-4</th><td>/conf/verification/coverage-report</td><td>_conf_verification_coverage-report</td></tr><tr><th>ct-verification-1-5</th><td>/conf/verification/classification-policy</td><td>_conf_verification_classification-policy</td></tr><tr><th>ct-verification-1-6</th><td>/conf/verification/acceptance-policy</td><td>_conf_verification_acceptance-policy</td></tr><tr><th>ct-verification-1-7</th><td>/conf/verification/time-freshness-window</td><td>_conf_verification_time-freshness-window</td></tr><tr><th>ct-verification-1-8</th><td>/conf/verification/offline-verification</td><td>_conf_verification_offline-verification</td></tr><tr><th>cc-key-lifecycle-1</th><td>/conf/key-lifecycle</td><td>_conf_key-lifecycle</td></tr><tr><th>ct-key-lifecycle-1-1</th><td>/conf/key-lifecycle/key-generation</td><td>_conf_key-lifecycle_key-generation</td></tr><tr><th>ct-key-lifecycle-1-2</th><td>/conf/key-lifecycle/encrypted-storage</td><td>_conf_key-lifecycle_encrypted-storage</td></tr><tr><th>ct-key-lifecycle-1-3</th><td>/conf/key-lifecycle/import-export</td><td>_conf_key-lifecycle_import-export</td></tr><tr><th>ct-key-lifecycle-1-4</th><td>/conf/key-lifecycle/hsm-interface</td><td>_conf_key-lifecycle_hsm-interface</td></tr><tr><th>ct-key-lifecycle-1-5</th><td>/conf/key-lifecycle/csr-pop</td><td>_conf_key-lifecycle_csr-pop</td></tr><tr><th>ct-key-lifecycle-1-6</th><td>/conf/key-lifecycle/key-rotation</td><td>_conf_key-lifecycle_key-rotation</td></tr><tr><th>cc-delivery-1</th><td>/conf/delivery</td><td>_conf_delivery</td></tr><tr><th>ct-delivery-1-1</th><td>/conf/delivery/barcode-encoding</td><td>_conf_delivery_barcode-encoding</td></tr><tr><th>ct-delivery-1-2</th><td>/conf/delivery/passport-format</td><td>_conf_delivery_passport-format</td></tr><tr><th>ct-delivery-1-3</th><td>/conf/delivery/embedded-delivery</td><td>_conf_delivery_embedded-delivery</td></tr><tr><th>ct-delivery-1-4</th><td>/conf/delivery/log-reference-delivery</td><td>_conf_delivery_log-reference-delivery</td></tr><tr><th>ct-delivery-1-5</th><td>/conf/delivery/connected-delivery</td><td>_conf_delivery_connected-delivery</td></tr><tr><th>ct-delivery-1-6</th><td>/conf/delivery/challenge-response</td><td>_conf_delivery_challenge-response</td></tr><tr><th>cc-ceremony-1</th><td>/conf/ceremony</td><td>_conf_ceremony</td></tr><tr><th>ct-ceremony-1-1</th><td>/conf/ceremony/transcript-contents</td><td>_conf_ceremony_transcript-contents</td></tr><tr><th>ct-ceremony-1-2</th><td>/conf/ceremony/transcript-signing</td><td>_conf_ceremony_transcript-signing</td></tr><tr><th>ct-ceremony-1-3</th><td>/conf/ceremony/transcript-persistence</td><td>_conf_ceremony_transcript-persistence</td></tr><tr><th>ct-ceremony-1-4</th><td>/conf/ceremony/transcript-log-cross-reference</td><td>_conf_ceremony_transcript-log-cross-reference</td></tr><tr><th>ct-ceremony-1-5</th><td>/conf/ceremony/audit-algorithm</td><td>_conf_ceremony_audit-algorithm</td></tr><tr><th>cc-manifest-1</th><td>/conf/manifest</td><td>_conf_manifest</td></tr><tr><th>ct-manifest-1-1</th><td>/conf/manifest/manifest-format</td><td>_conf_manifest_manifest-format</td></tr><tr><th>ct-manifest-1-2</th><td>/conf/manifest/manifest-topology</td><td>_conf_manifest_manifest-topology</td></tr><tr><th>ct-manifest-1-3</th><td>/conf/manifest/manifest-algorithms</td><td>_conf_manifest_manifest-algorithms</td></tr><tr><th>ct-manifest-1-4</th><td>/conf/manifest/manifest-transparency</td><td>_conf_manifest_manifest-transparency</td></tr><tr><th>ct-manifest-1-5</th><td>/conf/manifest/manifest-validation-acyclic</td><td>_conf_manifest_manifest-validation-acyclic</td></tr><tr><th>ct-manifest-1-6</th><td>/conf/manifest/manifest-validation-quorum</td><td>_conf_manifest_manifest-validation-quorum</td></tr><tr><th>ct-manifest-1-7</th><td>/conf/manifest/manifest-versioning</td><td>_conf_manifest_manifest-versioning</td></tr><tr><th>cc-governance-1</th><td>/conf/governance</td><td>_conf_governance</td></tr><tr><th>ct-governance-1-1</th><td>/conf/governance/topology-declaration</td><td>_conf_governance_topology-declaration</td></tr><tr><th>ct-governance-1-2</th><td>/conf/governance/root-governance</td><td>_conf_governance_root-governance</td></tr><tr><th>ct-governance-1-3</th><td>/conf/governance/issuing-authority-assurance</td><td>_conf_governance_issuing-authority-assurance</td></tr><tr><th>ct-governance-1-4</th><td>/conf/governance/mutual-recognition</td><td>_conf_governance_mutual-recognition</td></tr><tr><th>ct-governance-1-5</th><td>/conf/governance/topology-conformance</td><td>_conf_governance_topology-conformance</td></tr><tr><th>cc-algorithm-agility-1</th><td>/conf/algorithm-agility</td><td>_conf_algorithm-agility</td></tr><tr><th>ct-algorithm-agility-1-1</th><td>/conf/algorithm-agility/algorithm-registry</td><td>_conf_algorithm-agility_algorithm-registry</td></tr><tr><th>ct-algorithm-agility-1-2</th><td>/conf/algorithm-agility/deprecation-process</td><td>_conf_algorithm-agility_deprecation-process</td></tr><tr><th>ct-algorithm-agility-1-3</th><td>/conf/algorithm-agility/migration-declaration</td><td>_conf_algorithm-agility_migration-declaration</td></tr><tr><th>ct-algorithm-agility-1-4</th><td>/conf/algorithm-agility/composite-backward-compatibility</td><td>_conf_algorithm-agility_composite-backward-compatibility</td></tr></tbody></table></metanorma-extension>
<boilerplate><copyright-statement>

<clause id="_11ae8c5c-e007-4b8e-783e-a6285bf7bc10" anchor="boilerplate-copyright-default" inline-header="false" obligation="normative"><p id="_eec80c0b-5174-1b28-5406-965a2278541b" anchor="boilerplate-year">© <span class="std_publisher">ISO </span><span class="date">2026</span></p>

<p id="_dcd0efd0-9c2b-bcfd-6dcd-ce36b8143916" anchor="boilerplate-message">All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of the requester.</p>

<p id="_71c22afa-6b94-ad85-9f54-347ef903ebd8" anchor="boilerplate-address" align="left">ISO copyright office<br/> CP 401 • Ch. de Blandonnet 8<br/> CH-1214 Vernier, Geneva<br/> Phone: +41 22 749 01 11<br/> Email:  <link target="mailto:copyright@iso.org"/><br/> Website:  <link target="https://www.iso.org/">www.iso.org</link></p>

<p id="_93a0bcfe-1edb-b952-e8f5-db8ed91f8e23" anchor="boilerplate-place">Published in Switzerland</p>
</clause>
</copyright-statement>

<license-statement>

<clause id="_5421d3ad-eb22-b1d1-fcfe-164a024f7bae" inline-header="false" obligation="normative">
<title id="_6c78ba65-51ec-4e68-f11b-15ba22e63978">Warning for WDs and CDs</title>
<p id="_d302f47f-dc77-dbe3-fd80-f30f8f98c16f">This document is not an ISO International Standard. It is distributed for review and comment. It is subject to change without notice and may not be referred to as an International Standard.</p>

<p id="_caa60da8-29b4-196d-65a8-ea6de917140e">Recipients of this draft are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.</p>
</clause>
</license-statement>
</boilerplate><preface><foreword id="_abb9d676-55ba-5f87-7d87-f971a4c1ef52" obligation="informative">
<title id="_41c9fad3-d4c1-eecc-4fad-f91704acc026">Foreword</title>
<p id="_fb666896-6223-7e03-ac2f-512f1314cc92">ISO (the International Organization for Standardization) is a worldwide federation of national standards bodies (ISO member bodies). The work of preparing International Standards is normally carried out through ISO technical committees. Each member body interested in a subject for which a technical committee has been established has the right to be represented on that committee. International organizations, governmental and non-governmental, in liaison with ISO, also take part in the work. ISO collaborates closely with the International Electrotechnical Commission (IEC) on all matters of electrotechnical standardization.</p>

<p id="_030d1f2b-fb75-7119-9a26-e37381641c8e">The procedures used to develop this document and those intended for its further maintenance are described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the different types of ISO documents should be noted. This document was drafted in accordance with the editorial rules of the ISO/IEC Directives, Part 2 (see <link target="https://www.iso.org/directives">www.iso.org/directives</link>).</p>

<p id="_51ac9d86-1831-a38e-0195-1aece8a9418a">Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO shall not be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the development of the document will be in the Introduction and/or on the ISO list of patent declarations received (see <link target="https://www.iso.org/patents">www.iso.org/patents</link>).</p>

<p id="_53c3d577-039b-c4b5-9501-d397ca719bff">Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement.</p>

<p id="_f647e957-e4b5-fd15-1368-4b45c5b05038">For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and expressions related to conformity assessment, as well as information about ISO’s adherence to the World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT), see <link target="https://www.iso.org/iso/foreword.html">www.iso.org/iso/foreword.html</link>.</p>

<p id="_9696d844-bf33-3657-2d7e-dd9cdddec623">This document was prepared by Technical Committee ISO/TC 154, <em>Processes, data elements and documents in commerce, industry and administration</em>.</p>

<p id="_f0cf75d7-5dcd-a0ae-c621-39c39a535b03">This first edition of ISO 99999 cancels and replaces no prior standard.</p>

<p id="_9a720170-6a38-6fa7-5113-122785cadb96">Any feedback or questions on this document should be directed to the user’s national standards body. A complete listing of these bodies can be found at <link target="https://www.iso.org/members.html">www.iso.org/members.html</link>.</p>
</foreword><introduction id="_353dec3d-f6cb-d09f-9b8f-c6ad9f6cbd4d" obligation="informative">
<title id="_2b2e98d1-114a-3da4-8556-01ae0a724280">Introduction</title>
<clause id="_37a88b82-b810-e4bf-35f4-01397f8df154" inline-header="false" obligation="informative">
<title id="_13b8a095-0fba-abf5-9763-2ae30326e5ee">The regulated-artifact trust problem</title>
<p id="_c018e4f2-7bcd-a144-b0bb-a404b90a0f7f">Regulated industries — legal metrology, pharmaceuticals, food safety, defense procurement, environmental monitoring — issue conformity certificates, test results, calibration records, and compliance attestations whose trustworthiness carries legal, economic, and safety consequences. These artifacts must be verifiable by inspectors, customs authorities, and trading partners across organizational and jurisdictional boundaries, often years or decades after issuance.</p>

<p id="_1f05b048-8915-fe31-7f30-034868767076">A pharmaceutical batch release certificate must demonstrate not just that a signing key was valid, but that the batch was produced by an authorized manufacturer, inspected by a certified operator, manufactured under compliant environmental conditions, and released at a verifiable time. A legal metrology certificate must prove that the measuring instrument was type-approved, tested by an accredited laboratory, and calibrated against traceable standards — and that this entire chain of authority remains valid at the time and place of verification.</p>

<p id="_fefcea23-47b3-8147-be3f-495e683d3f44">No existing trust infrastructure addresses this problem. Traditional public key infrastructure (PKI) binds a key to an identity; it does not bind an artifact to the real-world conditions under which it was produced. Blockchain-based attestation systems provide immutability but no scope enforcement, no condition lifecycle, and no revocation propagation to bound artifacts. Software signing transparency systems (e.g., Sigstore) address code provenance but not multi-dimensional convergence. The result is that regulated industries rely on paper certificates, PDF scans, and ad-hoc digital signatures — none of which provide the trust guarantees that regulators and trading partners require.</p>

<p id="_f11b248c-7dbf-3678-3dbd-60bcdec8f3c0">Regulatory frameworks are increasingly mandating digital provenance. The EU Digital Product Passport (DPP) requires verifiable product lifecycle data for regulated goods. The US FDA Drug Supply Chain Security Act (DSCSA) mandates track-and-trace for pharmaceuticals. The OIML digital certificate initiative calls for machine-verifiable metrological conformity. These mandates create a demand for standardized trust infrastructure that no existing technology satisfies.</p>
</clause>

<clause id="_fcbbf90a-819d-cdf9-e2ac-0511d41a4087" inline-header="false" obligation="informative">
<title id="_a282a2b3-b522-aa33-d635-04865146fe0a">SIGNATIF</title>
<p id="_0013e1cb-99f4-6784-c2e7-d6ba15444ba8">This document specifies SIGNATIF — the Sealed Interoperable Graduated Non-repudiable Anchored Trust Infrastructure Framework. SIGNATIF binds signing authority to a multi-dimensional scope, establishes artifact trustworthiness through the convergence of independent attestations from multiple trust dimensions (authority, person, time, location, environment, and extensible others), and treats trust as a lifecycle: trust is granted, sustained, and repudiated through formal threshold-gated mechanisms.</p>

<p id="_ab181608-5070-a997-e7fd-a05c289e10cb">SIGNATIF is designed for the regulated-artifact trust problem: artifacts that
must be verifiable offline by anyone holding the trust anchor bundle, graduated
in confidence through objective coverage assessment, and revocable
retroactively when the real-world conditions that made them trustworthy no
longer hold.<note id="_3639260e-9fa3-6e62-c10d-6a5445a18cc7"><p id="_631e69ec-18e9-7012-3b9f-e8845f4e2158">The concepts in this document were validated through a digital metrology certificate system developed under the OIML SMART program, which demonstrated multi-dimensional attestation, threshold signing, transparency logging, and scope enforcement in a five-tier legal metrology hierarchy.</p>
</note><note id="_205b19e6-9a4a-cd33-1ff7-e043b2359305"><p id="_0df1b79e-e6ec-e276-2188-abf99b183936">The name SIGNATIF derives from Latin signare (“to mark with a seal, to sign”), the root of sign, signature, and signet, combined with the adjectival suffix  <em>-tif</em>. The signing root captures the framework’s premise: trustworthiness is established by what is verifiably signed, not by who is trusted.</p>
</note></p>




</clause>

<clause id="_201c87d7-fd0e-4a2f-8305-5a0cc579c780" inline-header="false" obligation="informative">
<title id="_f47688d4-d4a9-438b-9e89-49843e376891">Challenges with traditional PKI</title>
<p id="_18da46c2-dc72-c889-6755-a5e66587dca6">Traditional PKI, as specified in ISO/IEC 9594-8 (X.509) and profiled for Internet use in  <eref type="inline" bibitemid="rfc5280" citeas="IETF RFC 5280"/>, is a mature and widely deployed infrastructure. It successfully supports server authentication (TLS), code signing, document signing (e.g., PAdES for PDF), email security (S/MIME), and device identity. Publicly trusted CAs are subject to organizational security requirements including WebTrust or ETSI EN 319 411 audits, which provide an information security management system framework analogous to ISO/IEC 27001.</p>

<p id="_95a17dca-e4ab-f142-3e0a-48ed1a6978ed">PKI is well suited to its core problem: binding a public key to an identity via a single delegation chain, verified by walking from a trusted root to a leaf certificate. For many applications — particularly transient sessions where the signer and verifier interact in real time — this model is sufficient and its ecosystem maturity is a significant advantage. PKI’s standardized certificate formats, interoperable trust stores, mature HSM and key management infrastructure, established audit frameworks (WebTrust, ETSI), and decades of operational experience are substantial engineering assets. SIGNATIF reuses PKI’s cryptographic primitives and builds on its organizational assurance frameworks.</p>

<p id="_e9e27a98-0f06-57ea-92b7-6aba44f1f01b">However, when PKI is applied to persistent artifacts whose trustworthiness must be independently verifiable over long periods, graduated in confidence, and revocable retroactively, limitations emerge. These limitations are not deficiencies in PKI’s implementation; they are consequences of its design boundary — PKI validates the key and identity; the application validates the content:</p>

<ul id="_ca3c2245-ffa0-f75c-e7d1-f679ac2da81f"><li><p id="_7b3f06d2-0140-7173-8051-2ed907cb616a">Threshold is optional, not required. PKI does not prohibit threshold signing at intermediate tiers — cryptographic threshold schemes implementations exist and HSM-based M-of-N quorum is common at the root. However, X.509 does not require threshold, and deployment practice overwhelmingly uses single-key intermediates. SIGNATIF makes threshold mandatory at every authority level as a conformance requirement.</p>
</li>
<li><p id="_51982eb6-f3f8-f18a-d9f6-515c38eeb866">Scope extensions exist but are inconsistently enforced. X.509 Name Constraints and Extended Key Usage are machine-checkable, signed extensions that constrain a CA’s authority. However, enforcement is implementation-dependent — many verifiers do not check Name Constraints — and these mechanisms constrain only names and key-usage types, not multi-dimensional authorization boundaries. SIGNATIF requires multi-dimensional scope enforcement as a hard, mandatory verification step at every delegation link.</p>
</li>
<li><p id="_0d138e70-10e1-51e7-c8de-777e91e5ed86">Multiple signatures supported but no convergence model. Several PKI signature formats support multiple signatures on one document (CMS multiple signerInfos, PAdES, XMLDSig). However, the PKI model provides no standardized mechanism to evaluate the combined trustworthiness of independently-signed attestations — their semantic relationship, their independence, or how their convergence should be assessed. SIGNATIF provides a coverage report and classification policy for this purpose.</p>
</li>
<li><p id="_027e7950-f71c-35f5-679e-10d69138ebae">Chain validation is binary; trust graduation is policy-interpreted. A certificate is either valid or revoked at the chain-validation level. PKI does carry assurance metadata (EV/OV/DV certificate types, Certificate Policy OIDs, eIDAS qualified status), and verifiers can apply graduated policies based on these. However, the graduation is policy-interpreted and non-standardized in its computation. SIGNATIF provides a normatively specified coverage report and classification policy so that two conforming verifiers compute identical classification labels for the same dimensional coverage.</p>
</li>
<li><p id="_2df1800d-6b37-3a0f-94e0-08638ed1f786">Revocation captures key compromise, not condition invalidation. PKI provides robust certificate-level revocation through CRLs and OCSP, with mature deployment. Its revocation model is designed for and effective at key-compromise and mis-issuance scenarios: when a CA or end-entity certificate is revoked, dependent sessions and new signature validations fail chain validation. However, PKI’s revocation is key-centric — it captures “this key is no longer trustworthy.” It cannot express “the real-world conditions under which this artifact was produced are no longer valid” — a calibration certificate expiring, a compliance status changing, an accreditation being withdrawn. This separation of key validity from content validity is a deliberate design boundary in PKI — the certificate validates the key; the application validates the content. Long-term validation schemes (CAdES-A, PAdES-LTV) partially address archive-time validity but still operate at the certificate/signature level. SIGNATIF integrates condition binding into the verification framework itself.</p>
</li>
<li><p id="_ccb2169d-4153-f5ea-9877-b98407b3a523">Timestamps are available but not required for verification. RFC 3161 timestamp authorities and X.509 counter-signatures provide strong external time evidence and are legally recognized in many jurisdictions (e.g., eIDAS qualified electronic timestamps). However, standard PKI path validation does not require timestamp evidence —  <tt>notBefore</tt>/<tt>notAfter</tt> are issuer-asserted and suffice for chain validation. SIGNATIF makes independent time attestation a first-class trust dimension.</p>
</li>
<li><p id="_70c0090b-7557-3936-c9aa-a9cf8b75a1ee">Transparency is mandatory in web PKI but not in PKI generally. Certificate Transparency (<eref type="inline" bibitemid="rfc6962" citeas="IETF RFC 6962"/>) is mandatory for publicly trusted TLS certificate issuance, and major browsers reject certificates without embedded SCTs. However, CT is specific to the web PKI; code signing, email (S/MIME), document signing, and private PKI deployments do not require transparency. SIGNATIF makes transparency log inclusion a universal requirement across all deployment types.</p>
</li>
<li><p id="_7f79f31b-3208-7520-a8eb-bda9e65055d4">Authorization is static at the certificate level. Certificates assert “this key is authorized” as a fact for the certificate’s validity period. X.509 attribute certificates can bind attributes to a holder, but these attributes describe the holder, not conditions about a specific artifact’s content. SIGNATIF scope conditions are predicates about the artifact’s content and production context, evaluated at verification time.</p>
</li>
<li><p id="_e8facc7b-9190-0f45-5214-2154646f06c5">Possession-based authenticity by default. A static PKI certificate and its signed artifact can be copied and replayed. Challenge-response mechanisms exist in PKI ecosystems (mTLS channel binding, nonce-based protocols) but are application-layer additions. SIGNATIF specifies challenge-response as a conformance capability for device signers.</p>
</li>
<li><p id="_d221cdc1-475f-d3c1-6899-73242c092892">Attributes bind to holders, not to artifact production conditions. X.509 attribute certificates and qualified certificates carry cryptographically signed attributes (roles, clearance levels, qualifications). However, these describe the certificate holder, not the conditions under which a specific artifact was produced. SIGNATIF scope conditions bind to the artifact’s content and production context.</p>
</li>
</ul>

<p id="_8a868829-8163-1071-ab8b-32474977ee5a">These limitations are specific to the persistent-artifact trust problem. For server authentication, code signing under active policy enforcement, and document signing within organizational trust boundaries, PKI remains the appropriate and mature choice (see  <xref target="annex-b"/> for a detailed comparison). SIGNATIF addresses the problem space where these limitations become operationally significant: artifacts that must be verifiable offline, graduated in trust, revocable retroactively, and attested by multiple independent dimensions of reality.</p>

<clause id="_cfb03c04-5c29-ccde-3179-faecdbc38553" inline-header="false" obligation="informative">
<title id="_4c242bcc-2837-12ca-b149-85655cfa6286">Simplicity and complexity: a nuanced comparison</title>
<p id="_12099854-f707-2ef2-377a-d759d8ed988b">Whether SIGNATIF is simpler or more complex than PKI depends on the dimension of comparison and the perspective of the stakeholder:</p>

<p id="_eca4d196-d174-a20e-0860-105a840287ea">Where SIGNATIF is simpler:</p>

<ul id="_035186f4-926d-880a-8c3f-0bd8d78954b0"><li><p id="_6417a54c-7a91-851b-8766-7867ee936a3d">Scope enforcement is algorithmic, not policy-interpreted. PKI constrains CA authority through dozens of certificate extensions (Name Constraints, EKU, Certificate Policies, Policy Mappings, Inhibit Any-Policy) that interact in implementation-dependent ways, backed by external policy documents (the CA/B Forum Baseline Requirements run to hundreds of pages). SIGNATIF uses one multi-dimensional scope structure verified by one deterministic narrowing algorithm. The verifier does not interpret policy; it runs an algorithm on signed fields.</p>
</li>
<li><p id="_6fcb614d-4f69-7f75-e2c4-66c2217e0341">Trust assessment is standardized. In PKI, deciding how much to trust a certificate requires each application to interpret EV/OV/DV status, Certificate Policy OIDs, CT presence, and revocation freshness — each application re-derives the logic. SIGNATIF provides one coverage report; the application compares the classification to its acceptance threshold.</p>
</li>
<li><p id="_617d8523-5f85-c212-8992-dead621dc89b">Cross-domain trust is artifact-level, not CA-level. PKI cross- certification involves bridge CA topology, cross-certificates with constraints, and path building across multiple hierarchies. SIGNATIF handles cross-domain trust through co-signatures on the artifact itself — no bridge CAs, no cross-certificate management.</p>
</li>
<li><p id="_1e0261bc-1769-8c13-779a-3f271f419db1">Revocation is unified. PKI offers CRLs, OCSP, OCSP stapling, OCSP must-staple, CRLite, CRLSets, and short-lived certificates — multiple competing mechanisms with different deployment profiles. SIGNATIF has one propagation model with one offline strategy (CRL grace period).</p>
</li>
</ul>

<p id="_179e77d3-c28f-1f54-f382-71d68609c6f9">Where SIGNATIF is more complex — or can be, depending on configuration:</p>

<ul id="_7d383817-3217-d3bb-9e7a-060c81d0a336"><li><p id="_08ad528f-eac5-9115-814a-a13e1e1b5ee8">Issuance scales with dimensional coverage. An artifact may carry N co-signatures from independent trust dimensions. However, a minimal deployment with a single data dimension and 1-of-1 threshold at every level produces artifacts structurally equivalent to PKI-signed documents. Complexity is opt-in: a deployment adds dimensions and threshold only where its trust model requires them.</p>
</li>
<li><p id="_859cb435-eab4-2121-4be5-4cf9efa68ec3">Threshold is required at every level — but 1-of-1 is conforming. PKI’s single-key CA model is a special case of SIGNATIF’s threshold model with T = N = 1. A single party holding all signing keys (N-of-N with one party) is also conforming. No ceremony infrastructure is needed for 1-of-1. SIGNATIF generalizes PKI: PKI-like deployments are one configuration of the SIGNATIF framework.</p>
</li>
<li><p id="_472410ad-27bf-08f6-e474-002fb2489057">Transparency infrastructure is mandatory — but can be minimal. SIGNATIF requires a transparency log, but the minimum is a single operator with a single mirror and no gossip quorum (a lower classification label). Deployments add mirrors, gossip, and multi-log attestation proportionate to their risk model.</p>
</li>
<li><p id="_e858e2c0-a041-d942-cdb7-259b1de3cd83">The verification pipeline has more steps — but each is optional except the hard checks. The minimum verification is: format validity, signature validity, chain integrity, scope narrowing, and revocation status — structurally similar to PKI path validation. Transparency, time anchoring, cross-domain diversity, multi-log quorum, and classification are soft checks that contribute to the classification label but are not required for basic acceptance.</p>
</li>
</ul>

<p id="_5ea1eb45-3bc4-91c6-ab93-06baf7f4294a">PKI as a special case of SIGNATIF: A SIGNATIF deployment configured with 1-of-1 threshold at every level, a single data dimension, no scope conditions, transparency with a single log and no gossip, and a binary acceptance policy (accept the minimum classification label) is functionally equivalent to a PKI deployment. This is not a degenerate case — it is a conforming configuration. Organizations can start with this PKI-equivalent baseline and incrementally add dimensions, threshold protection, transparency infrastructure, and graduated trust as their requirements evolve. SIGNATIF is not PKI plus extra complexity; it is a general framework in which PKI’s trust model is one configuration among many.</p>

<p id="_ac0ff30b-dac6-c240-010f-4204619950b7">The net trade-off: For simple trust problems — single signer, binary acceptance, no offline verification beyond cached CRLs — PKI is the simpler choice and benefits from decades of ecosystem maturity. For problems requiring multi-party attestation, graduated assessment, condition lifecycle management, offline verification, or threshold protection at intermediate levels, SIGNATIF provides these as integrated, standardized, algorithmically verified mechanisms — rather than requiring each application to assemble them ad hoc from PKI primitives, policy documents, and custom code.</p>
</clause>
</clause>

<clause id="_b4aa25ec-3135-ac53-b676-e59292512d70" inline-header="false" obligation="informative">
<title id="_71499369-4ed9-541f-7cf8-045302327d10">The trust convergence problem</title>
<p id="_f6a49646-2dc9-951f-36c6-47247a04b191">Consider an artifact that asserts a real-world fact: a quantity value, a timestamp, an environmental context, and an authorizing party. For a verifier to trust this artifact, multiple independent dimensions of reality must converge:</p>

<ul id="_c03dc2cc-5664-0a93-594c-5aba6209d219"><li><p id="_a44ae0f9-899f-665d-1248-c6f4be153ac4">Authority. Was the signing key authorized by a legitimate delegation chain whose scope covers this artifact?</p>
</li>
<li><p id="_57aaec27-239c-fb4a-b2e0-5f58569aa1fa">Person. Was a specific human operator accountable for the act, bound to the artifact by a separate signature?</p>
</li>
<li><p id="_c95566d2-f037-d222-e78e-438f2760bced">Time. Can the time of signing be established independently of the signer’s own assertion, anchored to an external time source?</p>
</li>
<li><p id="_393852c8-d83e-9a8b-0cf1-86a43ba21589">Location. Was the artifact produced at a location consistent with its claimed provenance?</p>
</li>
<li><p id="_447986d1-8c9b-258d-d6f8-b8a9a100ecc1">Environment. Were the ambient conditions (temperature, humidity, sensor state) at the time of signing consistent with the artifact’s validity conditions?</p>
</li>
</ul>

<p id="_edb37716-c265-cc7a-33bc-87a352c12ca8">In traditional PKI, only the first dimension — authority — is represented cryptographically. The remaining dimensions are carried as unsigned metadata, trusting the signer to report them honestly. A compromised key is sufficient to forge an artifact with fabricated time, location, and environmental context.</p>

<p id="_0ffcbf0d-6d94-de63-a6eb-27d0951b1309">SIGNATIF makes every dimension a cryptographic co-signature dimension, each backed by its own trust tree, each independently verifiable. The artifact becomes a convergence point of independent attestations rather than a single-authority assertion.</p>
</clause>

<clause id="_412d7daf-7b62-39b8-4414-c43a1172dec9" inline-header="false" obligation="informative">
<title id="_15705257-9de7-7f04-148e-110a27477957">Why SIGNATIF</title>
<p id="_fbcf486d-2a59-a062-f56a-b8f542c7f121">Persistent artifacts — records whose trustworthiness must outlive the signing session and, in many cases, outlive their issuers — face a problem that traditional PKI was not designed to solve. PKI binds a key to an identity; it does not bind an artifact to the real-world conditions under which it was produced, does not require independent convergence of multiple trust dimensions, does not graduate trust based on the depth and breadth of attestation, and cannot revoke an artifact when the conditions that made it trustworthy no longer hold.</p>

<p id="_0e79f90f-0f4c-2ec2-cd9b-ef57aba3f021">SIGNATIF exists because these capabilities are not optional refinements of PKI — they cannot be achieved in a standardized, interoperable, cryptographically enforced manner within the PKI model as currently specified. Adding scope enforcement to X.509 certificates does not make scope machine-checkable; adding multiple signatures to a PDF does not create a convergence model; adding a CRL entry does not propagate to condition-dependent artifacts. These require a new architecture.</p>

<clause id="_3a91f6b7-7eca-ab64-83ea-c435e56489ee" inline-header="false" obligation="informative">
<title id="_a80255fd-0653-fff2-e1ff-c00831fb2881">Why not multiple PKIs?</title>
<p id="_d225fe61-49b1-04dc-b046-98109cbaa870">A natural question is: why not issue separate certificates from separate PKI hierarchies — one for authority, one for operator identity, one for timestamping, one for location — and have each independently sign the same artifact?</p>

<p id="_10f6399c-24ee-28ab-1940-839a19ddef35">Multiple PKIs can achieve multi-party signing, and several of SIGNATIF’s capabilities can be approximated with PKI extensions and application-level glue. X.509 Name Constraints can restrict a CA’s domain; PAdES supports multiple signatures on a PDF; OCSP provides real-time revocation status; CT logs exist for multiple hierarchies. A sufficiently determined application developer could build an ad-hoc convergence system on top of multiple PKIs.</p>

<p id="_7fd36ce7-2f2b-1f85-9bdc-ffa0160979da">However, the result would be non-standardized, non-interoperable, and enforced by application policy rather than by cryptographic invariant. The following distinctions explain why SIGNATIF exists as a separate framework:</p>

<ul id="_a1a1ca5c-74a8-5ab6-22b7-e186561ae7be"><li><p id="_7fb15d96-a673-9f15-3821-cbaba0bf67f8">Convergence is enforced, not assumed. Multiple PKI signatures can be applied to the same document, but nothing in the PKI model ensures all signers attest the same canonical bytes. PAdES counter-signatures create ordering dependencies (signature 3 signs over signature 2); if signature 2 is later revoked, the dependency chain becomes ambiguous. SIGNATIF requires all co-signatures to attest the same canonical payload hash independently, with no ordering dependency, and partial attestation is non-conforming.</p>
</li>
<li><p id="_e1882860-7c85-6600-eb67-70ec399c1b1d">Scope is cryptographically checked, not policy-defined. X.509 Name Constraints and Extended Key Usage can restrict a CA’s authority, but enforcement is implementation-dependent — many verifiers ignore Name Constraints. SIGNATIF’s scope is checked at every delegation link as a hard verification failure. The scope is multi-dimensional (domain, class, conditions), not name-based.</p>
</li>
<li><p id="_1c43871a-e93f-4c2a-58e0-e5fbf48a8ca9">Conditions bind to artifact content, not certificate holder. X.509 attribute certificates can bind attributes to a holder, and OCSP provides real-time certificate status. But neither mechanism can express “this attestation is valid only if the measured value in the artifact is within tolerance” — a predicate about the artifact’s content evaluated at verification time. SIGNATIF scope conditions are such predicates.</p>
</li>
<li><p id="_be63b2ca-5f96-4a1c-f1b3-4141b866b55e">Revocation propagates to conditions, not just keys. In multiple PKIs, revoking a calibration certificate tells the verifier the certificate is revoked. It does not flag the measurement records that used that calibration — there is no hash-binding between the artifact and the real-world states under which it was produced. The application must discover and enforce this link itself, with no standardized mechanism. SIGNATIF standardizes the hash-binding and propagates state revocation to all dependent artifacts.</p>
</li>
<li><p id="_4c27ed8b-5a3d-089e-f407-667fa33b829c">Combination is standardized, not reinvented. Multiple PKIs produce N independent pass/fail results. Each application decides what these mean — and every application reinvents the logic. SIGNATIF provides a coverage report and classification policy that two conforming verifiers compute identically, enabling interoperability between independently developed verification systems.</p>
</li>
<li><p id="_4a83ce2d-e28c-d02b-45f7-b808b18221f3">Transparency covers artifacts, not just certificates. CT logs track certificate issuance, not artifacts. A multi-PKI deployment would need separate, ad-hoc logging for each PKI’s signed artifacts. SIGNATIF requires every certificate and artifact to be in a transparency log, and inclusion is a verification requirement.</p>
</li>
</ul>

<p id="_7f7f3ba6-89e9-a101-c8c7-56854f2b1cb1">The argument is not that multiple PKIs cannot approximate some SIGNATIF capabilities. The argument is that standardization, cryptographic enforcement, and cross-implementation interoperability require a framework that treats convergence, scope, conditions, transparency, and graduated trust as integrated, normatively specified mechanisms — not as ad-hoc application-level conventions layered on top of disconnected certificate hierarchies.</p>
</clause>
</clause>

<clause id="_0e35266f-164a-7671-66ae-b594bdb523ea" inline-header="false" obligation="informative">
<title id="_44dbeb8e-635f-7544-6acf-4d884a057f32">How SIGNATIF works</title>
<p id="_dc54142d-2650-4845-27bd-e2d2e0f8d494">SIGNATIF addresses the persistent-artifact trust problem through five integrated mechanisms:</p>

<ul id="_42d31066-ba77-1ccc-901f-260336af1d5d"><li><p id="_56300183-2448-23e7-d749-4ceeb0afc4d8">Cryptographic scope. Each authority’s authorization boundary is a signed, multi-dimensional field (domain, class, conditions) that narrows monotonically at every delegation link. Scope violations are detected at verification time, not by after-the-fact audit.</p>
</li>
<li><p id="_fb4da044-6e1e-5f9e-e3e2-d5b5001a981c">Convergent attestation. Each artifact carries co-signatures from multiple independent trust dimensions — authority, person, time, location, environment, and extensible others. Trustworthiness is established by the convergence of independent attestations, not by a single signer.</p>
</li>
<li><p id="_ced6718a-7b47-a31f-09ff-322f58e0ac38">Threshold at every level. No single key compromise compromises any authority in the hierarchy. Threshold signing is required at every level, not just the root.</p>
</li>
<li><p id="_89afb5ff-c9e9-bdf0-414a-f9a25f0b8cca">Trust as a lifecycle. Trust is granted through signing, sustained through transparency and time-anchoring, and repudiated through revocation that propagates to condition-dependent artifacts. When the real-world conditions that made an artifact trustworthy change, the framework detects it and flags the affected artifacts — including those signed under still- valid keys.</p>
</li>
<li><p id="_895cb520-0c65-a978-2851-667f05da200f">Graduated, offline-verifiable trust. The verifier produces an objective coverage report reflecting dimensional coverage and verification path robustness, applies the scheme’s classification policy to derive a grade label, and applies its own acceptance threshold to that label. All of this is verifiable offline by anyone holding the trust anchor bundle.</p>
</li>
</ul>

<p id="_cfd26871-6729-5bd5-3112-21502662635d">These mechanisms are specified as modular requirements (see <xref target="conformance"/>), allowing implementations to claim conformance to the roles they perform (verifier, issuing authority, root authority, etc.) without implementing the entire framework.</p>
</clause>

<clause id="_dd280f47-ee97-f55f-4eb6-cb94b5497b8e" inline-header="false" obligation="informative">
<title id="_5fe4f663-6a08-3b3c-55b6-eddfb51d1574">Differentiation from traditional PKI</title>
<p id="_eb0e3171-393e-a7fb-9110-6830150e263f">This document specifies a trust infrastructure whose design differs from traditional PKI (X.509, web TLS) in several structural respects. Each difference exists because traditional PKI was designed for a different problem — authenticating a server identity in a transient session — and cannot be retrofitted to authenticate the trustworthiness of persistent artifacts.  <xref target="tab-intro-pki-differentiation"/> summarizes the structural differences.</p>

<table id="_170141cb-542b-8046-91d6-5733fe68bcd0" anchor="tab-intro-pki-differentiation"><colgroup><col width="20%"/><col width="40%"/><col width="40%"/></colgroup>
<name id="_a0a60085-756e-5370-2768-7903b4d5c9f7">Differentiation from traditional PKI</name>
<thead><tr id="_b8d9a3e5-111f-94f9-6b8d-95e044d63cf7"><th id="_e7c9e6bc-628d-b7c0-e3f0-748222f633e5" valign="top" align="left">#</th>
<th id="_8adb213f-6522-a06f-5e0b-2a3556083e6d" valign="top" align="left">Traditional PKI</th>
<th id="_a7eac154-e645-6101-2a1f-5bb87b2000c4" valign="top" align="left">This document (SIGNATIF)</th>
</tr></thead>
<tbody><tr id="_23be82e2-a234-4410-f0ca-00a9a0da4853"><td id="_5a4cbc02-5772-9a23-bc35-ad7825742a7a" valign="top" align="left">1</td>
<td id="_4d0dcd43-4fe4-8d0a-eb7d-6e60b3c40358" valign="top" align="left">Scope is policy-defined (Baseline Requirements), not carried in the certificate.</td>
<td id="_9375e752-502c-5e36-54e4-84420e5d8cd1" valign="top" align="left">Scope is a first-class signed field, cryptographically enforced at every chain link; widening any dimension is a hard verification failure.</td>
</tr><tr id="_a979e9bf-e6b2-af44-b5be-e2d8bb66dc32"><td id="_7d075485-03a5-2a71-369b-2647dd39701e" valign="top" align="left">2</td>
<td id="_62e973b7-75df-a9fb-9ea5-8d78ceed4871" valign="top" align="left">One signer per object.</td>
<td id="_6dc32cb6-357d-874f-415f-b95501444e5d" valign="top" align="left">N signatures per artifact, each from a different trust dimension (data, person, time, location, environment).</td>
</tr><tr id="_b088dbf5-de9d-75db-bfb0-78e2ddb484c0"><td id="_1c8303f7-4989-429b-bf6f-ef77cbfface4" valign="top" align="left">3</td>
<td id="_db0d6dff-0b00-f640-9186-54de9a118e11" valign="top" align="left">Root key held by one entity; single point of compromise.</td>
<td id="_92db8667-4b30-87c1-16c0-82d4c193ee66" valign="top" align="left">Threshold at root and at every delegated authority; no single key compromises any level.</td>
</tr><tr id="_fe7af400-ca1c-e545-2316-03092b8644c4"><td id="_41bdb9ae-a98c-1bf9-1928-da31ac9909a3" valign="top" align="left">4</td>
<td id="_8d732e81-d3a6-5a17-a2b9-34ecedc152a5" valign="top" align="left">Bridge CAs are single entities.</td>
<td id="_b9e88b9a-d8d4-bd6d-40fd-b6f6a60a0ab1" valign="top" align="left">Federated Trust Authorities are threshold groups of independent organizations with aggregate keys.</td>
</tr><tr id="_8321ed21-55d4-e7bd-7cfd-a2f163a9f811"><td id="_24e87b4b-7c03-aa50-4741-03f526528aeb" valign="top" align="left">5</td>
<td id="_dd5b53b4-493a-2b8a-bd19-5fb793dc6f27" valign="top" align="left">Certificate Transparency is an optional monitoring overlay.</td>
<td id="_c575ed51-1b38-60f4-4e2c-d621d4b99ba2" valign="top" align="left">Transparency inclusion is a verification requirement; un-logged artifacts are downgraded or rejected.</td>
</tr><tr id="_02966a54-ebe6-2bd2-7140-4bae75d3b17b"><td id="_4e3ff22c-05a3-f3d9-7c55-021553fe9514" valign="top" align="left">6</td>
<td id="_494a9549-6db0-b0dc-909a-053201334f1c" valign="top" align="left">Valid or revoked; binary.</td>
<td id="_cc713c32-7545-a4c0-a3d5-c7c05798140a" valign="top" align="left">Graduated trust classification reflecting coverage report; enables risk-based policy.</td>
</tr><tr id="_18c2eb5f-d6c8-866b-2e78-896f33401e70"><td id="_9bb9f698-aa5b-87bf-73b3-8d3239fdd5cd" valign="top" align="left">7</td>
<td id="_5cc774f3-4672-4714-fc5e-8fc170fe45fe" valign="top" align="left">Revocation invalidates a certificate; artifacts already signed remain valid.</td>
<td id="_4779d081-db7e-2ef1-5958-4d8b94e7523a" valign="top" align="left">Revocation propagates to every artifact transitively bound to the revoked state.</td>
</tr><tr id="_10b15d85-cf2b-fd2b-d2c7-1f0965d61be4"><td id="_3dc692f8-4f35-2320-0352-ff9a2fc9ab24" valign="top" align="left">8</td>
<td id="_82d9a7bb-cdab-8b9d-5bef-079d4545f90e" valign="top" align="left">notBefore / notAfter are self-asserted by the issuer.</td>
<td id="_a305e9d2-d92a-9f95-89a9-26ec842b4257" valign="top" align="left">Artifacts anchored to an external time source; independent proof of existence at a time.</td>
</tr><tr id="_fe2f7d95-4eba-243c-e486-af5e9c822283"><td id="_dd99a113-4625-7e8a-8cf1-9178b95a6e94" valign="top" align="left">9</td>
<td id="_d5c35844-b8b5-5dc5-9f32-f1ca6ccfb957" valign="top" align="left">One root per hierarchy; cross-certification is awkward and CA-level.</td>
<td id="_cd2c9640-33b9-7a0b-ccb9-b0ec0de2fd7f" valign="top" align="left">Hierarchical, federated, cross-recognized, and mesh topologies are first-class conformance profiles.</td>
</tr><tr id="_35e39d1f-91ee-8cf1-531a-85e457690873"><td id="_2d5bcdba-c7cf-67ea-84d9-87adbbf7d514" valign="top" align="left">10</td>
<td id="_d948e5f7-2d88-e492-063f-b4ecac9a98ee" valign="top" align="left">Certificates assert “this key is authorized”; authorization is static.</td>
<td id="_a348eac2-d7ed-a36e-fc0f-b7b90ab91618" valign="top" align="left">Scope includes executable conditions evaluated at verification time; binds authority to live state.</td>
</tr><tr id="_251bc40a-d65e-af94-7191-c94141cb5c71"><td id="_c02513e1-7193-f4b6-0ebe-df10ef7fe9bc" valign="top" align="left">11</td>
<td id="_5214accb-80dc-a94e-acd9-5d608c1abf78" valign="top" align="left">Certificates are static and copyable; authenticity is proven by possession.</td>
<td id="_34f54445-79f9-0017-f364-5bdb7f1a682a" valign="top" align="left">Challenge-response: verifier challenges for a fresh nonce-bound signed artifact; counterfeits cannot answer.</td>
</tr><tr id="_00961dc3-0b23-13bb-d92f-cf5cfd3d63c9"><td id="_4987eb5c-64b4-fe09-823a-184bab47fc77" valign="top" align="left">12</td>
<td id="_1983d57d-82f3-ed3d-8d80-1ff05c79ee02" valign="top" align="left">Multiple CT logs exist but multi-log inclusion is not required.</td>
<td id="_a4c787f4-d021-8caa-408f-547826335a90" valign="top" align="left">Federated artifacts require inclusion in M-of-K independent logs; no single operator controls the record.</td>
</tr><tr id="_bc941323-523d-fd72-3586-bf4143d52a8b"><td id="_aa4e2aac-e75f-135f-87e1-f9d41a9fcbd1" valign="top" align="left">13</td>
<td id="_1e20f3ae-d02c-a644-4b7f-dd955ba364ac" valign="top" align="left">Cross-certification is CA-to-CA; happens above the artifact.</td>
<td id="_f1f42403-1929-0b49-63e4-83894d8545c7" valign="top" align="left">Cross-domain trust fusion at the artifact level: the artifact itself carries co-signatures from independent hierarchies.</td>
</tr><tr id="_901995c2-a946-7efc-3aa8-343c30689bc6"><td id="_89568348-8262-2cd0-87b3-1f3d59ed82be" valign="top" align="left">14</td>
<td id="_10fb2f13-f65c-9a06-2240-54f4d41cb6fa" valign="top" align="left">One dimension: authority / identity.</td>
<td id="_ff8d38c4-c982-503c-aa9e-6ca0a78a7253" valign="top" align="left">Multi-dimensional: time, location, and environment are cryptographic co-signature dimensions with their own trust trees.</td>
</tr></tbody>
</table>
</clause>

<clause id="_9a41a5dd-4989-1396-51ea-ce824233141b" inline-header="false" obligation="informative">
<title id="_f3703845-8163-37a1-f705-6c498f808c16">Document structure</title>
<p id="_1626e05b-1400-2a9e-6a16-0a3888e621e0">This document is organized as follows:</p>

<ul id="_530320e1-de87-2e20-a69d-2c983ea624ff"><li><p id="_df6a3dec-9c4a-90d6-da08-29b29d5fb9dc"><xref target="scope"/> states what is and is not specified.</p>
</li>
<li><p id="_349483a9-107a-98e1-892e-d32bebce92f7"><xref target="terms"/> defines the terminology used throughout.</p>
</li>
<li><p id="_3adab72d-3556-01d6-fffa-65d93fb3c51a"><xref target="principles"/> states the design principles underlying the differentiators above.</p>
</li>
<li><p id="_f04ba0ba-ba04-a6cf-4c8a-c24160f45d63"><xref target="conformance"/> defines the conformance class hierarchy and profiles.</p>
</li>
<li><p id="_7d4991bd-e530-5c06-598a-de2dc1c4d0e4"><xref target="architecture"/> specifies the trust graph model and the delegation structure.</p>
</li>
<li><p id="_b91ee819-803e-72fb-ca3f-da0d5a9ccfe6"><xref target="artifact-format"/> specifies the artifact format and signature binding, including co-signatures, cross-domain fusion, and multi-dimensional attestation.</p>
</li>
<li><p id="_30df61a7-c5d7-0e49-2aa4-21f8d7350a9d"><xref target="algorithms"/> specifies the cryptographic algorithms, composite signatures, and algorithm agility.</p>
</li>
<li><p id="_7385d438-b0dd-d56b-493d-ded15ce804d8"><xref target="threshold-signing"/> through <xref target="algorithm-agility"/> specify the operational requirements: threshold signing, scope governance, revocation, transparency, verification, key lifecycle, delivery, ceremonies, deployment manifest, governance, and algorithm agility.</p>
</li>
<li><p id="_e9513d0f-2357-d4e6-f018-f3812969c573"><xref target="security"/> specifies the security considerations and threat model.</p>
</li>
<li><p id="_55fdbb8d-1090-a5c2-1fa9-eec266d0a4bb"><xref target="annex-a"/> provides the normative conformance test suite.</p>
</li>
<li><p id="_f952be29-deaf-fe37-0b72-713bd68e9a44"><xref target="annex-b"/> compares SIGNATIF with traditional PKI and provides use case guidance.</p>
</li>
<li><p id="_18bef21a-3758-bf25-30e5-0ac234e734dd"><xref target="annex-c"/> specifies the scheme-maintained registry requirements.</p>
</li>
<li><p id="_31980393-4ccf-46ea-6fa7-5a3a7e3f16c2"><xref target="annex-d"/> presents a sample supply-chain provenance domain profile.</p>
</li>
<li><p id="_e5395ebd-d84e-5f74-97cb-e0249589aa62"><xref target="annex-e"/> demonstrates a concrete reference technology instantiation.</p>
</li>
<li><p id="_8cfb9947-209f-97f4-1321-b6c99f41a17e"><xref target="annex-f"/> describes cross-technology interoperability between heterogeneous deployments.</p>
</li>
<li><p id="_ae0e5ee5-3d98-98dd-5824-3575f6abea75"><xref target="annex-g"/> describes composition with W3C Verifiable Credentials.</p>
</li>
<li><p id="_a5c70c70-db20-f974-02f8-6d883feb4396"><xref target="annex-h"/> describes composition with the EU Digital Product Passport.</p>
</li>
</ul>
</clause>
</introduction></preface><sections>

<clause id="_bbdae551-fbd3-3551-162f-29729861809c" anchor="scope" type="scope" inline-header="false" obligation="normative">
<title id="_f70b6ff6-6131-0e24-81e1-850dbe94b63d">Scope</title>
<p id="_fed83988-66f5-77a3-1670-93b9d1c99b8a">This document specifies a trust infrastructure for the issuance and verification of verifiable artifacts — signed data objects whose trustworthiness is established by the convergence of multiple independent trust dimensions, each backed by its own trust tree.</p>

<p id="_26496327-b7c8-723e-1a7e-0a5ce39d9604">This document specifies the following:</p>

<ul id="_f0556ef4-394d-e1a3-25e4-6d51010db5c3"><li><p id="_6b1a9461-cf0d-57e7-f67f-5de47bb7ff32">the trust model, including the delegation structure from a root trust authority through delegated trust authorities to end certificates, and the trust graph that generalizes a linear chain to a directed acyclic graph;</p>
</li>
<li><p id="_f8281630-f2d9-be34-609f-d9ce8c9e3e08">the scope model, including scope dimensions, monotonic narrowing, executable scope conditions, and the four-layer enforcement of scope at every chain link;</p>
</li>
<li><p id="_5efb5615-3b92-738d-8577-1c030423a829">the artifact format and signature binding requirements, including the co-signature model for multi-party attestation, cross-domain trust fusion, and multi-dimensional reality attestation;</p>
</li>
<li><p id="_973ee870-bc9d-6ac2-d490-4368207e2964">the threshold signing model, requiring threshold quorum at every trust authority level and specifying the ceremony protocol;</p>
</li>
<li><p id="_64135ac2-9cb4-bbee-f2cf-61a1035346d7">the federated trust authority model, in which threshold groups of independent organizations share an aggregate key;</p>
</li>
<li><p id="_b0901c61-991b-db80-801a-985de57c0428">the transparency model, including append-only Merkle logs, inclusion proofs, consistency proofs, mirrors, gossip, and multi-log attestation;</p>
</li>
<li><p id="_3312afa6-465c-7f57-7503-f36133d04c85">the revocation model, including certificate revocation lists and propagation of revocation to artifacts transitively bound to a revoked state;</p>
</li>
<li><p id="_5f7d6f06-122b-7a00-0fa8-f52ca11f1e89">the verification pipeline, including trust graph path-finding, coverage report production, classification policy, acceptance policy, and time freshness enforcement;</p>
</li>
<li><p id="_ba001135-fb64-7166-9292-f2146833c78b">the algorithm agility model, including the algorithm identifier registry, deprecation process, and migration governance;</p>
</li>
<li><p id="_64a4f0b9-d458-82bd-d993-b370ad214039">the trust topology profiles: hierarchical, federated, cross-recognized, and mesh;</p>
</li>
<li><p id="_63478307-cbc1-a7b6-b125-d8fc657647dd">the key lifecycle, including generation, storage, rotation, and ceremony requirements;</p>
</li>
<li><p id="_20259d33-8762-d4ab-842f-0999f71e726e">the delivery and discovery mechanisms, including chain resolution, trust anchor bundles, machine-readable passports, and challenge-response;</p>
</li>
<li><p id="_f51ff7d8-fa47-8d44-a3b7-976f9d5005dc">the conformance class hierarchy and the abstract test suite.</p>
</li>
</ul>

<p id="_9b0a3915-7887-8389-ba84-d2000a9c97de">The following are out of scope of this document:</p>

<ul id="_48b82e8a-10e0-9d82-8140-e6a4b286f099"><li><p id="_52302b5d-516d-945e-c5ad-0f1d501cde53">implementation details for the realization of any SIGNATIF component;</p>
</li>
<li><p id="_efeaf43b-b152-9ca8-4c2a-b31a169f2a67">domain-specific content, schemas, or data models that a particular adopter community may define as profiles of this document;</p>
</li>
<li><p id="_23a2c043-1d5e-65bf-d127-3e739b3445b7">the internal design of hardware security modules, secure enclaves, or other key protection mechanisms, except where they interact with the ceremony protocol;</p>
</li>
<li><p id="_45a12c83-5118-8f81-5197-46d653605918">the governance procedures of any specific root trust authority, except for the structural requirements that all root trust authorities shall satisfy;</p>
</li>
<li><p id="_03f28ca0-ded1-c586-a31c-ad4c085355e6">network transport protocols for artifact delivery, except for the requirements on chain resolution and discovery;</p>
</li>
<li><p id="_b548b3d8-93b5-84a5-7f66-0a60d927ce37">legal or regulatory recognition of SIGNATIF-based artifacts in any jurisdiction.</p>
</li>
</ul>
</clause>

<terms id="_8832fadd-cd80-dd7f-2c34-70e2da05151b" anchor="terms" obligation="normative">
<title id="_f96fe1da-45a6-d348-aaa4-edffdc787854">Terms, definitions and abbreviated terms</title><p id="_dcc01114-4d03-3550-1347-4ba901bda94c">For the purposes of this document, the following terms and definitions apply.</p><p id="_1df4aedb-297d-0c69-967f-f6a60db009d2">ISO and IEC maintain terminology databases for use in standardization at the following addresses:</p>

<ul id="_e6ddc246-88cc-2222-8452-b939a5cefa0e"><li><p id="_93880b15-0e52-9141-f887-d290dce89ffd">ISO Online browsing platform: available at <link target="https://www.iso.org/obp"/></p>
</li>
<li><p id="_8a7ecb99-412c-1138-ae9d-76c4ac7b7d43">IEC Electropedia: available at <link target="https://www.electropedia.org"/></p>
</li>
</ul>
<term id="_0eb4b8f7-7ae5-e2e6-232f-51d8cfa6f57b" anchor="term-General"><preferred><expression>
<name>General</name>
</expression>
</preferred>
<definition id="_2dea186a-2f2d-7883-69f0-e9ef574c5abe"><verbal-definition id="_05255d6e-bbd9-a53c-2613-26a63581065a"><p id="_8ec1931b-f61a-58f5-ad0b-5f0eab565327">For the purposes of this document, the following terms and definitions apply.</p><p id="_0ff43072-5057-f04a-98f9-dab35fe37508">Terms are listed in concept order within sub-clause groupings, not in alphabetical order. Cross-references to related terms use the {{term}} syntax.</p><ul id="_d06bdb61-077a-323e-e5eb-ad7d54e36d55"><li><p id="_9c8dc02b-93cd-39b1-0704-acee80d0f1d4">ISO Online browsing platform: <link target="https://www.iso.org/obp">www.iso.org/obp</link></p>
</li>
<li><p id="_05705210-cc83-46b7-4e73-d90da955eae3">IEC Electropedia: <link target="https://www.electropedia.org">www.electropedia.org</link></p>
</li>
</ul></verbal-definition></definition>








 <termnote id="_95222d34-b3ac-93d9-57eb-6687ec496cfd"><p id="_0c26a20c-00b1-e803-9032-9cc836847484">Consistent with <eref type="inline" bibitemid="rfc4949" citeas="IETF RFC 4949"/>, “trust” in compound terms (trust authority, trust anchor, trust chain) follows established security terminology. The subjective act of trusting — a relying party’s decision to depend on an artifact — corresponds to the verifier’s acceptance policy (see  <xref target="verification-acceptance"/>). This document specifies the infrastructure that produces verifiable trustworthiness evidence (coverage report) from which that trust decision is made.</p>
</termnote><termnote id="_7e90cfdf-89bf-1fc2-042c-960424257f95"><p id="_fe19022a-a538-67c3-e1b0-463ead8b5809">ISO and IEC maintain terminology databases for use in standardization at the following addresses:</p>
</termnote></term>

<terms id="_3ccda114-efb5-6b1e-b7bc-5eea757275f2" obligation="normative">
<title id="_3c1e1db9-3fd1-b14f-b9c1-753529adc41b">Trust authorities</title>
<term id="_d5d5fe3d-6101-ca89-a1f8-cc1b72ff6fce" anchor="term-trust-authority"><preferred><expression>
<name>trust authority</name>
</expression>
</preferred>
<definition id="_8eeae0d6-76e9-563f-6091-d0568fd05646"><verbal-definition id="_3d0c03db-bf92-8fcf-de95-fb43528dcf66"><p id="_390347e9-6004-f984-4c9e-dceb3b538853">entity that holds signing authority within a <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept> under an <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept>, and is represented by an <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept></p></verbal-definition></definition>


 <termnote id="_dbe327bb-3fc8-7b5b-3fdd-24c3d96777b7"><p id="_dc72cb31-e76e-239e-97d2-54c7dbd1d30c">A trust authority may operate as a single-key entity, a threshold group, or a federation of independent organizations.</p>
</termnote></term>

<term id="_60d80478-19b9-0357-cf57-4ba4a553871f" anchor="term-root-trust-authority"><preferred><expression>
<name>root trust authority</name>
</expression>
</preferred><admitted><expression>
<name>RTA</name>
</expression>
</admitted>



<definition id="_183ad8a9-c7bf-0c3e-e3ac-558811dc8bfe"><verbal-definition id="_c53345af-f864-7faf-9791-3415d98ab1f0"><p id="_2646e9c6-9f3f-ce21-6dd5-308d7e51af08"><concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> that serves as the root of a delegation hierarchy and defines the initial  <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> under which all subordinate authorities operate</p></verbal-definition></definition>


 <termnote id="_6c1b3347-0638-c9fd-7cee-a4a479bb0663"><p id="_0ba15504-a697-8897-de70-08fd49a985ff">A root trust authority may be a single entity, a threshold group, or a federated trust authority.</p>
</termnote></term>

<term id="_df5d659f-53c0-76ca-06dd-8e61315b350a" anchor="term-delegated-trust-authority"><preferred><expression>
<name>delegated trust authority</name>
</expression>
</preferred><admitted><expression>
<name>DTA</name>
</expression>
</admitted>



<definition id="_0a21ab64-669e-ef35-83bf-06b906c3ea23"><verbal-definition id="_17a4d321-89bc-4dd7-65fd-8dc125438c14"><p id="_895f5595-1374-6ad2-fd1b-e5c854777189"><concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> that has received signing authority through delegation from a parent  <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> and whose <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> is a subset of the parent’s scope on every  <concept><refterm>authorization scope dimension</refterm><renderterm>scope dimension</renderterm><xref target="term-authorization-scope-dimension"/></concept></p></verbal-definition></definition>


 <termnote id="_0794efa5-1865-f0d5-7e07-b3652bb2d993"><p id="_0af976bd-fe44-5afd-d91e-4de04b032847">A delegated trust authority may itself delegate to subordinate delegated trust authorities, forming a chain of zero or more levels.</p>
</termnote></term>

<term id="_3c038328-9790-e970-a419-ac8c0719464c" anchor="term-federated-trust-authority"><preferred><expression>
<name>federated trust authority</name>
</expression>
</preferred><admitted><expression>
<name>FTA</name>
</expression>
</admitted>



<definition id="_7a7aabb9-5127-8031-26c2-51545fa7d595"><verbal-definition id="_52fb4146-c3d3-568a-117c-3793aa14c957"><p id="_bc7c7537-20eb-e866-7e1b-e6df956b0c8d"><concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authority</renderterm><xref target="term-delegated-trust-authority"/></concept> whose members are independent organizations that cooperate under a threshold scheme to produce a single  <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept></p></verbal-definition></definition>


 <termnote id="_3e9c09f5-ca3e-f42f-1997-7b84a8fddf92"><p id="_b25bd96e-a9c3-5f51-13a7-336493bba549">No single member organization controls a federated trust authority. The threshold ensures that a specified number of members must cooperate to exercise the authority’s signing power.</p>
</termnote></term>

<term id="_2df533e9-d0d1-df67-a2a7-4578429dd350" anchor="term-aggregate-key"><preferred><expression>
<name>aggregate key</name>
</expression>
</preferred>
<definition id="_bc977e23-47a5-7e34-f760-70dec917e765"><verbal-definition id="_a0aed8ce-2619-d15f-033b-4dc02af7b583"><p id="_89511e43-2ac8-f1d3-dd47-f358bf3b51d4">public key that represents a <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept>, produced either from a single signing key or composed from multiple keys under a threshold scheme</p></verbal-definition></definition>
 </term>

<term id="_1d641013-2676-9bea-f037-11d74cafa685" anchor="term-quorum"><preferred><expression>
<name>quorum</name>
</expression>
</preferred>
<definition id="_37617d9f-8045-ae48-bf65-fad1f04e97c4"><verbal-definition id="_880052af-07f9-f291-e10c-668a7ec873ac"><p id="_6d99dd48-587b-ce69-f228-cdcba7b8032d">pair of parameters (T, N) specifying that at least T of N members shall cooperate to produce a valid  <concept><refterm>threshold signing</refterm><renderterm>threshold signing</renderterm><xref target="term-threshold-signing"/></concept> signature</p></verbal-definition></definition>
 </term>
</terms>

<terms id="_ecba4778-6bff-4295-88b0-47a2a2c73e87" obligation="normative">
<title id="_f76454bd-b7d7-d693-8683-891d438312b2">Trust chains and graphs</title>
<term id="_c16015e4-b803-c94a-26c7-e52a481105e1" anchor="term-trust-chain"><preferred><expression>
<name>trust chain</name>
</expression>
</preferred>
<definition id="_2792a28e-b980-0a25-067e-b5fced6b685d"><verbal-definition id="_fd247d4e-e0ae-7ab6-accd-bc0cf648ce30"><p id="_e4baf928-d829-80b0-7716-0563523e447b">ordered sequence of delegations from a <concept><refterm>root trust authority</refterm><renderterm>root trust authority</renderterm><xref target="term-root-trust-authority"/></concept> through one or more  <concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authorities</renderterm><xref target="term-delegated-trust-authority"/></concept> to an <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept></p></verbal-definition></definition>
 </term>

<term id="_ddc55477-b166-1edd-18ba-648d7ca5079f" anchor="term-trust-graph"><preferred><expression>
<name>trust graph</name>
</expression>
</preferred><admitted><expression>
<name>trust DAG</name>
</expression>
</admitted>



<definition id="_3d669191-0529-c77e-5f34-114407d005b3"><verbal-definition id="_42945f6d-50e0-a57a-ed0d-5d18f718b952"><p id="_1f5131aa-9a3a-1e04-dab8-882d969c1277">directed acyclic graph of all <concept><refterm>trust authority</refterm><renderterm>trust authorities</renderterm><xref target="term-trust-authority"/></concept> and their delegation relationships, generalizing the linear  <concept><refterm>trust chain</refterm><renderterm>trust chain</renderterm><xref target="term-trust-chain"/></concept> to admit multiple paths, cross-hierarchy edges, and  <concept><refterm>federated trust authority</refterm><renderterm>federated trust authorities</renderterm><xref target="term-federated-trust-authority"/></concept></p></verbal-definition></definition>


 <termnote id="_612270a2-952e-5ae7-3cf0-606c282650b7"><p id="_a37c1d96-76e0-ff12-b01d-96d42881f2e9">The trust graph arises from threshold memberships, federated authorities spanning hierarchies, cross-domain co-signatures, and mutual recognition links.</p>
</termnote></term>

<term id="_604a7058-56e5-65e2-b8e4-79f4b62abc57" anchor="term-end-certificate"><preferred><expression>
<name>end certificate</name>
</expression>
</preferred>
<definition id="_0dce0c04-25a0-bfd5-7052-85db62627dc6"><verbal-definition id="_21ac2583-8da5-fd9d-2232-e731a915f51f"><p id="_446253cd-1eaf-77ed-3599-dcc60232fdec">credential that authorizes a specific signing key to produce <concept><refterm>trusted artifact</refterm><renderterm>trusted artifacts</renderterm><xref target="term-trusted-artifact"/></concept> and that carries the narrowest <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> in its <concept><refterm>trust chain</refterm><renderterm>trust chain</renderterm><xref target="term-trust-chain"/></concept></p></verbal-definition></definition>


 <termnote id="_096e73c7-8b7d-5ced-0770-0c305e0bf76e"><p id="_9421b53c-6856-1ea2-62d8-82d42f293b3c">An end certificate does not delegate authority further; it binds a key to the authority to sign artifacts within its scope.</p>
</termnote></term>

<term id="_5c3545ec-9fad-dbe7-b148-967973db0af0" anchor="term-trusted-artifact"><preferred><expression>
<name>trusted artifact</name>
</expression>
</preferred>
<definition id="_32cab4d6-3e05-8442-4de7-35fbdc6c7742"><verbal-definition id="_c7d14ca6-f62b-aed8-951a-d109ef0cbcfe"><p id="_2f9132cf-2d33-358a-42f6-392212899bdf">signed data object produced under the authorization of an <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept>, carrying one or more  <concept><refterm>co-signature</refterm><renderterm>co-signatures</renderterm><xref target="term-co-signature"/></concept> from one or more <concept><refterm>trust dimension</refterm><renderterm>trust dimensions</renderterm><xref target="term-trust-dimension"/></concept></p></verbal-definition></definition>


 <termnote id="_44fd80c4-0806-fa46-85da-eff3344c0afe"><p id="_1f268b22-dcef-6c3b-e92f-217ad6b9976a">The trusted artifact is the deliverable of this document’s framework. All elements above it in the  <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept> exist to establish its trustworthiness.</p>
</termnote></term>

<term id="_256d61dc-0732-558e-63e0-60e8521428db" anchor="term-canonical-payload"><preferred><expression>
<name>canonical payload</name>
</expression>
</preferred>
<definition id="_4c7014b4-b025-5cc3-bce3-129d655adc2f"><verbal-definition id="_ab366f42-aa7d-3e18-6cec-6bc66353f06c"><p id="_9a405378-e1a1-edc1-0bb8-942bbc94fc88">deterministic byte-string representation of the artifact data that all <concept><refterm>co-signature</refterm><renderterm>co-signatures</renderterm><xref target="term-co-signature"/></concept> attest</p></verbal-definition></definition>


 <termnote id="_2913e541-7854-0ba3-e19d-7b90adef589f"><p id="_1baffc2f-68ab-70c1-1d91-19b4bf9c1261">Canonicalization ensures that every signer attests the same bytes, regardless of serialization format. Profiles of this document specify the canonicalization algorithm for each supported format.</p>
</termnote></term>
</terms>

<terms id="_c9002a25-6328-ed44-0283-ca97091b5493" obligation="normative">
<title id="_3b524c1e-b858-636d-ebc9-a26dc18521c3">Authorization scope</title>
<term id="_537c7006-5446-49cc-29a0-fc0ef5ef8479" anchor="term-authorization-scope"><preferred><expression>
<name>authorization scope</name>
</expression>
</preferred><admitted><expression>
<name>scope</name>
</expression>
</admitted>



<definition id="_1453d46a-2a70-81a3-c35c-78bfe89ab643"><verbal-definition id="_773b6e3a-d033-869d-5ef6-6b9542fb58ef"><p id="_c34a0dfa-dfb5-c759-9cd5-b77e587457f9">multi-dimensional authorization boundary that defines the extent of a <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept>‘s signing power, carried as a signed field in every certificate and cryptographically enforced at every delegation link</p></verbal-definition></definition>


 <termnote id="_a895a034-6038-896d-97f1-7eea9cf2bbbf"><p id="_59739329-3d1e-1995-a4ec-618ba271d13f">Authorization scope is the foundational concept of the SIGNATIF trust model: an entity is not trusted in the abstract, but only within its authorization scope. The scope constrains the class of  <concept><refterm>trusted artifact</refterm><renderterm>trusted artifacts</renderterm><xref target="term-trusted-artifact"/></concept> that the authority’s keys are authorized to sign.</p>
</termnote></term>

<term id="_f37d8c1b-1f01-7a56-7dc5-963de8685c6a" anchor="term-authorization-scope-dimension"><preferred><expression>
<name>authorization scope dimension</name>
</expression>
</preferred><admitted><expression>
<name>scope dimension</name>
</expression>
</admitted>



<definition id="_b2976935-12b1-ce3e-172c-b45024147719"><verbal-definition id="_beba0c9e-f3c6-fb36-e651-0acfe6757743"><p id="_3049b079-484d-f358-997e-698751db4c87">one axis of an <concept><refterm>authorization scope</refterm><renderterm>authorization scope</renderterm><xref target="term-authorization-scope"/></concept>, along which the scope is constrained independently of other dimensions</p></verbal-definition></definition>


 <termnote id="_6e8b9796-e2ac-c54f-c6fb-2247d7ca6a2e"><p id="_9ab01661-6769-bade-6ae0-03bf16fd577f">Authorization scope dimensions include, non-exhaustively: domain (field of application), subdomain, class, instance, and identity. A dimension may carry the wildcard value, indicating no constraint on that axis.</p>
</termnote></term>

<term id="_b88456c4-7125-a5b9-f159-51bf32a297a1" anchor="term-authorization-scope-narrowing"><preferred><expression>
<name>authorization scope narrowing</name>
</expression>
</preferred><admitted><expression>
<name>scope narrowing</name>
</expression>
</admitted>



<definition id="_f2eff93e-e4c4-d069-032e-5c6167022dfc"><verbal-definition id="_456f7d4e-47ee-df57-221d-1db4751fbf65"><p id="_7f3b2792-56b1-d7ad-1912-db2a8be395d2">act of constraining one or more <concept><refterm>authorization scope dimension</refterm><renderterm>scope dimensions</renderterm><xref target="term-authorization-scope-dimension"/></concept> when delegating from a parent <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> to a child, such that the child’s  <concept><refterm>authorization scope</refterm><renderterm>authorization scope</renderterm><xref target="term-authorization-scope"/></concept> is a subset of the parent’s scope on every dimension</p></verbal-definition></definition>
 </term>

<term id="_5e0d0e5c-249c-3b00-a4b4-f6f8b7445cc4" anchor="term-authorization-scope-condition"><preferred><expression>
<name>authorization scope condition</name>
</expression>
</preferred><admitted><expression>
<name>scope condition</name>
</expression>
</admitted>



<definition id="_8fb986fa-8f8f-eb0e-2e09-71644bdf971a"><verbal-definition id="_1cb26cdb-05f7-1d5e-da60-74e49683aafd"><p id="_7ea7ae61-b5d5-e948-2673-ec1b73ce137a">executable predicate included in an <concept><refterm>authorization scope</refterm><renderterm>authorization scope</renderterm><xref target="term-authorization-scope"/></concept>, evaluated at verification time against the content and context of a  <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept></p></verbal-definition></definition>


 <termnote id="_2a0d159b-afd5-da6f-fb3e-4092cad8c6ae"><p id="_8d5d126b-3a15-4792-c69e-dc2d1ce0ea12">An authorization scope condition may assert, for example, that a measured value falls within a tolerance, that a certification is valid at the signature time, or that a compliance status holds. An artifact signed by a key whose scope conditions are not met fails verification.</p>
</termnote></term>

<term id="_49251dd0-2651-9c66-5050-babd12a29d85" anchor="term-monotonic-narrowing-invariant"><preferred><expression>
<name>monotonic narrowing invariant</name>
</expression>
</preferred>
<definition id="_5b66dc08-8d4e-0bf7-c6e1-ac859b50852f"><verbal-definition id="_235bb9a2-ecc4-0ab7-f32d-caace05d0124"><p id="_fcfb009a-de90-3346-dba2-215d150b7bd7">property of a delegation chain whereby the child <concept><refterm>authorization scope</refterm><renderterm>authorization scope</renderterm><xref target="term-authorization-scope"/></concept> is a subset of (or equal to) the parent scope on every  <concept><refterm>authorization scope dimension</refterm><renderterm>scope dimension</renderterm><xref target="term-authorization-scope-dimension"/></concept> at every delegation link</p></verbal-definition></definition>


 <termnote id="_ba8560f5-34a9-e9eb-3f73-ba9b9d1531d6"><p id="_dcc3f9ed-c1d2-b098-3b9e-a7d6c356f8ee">Widening any dimension at any delegation link constitutes a hard verification failure.</p>
</termnote></term>
</terms>

<terms id="_e07409b6-3589-6b7f-9f3b-c9caa85abb11" obligation="normative">
<title id="_c55db67f-aeee-708c-31c3-bb82a575f1fb">Signing</title>
<term id="_f777ab08-1f52-d8db-2b08-ec83b472411d" anchor="term-threshold-signing"><preferred><expression>
<name>threshold signing</name>
</expression>
</preferred>
<definition id="_3d18aed0-ce4c-c35b-6dcc-3fe619ff71b2"><verbal-definition id="_1ce7a964-6423-cb9b-2ff3-ae92d36a7650"><p id="_f84c2a0b-9cc4-7cb5-b62c-4f2ba3b4a9d1">cryptographic protocol in which at least T of N designated key holders cooperate to produce a single aggregate signature under the group’s <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept>, without any individual holder possessing the full signing capability</p></verbal-definition></definition>
 </term>

<term id="_95d7c1dc-6096-c2b3-47b9-f8e72e9eeb52" anchor="term-ceremony"><preferred><expression>
<name>ceremony</name>
</expression>
</preferred><admitted><expression>
<name>signing ceremony</name>
</expression>
</admitted>



<definition id="_09e2fdbc-7789-372e-770d-f23e08d9549c"><verbal-definition id="_9d9d4ccf-7909-4ec4-4b8c-dfdfc5cf8082"><p id="_6b271b06-0ef4-8a82-c3e6-cf908679205f">protocol by which a <concept><refterm>quorum</refterm><renderterm>quorum</renderterm><xref target="term-quorum"/></concept> of key holders cooperates to produce a <concept><refterm>threshold signing</refterm><renderterm>threshold signing</renderterm><xref target="term-threshold-signing"/></concept> signature, including the procedural, logistical, and cryptographic steps</p></verbal-definition></definition>


 <termnote id="_98550fed-b35d-a04c-cbfe-11c27308f2af"><p id="_a81fcfc4-db76-bbfd-eced-dae1650e915f">A ceremony record is a verifiable transcript of the ceremony (see <xref target="ceremony-records"/>).</p>
</termnote></term>

<term id="_f459983e-b73c-1b6f-4203-3d41b795b81d" anchor="term-co-signature"><preferred><expression>
<name>co-signature</name>
</expression>
</preferred>
<definition id="_e850a6a8-124f-b3a5-27a2-ed309133b4b0"><verbal-definition id="_225d11d6-9f82-717e-c936-720294b85e3c"><p id="_7b839918-b070-ab45-4275-53fcee928959">signature on the same <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept> of a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept>, produced by a signer from an independent  <concept><refterm>trust dimension</refterm><renderterm>trust dimension</renderterm><xref target="term-trust-dimension"/></concept> or an independent <concept><refterm>trust chain</refterm><renderterm>trust chain</renderterm><xref target="term-trust-chain"/></concept></p></verbal-definition></definition>


 <termnote id="_b087a518-22b8-3e25-7abf-924b9e6c1aed"><p id="_10cee6e1-9d88-73b3-35bd-b6af982f4859">Co-signatures are distinguished from a composite signature in that each co-signature attests the payload independently, whereas a composite signature combines two algorithms into a single signature.</p>
</termnote></term>

<term id="_b343ee31-98e6-768f-ad09-ed6ae29da873" anchor="term-composite-signature"><preferred><expression>
<name>composite signature</name>
</expression>
</preferred>
<definition id="_ef00147c-2233-a43a-ac0d-49d5a04c3147"><verbal-definition id="_4a1dce37-a81e-6608-4729-70eca399030d"><p id="_1109a8a2-20b6-69de-3382-af09560c7f33">single signature produced by the AND-composition of two or more signature algorithms over the same  <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept></p></verbal-definition></definition>


 <termnote id="_5fd958e7-2673-9c3b-26a0-021b19904657"><p id="_8eddc6f4-cd41-bba8-066d-f1ad76d5afb6">Composite signatures provide transition security during post-quantum migration (see  <xref target="algorithm-agility"/>).</p>
</termnote></term>
</terms>

<terms id="_61955ea7-4215-a099-fe0f-748867e4c235" obligation="normative">
<title id="_fdc2ffe8-52fc-a2e4-d712-66bfd67c9f03">Trust lifecycle</title>
<term id="_37fdf2ed-f9a5-217b-71de-a815cc997fb9" anchor="term-trust-repudiation"><preferred><expression>
<name>trust repudiation</name>
</expression>
</preferred><admitted><expression>
<name>repudiation</name>
</expression>
</admitted>



<definition id="_24357aee-52b6-6ab7-513d-7bf6ad6ad38f"><verbal-definition id="_a7178611-ba51-8f6d-3d79-e3028011f1d9"><p id="_d894b6b4-aaf5-7dad-904f-7630e8b65986">formal revocation of previously-granted trust, executed by authorized parties through threshold-gated revocation mechanisms, in response to key compromise, scope violation, or fraud</p></verbal-definition></definition>


 <termnote id="_f4562c92-fba7-51f9-ba92-57f0e673c09e"><p id="_d0ecfe6c-f8aa-e1f8-c554-7c14dcd7631d">Trust repudiation is a defining property of the SIGNATIF framework. Trust is treated as a lifecycle with a defined termination, not as a permanent state. This contrasts with traditional PKI, which assumes trust persists once granted. Repudiation propagates to all  <concept><refterm>trusted artifact</refterm><renderterm>trusted artifacts</renderterm><xref target="term-trusted-artifact"/></concept> transitively bound to the revoked state (see  <xref target="revocation-propagation"/> and <xref target="revocation-condition-withdrawal"/>).</p>
</termnote></term>
</terms>

<terms id="_986cd16e-d6e7-b9a5-8a0c-fdf8b0e66e1a" obligation="normative">
<title id="_242ee6bb-5cc3-3d29-2d4e-d87205a3b25b">Trust dimensions</title>
<term id="_3269b570-03eb-fdda-52f1-167d1b805d8d" anchor="term-trust-dimension"><preferred><expression>
<name>trust dimension</name>
</expression>
</preferred>
<definition id="_bc6f5acf-84cd-736b-a057-d9764915150c"><verbal-definition id="_0981a458-1c9c-d1a6-0f42-505582fe0fff"><p id="_32f36a2f-b11e-f377-802b-789b634754a2">independently verifiable aspect of reality attested by a <concept><refterm>co-signature</refterm><renderterm>co-signature</renderterm><xref target="term-co-signature"/></concept> on a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept></p></verbal-definition></definition>


 <termnote id="_50370797-53c3-6d47-26c7-5c7f6ebc16d9"><p id="_895abbd4-3058-5ebb-121c-bf4c676f2141">Trust dimensions include, non-exhaustively: data (the primary signature), person (operator attestation), time, location, environment, authorization, identity, and oracle. Each dimension is backed by its own trust tree.</p>
</termnote></term>

<term id="_0bbe1f46-456b-6ba9-4e1c-a4ea078d3e4d" anchor="term-dimension-attestation"><preferred><expression>
<name>dimension attestation</name>
</expression>
</preferred>
<definition id="_54a08d41-8d98-2c3a-8e66-dfa48ef2900d"><verbal-definition id="_68742ca4-d5ce-f24d-caf7-b0cfa6cd845a"><p id="_937c4239-8d0d-b7e8-ddbf-12c58be5d959"><concept><refterm>co-signature</refterm><renderterm>co-signature</renderterm><xref target="term-co-signature"/></concept> tagged with a <concept><refterm>trust dimension</refterm><renderterm>trust dimension</renderterm><xref target="term-trust-dimension"/></concept> type, attesting the <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept> from the perspective of that dimension</p></verbal-definition></definition>
 </term>

<term id="_d7981898-7f15-c37f-7c9f-8e47e51e692c" anchor="term-dimension-convergence"><preferred><expression>
<name>dimension convergence</name>
</expression>
</preferred>
<definition id="_dc149ff4-d599-046b-5bdc-35031d9ee052"><verbal-definition id="_1d004a1c-b2c7-bc80-79e5-de0fac415cea"><p id="_31ce9433-6d49-e62c-cd70-40c1f5ef56f8">property of a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> on which multiple <concept><refterm>trust dimension</refterm><renderterm>trust dimensions</renderterm><xref target="term-trust-dimension"/></concept> have attested, each independently verifiable</p></verbal-definition></definition>


 <termnote id="_2ddaf060-8572-948d-fe8b-aa2b3ac7b3ab"><p id="_f83fc179-d285-092f-e250-34235b7e0ee7">Dimension convergence is the mechanism by which the artifact becomes a convergence point of independent attestations rather than a single-authority assertion.</p>
</termnote></term>

<term id="_1fe890d8-8a31-b383-cfbd-95e89275261f" anchor="term-time-key"><preferred><expression>
<name>time key</name>
</expression>
</preferred>
<definition id="_4e8e9ca2-b714-61a8-13b0-bf4a5e63da2b"><verbal-definition id="_fdbe0cd5-e3f6-b266-4aa3-c2f8074505b3"><p id="_6c0ed30d-39d4-e23d-56a9-e3a30cdb7783">signing key representing a time authority, used to produce a <concept><refterm>dimension attestation</refterm><renderterm>dimension attestation</renderterm><xref target="term-dimension-attestation"/></concept> of type time</p></verbal-definition></definition>
 </term>
</terms>

<terms id="_d5c4869d-082f-04ad-cb82-ac0b6fa0745f" obligation="normative">
<title id="_37647309-f582-cb35-8ac4-d22aa1155307">Verification</title>
<term id="_037ab69b-cdfd-a643-2380-12c6534b4d24" anchor="term-trust-anchor"><preferred><expression>
<name>trust anchor</name>
</expression>
</preferred><admitted><expression>
<name>root anchor</name>
</expression>
</admitted>



<definition id="_c13297e1-d808-7571-b0a5-c048c4d913b4"><verbal-definition id="_5a25bd59-29e4-a619-be09-c30e97afd1fa"><p id="_7bb596af-fc6c-4064-5480-9000127bc49b">public key of a <concept><refterm>root trust authority</refterm><renderterm>root trust authority</renderterm><xref target="term-root-trust-authority"/></concept> that a verifier accepts as the starting point for verification paths in the  <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept></p></verbal-definition></definition>


 <termnote id="_436cbb40-bf1a-4f40-5c1e-e1dae036a577"><p id="_7a7fbe69-a491-1278-5f59-faab1876d9ed">A trust anchor is configured out-of-band in the <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept>. Consistent with  <eref type="inline" bibitemid="rfc4949" citeas="IETF RFC 4949"/>, a trust anchor is trusted because it is directly provisioned, not because it is cryptographically proven.</p>
</termnote></term>

<term id="_72df20b2-c5de-eb9d-080c-747c66fa80d3" anchor="term-trust-anchor-bundle"><preferred><expression>
<name>trust anchor bundle</name>
</expression>
</preferred>
<definition id="_efed36fb-e09f-4f27-a0c6-909897e522bb"><verbal-definition id="_48d94183-1c8e-d9e4-6412-85c8c68b7525"><p id="_404633ad-e91c-bed0-42d3-dbc2095ce890">self-contained set of <concept><refterm>trust anchor</refterm><renderterm>trust anchors</renderterm><xref target="term-trust-anchor"/></concept> (root <concept><refterm>aggregate key</refterm><renderterm>aggregate keys</renderterm><xref target="term-aggregate-key"/></concept> or their fingerprints) sufficient for offline verification of any  <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> within the bundle’s recognized scope</p></verbal-definition></definition>


 <termnote id="_246d91d8-f6c4-2e15-d1e0-69c10125553e"><p id="_c021215b-f02b-4243-a201-9a9a00951a4b">A trust anchor bundle is the starting point for all verification paths in the  <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept>.</p>
</termnote></term>

<term id="_da05a651-825a-088b-6c1c-380a4c9db0b8" anchor="term-verification-pipeline"><preferred><expression>
<name>verification pipeline</name>
</expression>
</preferred>
<definition id="_88fbc15e-8e0f-8891-5292-7811aab5515f"><verbal-definition id="_e781827e-09ad-a99d-bf23-c2df4b1dd0d8"><p id="_d42ee4bb-7876-6b60-3a9f-3dfc4a7c9a03">ordered sequence of checks applied to a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept>, including signature validation,  <concept><refterm>trust chain</refterm><renderterm>trust chain</renderterm><xref target="term-trust-chain"/></concept> or <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept> path-finding, <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> enforcement, <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept> inclusion proof, revocation status, coverage report production, and classification policy application</p></verbal-definition></definition>
 </term>

<term id="_b8b71aa3-9223-a0e1-6f69-3ba092a4c6fa" anchor="term-classification-label"><preferred><expression>
<name>classification label</name>
</expression>
</preferred><admitted><expression>
<name>grade label</name>
</expression>
</admitted>



<definition id="_90abd32c-9233-c9b0-220e-6b1d383055a2"><verbal-definition id="_74422d5f-f977-f97a-65d5-a894b33cbd3f"><p id="_8c99ab55-76c3-f165-027f-ca5ff4028e16">scheme-defined label assigned to a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> by applying the classification policy to the coverage report, reflecting the artifact’s <concept><refterm>dimensional coverage</refterm><renderterm>dimensional coverage</renderterm><xref target="term-dimensional-coverage"/></concept>, <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> validity, transparency inclusion, and revocation status</p></verbal-definition></definition>


 <termnote id="_a0541f49-8b55-f068-2d56-44c62f1536a0"><p id="_7badfc2e-b1b8-fded-cbb3-61c33c11df68">The classification label enables risk-based verification policy: a verifier may accept a lower label for low-stakes artifacts while requiring a higher label for high-stakes ones.</p>
</termnote></term>

<term id="_dad83818-b5ed-650c-f3a3-96112c3cc9a2" anchor="term-dimensional-coverage"><preferred><expression>
<name>dimensional coverage</name>
</expression>
</preferred>
<definition id="_2b734cc7-d07b-5a88-1a71-b2e90a334a47"><verbal-definition id="_eab3458a-4509-5c09-d5c1-183a756567c3"><p id="_f41a7443-67f8-cb11-dbfa-b5327f112703">set of verified <concept><refterm>trust dimension</refterm><renderterm>trust dimensions</renderterm><xref target="term-trust-dimension"/></concept> attested on a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept>, recorded in the coverage report as input to the classification policy</p></verbal-definition></definition>
 </term>

<term id="_a86bfe38-dfbb-10f1-9d3d-e5ef7ecd62a4" anchor="term-inclusion-proof"><preferred><expression>
<name>inclusion proof</name>
</expression>
</preferred>
<definition id="_265051f0-c7d2-b2c2-4b20-a8f642c05d8f"><verbal-definition id="_a051e7ec-5c45-b1fc-3238-d0d2504bfb60"><p id="_64ab3879-4ab0-5fd5-7fe0-c5bda9738a12">cryptographic proof (typically a Merkle audit path) that a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> or its <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> is included in a <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept></p></verbal-definition></definition>
 </term>
</terms>

<terms id="_18ebe08d-08f9-0830-382a-5b9d8ed36dd3" obligation="normative">
<title id="_3291b628-43c0-4c7d-ab70-4151c9b800ec">Transparency</title>
<term id="_2afb946b-90cf-7121-55b0-0282c3aa2005" anchor="term-transparency-log"><preferred><expression>
<name>transparency log</name>
</expression>
</preferred>
<definition id="_c18518ca-e91e-924f-667b-c1cdb445efb7"><verbal-definition id="_d4ac723e-fc8a-912e-d252-f61322456f96"><p id="_25e73710-1cb7-cf02-4e60-0e4db813ce4c">append-only, cryptographically verifiable log (typically a Merkle tree) that records all issued  <concept><refterm>end certificate</refterm><renderterm>end certificates</renderterm><xref target="term-end-certificate"/></concept> and <concept><refterm>trusted artifact</refterm><renderterm>trusted artifacts</renderterm><xref target="term-trusted-artifact"/></concept> for public audit</p></verbal-definition></definition>
 </term>

<term id="_23002498-e24c-f4e5-5762-951b3d2e162e" anchor="term-mirror"><preferred><expression>
<name>mirror</name>
</expression>
</preferred><admitted><expression>
<name>log mirror</name>
</expression>
</admitted>



<definition id="_86cdffa1-7eec-86e6-d02a-7bec7f3589dd"><verbal-definition id="_98ac23ca-6db6-04d7-5047-62e4fbab7e34"><p id="_ea0a60e5-eca9-e299-427a-4748fda38549">independent operator that replicates a <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept> and serves inclusion proofs and log entries to verifiers</p></verbal-definition></definition>


 <termnote id="_efb19ee9-2e3c-6f9a-9609-d1f9c36fe89a"><p id="_575e0913-a54c-ba1c-ecc9-9d952b73a484">Mirrors detect log misbehaviour through <concept><refterm>gossip</refterm><renderterm>gossip</renderterm><xref target="term-gossip"/></concept> with other mirrors and with the primary log operator.</p>
</termnote></term>

<term id="_0f1d144d-c9c9-3bd3-ef4a-d6a5ee6b8bba" anchor="term-gossip"><preferred><expression>
<name>gossip</name>
</expression>
</preferred>
<definition id="_24321db6-a3cc-27dc-2c03-c7d092bfca3a"><verbal-definition id="_843647fe-586c-6c4e-5dc2-76e3aa981c73"><p id="_a688ef8e-c5a3-338d-1c8e-364d59bf0de4">protocol by which independent <concept><refterm>mirror</refterm><renderterm>mirrors</renderterm><xref target="term-mirror"/></concept> and verifiers cross-check their views of a  <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept> by comparing fingerprints of log state</p></verbal-definition></definition>
 </term>

<term id="_36840f8d-f1fa-f0d1-b175-211c6945421d" anchor="term-multi-log-attestation"><preferred><expression>
<name>multi-log attestation</name>
</expression>
</preferred>
<definition id="_bc380222-2fd8-17c9-7896-9a192b101c80"><verbal-definition id="_fd65b4b9-ea1c-7082-2f1f-e58fa2e789f7"><p id="_389fc5c0-77e2-bb36-7695-3d81d967e921">attestation model in which a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> or <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> is included in at least M of K independent  <concept><refterm>transparency log</refterm><renderterm>transparency logs</renderterm><xref target="term-transparency-log"/></concept>, where M and K are specified by the issuing authority’s policy</p></verbal-definition></definition>
 </term>
</terms>

<terms id="_8db00da6-10ab-9d15-8bfb-d2137181401c" obligation="normative">
<title id="_735526c9-9373-1055-d450-d371f151d37f">Machine-readable projection</title>
<term id="_8a50a32d-8b8c-b966-eca4-3fc22ec791de" anchor="term-passport"><preferred><expression>
<name>passport</name>
</expression>
</preferred>
<definition id="_911c09b5-5aa1-4c85-4841-3688393924ce"><verbal-definition id="_7ab871a3-afe8-94f7-cff8-dd03da5378c2"><p id="_46cd9adf-8333-cedf-6201-5eb24373a1f4">machine-readable public projection of an <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> or <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept>, optimized for compact storage and rapid presentation (for example, via a two-dimensional barcode)</p></verbal-definition></definition>


 <termnote id="_de2c60dd-b8fe-31af-fc7b-9269b8932e56"><p id="_426c861d-ddca-0b74-61fb-431348c83d6d">A passport is a presentation format, not a separate trust object. The underlying certificate or artifact remains the authoritative source.</p>
</termnote></term>
</terms>

<definitions id="_79f95ee8-fdbf-6725-53c5-d1f4ffbdc553" type="abbreviated_terms" obligation="normative">
<title id="_c60b5ae8-7884-2a97-a828-9eb8a9843c40">Abbreviated terms</title>
<p id="_7881a6bc-f3ce-d99d-5822-42322fed492d">The abbreviated terms are given in <xref target="tab-abbreviations"/>. Where an abbreviation is a defined term of a published standard, the meaning follows that standard.</p>

<table id="_4593f360-c81a-640d-23e2-0fca55e5c411" anchor="tab-abbreviations"><colgroup><col width="25%"/><col width="75%"/></colgroup>
<name id="_126fc223-bd6d-af6b-7a67-7bb3b17465b2">Abbreviated terms</name>
<thead><tr id="_961e37a1-2069-47b5-df32-2328c80abde3"><th id="_cb5f14c7-2eb4-2464-c918-66fcb7547736" valign="top" align="left">Abbreviation</th>
<th id="_958eecf2-fb5f-4ff5-6997-bab7df1bff59" valign="top" align="left">Meaning</th>
</tr></thead>
<tbody><tr id="_774446d0-69b0-6119-f5e3-c10485a25bf6"><td id="_0785b652-17d6-1d3a-6313-0fec269d8853" valign="top" align="left">SIGNATIF</td>
<td id="_a1b2085b-bb1e-3c65-9cc4-140a8204ae78" valign="top" align="left">Sealed Interoperable Graduated Non-repudiable Anchored Trust Infrastructure Framework</td>
</tr><tr id="_875917bd-0e5d-579a-3244-b01ce9a4ef8f"><td id="_cffc07d4-74b8-d30f-b274-340bac368cf5" valign="top" align="left">CA</td>
<td id="_ee94f8d6-0bea-018e-b382-e81cce5bc23e" valign="top" align="left">certification authority (ISO/IEC 9594-8)</td>
</tr><tr id="_be64c372-d890-2835-672e-0f3d2ae8bdb6"><td id="_b99d6606-9d38-5f4a-e0da-7d1c0d2abc8b" valign="top" align="left">CBOR</td>
<td id="_826c3561-bd7e-80fd-9e6e-bb8f5e0afba5" valign="top" align="left">Concise Binary Object Representation (RFC 8949)</td>
</tr><tr id="_0fd69ea0-cb4b-f000-b51b-24f0980ef9aa"><td id="_538d2009-d5aa-66d0-f95a-14b5005a66c8" valign="top" align="left">COSE</td>
<td id="_7a68f93a-ec06-6dc2-e317-b2746021ba7b" valign="top" align="left">CBOR Object Signing and Encryption</td>
</tr><tr id="_0d379799-1015-f4b8-b497-143a3596b319"><td id="_db81713c-51e5-12b7-dae2-95d2ca2a1ccd" valign="top" align="left">CRL</td>
<td id="_49805153-0497-9295-f13d-8c4230ce6e8d" valign="top" align="left">certificate revocation list</td>
</tr><tr id="_babdda6b-3a7a-c233-d5b2-bc5f0b71823e"><td id="_0d35f2a8-d5fc-a3a5-7f3f-b07f5e7a0775" valign="top" align="left">CSR</td>
<td id="_669f4d90-1742-070b-06c4-e301c6860021" valign="top" align="left">certification request (PKCS #10)</td>
</tr><tr id="_d8235951-ae6b-63c7-ac4d-a85ab70cd9c6"><td id="_a2d24999-6084-3756-1301-7030b88f00ef" valign="top" align="left">CT</td>
<td id="_045df51a-2961-f299-dc79-9dc992cae105" valign="top" align="left">certificate transparency</td>
</tr><tr id="_d6b00b5b-67f5-fadc-1425-813aa1268d4e"><td id="_87c02e0b-43b3-ff63-bd94-5820aab59bfb" valign="top" align="left">DAG</td>
<td id="_c28459dc-96ad-6e1c-a113-2e0538d61194" valign="top" align="left">directed acyclic graph</td>
</tr><tr id="_873fbbbc-f0ad-a973-4662-feee05f6be63"><td id="_c2fb10c2-0f6c-3984-88f4-488e56fe9509" valign="top" align="left">DPP</td>
<td id="_76444002-cadb-a95b-67b8-095fbb3541e9" valign="top" align="left">digital product passport</td>
</tr><tr id="_59c9de6f-900d-552c-47b2-09c2fbd371e1"><td id="_9fddddd2-9d39-947b-430d-9fb68f40f678" valign="top" align="left">DTA</td>
<td id="_bdc8a574-3ce1-5c7a-1e59-816b0b9b93ac" valign="top" align="left">delegated trust authority</td>
</tr><tr id="_4cda85fd-b988-62b1-af92-13fe209c729a"><td id="_039dc789-956f-af40-a954-7e75d0b5bcc4" valign="top" align="left">ETSI</td>
<td id="_9cf0943a-3c6a-096c-dd6b-c50329bb796a" valign="top" align="left">European Telecommunications Standards Institute</td>
</tr><tr id="_8b35ee53-779b-51aa-c1a1-ed50dab6d9ef"><td id="_c6648fbd-f0cd-ab78-7c7c-e47b70b46a2a" valign="top" align="left">FTA</td>
<td id="_fd2ae83f-caeb-5eca-c4a3-0df0e4758c65" valign="top" align="left">federated trust authority</td>
</tr><tr id="_9bfc5c5d-404f-7ae1-928b-fbb3fbaaa26e"><td id="_652336c7-8fc1-ab89-ba11-fcfc4975bf54" valign="top" align="left">JCS</td>
<td id="_71a30e50-5f4a-c766-9ca6-25ce7c74545d" valign="top" align="left">JSON Canonicalization Scheme (RFC 8785)</td>
</tr><tr id="_f535a73d-f0ca-8efd-5804-ec60505b3187"><td id="_e12ed88d-b65d-e279-8e8c-80d7297126fa" valign="top" align="left">JSON</td>
<td id="_322e904a-d298-a60c-5fb8-3d7d6c683753" valign="top" align="left">JavaScript Object Notation (ISO/IEC 21778)</td>
</tr><tr id="_c5267d02-d096-4dfe-e014-d80ab7466353"><td id="_3cccca6b-8b95-dd77-e17d-2380548bf3e2" valign="top" align="left">JWS</td>
<td id="_f7babe33-ce5b-2dfd-e3d2-d64b5854c02f" valign="top" align="left">JSON Web Signature</td>
</tr><tr id="_a7899a98-55c8-9328-a981-6bacd0037689"><td id="_819ab1c3-2fdf-c3d3-790c-2100f4425cfd" valign="top" align="left">ML-DSA</td>
<td id="_70684a2b-48a3-2df9-d2b4-6e57a0042436" valign="top" align="left">Module-Lattice-Based Digital Signature Algorithm</td>
</tr><tr id="_c8bb1904-22f3-c82b-a1bc-a23283a83a19"><td id="_53029528-d8d7-0747-d045-f841a3070c90" valign="top" align="left">MTI</td>
<td id="_51a7c46c-4420-73b5-03ea-1e3ff89ebb23" valign="top" align="left">mandatory to implement</td>
</tr><tr id="_0c5a251c-9af7-8b61-1e09-1ea678a2b3df"><td id="_451ade39-f415-1f69-1a5a-f2bdd6a5b883" valign="top" align="left">OCSP</td>
<td id="_791c8196-9fb1-bcdf-b655-12d326965a07" valign="top" align="left">online certificate status protocol (ISO/IEC 27099)</td>
</tr><tr id="_56403c4f-0414-e43f-31d5-be0ec4201798"><td id="_8fab6d5b-a0d0-1b59-07e4-f80223ac3dc4" valign="top" align="left">OIML</td>
<td id="_152d95b2-f20e-d975-f1de-89a521c24f88" valign="top" align="left">International Organization of Legal Metrology</td>
</tr><tr id="_a1d97b02-968f-93a4-4dfa-c50ef1236069"><td id="_a6b2d2bd-afee-dd71-7f2a-7717ec3ab5b2" valign="top" align="left">PKCS</td>
<td id="_8425af1a-3bb4-8dfd-e2d8-b87e75b02574" valign="top" align="left">Public-Key Cryptography Standards</td>
</tr><tr id="_b568b31a-6290-dbaa-047b-bd0bac02f8c7"><td id="_b8ae00eb-2fb1-c627-d42b-4816d57cc05a" valign="top" align="left">PKI</td>
<td id="_00a9035c-5214-91e5-4937-cb4c9e1c0a35" valign="top" align="left">public key infrastructure</td>
</tr><tr id="_e77062b7-5256-cc94-ef00-9875caa98af3"><td id="_91cc4380-df2d-1288-3de6-4b87881cd685" valign="top" align="left">PQ</td>
<td id="_3ca4b084-d0f0-5e5f-8bec-98e56a505784" valign="top" align="left">post-quantum</td>
</tr><tr id="_83b90da3-9242-aaf4-0bc2-9448cf8c4563"><td id="_14f56686-69ea-f279-691d-7614912b7691" valign="top" align="left">RTA</td>
<td id="_28687090-2d67-1ea7-9b5c-f933fa991269" valign="top" align="left">root trust authority</td>
</tr><tr id="_c24c493c-2292-3a9d-2295-2934ed2391bb"><td id="_3e534a1b-42d7-a86e-1f84-d729a06e0ac6" valign="top" align="left">SLH-DSA</td>
<td id="_b2839864-0ad9-35cc-971c-6cb501b8df80" valign="top" align="left">Stateless Hash-Based Digital Signature Algorithm</td>
</tr><tr id="_157399d7-2b43-1ee8-4538-ca966959945c"><td id="_e217cc15-db8e-17ca-5fba-96e450ea0c99" valign="top" align="left">SPKI</td>
<td id="_aa24a2bf-25ce-e3ab-95a4-201206ca8c26" valign="top" align="left">subject public key info</td>
</tr><tr id="_c5506ab6-9ae4-c9e8-5e75-e4cdb6f7322e"><td id="_ca06e04c-d473-6cac-07a1-b1a35a923412" valign="top" align="left">TLS</td>
<td id="_7528b1f7-0c09-7b91-da22-0e6d2364cebc" valign="top" align="left">transport layer security</td>
</tr><tr id="_5f117527-fb2c-02e3-4bc3-6788af2a864b"><td id="_8b48d848-6519-8658-758b-7274c213d39b" valign="top" align="left">URI</td>
<td id="_796a0623-ce49-aa04-f208-42fe83dbdbe1" valign="top" align="left">uniform resource identifier (ISO 5127)</td>
</tr><tr id="_4db25205-78e0-babd-4ef6-10b7ea635449"><td id="_92a9c170-e0e0-658e-ade3-7ac438baa09f" valign="top" align="left">VC</td>
<td id="_d02be591-8919-9bd3-96f2-39dfb925a0b5" valign="top" align="left">verifiable credential</td>
</tr><tr id="_ce3fe946-ab31-ac44-8984-1f8eb38d49a2"><td id="_59b6ee19-94c9-05b3-e65f-ca4dbecd767c" valign="top" align="left">XMLDSig</td>
<td id="_16643bd3-c3a0-6ffa-b61a-06fe56410263" valign="top" align="left">XML Signature</td>
</tr></tbody>
</table>
</definitions></terms>

<clause id="_7bedf757-a6ca-d58b-0b1b-fa5dfb43e1c1" anchor="conventions" inline-header="false" obligation="normative">
<title id="_5689945d-6883-fb43-5438-4e83ce66b05a">Conventions and notation</title>
<clause id="_69e68605-d86b-8160-a8e8-40f7e2d86d42" inline-header="false" obligation="normative">
<title id="_33246294-1b2c-2dd8-660d-2f40a444e139">Requirements language</title>
<p id="_51900cc1-262f-8de8-bca8-6b28abb6d3e9">The verbal forms used in this document conform to the ISO/IEC Directives, Part 2. In particular:</p>

<ul id="_671da9e3-278e-737e-fb32-9246826c7971"><li><p id="_95048a02-32b7-d5d2-019a-15360c6882db">“shall” indicates a requirement strictly to be followed in order to conform to the document;</p>
</li>
<li><p id="_07b9818d-c3e9-e3bc-21df-b016decc27b1">“should” indicates that among several possibilities one is recommended as particularly suitable, without mentioning or excluding others;</p>
</li>
<li><p id="_b9600066-6cfa-f573-a9d4-3edaeba5767d">“may” indicates a permissible course of action within the limits of the document;</p>
</li>
<li><p id="_606dd434-4bf8-b4ec-707f-03f0829a29ea">“can” indicates a possibility and capability that can be known to the user.</p>
</li>
</ul>
</clause>

<clause id="_6e48dac1-c59d-b795-b952-bec6ba03e8f3" inline-header="false" obligation="normative">
<title id="_266d49ba-0857-628f-7ab6-cbf34b02583d">Notation</title>
<p id="_fb9b9a7b-d2b2-b680-9bc5-e4242d9d791c">The following notation is used throughout this document. The notation is summarized in <xref target="tab-notation"/>.</p>

<table id="_5c086961-313c-a106-8b0c-4410f81e835b" anchor="tab-notation"><colgroup><col width="25%"/><col width="75%"/></colgroup>
<name id="_dd19866d-2283-371d-9be8-73626d64e94f">Notation used in this document</name>
<thead><tr id="_596dfa2a-427e-45ba-c2b8-2952c28ef620"><th id="_be371fd0-db0c-eed9-39d7-782f1a0cda45" valign="top" align="left">Notation</th>
<th id="_fff8d8c2-ec34-d524-4565-773d640319e9" valign="top" align="left">Meaning</th>
</tr></thead>
<tbody><tr id="_1ea55b7a-4cc5-6c23-8e84-d0a4eda0ca12"><td id="_0c730a0f-046a-54ea-885d-77fcee11da82" valign="top" align="left"><tt>(T, N)</tt></td>
<td id="_d62c0d36-8ab9-74f8-a5f6-3adbaf1c2af6" valign="top" align="left">Quorum: at least <tt>T</tt> of <tt>N</tt> members shall cooperate</td>
</tr></tbody>
</table>
</clause>

<clause id="_045b7fa0-1927-c86d-aa02-e756ccdf6b03" inline-header="false" obligation="normative">
<title id="_9a6e5e43-757f-0c26-4155-00afbccb8597">Identifier conventions</title>
<p id="_2d5e1492-1687-89dc-3cb3-bb5c5e674391">Requirements in this document are identified by the path <tt>/req/&lt;class&gt;/&lt;fragment&gt;</tt>. Conformance tests are identified by the path <tt>/conf/&lt;class&gt;/&lt;fragment&gt;</tt> and target the corresponding requirement.</p>

<p id="_4f2de425-42d4-4e81-9a12-96df3cab31a5">Cross-references to terms use the {{term}} syntax. Cross-references to clauses use the  <anchor>&gt; syntax.</anchor></p>
</clause>
</clause>

<clause id="_72a6935c-cef2-31c3-b99d-83d9cf00481c" anchor="principles" inline-header="false" obligation="normative">
<title id="_917796fc-b2b1-af72-ac41-d00732e29e54">Principles</title>
<clause id="_d9052ce5-4362-9738-0087-284f99c044b9" inline-header="false" obligation="normative">
<title id="_0175f76d-716b-304d-d5e0-55b2c2c71130">General</title>
<p id="_ffbefec4-b18a-9fa3-68a8-aa75eb8a0088">The requirements of this document are derived from a set of design principles.
Each principle distinguishes the trust infrastructure specified here from
traditional public key infrastructure (PKI) patterns that were designed for
server-identity authentication and are structurally inadequate for establishing
the trustworthiness of persistent artifacts.<note id="_bda6fa91-31f9-573f-41cc-1d37f0c81e47"><p id="_16237e3c-2838-6d98-cc67-783b0e9a47bf">This clause is motivational. The binding normative requirements derived from these principles are specified in clauses 6 through 19. In case of any apparent conflict, the normative clauses take precedence.</p>
</note></p>



<p id="_ffbda8f7-d81d-3a39-436a-9e6134bf7c25">The name SIGNATIF encodes eight architectural properties. These properties are not merely descriptive — each maps to normative requirements in this document.  <xref target="tab-principles-letters"/> lists the eight properties by letter.</p>

<table id="_b63fbbeb-308e-ae6a-4790-fa4d70023ace" anchor="tab-principles-letters"><colgroup><col width="14.2857%"/><col width="28.5714%"/><col width="57.1429%"/></colgroup>
<name id="_5bd4d0f9-abc6-de87-b967-34c881ab081f">SIGNATIF architectural properties by letter</name>
<thead><tr id="_cbf035c9-a20c-a012-4ae9-8ecc8bbd3a19"><th id="_e658c943-5faf-eefb-9397-adf943f4069b" valign="top" align="left">Letter</th>
<th id="_32179a46-b318-67d0-b6c8-a14d27456ae4" valign="top" align="left">Property</th>
<th id="_a7308539-d486-4e8e-2061-390e613b9be4" valign="top" align="left">Architectural meaning</th>
</tr></thead>
<tbody><tr id="_8d3826fb-8d07-569b-f0ae-f6e4f977ba50"><td id="_60fb618b-f22c-754a-fb5a-d8fa6bed1a40" valign="top" align="left">S</td>
<td id="_97d865ca-d6a6-88ca-48eb-8e6e732c19a6" valign="top" align="left">Sealed</td>
<td id="_57b0526e-9c0b-c5c3-d84d-9e56447870f2" valign="top" align="left">Every <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> is cryptographically sealed: independent <concept><refterm>co-signature</refterm><renderterm>co-signatures</renderterm><xref target="term-co-signature"/></concept> cover the same <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept>, one per <concept><refterm>trust dimension</refterm><renderterm>trust dimension</renderterm><xref target="term-trust-dimension"/></concept> (data, person, time, location, environment, and others defined by the scheme). Convergence of independent attestations, not single-signer authority, establishes trustworthiness. See <xref target="artifact-multi-dimensional"/>.</td>
</tr><tr id="_e52e5786-0872-f532-e058-b79c7480506a"><td id="_54a791bc-d17e-9f86-a214-36a77e1ecaec" valign="top" align="left">I</td>
<td id="_2b8c8711-1662-2159-a080-4dd88710222c" valign="top" align="left">Interoperable</td>
<td id="_29055204-e82d-b87c-bc9c-3f68e10bdcbc" valign="top" align="left">The framework is scheme-independent. One verification pipeline and one coverage-report format serve many application schemes; scheme-specific rules enter through published registries and deployment profiles rather than forked technology. See  <xref target="conformance"/>.</td>
</tr><tr id="_f6957f41-6afb-c211-c8fc-abb0e06be43e"><td id="_6503f489-80f4-f9f5-6fbb-1010be2669dd" valign="top" align="left">G</td>
<td id="_675ef56a-0015-05df-f422-2a349cab0420" valign="top" align="left">Graduated</td>
<td id="_5c3f87e9-d5f4-95f4-0f52-3a0025db9e59" valign="top" align="left">Trustworthiness is graduated, not binary. The verifier produces an objective coverage report of hard and soft check results; the scheme’s classification policy maps it to a  <concept><refterm>classification label</refterm><renderterm>classification label</renderterm><xref target="term-classification-label"/></concept>; the verifier’s acceptance policy turns the label into a decision. See  <xref target="verification-classification"/>.</td>
</tr><tr id="_0fabce63-aa31-b8ee-41b5-0f52ef289307"><td id="_f41c8193-a849-f037-7455-a64d76e31b00" valign="top" align="left">N</td>
<td id="_88a595ec-26e8-58cb-ae02-51f509e767ea" valign="top" align="left">Non-repudiable</td>
<td id="_e1e88dbb-7b13-77aa-ef99-fdfe67b7e044" valign="top" align="left">Issuance is attributable and undeniable. Authority is exercised by threshold quorum and by  <concept><refterm>federated trust authority</refterm><renderterm>federated trust authorities</renderterm><xref target="term-federated-trust-authority"/></concept> spanning organizational boundaries — never by an unaccountable single key — and inclusion in publicly auditable  <concept><refterm>transparency log</refterm><renderterm>transparency logs</renderterm><xref target="term-transparency-log"/></concept> provides third-party evidence of what was issued. After the fact, no participant can credibly deny an attestation made in its name. See  <xref target="threshold-signing"/> and <xref target="transparency"/>.</td>
</tr><tr id="_592d8b79-cabe-9027-0a8a-1b0c5a32bc08"><td id="_513032c0-e3fc-c6ee-d6dd-42d70953a2bc" valign="top" align="left">A</td>
<td id="_0f163906-4473-9762-87f9-8e239400a0be" valign="top" align="left">Anchored</td>
<td id="_6c38708f-3eca-a6f5-e670-258617aaebe6" valign="top" align="left">Signing authority flows through a delegation hierarchy — <concept><refterm>root trust authority</refterm><renderterm>root trust authority</renderterm><xref target="term-root-trust-authority"/></concept> through <concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authorities</renderterm><xref target="term-delegated-trust-authority"/></concept> to  <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> to <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> — with the <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> narrowing monotonically at every link, and every verification path terminating at a root anchor in the  <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept>. Verification requires no phone-home to the issuer and no proprietary component. See <xref target="architecture-authorities"/>, <xref target="scope-monotonic-narrowing"/>, and <xref target="architecture-anchors"/>.</td>
</tr><tr id="_03a7f163-7b27-1c3d-4750-174ba1f6827f"><td id="_0586b747-c85d-eebb-fc94-e3925e22008d" valign="top" align="left">T</td>
<td id="_5b88c8af-d3aa-e49d-5c31-06b4bc5d7641" valign="top" align="left">Trust</td>
<td id="_b6fa8a6e-c048-8fb5-be8f-3f9b4e1f9538" valign="top" align="left">The domain of this document is trust: the establishment, assessment, and withdrawal of confidence in signed artifacts. Trust is graduated — the verifier maps an objective coverage report to a  <concept><refterm>classification label</refterm><renderterm>classification label</renderterm><xref target="term-classification-label"/></concept> — and it is a lifecycle: granted authority can be withdrawn through threshold-gated revocation that propagates to every transitively bound artifact. See  <xref target="verification-classification"/> and <xref target="revocation-propagation"/>.</td>
</tr><tr id="_0f849e29-bff3-3c9e-3bf7-d23be226314c"><td id="_5091d637-8f92-99ab-feaf-11b992908e3d" valign="top" align="left">I, F</td>
<td id="_d3905f91-133d-8bbb-05b1-70ec01758118" valign="top" align="left">Infrastructure, Framework</td>
<td id="_4d413f80-eb72-c31d-f7f3-9568a441b233" valign="top" align="left">SIGNATIF operates at the infrastructure level — shared anchors, logs, and registries independent of any single application — and is a framework, not a product or protocol: it defines requirements that independent implementations conform to, and that domain-specific profiles instantiate. See <xref target="conformance"/>.</td>
</tr></tbody>
</table>

<p id="_fc473acb-3e30-c0d1-d9c6-3facc6f0e27e">The principles are grouped thematically below. Each principle appears in at
least one requirements class defined in <xref target="conformance"/>.<note id="_bf77e021-01a3-9f2f-7364-9598fdb98e16"><p id="_6b822d10-8a3a-c5c0-3dd0-3520560d39f6">These principles distinguish SIGNATIF from traditional PKI patterns optimized for server-identity authentication. They address the persistent- artifact trust problem specifically; they are not criticisms of PKI, which remains the appropriate and mature technology for TLS, code signing under active policy enforcement, and identity binding. See  <xref target="annex-b"/> for use-case suitability guidance.</p>
</note></p>


</clause>

<clause id="_f3f83a31-bff4-1f76-4414-e0576257f01f" inline-header="false" obligation="normative">
<title id="_6fa2f4b1-4510-68d5-c766-e3560b6f9534">Authority and delegation</title>
<clause id="_76ed8f82-c974-6ca1-38d8-bf8b1d0f230d" inline-header="false" obligation="normative">
<title id="_dcfbb46b-6535-ff23-2e1d-d770b034f537">Cryptographic scope enforcement</title>
<p id="_828b1551-c6f5-1d19-8236-c7cb3fe6413d">The <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> of a <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> shall be a first-class signed field, cryptographically enforced at every chain link. Widening any  <concept><refterm>authorization scope dimension</refterm><renderterm>scope dimension</renderterm><xref target="term-authorization-scope-dimension"/></concept> at any delegation point shall cause a hard verification failure. This contrasts with traditional PKI, in which a CA’s scope is defined by external policy (Baseline Requirements) and is not verifiable from the certificate itself.</p>
</clause>

<clause id="_df9aa12a-8723-9d3a-78f6-924b481dbcfb" inline-header="false" obligation="normative">
<title id="_01cb143f-ba40-d514-f753-4e9609e9e69f">Threshold at every level</title>
<p id="_6d236d5e-b5bc-2527-5eb9-4cd5c54ddfc0">A <concept><refterm>quorum</refterm><renderterm>quorum</renderterm><xref target="term-quorum"/></concept> of cooperating key holders shall be required to exercise the signing authority of any  <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept>, including but not limited to the <concept><refterm>root trust authority</refterm><renderterm>root trust authority</renderterm><xref target="term-root-trust-authority"/></concept>. There shall be no single point of cryptographic compromise at any level of the  <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept>.</p>
</clause>

<clause id="_af0eae54-732a-ca2b-19b4-0c4bf7f143bc" inline-header="false" obligation="normative">
<title id="_0eea199f-b91f-4c9a-504a-e8da3cbee17a">Federated trust authorities</title>
<p id="_fc0cc386-18a8-db9d-1c3e-a408e6e1a79d">A <concept><refterm>federated trust authority</refterm><renderterm>federated trust authority</renderterm><xref target="term-federated-trust-authority"/></concept> shall be a threshold group of independent organizations sharing a single  <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept>, such that no single organization controls the authority. This contrasts with traditional PKI bridge CAs, which are single entities.</p>
</clause>

<clause id="_e0b06968-b836-e8ce-ccb2-0d2f00644617" inline-header="false" obligation="normative">
<title id="_6db29ab7-c476-7793-e42f-b2210bec8b52">Topology flexibility</title>
<p id="_6b78dc36-4b7a-61fa-e611-80feb27937ef">The <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept> shall admit hierarchical, federated, cross-recognized, and mesh topologies as first-class conformance profiles. An implementation shall not be required to assume a single-root hierarchy.</p>
</clause>
</clause>

<clause id="_73fbc4ee-c3fe-ade0-0d96-043537fb3354" inline-header="false" obligation="normative">
<title id="_a834cac4-a767-9df2-8408-7845a631a756">Multi-party and multi-dimensional attestation</title>
<clause id="_2bf071f7-9878-97ea-737a-fadfe8d241c0" inline-header="false" obligation="normative">
<title id="_61346c0d-82c2-90e6-147f-d7cfad0857e2">Multi-party co-signed artifacts</title>
<p id="_bbd278aa-7df0-7e3b-d180-e7653669d40b">A <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> shall carry one or more <concept><refterm>co-signature</refterm><renderterm>co-signatures</renderterm><xref target="term-co-signature"/></concept>, each from a different signer, attesting the same  <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept>. The artifact shall be a convergence point of independent attestations rather than a single-authority assertion.</p>
</clause>

<clause id="_c64f73c3-b5d0-38d9-cb01-6ba5858f6052" inline-header="false" obligation="normative">
<title id="_088d077d-23a8-3b49-edab-c6407c46fead">Multi-dimensional reality attestation</title>
<p id="_4f6c391d-ef37-4b63-7f7a-064d4fb695e0">Time, location, and environment shall be cryptographic <concept><refterm>trust dimension</refterm><renderterm>trust dimensions</renderterm><xref target="term-trust-dimension"/></concept>, each backed by its own trust tree and each producing its own <concept><refterm>dimension attestation</refterm><renderterm>dimension attestation</renderterm><xref target="term-dimension-attestation"/></concept>. These dimensions shall not be carried as unsigned metadata.</p>
</clause>

<clause id="_7a940a5b-deb0-ee39-c0c3-e39ff5897a13" inline-header="false" obligation="normative">
<title id="_828f2af1-eb7f-7aaa-93ab-bd5a47407195">Cross-domain trust fusion</title>
<p id="_f065ccd8-4cfb-eb53-dffa-80d5cfb9bab2"><concept><refterm>co-signature</refterm><renderterm>co-signatures</renderterm><xref target="term-co-signature"/></concept> from independent <concept><refterm>trust chain</refterm><renderterm>trust chains</renderterm><xref target="term-trust-chain"/></concept> or independent  <concept><refterm>root trust authority</refterm><renderterm>root trust authorities</renderterm><xref target="term-root-trust-authority"/></concept> shall be carried on the same  <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept>. Cross-domain trust recognition shall occur at the artifact level, not solely at the  <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> level.</p>
</clause>
</clause>

<clause id="_793ea3b6-06f4-6ed4-14c0-ac085cf37c59" inline-header="false" obligation="normative">
<title id="_4f851462-ea56-927d-cfe0-995f258ac373">Scope and binding</title>
<clause id="_17c12a9d-c51f-f6ee-f19b-2c060f73ab88" inline-header="false" obligation="normative">
<title id="_584d8fa4-cbee-15d9-66ac-f88e1bfe2d34">Live scope conditions</title>
<p id="_15c22252-b315-08dc-1201-62612f84a798">A <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> shall include <concept><refterm>authorization scope condition</refterm><renderterm>scope conditions</renderterm><xref target="term-authorization-scope-condition"/></concept> — executable predicates evaluated at verification time against the content and context of the artifact. An artifact signed by a key whose scope conditions are not met shall fail verification, regardless of cryptographic signature validity.</p>
</clause>

<clause id="_b2c0634a-4a1e-b6ff-0114-ef7366e3ae72" inline-header="false" obligation="normative">
<title id="_f20e18a0-6750-37c5-7b9a-b295c3de7789">Revocation propagation</title>
<p id="_3ab20836-9365-1c68-f7e2-8cf6d16da7d1">Revocation of a <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> state shall propagate to every <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> transitively bound to that state, across all <concept><refterm>trust dimension</refterm><renderterm>trust dimensions</renderterm><xref target="term-trust-dimension"/></concept> and all <concept><refterm>trust chain</refterm><renderterm>trust chains</renderterm><xref target="term-trust-chain"/></concept>. A revoked authority’s prior signatures shall not remain valid.</p>
</clause>

<clause id="_c6211309-24c1-41b3-1694-00e89991b312" inline-header="false" obligation="normative">
<title id="_018159d1-7a35-860b-9302-de89d5225365">Challenge-response authenticity</title>
<p id="_2c6e8189-b601-3a2b-4df4-70bd6dba30ca">A verifier shall be able to challenge a device for a fresh <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> bound to a nonce, such that a static copy of a prior artifact cannot satisfy the challenge. Authenticity shall be established by the ability to produce a timely, nonce-bound response, not by possession of a static credential.</p>
</clause>
</clause>

<clause id="_f98c1d03-d8e5-025f-49fb-8decc3008676" inline-header="false" obligation="normative">
<title id="_8e0a7290-52c8-f0c9-cd54-e1839083a0ce">Transparency and time</title>
<clause id="_165543ae-62a3-bb5e-0fdc-d81080d87a68" inline-header="false" obligation="normative">
<title id="_2cfcc6c6-a29d-7f2b-441e-49ed989e4fec">Mandatory transparency</title>
<p id="_75b991b6-b730-5c52-ab8e-e29127868181">Inclusion of every <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> and every <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> in a <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept> shall be a verification requirement. Artifacts not provably included in a recognized log shall be downgraded or rejected.</p>
</clause>

<clause id="_907c475b-fecb-d870-f54b-12730aaa2ff5" inline-header="false" obligation="normative">
<title id="_08e1a65b-6aad-e24d-60fe-f4f56da9a602">Multi-log attestation</title>
<p id="_acbf37b3-c177-2262-6d87-6979a9e18b37">A <concept><refterm>federated trust authority</refterm><renderterm>federated trust authority</renderterm><xref target="term-federated-trust-authority"/></concept> shall require inclusion of its artifacts in at least M of K independent  <concept><refterm>transparency log</refterm><renderterm>transparency logs</renderterm><xref target="term-transparency-log"/></concept>, such that no single log operator controls the record.</p>
</clause>

<clause id="_62239c81-0855-f1a1-9934-7866b8ccadc9" inline-header="false" obligation="normative">
<title id="_bec247d5-495b-d81e-9621-3a959c850693">External time anchoring</title>
<p id="_f51d091a-70ab-01d9-a2ed-0461494d2305">The time of signing shall be established by an independent <concept><refterm>time key</refterm><renderterm>time key</renderterm><xref target="term-time-key"/></concept> or by anchoring to an external, irrefutable time source. The signer’s self-asserted timestamp shall not be the sole evidence of when an artifact was signed.</p>
</clause>
</clause>

<clause id="_3da522ba-2c6f-6763-fdef-6a275062f1f4" inline-header="false" obligation="normative">
<title id="_708d193d-5af0-2041-e451-28f1ebe16f43">Trust assessment</title>
<clause id="_337c2a5b-37e1-ad98-f8bc-a5b57194723b" inline-header="false" obligation="normative">
<title id="_767102af-37c1-c671-e67c-6843090b29da">Graduated trust</title>
<p id="_85fa7925-ccdf-fa1e-f272-bfa8a972541d">The <concept><refterm>classification label</refterm><renderterm>classification label</renderterm><xref target="term-classification-label"/></concept> of a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> shall reflect the depth and breadth of its  <concept><refterm>dimensional coverage</refterm><renderterm>dimensional coverage</renderterm><xref target="term-dimensional-coverage"/></concept>, not merely the binary validity of its primary signature. A verifier shall be able to apply risk-based policy to the classification label.</p>
</clause>
</clause>
</clause>

<clause id="_b49b9aa8-6b79-b360-3223-77228fc51eff" anchor="conformance" inline-header="false" obligation="normative">
<title id="_f724e6f6-7870-0e94-5bc1-704ba1df2d93">Conformance</title>
<clause id="_1e16ff09-2911-8830-7e50-341bd5e37eb2" inline-header="false" obligation="normative">
<title id="_24abdf30-6d12-8734-45d3-cd1948186a03">General</title>
<p id="_a7e3679c-b709-ff57-d8f7-79d8c6b3e598">This document defines requirements for multiple roles within the trust infrastructure: verifiers, issuing authorities, root authorities, transparency operators, and device signers. Requirements are grouped into requirements classes, each addressing a specific capability.</p>

<p id="_c0219228-739c-78e9-3c24-2666a068f772">A conforming implementation may claim conformance to one or more requirements classes, depending on the role it performs. Requirements classes are designed to be modular: an implementation that serves only as an offline verifier need not implement the ceremony or key-lifecycle requirements.</p>

<p id="_eee9fa12-6ae5-98b2-bccb-20588d45f3a7">Requirements in this document are capability-based: they specify what an implementation shall be able to do, without mandating a specific implementation technology or internal architecture.</p>
</clause>

<clause id="_7a65c867-f25c-b395-0b13-9a20a772e04a" inline-header="false" obligation="normative">
<title id="_2f2088e7-6fe0-30d3-7788-0820c80dd5d2">Mandatory-to-implement baseline</title>
<p id="_b6d3f908-666c-c7d2-ae4e-ed9d87aa1114">To ensure interoperability between independently developed implementations, the following mandatory-to-implement (MTI) baseline applies. An implementation claiming a conformance class shall implement at least the MTI components for that class. The baseline specifies algorithm classes, not specific algorithms, to accommodate deployments with different regulatory or national algorithm requirements (e.g., SM2/SM3 in China, FIPS-approved algorithms in the United States).  <xref target="tab-mti-baseline"/> defines the mandatory-to-implement baseline by conformance class.</p>

<table id="_c2eb11df-a9e4-67be-a9ad-fe4ce7617165" anchor="tab-mti-baseline"><colgroup><col width="40%"/><col width="60%"/></colgroup>
<name id="_a498c90f-a2c3-7522-175c-31ced36fa085">Mandatory-to-implement baseline by conformance class</name>
<thead><tr id="_458d9410-3944-1431-3563-5c45b0cdc366"><th id="_f9b0f914-5025-77a9-cee5-e517ddaafbcc" valign="top" align="left">Conformance class</th>
<th id="_22fb737b-cd37-08f2-cdfb-e1746ee6eef8" valign="top" align="left">Mandatory-to-implement</th>
</tr></thead>
<tbody><tr id="_506caf61-90d9-14b6-2b3f-3bcb8286563e"><td id="_5d92d7a6-d289-cb66-1639-640270a54e69" valign="top" align="left"><tt>/conf/basic-verifier</tt></td>
<td id="_6594b993-337b-6b71-58b9-596a0584179c" valign="top" align="left">At least one classical signature algorithm from the scheme’s algorithm registry,   at least one format profile, embedded chain discovery, trust anchor bundle   loading</td>
</tr><tr id="_bd978e88-5659-7a78-820c-5b3e69cbcd11"><td id="_e104beac-2f96-7956-45e1-b7856f1f640d" valign="top" align="left"><tt>/conf/full-verifier</tt></td>
<td id="_551ea23f-3849-bc63-4f93-c3d8e87b5225" valign="top" align="left">All basic-verifier MTI, plus at least one post-quantum or composite algorithm   from the registry, transparency inclusion proof verification, CRL processing,   coverage report and classification</td>
</tr><tr id="_08388713-22e2-fc7f-1230-673141e877af"><td id="_59805c38-66c6-90b1-8f31-e5e4b54be03e" valign="top" align="left"><tt>/conf/issuing-authority</tt></td>
<td id="_1bcddbc2-827b-3b75-0f28-c929ce18222a" valign="top" align="left">All full-verifier MTI, plus threshold signing ceremony protocol, key   generation for at least one registered algorithm, ceremony record production</td>
</tr><tr id="_548e8472-462b-16cc-48e4-b37f05c9993d"><td id="_286c86f1-4336-362f-cadc-96c9fbf746ec" valign="top" align="left"><tt>/conf/root-authority</tt></td>
<td id="_f9587c6f-1d8b-e312-4afb-ec74f1bee2bb" valign="top" align="left">All issuing-authority MTI, plus deployment manifest generation, governance   record publication</td>
</tr><tr id="_e5a656b0-ec81-0949-a0e0-1d5ba506fa99"><td id="_37e09018-a38c-1f79-60a5-c1a8027bd849" valign="top" align="left"><tt>/conf/transparency-operator</tt></td>
<td id="_3709be42-995e-57e9-e534-3bf4a94e203e" valign="top" align="left">Append-only transparency log operation, tree head signing, external time anchoring</td>
</tr><tr id="_36aa2ab2-49ad-bc2b-5f89-2de0c47c766a"><td id="_1b0840fc-5c7b-0896-5c46-dc9d1fac23d2" valign="top" align="left"><tt>/conf/mirror</tt></td>
<td id="_8c7fabc4-ce1d-1476-4973-f51902f7cde8" valign="top" align="left">Log replication, gossip protocol, inclusion proof serving</td>
</tr><tr id="_0edd7e59-b947-c4d1-8a53-95e4fd754988"><td id="_d20832b3-538f-67e5-9cb2-f3baa8059cb3" valign="top" align="left"><tt>/conf/device-signer</tt></td>
<td id="_582c03b6-b724-3cf3-1414-3284b6914b1b" valign="top" align="left">At least one classical signature algorithm from the registry, at least one   format profile, per-device key lifecycle, challenge-response capability</td>
</tr></tbody>
</table>

<p id="_625de22d-22e8-1d69-7f0b-92feffdc421e">Two independently developed implementations claiming <tt>/conf/basic-verifier</tt> interoperate if they share at least one common classical algorithm and one common format profile. Implementations targeting a specific deployment context (e.g., a national regulatory regime) shall document which algorithm(s) and format profile(s) they implement.</p>

<p id="_15b1430d-cf62-3e9e-014f-9d8147929eff">A claim of conformance to a requirements class shall be supported by passing the conformance tests defined in the corresponding conformance class in <xref target="annex-a"/>.</p>
</clause>

<clause id="_900700bb-dd8f-e7e3-cd26-bc7e53c2faa1" inline-header="false" obligation="normative">
<title id="_688b39df-0c20-f9cf-d787-398aedc14dd6">Core conformance classes</title>
<p id="_42c90c83-1c33-3e6d-40e9-4f16f34fbb35">The following core requirements classes address the primary roles in the trust infrastructure. Dependencies between classes are acyclic.  <xref target="tab-core-req-classes"/> lists the core requirements classes.</p>

<table id="_5443fbfa-3889-f99a-9114-4ac6d84e52e6" anchor="tab-core-req-classes"><colgroup><col width="22.2222%"/><col width="33.3333%"/><col width="22.2222%"/><col width="22.2223%"/></colgroup>
<name id="_9d22ae3c-923c-8856-2749-e55be2d12101">Core requirements classes</name>
<thead><tr id="_a1878a42-6fb2-55b6-2f1c-b3fc1f6f84c3"><th id="_3d6c6c20-7f85-159a-906e-3432072c0f2e" valign="top" align="left">Requirements class</th>
<th id="_ee4c8acf-c2d5-6a40-5542-1d8ffab1f573" valign="top" align="left">Conformance class</th>
<th id="_455ee1ef-ed19-4dcb-7107-1f26cf3c4aa6" valign="top" align="left">Capabilities</th>
<th id="_125e16f1-dd0e-d738-38eb-4df90e5dfcc7" valign="top" align="left">Depends on</th>
</tr></thead>
<tbody><tr id="_bc4276ee-3e7d-e9ae-3b82-bf0137b9f24a"><td id="_9c9c485d-dab8-a412-27d7-f95a326efc0b" valign="top" align="left"><tt>/req/basic-verifier</tt></td>
<td id="_4fd04bff-3952-73fd-cc66-80ac76bb69fe" valign="top" align="left"><tt>/conf/basic-verifier</tt></td>
<td id="_d31b4ada-3181-2071-f7ce-9bc4e0b06709" valign="top" align="left">Artifact format, signature validation, trust-chain path-finding</td>
<td id="_d5a4ab47-c18e-dd15-6580-9a13a625db22" valign="top" align="left">—</td>
</tr><tr id="_f4cb603c-3e26-f6fb-70a6-c1c00dbb1cd6"><td id="_c492989b-88c9-98d8-d4e9-84b2f19c4ad7" valign="top" align="left"><tt>/req/full-verifier</tt></td>
<td id="_2cac425f-c2c4-233d-b66c-d5e7777a4b21" valign="top" align="left"><tt>/conf/full-verifier</tt></td>
<td id="_15cf29d5-b313-32a5-980b-f37cf078b846" valign="top" align="left">All basic-verifier capabilities, plus scope enforcement, revocation, time   attestation, transparency inclusion, coverage report and classification</td>
<td id="_70500365-964f-190a-5d10-68c2b4a0c886" valign="top" align="left"><tt>/req/basic-verifier</tt></td>
</tr><tr id="_b695af15-70ff-4ee7-dfdc-92f67ba6301d"><td id="_1febc159-3aa0-0259-1e63-8b7843cb0acf" valign="top" align="left"><tt>/req/issuing-authority</tt></td>
<td id="_47fc7bea-319a-71be-0be3-711ef961e2d9" valign="top" align="left"><tt>/conf/issuing-authority</tt></td>
<td id="_a2430862-e992-98de-484c-4014d08f249b" valign="top" align="left">Threshold signing, ceremony protocol, key lifecycle, end certificate issuance</td>
<td id="_0174af0a-c8d6-3624-260f-8228f2a1f763" valign="top" align="left"><tt>/req/full-verifier</tt></td>
</tr><tr id="_1417ca8a-f11e-2234-39d1-54db4579576a"><td id="_4e48b848-2ddf-74d1-6c0c-2ec489750aeb" valign="top" align="left"><tt>/req/root-authority</tt></td>
<td id="_430d3c96-0c33-2465-e19d-638c83cf48c2" valign="top" align="left"><tt>/conf/root-authority</tt></td>
<td id="_8e057c48-3285-de02-0cad-a4ebe75bb453" valign="top" align="left">Governance, deployment manifest, scope definition, delegation to DTAs</td>
<td id="_2badd28d-23f4-aab2-08a5-eff9f35011f1" valign="top" align="left"><tt>/req/issuing-authority</tt></td>
</tr><tr id="_72b2adc6-6dbb-9091-9a8f-1a88ed141e37"><td id="_cd95bd77-20b4-c086-5cca-52e2d0160495" valign="top" align="left"><tt>/req/transparency-operator</tt></td>
<td id="_0bcb00b8-e178-ce07-4a8e-eebbdf3a5aeb" valign="top" align="left"><tt>/conf/transparency-operator</tt></td>
<td id="_5c36e1ed-398d-7463-ec98-c6952c9d66a8" valign="top" align="left">Transparency log operation, inclusion proof issuance, multi-log coordination</td>
<td id="_3b2aad85-e898-99c7-e683-a0a27f20df73" valign="top" align="left">—</td>
</tr><tr id="_754fa5a5-0bbf-1b34-2ae1-10740a3b13af"><td id="_fd0fa62c-ed1c-6e3c-9b39-30e6129f1858" valign="top" align="left"><tt>/req/mirror</tt></td>
<td id="_bf036bcc-80e4-8e56-eaae-bf458fc966c9" valign="top" align="left"><tt>/conf/mirror</tt></td>
<td id="_5a3f316e-50a0-470c-3d21-9f8bf893ac9c" valign="top" align="left">Transparency log mirroring, gossip, inclusion proof serving</td>
<td id="_c2977f6c-6b8c-5bb0-55e1-8fcc07294c91" valign="top" align="left">—</td>
</tr><tr id="_73dcba65-0444-9128-bbaf-6e3c87d37436"><td id="_db4526af-a1c2-7c81-839d-5b517af8222c" valign="top" align="left"><tt>/req/device-signer</tt></td>
<td id="_7e22f1dd-1501-f49d-a341-b03707945bde" valign="top" align="left"><tt>/conf/device-signer</tt></td>
<td id="_4a13d9df-0f98-31af-eb2e-5423584ab59e" valign="top" align="left">Artifact format, per-device key lifecycle, challenge-response</td>
<td id="_44744e6e-6da4-8f0d-d42f-b5e4e6827470" valign="top" align="left"><tt>/req/basic-verifier</tt></td>
</tr></tbody>
<note id="_cee62632-baa2-a7bd-ff0e-b2db961f4e52"><p id="_44bb31d4-d2f0-8477-e034-16b8d034ce1f"><xref target="fig-conformance"/> provides a diagram of the requirements class dependencies.</p>
</note></table>


</clause>

<clause id="_28934e8e-4de4-a0dc-6b1a-2550396e00b9" inline-header="false" obligation="normative">
<title id="_c557e18e-41b4-913e-4b4e-6b0502af89c4">Trust topology profiles</title>
<p id="_43c25788-b268-f4ef-436c-b459db6830f3">A trust infrastructure deployment shall conform to at least one topology profile. A deployment may conform to more than one.  <xref target="tab-topology-profiles"/> lists the topology profiles.</p>

<table id="_cbca4089-dc2a-54f7-bc69-a3ac35d77b3c" anchor="tab-topology-profiles"><colgroup><col width="22.2222%"/><col width="44.4444%"/><col width="33.3334%"/></colgroup>
<name id="_44e01d25-64f0-f80e-3f7e-b8cf7b490168">Trust topology profiles</name>
<thead><tr id="_c2207c57-3bed-afeb-1018-0c14960b1af3"><th id="_a96dd96a-64af-9b39-bbf9-e487c47607fb" valign="top" align="left">Profile</th>
<th id="_c3b88e9a-dd0b-7d16-fa66-bd24cc8094e5" valign="top" align="left">Structure</th>
<th id="_3b8d0ed4-07f6-de15-26a8-3ca3d9c0a38a" valign="top" align="left">Notes</th>
</tr></thead>
<tbody><tr id="_6739d107-c30b-a804-719c-97768215b5cd"><td id="_e935cbed-501f-1e36-4585-73f18c5a45b3" valign="top" align="left"><tt>/conf/hierarchical</tt></td>
<td id="_1d78cfee-f011-d147-d8e0-6416b71b4e89" valign="top" align="left">Strict tree; one root; linear chains from root to end certificate</td>
<td id="_a7915f20-ba9e-0410-8400-50d0e84aa25e" valign="top" align="left">Simplest profile; single-root anchor bundle</td>
</tr><tr id="_d891e142-321b-fcbe-0958-a0f2cab308a5"><td id="_0b23cf72-1083-577c-f29b-abc5923880a6" valign="top" align="left"><tt>/conf/federated</tt></td>
<td id="_9793aaf9-9f54-d4af-6971-befb17d192da" valign="top" align="left">Multiple independent roots; multi-root anchor bundle; FTAs may span roots</td>
<td id="_243b6247-a26d-002d-c5a8-2af299340baf" valign="top" align="left">No single root controls all paths</td>
</tr><tr id="_efc14119-e904-c5b9-eb62-db53be99fe81"><td id="_22263f5c-744c-534c-53c4-ab6d2502654b" valign="top" align="left"><tt>/conf/cross-recognized</tt></td>
<td id="_53a9acbf-e9ff-8ded-ec1c-204f1b612e89" valign="top" align="left">Hierarchical deployment with explicit cross-recognition links between roots</td>
<td id="_4106c664-834a-1c61-2e8b-2cfbd4a0e6a7" valign="top" align="left">Bilateral or multilateral root-level agreements</td>
</tr><tr id="_3ff35595-d1a1-ace9-ad43-6c172f614bce"><td id="_59f6e6bf-7cef-9e3a-af4a-6ee753f37f72" valign="top" align="left"><tt>/conf/mesh</tt></td>
<td id="_08599d73-bc7f-7dca-695a-c08f6e90ba4a" valign="top" align="left">General DAG; hierarchy-spanning FTAs; arbitrary cross-domain co-signatures</td>
<td id="_1159ac41-b5b2-fcdb-7e92-6ab80b41244d" valign="top" align="left">Most general topology; highest verification complexity</td>
</tr></tbody>
</table>
</clause>

<clause id="_f37c27ab-632f-f0b8-3ddb-761f04edf8e0" inline-header="false" obligation="normative">
<title id="_51fbe32c-f503-1237-41e4-a1e700fcb1ca">Dimension profiles</title>
<p id="_34f94007-bd1a-8091-6299-effc898d9cca">A <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> may carry <concept><refterm>dimension attestation</refterm><renderterm>dimension attestations</renderterm><xref target="term-dimension-attestation"/></concept> from one or more  <concept><refterm>trust dimension</refterm><renderterm>trust dimensions</renderterm><xref target="term-trust-dimension"/></concept>. Trust dimensions are extensible: the set of possible dimensions is not fixed. The following profiles are initially defined; additional dimension profiles may be registered per <xref target="annex-c"/> and claimed by implementations. <xref target="tab-dimension-profiles"/> lists the initially defined dimension profiles.</p>

<table id="_a13dc9c0-0709-1f6b-9f6c-f32c679a4843" anchor="tab-dimension-profiles"><colgroup><col width="25%"/><col width="37.5%"/><col width="37.5%"/></colgroup>
<name id="_8a7410c7-d8f4-112e-1851-be6e7e3d759d">Dimension profiles recognized by the scheme (non-exhaustive)</name>
<thead><tr id="_80b7057a-10b7-7fa5-8a41-ac2e9da3ed4a"><th id="_beee984e-251a-b679-0881-1f63701c905e" valign="top" align="left">Profile</th>
<th id="_6f69312f-b9da-604b-538b-5fd4b3422ef1" valign="top" align="left">Dimension</th>
<th id="_7c26ef2a-9415-2bbe-d048-4197f2f96559" valign="top" align="left">Description</th>
</tr></thead>
<tbody><tr id="_9abdadf0-fb44-c147-43dc-3b2417e498ce"><td id="_7d4a0f68-b6e7-e3ae-aba5-c485d45a2c8b" valign="top" align="left"><tt>/conf/dimension-data</tt></td>
<td id="_78e864f2-f255-d044-319a-34bf03302be5" valign="top" align="left">Data</td>
<td id="_ba06e721-663e-a174-c601-b26d62fe719c" valign="top" align="left">Primary signature attesting the canonical payload</td>
</tr><tr id="_d6e37be9-3fa9-c755-69c3-3fa2ca225dc4"><td id="_652459d4-fc24-903e-6081-57b3afdbff46" valign="top" align="left"><tt>/conf/dimension-person</tt></td>
<td id="_1914464e-85fc-909d-f9f5-54848700cfe1" valign="top" align="left">Person</td>
<td id="_0837e440-a2e2-464b-eaf3-7251bcca8ca9" valign="top" align="left">Operator co-signature binding a human accountable party to the artifact</td>
</tr><tr id="_d55b3900-5f4c-e587-5c4f-f6be3b044f06"><td id="_6892f6e5-1963-97e1-0a4a-d0c034c7339e" valign="top" align="left"><tt>/conf/dimension-time</tt></td>
<td id="_b207da34-8083-2156-c17b-0fe30cc4509a" valign="top" align="left">Time</td>
<td id="_20e366b9-780e-0af0-4c86-b2bceffa413b" valign="top" align="left">Time authority co-signature establishing signing time independently</td>
</tr><tr id="_a1f5d514-e0f0-f76e-7848-4e17b0d98f8a"><td id="_a96ba541-58dc-99ce-3007-b97c59fbb398" valign="top" align="left"><tt>/conf/dimension-location</tt></td>
<td id="_2cf75d37-6667-86a0-0223-b263d0545a7f" valign="top" align="left">Location</td>
<td id="_9dcf6f6b-3103-aefa-6655-e67b89aee481" valign="top" align="left">Location authority co-signature (e.g. GNSS-based) attesting provenance location</td>
</tr><tr id="_ba517f81-7c9a-7c44-a165-cb3caaee526f"><td id="_e6735c1a-cdab-7136-af57-8aae873d39ce" valign="top" align="left"><tt>/conf/dimension-environment</tt></td>
<td id="_693cad13-f425-bf51-7901-36dafad42f5b" valign="top" align="left">Environment</td>
<td id="_46559448-fc77-4a60-85ac-05f313565ee9" valign="top" align="left">Sensor co-signature attesting ambient conditions at signing time</td>
</tr><tr id="_6a407b34-9ce0-8569-21cf-067e766c000e"><td id="_3617293d-eace-da59-51dc-60049a02d2a3" valign="top" align="left"><tt>/conf/dimension-authorization</tt></td>
<td id="_4a309756-08ea-c2f6-9dd2-7b36d9855a43" valign="top" align="left">Authorization</td>
<td id="_c5f7e3ff-86fe-915d-d59f-cffa12434857" valign="top" align="left">Regulatory or policy authority co-signature attesting that the signing act   was permitted</td>
</tr><tr id="_0dccaff2-ab4e-7f51-9fb4-b3cb6792d0b7"><td id="_e80c9045-4ef0-1953-7d1b-fef7820968cb" valign="top" align="left"><tt>/conf/dimension-identity</tt></td>
<td id="_9296808d-0774-735d-2a47-31e1001e2962" valign="top" align="left">Identity</td>
<td id="_db1e6b0a-d658-5ab7-a749-f19148fe37a4" valign="top" align="left">Manufacturer or identity authority co-signature attesting device or entity   genuineness</td>
</tr><tr id="_9889b256-7544-9643-defa-26d18996a98f"><td id="_eaea4a16-d993-8291-f44d-04c123f09d8d" valign="top" align="left"><tt>/conf/dimension-oracle</tt></td>
<td id="_c704aa26-3a90-1b01-f8a1-13fc69760c5c" valign="top" align="left">Oracle</td>
<td id="_e3ef3d57-f438-abb5-e8f0-6355463b6d34" valign="top" align="left">External data feed co-signature attesting the value of an external datum at   a stated time</td>
</tr><tr id="_e6ed28ab-045f-4b51-b1c2-db0447c1bd48"><td id="_879152d9-c603-85e0-8981-0483f5f436e7" valign="top" align="left"><tt>/conf/multi-dimensional</tt></td>
<td id="_77dd8b57-bfc2-cb41-c747-9933289eedf6" valign="top" align="left">Three or more</td>
<td id="_98b52ab9-5d0b-3f01-8e35-b0fca55b0026" valign="top" align="left">Convergence of three or more independent trust dimensions on a single artifact</td>
</tr></tbody>
<note id="_f49040ea-bb6f-3151-4244-15b75c8cff37"><p id="_3ba370a6-3a18-4b48-b3ee-9017aa74f20e">The <tt>/conf/multi-dimensional</tt> profile requires at least three independent dimension attestations from different trust dimensions.</p>
</note></table>


</clause>

<clause id="_77c4bf3d-dd3b-28e4-a522-f4007eaa3453" inline-header="false" obligation="normative">
<title id="_8f55e583-b730-2436-fb10-a0ce36ddee95">Format profiles</title>
<p id="_99ac50a2-df07-9f19-e5c4-c70663b905ce">This document is format-agnostic: the <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept> and signature binding requirements are specified independently of serialization. Format profiles follow the pattern  <tt>/conf/format-&lt;name&gt;</tt>, where <tt>&lt;name&gt;</tt> identifies a specific format registered in the scheme’s format profile registry. The following are examples of format profiles; schemes may register additional profiles.  <xref target="tab-format-profiles"/> gives examples of format profiles.</p>

<table id="_87b2ce19-57f7-d115-3b45-15a4efbc636d" anchor="tab-format-profiles"><colgroup><col width="25%"/><col width="37.5%"/><col width="37.5%"/></colgroup>
<name id="_cad45f13-eed7-01ca-20e7-3d019551648e">Examples of format profiles (non-exhaustive)</name>
<thead><tr id="_1c6025d7-874b-b1c8-84f8-5791b571ea19"><th id="_30ee3701-45de-616d-0464-fc71c8a8a5db" valign="top" align="left">Profile</th>
<th id="_07b2b40b-3ec0-deaf-bfc8-2cc8116ffbcb" valign="top" align="left">Format</th>
<th id="_1cfd0ea6-c285-5a13-c0cf-eaaa7dddd325" valign="top" align="left">Reference</th>
</tr></thead>
<tbody><tr id="_707f267b-09ac-222b-e327-d1a3e03ead9b"><td id="_1923fc9d-a2d6-43bd-2f27-88e65307f79c" valign="top" align="left"><tt>/conf/format-xmldsig</tt></td>
<td id="_966bd095-861d-55f2-3d3d-7f50e43b37de" valign="top" align="left">W3C XML Signature with Exclusive XML Canonicalization</td>
<td id="_d82f09ca-f2e0-9566-0a3c-52c7fafecff9" valign="top" align="left"><eref type="inline" bibitemid="w3c-xmldsig" citeas="W3C Recommendation: XML Signature Syntax and Processing Version 2.0"/>, <eref type="inline" bibitemid="w3c-c14n" citeas="W3C Recommendation: Exclusive XML Canonicalization Version 1.0"/></td>
</tr><tr id="_31286c4a-eca9-8570-318b-1aec39017946"><td id="_b79fb370-d486-42b6-4bde-f5316e6ece48" valign="top" align="left"><tt>/conf/format-jws</tt></td>
<td id="_915d6ebe-f2ef-9b42-b642-929ebe6e23ba" valign="top" align="left">JSON Web Signature (compact or JSON serialization)</td>
<td id="_e44b7144-e2ce-6c27-887b-d758e6481ea9" valign="top" align="left"><eref type="inline" bibitemid="rfc7515" citeas="IETF RFC 7515"/></td>
</tr><tr id="_64b066a3-7ae5-da65-d106-538adec78bad"><td id="_61864abd-203c-3a5f-506f-1a1053d1692d" valign="top" align="left"><tt>/conf/format-cose</tt></td>
<td id="_a6ce8347-ecc1-63e5-5313-ae624c7b0114" valign="top" align="left">CBOR Object Signing and Encryption (Sig_Structure)</td>
<td id="_51765a8f-26a6-1a77-5d87-7301a58760ee" valign="top" align="left"><eref type="inline" bibitemid="rfc8152" citeas="IETF RFC 8152"/></td>
</tr></tbody>
</table>

<p id="_1ee11572-a4cc-db1d-a69e-fca0b3701dfb">An implementation claiming conformance to a format profile shall satisfy the format-agnostic binding requirements in  <xref target="artifact-format"/> in addition to the profile-specific format requirements.</p>
</clause>

<clause id="_d2f63aac-12ff-8ad3-ee22-badaaa21fc60" inline-header="false" obligation="normative">
<title id="_ab4059fb-7ed1-61b7-b6d8-16408fda8454">Requirements classes overview</title>
<p id="_ded1acd4-7ffe-303a-ec36-e9430cca0b7f">The detailed requirements and conformance tests for each requirements class are specified in the relevant subject-matter clauses and rendered from structured data:</p>

<ul id="_8026ffef-b082-c40b-57d1-65f19b15cdbf"><li><p id="_27f7b897-0684-8af3-5996-4302c016b403"><xref target="architecture"/>: <tt>/req/architecture/*</tt></p>
</li>
<li><p id="_a30196df-9454-d1d2-b8b1-0ea68155b467"><xref target="artifact-format"/>: <tt>/req/artifact-format/*</tt></p>
</li>
<li><p id="_77c9f05a-b422-a32c-325c-c93add228de6"><xref target="algorithms"/>: <tt>/req/algorithms/*</tt></p>
</li>
<li><p id="_458e2a24-5f40-3977-747b-15e9a1007357"><xref target="threshold-signing"/>: <tt>/req/threshold-signing/*</tt></p>
</li>
<li><p id="_5d1a9ec5-c8b5-6de8-3709-b1067f0378a7"><xref target="trust-chain-scope"/>: <tt>/req/scope/*</tt></p>
</li>
<li><p id="_cb1379ca-ecfd-45ce-cc36-dececd03980a"><xref target="revocation"/>: <tt>/req/revocation/*</tt></p>
</li>
<li><p id="_1474ab7c-a3c3-b181-b5c4-0e2c7ed53d53"><xref target="transparency"/>: <tt>/req/transparency/*</tt></p>
</li>
<li><p id="_cbc333c1-e592-f226-2b0c-93a68e8371b0"><xref target="verification"/>: <tt>/req/verification/*</tt></p>
</li>
<li><p id="_4db62471-3aca-b6e3-fe9a-13782415d7bc"><xref target="key-lifecycle"/>: <tt>/req/key-lifecycle/*</tt></p>
</li>
<li><p id="_91753149-e482-dae0-5ebb-614e44807f78"><xref target="delivery"/>: <tt>/req/delivery/*</tt></p>
</li>
<li><p id="_3646b3df-f263-5a8e-04e7-dbffa12129db"><xref target="ceremony-records"/>: <tt>/req/ceremony/*</tt></p>
</li>
<li><p id="_73c1d6dd-e743-0686-1383-fd6acae782e0"><xref target="manifest"/>: <tt>/req/manifest/*</tt></p>
</li>
<li><p id="_0d91a6de-97c3-4a76-0464-dc5b2352599e"><xref target="governance"/>: <tt>/req/governance/*</tt></p>
</li>
<li><p id="_f28c79ab-a653-53b0-320d-6384c6a7e091"><xref target="algorithm-agility"/>: <tt>/req/algorithm-agility/*</tt></p>
</li>
</ul>

<p id="_37f5da9b-4eab-93ed-ba81-bbb526167ae6">The full set of conformance tests is rendered in <xref target="annex-a"/>.</p>

<figure id="_23b1d68a-86d7-8ca4-681d-87768d41d320" anchor="fig-conformance">
<name id="_f9d2ec44-76ea-77d6-11f9-83ded87bc7fd">Requirements classes and their dependencies</name>
<image id="_e988ae0e-b47f-5fe3-86de-60028fa370a1" src="images/conformance-hierarchy.svg" mimetype="image/svg+xml" height="auto" width="auto" filename="images/conformance-hierarchy.svg"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 650" font-family="sans-serif" font-size="13">
  <defs>
    <marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto">
      <path d="M0,0 L10,5 L0,10 z" fill="#333"/>
    </marker>
  </defs>

  <!-- Title -->
  <text x="450" y="25" text-anchor="middle" font-size="15" font-weight="bold">Requirements classes and dependencies</text>

  <!-- Root authority -->
  <rect x="325" y="50" width="250" height="40" rx="5" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="450" y="68" text-anchor="middle" font-weight="bold">/req/root-authority</text>
  <text x="450" y="83" text-anchor="middle" font-size="11">governance, manifest, delegation</text>

  <!-- Arrow down -->
  <line x1="450" y1="90" x2="450" y2="120" stroke="#333" stroke-width="1.5" marker-end="url(#arrow)"/>

  <!-- Issuing authority -->
  <rect x="325" y="125" width="250" height="40" rx="5" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="450" y="143" text-anchor="middle" font-weight="bold">/req/issuing-authority</text>
  <text x="450" y="158" text-anchor="middle" font-size="11">threshold signing, ceremony, keys</text>

  <!-- Arrow down -->
  <line x1="450" y1="165" x2="450" y2="195" stroke="#333" stroke-width="1.5" marker-end="url(#arrow)"/>

  <!-- Full verifier -->
  <rect x="325" y="200" width="250" height="40" rx="5" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="450" y="218" text-anchor="middle" font-weight="bold">/req/full-verifier</text>
  <text x="450" y="233" text-anchor="middle" font-size="11">scope, revocation, time, transparency</text>

  <!-- Arrow down -->
  <line x1="450" y1="240" x2="450" y2="270" stroke="#333" stroke-width="1.5" marker-end="url(#arrow)"/>

  <!-- Basic verifier -->
  <rect x="325" y="275" width="250" height="40" rx="5" fill="#fef7e0" stroke="#fbbc04" stroke-width="2"/>
  <text x="450" y="293" text-anchor="middle" font-weight="bold">/req/basic-verifier</text>
  <text x="450" y="308" text-anchor="middle" font-size="11">format, signatures, chain</text>

  <!-- Device signer (branch) -->
  <line x1="325" y1="295" x2="175" y2="295" stroke="#333" stroke-width="1.5"/>
  <line x1="175" y1="295" x2="175" y2="370" stroke="#333" stroke-width="1.5" marker-end="url(#arrow)"/>
  <rect x="50" y="375" width="250" height="40" rx="5" fill="#fef7e0" stroke="#fbbc04" stroke-width="2"/>
  <text x="175" y="393" text-anchor="middle" font-weight="bold">/req/device-signer</text>
  <text x="175" y="408" text-anchor="middle" font-size="11">per-device keys, challenge-response</text>

  <!-- Transparency operator (independent) -->
  <rect x="625" y="125" width="250" height="40" rx="5" fill="#fce8e6" stroke="#ea4335" stroke-width="2"/>
  <text x="750" y="143" text-anchor="middle" font-weight="bold">/req/transparency-operator</text>
  <text x="750" y="158" text-anchor="middle" font-size="11">log operation, inclusion proofs</text>

  <!-- Mirror (independent) -->
  <line x1="750" y1="165" x2="750" y2="195" stroke="#333" stroke-width="1.5" marker-end="url(#arrow)"/>
  <rect x="625" y="200" width="250" height="40" rx="5" fill="#fce8e6" stroke="#ea4335" stroke-width="2"/>
  <text x="750" y="218" text-anchor="middle" font-weight="bold">/req/mirror</text>
  <text x="750" y="233" text-anchor="middle" font-size="11">log mirroring, gossip</text>

  <!-- Topology profiles -->
  <text x="450" y="460" text-anchor="middle" font-weight="bold" font-size="14">Topology profiles</text>
  <rect x="40" y="475" width="180" height="35" rx="5" fill="#f3e8fd" stroke="#9334e6" stroke-width="1.5"/>
  <text x="130" y="497" text-anchor="middle">/conf/hierarchical</text>
  <rect x="240" y="475" width="180" height="35" rx="5" fill="#f3e8fd" stroke="#9334e6" stroke-width="1.5"/>
  <text x="330" y="497" text-anchor="middle">/conf/federated</text>
  <rect x="440" y="475" width="180" height="35" rx="5" fill="#f3e8fd" stroke="#9334e6" stroke-width="1.5"/>
  <text x="530" y="497" text-anchor="middle">/conf/cross-recognized</text>
  <rect x="640" y="475" width="180" height="35" rx="5" fill="#f3e8fd" stroke="#9334e6" stroke-width="1.5"/>
  <text x="730" y="497" text-anchor="middle">/conf/mesh</text>

  <!-- Legend -->
  <text x="450" y="550" text-anchor="middle" font-weight="bold" font-size="14">Legend</text>
  <rect x="100" y="565" width="15" height="15" fill="#e8f0fe" stroke="#4285f4"/>
  <text x="125" y="577">Issuing roles</text>
  <rect x="300" y="565" width="15" height="15" fill="#e6f4ea" stroke="#34a853"/>
  <text x="325" y="577">Verifiers</text>
  <rect x="450" y="565" width="15" height="15" fill="#fef7e0" stroke="#fbbc04"/>
  <text x="475" y="577">Device roles</text>
  <rect x="600" y="565" width="15" height="15" fill="#fce8e6" stroke="#ea4335"/>
  <text x="625" y="577">Transparency</text>
  <rect x="100" y="600" width="15" height="15" fill="#f3e8fd" stroke="#9334e6"/>
  <text x="125" y="612">Topology profiles</text>
</svg></image></figure>
</clause>
</clause>

<clause id="_5a4e8bc8-57d9-f009-2c99-9132d7e645b0" anchor="architecture" inline-header="false" obligation="normative">
<title id="_a45b201f-b4f8-8ff5-c71e-3e4ae2b63aea">Architecture and trust model</title>
<clause id="_aef7c614-3abc-13ba-38ac-83bb7f4ee0aa" inline-header="false" obligation="normative">
<title id="_1d0a0e6e-9129-6d18-fb0a-a14109f5544f">General</title>
<p id="_63cdc6ed-2631-75e5-5b70-0b828605ac14">A trust infrastructure that conforms to the SIGNATIF framework as described in this document aims to provide verifiable artifacts whose trustworthiness is established by the convergence of multiple independent trust dimensions, each backed by its own trust tree.</p>

<p id="_0c7cb078-0d0f-bec7-0d5e-b2ec6c4c7bf2">The architecture consists of four main areas of concern:</p>

<ul id="_d5843f99-2ec2-1224-4dce-479ae307f6a1"><li><p id="_8865f139-f2b3-bbbf-e688-2bf3bec6530a">Trust authorities: the entities that hold signing authority and their delegation relationships (<xref target="architecture-authorities"/>);</p>
</li>
<li><p id="_5bbc182e-b306-8953-34e9-306ea3cde079">The trust graph: the directed acyclic graph that generalizes the linear chain to admit multiple paths, federations, and cross-domain links (<xref target="architecture-graph"/>);</p>
</li>
<li><p id="_4d544abd-beb0-40e5-7770-233d626fe80e">Chain discovery: the mechanisms by which a verifier resolves the path from an artifact to a root anchor (<xref target="architecture-discovery"/>);</p>
</li>
<li><p id="_a0f2c501-54ad-8e8c-84a3-1e905db079d7">The trust anchor bundle: the self-contained set of root anchors that enables offline verification (<xref target="architecture-anchors"/>).</p>
</li>
</ul>
</clause>

<clause id="_560b6938-f198-288d-066a-28b18815eb9a" anchor="architecture-authorities" inline-header="false" obligation="normative">
<title id="_5416101a-0a50-a792-a2a6-81ed680e8f1d">Trust authorities</title>
<clause id="_43858452-a95f-4702-55fa-bdc7b97ab101" inline-header="false" obligation="normative">
<title id="_47122f43-479e-20c1-1f60-0174f2519b77">The four-level model</title>
<p id="_e7d78142-3fd6-544f-e645-d6328caa74f8">Signing authority in the SIGNATIF framework flows through the four levels shown in  <xref target="tab-four-levels"/>:</p>

<table id="_a0b9348e-559c-a3c8-5dfc-b0e7ae6ff5bc" anchor="tab-four-levels"><colgroup><col width="14.2857%"/><col width="42.8571%"/><col width="28.5714%"/><col width="14.2858%"/></colgroup>
<name id="_c8df0abd-3282-92b9-36b8-a718f808769c">Four-level delegation model</name>
<thead><tr id="_c36304ee-8095-578c-dba7-2b951be88391"><th id="_fa909c57-31a9-37f5-33ce-3eff4ebedf8e" valign="top" align="left">Level</th>
<th id="_c730337e-0a24-32d5-f926-62fbf085dd5e" valign="top" align="left">Role</th>
<th id="_c9a298b1-509d-0dd7-c7a0-3972633b274c" valign="top" align="left">Scope authority</th>
<th id="_09b8b322-416f-bbbe-8751-9b17553dc77b" valign="top" align="left">Threshold</th>
</tr></thead>
<tbody><tr id="_a118f4e5-372f-b0ec-7789-3ef03630a8e7"><td id="_861169be-9082-1a55-cb36-4fd94d3202fe" valign="top" align="left">1</td>
<td id="_6275608a-c593-f11c-da7a-1012961ee411" valign="top" align="left"><concept><refterm>root trust authority</refterm><renderterm>root trust authority</renderterm><xref target="term-root-trust-authority"/></concept></td>
<td id="_202fea4c-a6ab-a0a2-feba-cca033d54e8b" valign="top" align="left">Defines the initial scope under which all subordinate authorities operate</td>
<td id="_9c68cb97-0a98-1db9-4cf5-44463420520e" valign="top" align="left">May be 1-of-1, threshold, or federated</td>
</tr><tr id="_bac76ea0-1c3a-68a1-d348-e68e65c9efaf"><td id="_7bd78b6d-2d24-d056-c8cb-b79a96460d4f" valign="top" align="left">2</td>
<td id="_e40b01bb-8777-efbf-8ad3-ac96d15267e1" valign="top" align="left"><concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authority</renderterm><xref target="term-delegated-trust-authority"/></concept></td>
<td id="_cf036167-5675-b33c-76cc-38f61584a2ea" valign="top" align="left">Receives authority via delegation; narrows the scope</td>
<td id="_b330756f-a581-43f8-18d9-7f8e923c7024" valign="top" align="left">May be 1-of-1, threshold, or federated</td>
</tr><tr id="_b097445b-a124-9000-8b71-41d8621483c9"><td id="_dfbf7cd0-15c7-d2d8-ecb0-c2a5e2cf4fff" valign="top" align="left">3</td>
<td id="_f076850f-fd95-abb3-af6e-10393d0b414f" valign="top" align="left"><concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept></td>
<td id="_8979565c-f377-f2b9-211e-22457f72d644" valign="top" align="left">Authorizes a specific key to sign artifacts; carries the narrowest scope</td>
<td id="_3452a193-f30d-7743-4930-f809934728d8" valign="top" align="left">1-of-1 (the key holder)</td>
</tr><tr id="_a1ef697c-ed0c-e4d6-453d-db9abacba2f1"><td id="_4704d00e-3798-a21a-f71f-f6f070f9fa04" valign="top" align="left">4</td>
<td id="_147c4875-bf85-35e0-6099-5fa56c0543be" valign="top" align="left"><concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept></td>
<td id="_882be972-5b09-a7b9-00d9-5bb23b1ee2da" valign="top" align="left">The signed data produced under the end certificate’s authorization</td>
<td id="_2dae688c-71b5-6d0b-b215-07bda6b40328" valign="top" align="left">Carries the primary signature plus co-signatures</td>
</tr></tbody>
</table>

<p id="_5cd0dbb8-d8b3-b617-4531-7bcde35c75e9">A delegation chain from root to end certificate may pass through zero or more delegated trust authorities. Each delegation narrows the scope; the artifact inherits the narrowest scope along its chain.</p>
</clause>

<clause id="_12466c22-6f4c-3fa3-2a5a-f3bbfa077eef" inline-header="false" obligation="normative">
<title id="_520dfdc6-2d21-f259-036c-c66f63259948">Delegation</title>
<p id="_c91df5a8-e405-3ff7-9f09-5d929d99414f">A delegation is the act by which a parent <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> authorizes a child to operate within a subset of the parent’s  <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept>. A delegation shall be expressed as a signed credential (a delegation certificate) that binds:</p>

<ul id="_8e3b8e3b-a244-f441-faf8-9ba6778316cd"><li><p id="_1283328b-6fd3-920e-0683-80fb37690881">the child’s <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept>;</p>
</li>
<li><p id="_f039dc33-3328-59f6-26e4-597cc8d631f5">the <concept><refterm>quorum</refterm><renderterm>quorum</renderterm><xref target="term-quorum"/></concept> parameters, if the child is a threshold authority;</p>
</li>
<li><p id="_170890bc-ccfa-4307-8902-cd99cc74450e">the narrowed <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept>, which shall satisfy the <concept><refterm>monotonic narrowing invariant</refterm><renderterm>monotonic narrowing invariant</renderterm><xref target="term-monotonic-narrowing-invariant"/></concept>;</p>
</li>
<li><p id="_ea4005eb-71a8-01a5-56fb-4becce7487f6">a reference to the ceremony protocol used, if threshold (see <xref target="threshold-signing"/>).</p>
</li>
</ul>

<p id="_561d83ae-03be-a3c4-9d87-d76b62a5d0d2">A delegation certificate is itself a verifiable artifact: it carries the parent’s signature and is subject to chain verification, scope enforcement, and transparency inclusion.</p>
</clause>

<clause id="_16efa3a8-8115-0536-c222-eb0458576f08" inline-header="false" obligation="normative">
<title id="_0649d37b-4044-57d4-20d4-297c28b374a4">End certificate issuance</title>
<p id="_211f7594-6587-02c6-28b1-611c1f43d4b4">An <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> authorizes a specific signing key to produce <concept><refterm>trusted artifact</refterm><renderterm>trusted artifacts</renderterm><xref target="term-trusted-artifact"/></concept>. An end certificate shall not itself delegate authority further; it binds a key to the authority to sign within its scope.</p>

<p id="_5f66be8a-5fa2-bd15-99a3-b1d5b04f31e8">An end certificate shall carry:</p>

<ul id="_8ffcbe90-26a8-5a9e-6657-b6aa899175a5"><li><p id="_0878bb13-afdf-8150-fd58-402a04489b74">the authorized public key or its fingerprint;</p>
</li>
<li><p id="_02d662f3-36ba-7140-8423-ca547c5c3ba6">the <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> under which the key is authorized to sign;</p>
</li>
<li><p id="_b3a6c865-2b31-5e74-47da-aee3f6a590f8">the <concept><refterm>authorization scope condition</refterm><renderterm>scope conditions</renderterm><xref target="term-authorization-scope-condition"/></concept>, if any, that artifacts signed by this key shall satisfy at verification time;</p>
</li>
<li><p id="_01bbd66e-d6be-bfd1-0466-49708aa6094a">a reference to the issuing <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept>‘s delegation chain.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_ec680cd3-d42c-3545-a716-3034d75cbb50" anchor="architecture-graph" inline-header="false" obligation="normative">
<title id="_bb408895-daaa-77f0-0b97-ccf82e31709a">Trust graph</title>
<clause id="_dae341c3-9956-4c15-cd14-acef631decce" inline-header="false" obligation="normative">
<title id="_bab39792-05f3-bbab-2ea2-0af6705a97ce">From chain to graph</title>
<p id="_7922aec6-71db-7bff-6613-19d7fe87e4db">Traditional PKI models trust as a linear chain: root, intermediate CA, leaf certificate. The SIGNATIF framework generalizes this to a  <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept> — a directed acyclic graph (DAG) in which multiple valid paths may exist between an artifact and a root anchor (<xref target="fig-trust-graph"/>).</p>

<figure id="_8e3641aa-7834-e296-a15e-75c539b6fdf5" anchor="fig-trust-graph">
<name id="_8365747a-a656-ccc3-e1f2-4dc56ca93395">Trust graph with threshold nodes, federation, and cross-domain edges</name>
<image id="_b2bfc3e6-51a2-a6cc-5891-47fc5af88bfb" src="images/trust-graph-dag.svg" mimetype="image/svg+xml" height="auto" width="auto" filename="images/trust-graph-dag.svg"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 700" font-family="sans-serif" font-size="12">
  <defs>
    <marker id="arr" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto">
      <path d="M0,0 L10,5 L0,10 z" fill="#555"/>
    </marker>
    <marker id="arrCosig" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="5" markerHeight="5" orient="auto">
      <path d="M0,0 L10,5 L0,10 z" fill="#9334e6"/>
    </marker>
  </defs>

  <text x="450" y="22" text-anchor="middle" font-size="15" font-weight="bold">Trust graph — DAG with threshold, federation, and cross-domain edges</text>

  <!-- RTA 1 (threshold) -->
  <rect x="100" y="45" width="200" height="55" rx="6" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="200" y="65" text-anchor="middle" font-weight="bold">RTA₁ (Root Trust Authority)</text>
  <text x="200" y="82" text-anchor="middle" font-size="11">5-of-7 threshold</text>
  <text x="200" y="95" text-anchor="middle" font-size="10" fill="#666">Scope S₀ = {domain: *}</text>

  <!-- RTA 2 (threshold) -->
  <rect x="600" y="45" width="200" height="55" rx="6" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="700" y="65" text-anchor="middle" font-weight="bold">RTA₂ (Root Trust Authority)</text>
  <text x="700" y="82" text-anchor="middle" font-size="11">3-of-5 threshold</text>
  <text x="700" y="95" text-anchor="middle" font-size="10" fill="#666">Independent hierarchy</text>

  <!-- DTA A (under RTA1) -->
  <rect x="40" y="175" width="170" height="50" rx="6" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="125" y="195" text-anchor="middle" font-weight="bold">DTA_A (3-of-5)</text>
  <text x="125" y="212" text-anchor="middle" font-size="10" fill="#666">S₁ ⊂ S₀</text>

  <!-- DTA B (under RTA1) -->
  <rect x="230" y="175" width="170" height="50" rx="6" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="315" y="195" text-anchor="middle" font-weight="bold">DTA_B (2-of-3)</text>
  <text x="315" y="212" text-anchor="middle" font-size="10" fill="#666">S₁ ⊂ S₀</text>

  <!-- DTA C (under RTA2) -->
  <rect x="500" y="175" width="170" height="50" rx="6" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="585" y="195" text-anchor="middle" font-weight="bold">DTA_C (4-of-6)</text>
  <text x="585" y="212" text-anchor="middle" font-size="10" fill="#666">S₁ ⊂ S₀</text>

  <!-- DTA D (under RTA2) -->
  <rect x="690" y="175" width="170" height="50" rx="6" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="775" y="195" text-anchor="middle" font-weight="bold">DTA_D (1-of-1)</text>
  <text x="775" y="212" text-anchor="middle" font-size="10" fill="#666">S₁ ⊂ S₀</text>

  <!-- FTA (spans both hierarchies) -->
  <rect x="330" y="175" width="160" height="50" rx="6" fill="#fce8e6" stroke="#ea4335" stroke-width="2.5" stroke-dasharray="5,3"/>
  <text x="410" y="195" text-anchor="middle" font-weight="bold">FTA (2-of-4)</text>
  <text x="410" y="212" text-anchor="middle" font-size="10" fill="#666">DTA_A + DTA_C + ...</text>

  <!-- Delegation arrows from RTA1 -->
  <line x1="160" y1="100" x2="125" y2="175" stroke="#555" stroke-width="1.5" marker-end="url(#arr)"/>
  <line x1="240" y1="100" x2="315" y2="175" stroke="#555" stroke-width="1.5" marker-end="url(#arr)"/>

  <!-- Delegation arrows from RTA2 -->
  <line x1="660" y1="100" x2="585" y2="175" stroke="#555" stroke-width="1.5" marker-end="url(#arr)"/>
  <line x1="740" y1="100" x2="775" y2="175" stroke="#555" stroke-width="1.5" marker-end="url(#arr)"/>

  <!-- FTA membership edges (dashed) -->
  <line x1="195" y1="200" x2="335" y2="200" stroke="#ea4335" stroke-width="1.5" stroke-dasharray="4,3"/>
  <line x1="505" y1="200" x2="585" y2="200" stroke="#ea4335" stroke-width="1.5" stroke-dasharray="4,3"/>

  <!-- End Certificates -->
  <rect x="60" y="300" width="140" height="45" rx="5" fill="#fef7e0" stroke="#fbbc04" stroke-width="1.5"/>
  <text x="130" y="320" text-anchor="middle" font-weight="bold">End Cert₁</text>
  <text x="130" y="335" text-anchor="middle" font-size="10" fill="#666">S₂ ⊂ S₁, 1-of-1 key</text>

  <rect x="250" y="300" width="140" height="45" rx="5" fill="#fef7e0" stroke="#fbbc04" stroke-width="1.5"/>
  <text x="320" y="320" text-anchor="middle" font-weight="bold">End Cert₂</text>
  <text x="320" y="335" text-anchor="middle" font-size="10" fill="#666">S₂ ⊂ S₁, 1-of-1 key</text>

  <rect x="520" y="300" width="140" height="45" rx="5" fill="#fef7e0" stroke="#fbbc04" stroke-width="1.5"/>
  <text x="590" y="320" text-anchor="middle" font-weight="bold">End Cert₃</text>
  <text x="590" y="335" text-anchor="middle" font-size="10" fill="#666">S₂ ⊂ S₁, 1-of-1 key</text>

  <rect x="700" y="300" width="140" height="45" rx="5" fill="#fef7e0" stroke="#fbbc04" stroke-width="1.5"/>
  <text x="770" y="320" text-anchor="middle" font-weight="bold">End Cert₄</text>
  <text x="770" y="335" text-anchor="middle" font-size="10" fill="#666">FTA-delegated</text>

  <!-- End cert issuance arrows -->
  <line x1="125" y1="225" x2="130" y2="300" stroke="#555" stroke-width="1.5" marker-end="url(#arr)"/>
  <line x1="300" y1="225" x2="320" y2="300" stroke="#555" stroke-width="1.5" marker-end="url(#arr)"/>
  <line x1="585" y1="225" x2="590" y2="300" stroke="#555" stroke-width="1.5" marker-end="url(#arr)"/>
  <line x1="430" y1="225" x2="770" y2="300" stroke="#555" stroke-width="1" stroke-dasharray="3,2" marker-end="url(#arr)"/>

  <!-- Trusted Artifacts -->
  <rect x="55" y="420" width="150" height="55" rx="5" fill="#f3e8fd" stroke="#9334e6" stroke-width="2"/>
  <text x="130" y="442" text-anchor="middle" font-weight="bold">Trusted Artifact</text>
  <text x="130" y="457" text-anchor="middle" font-size="10">Primary sig + co-sigs</text>
  <text x="130" y="470" text-anchor="middle" font-size="10">Grade: A (cross-domain)</text>

  <rect x="515" y="420" width="150" height="55" rx="5" fill="#f3e8fd" stroke="#9334e6" stroke-width="2"/>
  <text x="590" y="442" text-anchor="middle" font-weight="bold">Trusted Artifact</text>
  <text x="590" y="457" text-anchor="middle" font-size="10">Primary sig + co-sigs</text>
  <text x="590" y="470" text-anchor="middle" font-size="10">Grade: A+ (2 roots)</text>

  <!-- Signing arrows -->
  <line x1="130" y1="345" x2="130" y2="420" stroke="#555" stroke-width="1.5" marker-end="url(#arr)"/>
  <line x1="590" y1="345" x2="590" y2="420" stroke="#555" stroke-width="1.5" marker-end="url(#arr)"/>

  <!-- Cross-domain co-signature -->
  <path d="M 205 448 Q 360 390 515 448" fill="none" stroke="#9334e6" stroke-width="2" stroke-dasharray="6,3" marker-end="url(#arrCosig)"/>
  <text x="360" y="385" text-anchor="middle" font-size="11" fill="#9334e6" font-weight="bold">Cross-domain co-signature</text>
  <text x="360" y="399" text-anchor="middle" font-size="10" fill="#9334e6">(trust fusion at artifact level)</text>

  <!-- Legend -->
  <text x="450" y="540" text-anchor="middle" font-weight="bold" font-size="13">Legend</text>
  <rect x="50" y="555" width="15" height="15" fill="#e8f0fe" stroke="#4285f4"/>
  <text x="75" y="567">Root Trust Authority (threshold)</text>
  <rect x="290" y="555" width="15" height="15" fill="#e6f4ea" stroke="#34a853"/>
  <text x="315" y="567">Delegated Trust Authority</text>
  <rect x="520" y="555" width="15" height="15" fill="#fce8e6" stroke="#ea4335" stroke-dasharray="3,2"/>
  <text x="545" y="567">Federated Trust Authority</text>
  <rect x="50" y="580" width="15" height="15" fill="#fef7e0" stroke="#fbbc04"/>
  <text x="75" y="592">End Certificate</text>
  <rect x="290" y="580" width="15" height="15" fill="#f3e8fd" stroke="#9334e6"/>
  <text x="315" y="592">Trusted Artifact</text>

  <line x1="520" y1="587" x2="540" y2="587" stroke="#9334e6" stroke-width="2" stroke-dasharray="6,3"/>
  <text x="545" y="592">Cross-domain co-signature</text>

  <text x="50" y="625" font-size="11" fill="#555">Solid arrows: delegation/issuance. Dashed red: FTA membership. Dashed purple: co-signature.</text>
  <text x="50" y="642" font-size="11" fill="#555">Multiple paths exist from artifact to root anchors — the verifier finds all valid paths in the DAG.</text>
</svg></image></figure>

<p id="_03fc9d18-7903-f513-703d-c04162f1f745">The trust graph arises from four structural features:</p>

<ul id="_f9c6e045-d4e6-5dfb-3f92-b4dbd0003951"><li><p id="_508d73e2-5cbe-e0cc-fb16-d874281f2780">Threshold memberships. A single delegated trust authority can be reached through multiple member key paths.</p>
</li>
<li><p id="_77a44991-7f40-0f2c-873c-1c36c1cba825">Federated trust authorities. A <concept><refterm>federated trust authority</refterm><renderterm>federated trust authority</renderterm><xref target="term-federated-trust-authority"/></concept> spans multiple independent organizations, creating cross-organization edges.</p>
</li>
<li><p id="_17166b84-997e-9e53-e88f-144b0ad57508">Cross-domain co-signatures. A <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> can carry <concept><refterm>co-signature</refterm><renderterm>co-signatures</renderterm><xref target="term-co-signature"/></concept> from different trust chains, creating horizontal edges at the artifact level.</p>
</li>
<li><p id="_c602dd3c-1c71-77a6-ea92-aafca02f3704">Mutual recognition. Two <concept><refterm>root trust authority</refterm><renderterm>root trust authorities</renderterm><xref target="term-root-trust-authority"/></concept> may mutually recognize each other, creating root-level edges.</p>
</li>
</ul>
</clause>

<clause id="_890ab135-88ae-62d9-58f1-f3901c5ed975" inline-header="false" obligation="normative">
<title id="_8ed2491d-4899-c783-77a1-7203fbc63ba7">Path-finding</title>
<p id="_ee2b4342-e0ba-d1be-4dba-51bbb8cad893">The verifier’s task in the SIGNATIF framework is not to walk a single chain but to find paths in the trust graph from the artifact to any anchor in the  <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept>. Multiple valid paths may exist; the coverage report records all valid paths, and the classification policy may require paths through multiple independent roots for higher classification labels.</p>

<p id="_8ab0e472-e51c-7891-145e-6f2cdf77a2fb">The path-finding algorithm is implementation-neutral. This document specifies the requirements that any conforming path-finder shall satisfy (see <xref target="req-architecture"/>), including:</p>

<ul id="_31d1c780-8615-b77f-9d1f-a9e7ce126887"><li><p id="_5237f411-e0dd-c267-1038-f1433d682b92">monotonic scope narrowing at every link;</p>
</li>
<li><p id="_f12c545a-7e5f-da9d-85ac-e1ada0ad2eb2">cryptographic signature validation at every link;</p>
</li>
<li><p id="_1e56d9fc-bf9d-01c6-6c55-cccd9fa87c2b">transparency log inclusion for every delegation certificate and end certificate on the path;</p>
</li>
<li><p id="_cfde67e2-3481-c23e-a7b8-818420a26b48">revocation status checking for every authority on the path.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_5ad92a9b-1bf3-0dd7-d7ec-7bf0c9ce3fc9" anchor="architecture-discovery" inline-header="false" obligation="normative">
<title id="_f79e0df1-8e5c-f922-61ef-6146455e2a98">Chain discovery</title>
<clause id="_0903aa0c-343b-6822-7f8a-b3db717b98e3" inline-header="false" obligation="normative">
<title id="_fa06c69a-5956-f331-574c-275a1d544266">General</title>
<p id="_b4213b84-571d-e4c6-07c3-670110aafc73">A verifier shall be able to reconstruct the full delegation chain from an artifact to a root anchor. Discovery strategies are recognized; additional strategies may be registered; an implementation may support one or more.</p>
</clause>

<clause id="_3762772b-51a8-d078-32c3-414d175641eb" inline-header="false" obligation="normative">
<title id="_4b086b36-2581-38e7-5ba2-9e0447cb83ab">Embedded chain</title>
<p id="_9c6fac33-5efe-b8ce-c312-f724f64612c3">The artifact carries the full delegation chain inline. The root is resolved from the  <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept> by fingerprint. This strategy is fully offline-capable but produces larger payloads.</p>
</clause>

<clause id="_8106d8a6-c04a-6c7f-5eb0-122d31e506e0" inline-header="false" obligation="normative">
<title id="_8ce73c15-fadf-d367-58b4-ffb2a3578c29">Transparency-log references</title>
<p id="_a8c6cfc4-f489-3f10-5850-343dd35cad70">Each certificate carries a <tt>delegatedBy</tt> reference (a transparency-log sequence number or equivalent pointer). The verifier fetches and caches the referenced certificates on first encounter. This strategy produces compact payloads but requires network access on first encounter.</p>
</clause>

<clause id="_8ad7e4ee-c48d-c075-bf7f-30f88b579f00" inline-header="false" obligation="normative">
<title id="_b688d35d-d128-f2f4-b0f9-df38395e91a2">Hybrid (reference design)</title>
<p id="_4193f78e-5d51-31c8-6699-f46f6dcb986a">The artifact embeds the end certificate and the immediate delegation chain, resolves the root from the anchor bundle, and includes transparency-log sequence numbers for freshness and audit. This is the recommended strategy for production deployments.</p>
</clause>
</clause>

<clause id="_0e2159e1-d668-a5b8-88e8-4ceb68ed6f52" anchor="architecture-anchors" inline-header="false" obligation="normative">
<title id="_c837ab08-de8b-dfd0-3729-00d223b0dd88">Trust anchor bundle</title>
<p id="_b558d1ba-b3a9-ea5a-c9d2-6c12c33e007e">A <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept> is a self-contained set of root <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> anchors — root  <concept><refterm>aggregate key</refterm><renderterm>aggregate keys</renderterm><xref target="term-aggregate-key"/></concept> or their fingerprints — together with the metadata needed to identify and validate them. The trust anchor bundle is the starting point for all verification paths.</p>

<p id="_e3238d1e-01e5-26af-8d86-981bad94dfdf">A trust anchor bundle shall be:</p>

<ul id="_8b9be89e-55e5-7614-507b-df5150ed67b0"><li><p id="_493126be-c69e-1aae-c7ee-817cff927ab8">Self-contained. A verifier holding the bundle and the artifact shall require no additional network access to complete verification (for embedded or hybrid chain strategies).</p>
</li>
<li><p id="_a6914a5e-b152-c566-7161-208a816139cd">Versioned. Each bundle carries a version identifier and a validity period. Bundle updates are themselves transparently logged.</p>
</li>
<li><p id="_8f3073b2-5782-a15d-89d0-54763858b914">Distributable. The bundle shall be expressible in a deterministic format suitable for out-of-band distribution (e.g., via physical media, secure channel, or published fingerprint).</p>
</li>
</ul>
</clause>

<clause id="_e2687de9-2b8d-8222-cc7e-9d43ce8c0481" anchor="architecture-generalization" inline-header="false" obligation="normative">
<title id="_7f01a75d-a0ea-e732-77b4-575b64a0053e">Generalization from domain-specific hierarchies</title>
<p id="_a1e50c2e-efbb-65c4-2c3a-3c93d3dc1c0a">The delegation model is domain-agnostic. Domain-specific hierarchies map onto it by identifying their tiers with the appropriate trust authority level.</p>

<example id="_512888b6-2a01-5735-b349-19fe3fd33088"><p id="_cd81e2aa-b3d5-44e5-1291-24aa478c8625">A pharmaceutical supply-chain deployment maps its tiers as follows: a global regulatory body maps to the  <concept><refterm>root trust authority</refterm><renderterm>root trust authority</renderterm><xref target="term-root-trust-authority"/></concept>; national drug agencies map to  <concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authorities</renderterm><xref target="term-delegated-trust-authority"/></concept> at successive scope narrowings; manufacturer quality-assurance authorities map to delegated trust authorities with production-line scope; per-batch signing keys map to <concept><refterm>end certificate</refterm><renderterm>end certificates</renderterm><xref target="term-end-certificate"/></concept>; and signed batch release records map to <concept><refterm>trusted artifact</refterm><renderterm>trusted artifacts</renderterm><xref target="term-trusted-artifact"/></concept>.</p>
</example>

<p id="_06efe2da-2282-6b94-cd29-961e7e723eed">Other domains — pharmaceutical supply chains, academic credentials, environmental monitoring — may define their own tier mappings. The requirements of this document apply uniformly regardless of the domain.</p>
</clause>

<clause id="_b8a99ada-1aa6-f803-a36e-d10a90844e5e" anchor="req-architecture" inline-header="false" obligation="normative">
<title id="_0a0b684f-5659-76a6-0de3-a46c71c4168f">Requirements</title>
<p id="_0c6d541c-dd8c-0aa8-796d-8d47722ddc22">Architecture and trust model has its formalized requirements class described in <xref target="rc-architecture-1"/>, with its requirements listed from <xref target="r-architecture-1-1"/> to <xref target="r-architecture-1-11"/>.</p>

<requirement id="_e7644857-a620-d822-8403-16652c69b8bc" anchor="rc-architecture-1" model="ogc" type="class">
<title>Architecture and trust model</title><identifier>/req/architecture</identifier><subject>trust infrastructure</subject><description id="_ef6eacb9-455b-429b-8a5f-f3df61fb5d06"><p id="_85eba195-0a6f-05ed-ee95-c4fb972865df">Requirements on the four-level delegation model, the trust graph, chain discovery, and the trust anchor bundle.</p>
</description><requirement id="_7ec3e7da-f3f9-de2e-8136-953f8195f97d" model="ogc" type="general"> <identifier>/req/architecture/four-level-model</identifier></requirement><requirement id="_a0d37dab-aa2a-b6bf-47af-8c2a3614efc0" model="ogc" type="general"> <identifier>/req/architecture/delegation-certificate</identifier></requirement><requirement id="_875e6c8d-8934-b0d3-4f3b-719ab88426e0" model="ogc" type="general"> <identifier>/req/architecture/delegation-scope-narrowing</identifier></requirement><requirement id="_0178972c-ade7-89b2-7e2e-7ad3b36b00a6" model="ogc" type="general"> <identifier>/req/architecture/end-certificate-contents</identifier></requirement><requirement id="_1f57778c-56af-eb9f-b8b2-b2d29cb38948" model="ogc" type="general"> <identifier>/req/architecture/trust-graph-pathfinding</identifier></requirement><requirement id="_d50b0265-c8c3-49ff-8bd6-f60a99eed7c0" model="ogc" type="general"> <identifier>/req/architecture/path-transparency-inclusion</identifier></requirement><requirement id="_cd1c55a1-a999-343b-e620-96ba63c136de" model="ogc" type="general"> <identifier>/req/architecture/path-revocation-checking</identifier></requirement><requirement id="_8f7e6d41-cb6a-246c-b78e-1c1a62bc1106" model="ogc" type="general"> <identifier>/req/architecture/chain-discovery</identifier></requirement><requirement id="_c14793d2-664b-76dc-ccc8-d1de7698f740" model="ogc" type="general"> <identifier>/req/architecture/anchor-bundle-self-contained</identifier></requirement><requirement id="_a3dd1a22-aef2-767d-a682-7ee2b1c25934" model="ogc" type="general"> <identifier>/req/architecture/anchor-bundle-versioning</identifier></requirement><requirement id="_bf510e23-4cb8-eb0e-4f4d-5a4bf9db0f68" model="ogc" type="general"> <identifier>/req/architecture/anchor-bundle-distributable</identifier></requirement>

</requirement>

<requirement id="_cd31f608-c087-c6be-4388-bf02003f110c" anchor="r-architecture-1-1" model="ogc">
<title>Four-level delegation model</title><identifier>/req/architecture/four-level-model</identifier><description id="_54463387-e9a4-03a5-4d1f-68c14e314cc7"><p id="_a68f7303-8a48-f712-cf35-4ae4b34264eb">The trust infrastructure shall implement a delegation model in which signing authority flows from a root trust authority, through zero or more delegated trust authorities, to an end certificate that authorizes a key to produce trusted artifacts.</p>
</description><component id="_21116f08-7e38-5d8d-eb73-475e7fa72179" class="guidance"><p id="_4372f17d-e708-9517-3b78-2dc7d3bf7431">The four levels are root trust authority, delegated trust authority, end certificate, and trusted artifact.</p>

<p id="_55ab79a9-5015-4dc5-9943-483cfa6b1ec7">A delegation chain may pass through zero or more delegated trust authorities.</p>
</component>

</requirement>

<requirement id="_29625539-6424-8f5e-916b-fb17d3426c2f" anchor="r-architecture-1-2" model="ogc">
<title>Delegation certificate binding</title><identifier>/req/architecture/delegation-certificate</identifier><description id="_8c6f55ad-667e-64bd-d2ba-f3f2b4cc47bf"><p id="_4e16aae5-c85d-9e6e-b019-96a47b7115c6">A delegation from a parent trust authority to a child shall be expressed as a signed credential that binds the child’s aggregate key, the quorum parameters if the child is threshold, the narrowed scope, and a reference to the ceremony protocol if applicable.</p>
</description><component id="_367a13fd-14f3-7012-3c73-b36903051c05" class="guidance"><p id="_b52e41ea-4fd4-2007-d6ce-7a46dfca7c66">The delegation certificate is itself a verifiable artifact subject to chain verification, scope enforcement, and transparency inclusion.</p>

<p id="_31b5e9de-e268-d0c6-f5c7-70e8e313111a">If the child is a single-key authority (1-of-1), the quorum parameters are omitted.</p>
</component>

</requirement>

<requirement id="_38167437-58fd-057a-4036-5f7cfdd4f72f" anchor="r-architecture-1-3" model="ogc">
<title>Scope narrowing in delegation</title><identifier>/req/architecture/delegation-scope-narrowing</identifier><description id="_1d3dacbd-92ea-8201-9fd0-bdc34c10cb6d"><p id="_87a9b313-2c83-708a-e1f3-9d88b56f9b3b">Every delegation shall narrow the scope such that the child’s scope is a subset of the parent’s scope on every scope dimension, in accordance with the monotonic narrowing invariant.</p>
</description><component id="_c833a758-6d74-4876-f996-335678ffa8a4" class="guidance"><p id="_87403cdb-5d06-f64b-d223-ec0c63fdc6de">Widening any scope dimension at any delegation link constitutes a verification failure.</p>

<p id="_e05d6bf7-461d-4482-2553-f9737071559e">Detailed scope requirements are specified in /req/scope/.</p>
</component>

</requirement>

<requirement id="_645dd66a-aef5-819c-f080-09073868fb0b" anchor="r-architecture-1-4" model="ogc">
<title>End certificate contents</title><identifier>/req/architecture/end-certificate-contents</identifier><description id="_8adfc854-e8fb-282d-cc94-d5ecbc9ffa99"><p id="_0bdc14d9-7736-4be5-17c8-e2b80a64e7ad">An end certificate shall carry the authorized public key or its fingerprint, the scope under which the key is authorized to sign, any scope conditions, and a reference to the issuing trust authority’s delegation chain.</p>
</description><component id="_273806be-3962-f337-360d-1a1e3d078d26" class="guidance"><p id="_4ff36aca-2bb2-61cd-6778-5d687056585c">An end certificate shall not delegate authority further.</p>

<p id="_4183f186-85c1-7093-1be4-8da7a9103257">Scope conditions are executable predicates evaluated at verification time.</p>
</component>

</requirement>

<requirement id="_11877bb2-5e92-6625-1eff-a0da0e876369" anchor="r-architecture-1-5" model="ogc">
<title>Trust graph path discoverability</title><identifier>/req/architecture/trust-graph-pathfinding</identifier><description id="_6e2b24c9-f333-8b99-06ed-293699c6224a"><p id="_c196700f-c3e6-f83d-bb45-d46e051b925c">A verifier shall be able to find one or more paths in the trust graph from a trusted artifact to a root anchor in the trust anchor bundle, validating the cryptographic signature and the scope narrowing at every link on each path.</p>
</description><component id="_6c5542ad-2403-0761-885a-f00c0dc0eb12" class="guidance"><p id="_3fa76545-6a54-b1ec-4a17-f0fd861dfa6f">Multiple valid paths may exist. The coverage report records all valid paths and the classification policy determines the label from the convergence pattern.</p>

<p id="_27fe3a78-069b-3af7-dc82-be00d4ed1e4b">The path-finding algorithm is implementation-neutral.</p>
</component>

</requirement>

<requirement id="_f6d7d957-a310-28c5-a79d-b91ec72b2567" anchor="r-architecture-1-6" model="ogc">
<title>Transparency inclusion on path</title><identifier>/req/architecture/path-transparency-inclusion</identifier><description id="_b3a46cbb-6e68-d7ac-b1bd-df541160bce2"><p id="_ef18b62c-326b-0f9c-9d3a-807ff7cc0ef3">For every delegation certificate and end certificate on a verification path, the verifier shall confirm inclusion in a recognized transparency log.</p>
</description><component id="_1be37c91-bef8-0a3f-887e-0b6860c32802" class="guidance"><p id="_58f042fa-3bd1-5f79-2684-2b907d501930">Artifacts or certificates not provably included in a recognized log shall be downgraded or rejected.</p>

<p id="_729f4eb5-8b33-292f-3ebc-f9c1d8817cd5">Detailed transparency requirements are specified in /req/transparency/.</p>
</component>

</requirement>

<requirement id="_87005db7-a22e-4382-8545-71e5edc73574" anchor="r-architecture-1-7" model="ogc">
<title>Revocation checking on path</title><identifier>/req/architecture/path-revocation-checking</identifier><description id="_8029f4d5-7c62-c7a9-f0ae-9c1deaa0b435"><p id="_e22c9164-e233-7529-e842-17a510f94b34">For every trust authority on a verification path, the verifier shall determine the revocation status and propagate any revocation to artifacts transitively bound to that authority.</p>
</description><component id="_1d27b149-3e61-20f9-fc76-f7f9b4170906" class="guidance"><p id="_c16bc25a-d6fd-8d19-d030-f2a3ddec6922">Detailed revocation requirements are specified in /req/revocation/.</p>
</component>

</requirement>

<requirement id="_a6a1aca4-ab71-28dc-b1e0-d79dc0ddae06" anchor="r-architecture-1-8" model="ogc">
<title>Chain discovery support</title><identifier>/req/architecture/chain-discovery</identifier><description id="_635bb32c-fdaf-3f86-5b8f-0ea8812d9dee"><p id="_e9ebeca3-591c-dab1-c504-e91a9419a5b4">A verifier shall support at least one chain discovery strategy — embedded chain, transparency-log references, or hybrid — sufficient to reconstruct the full delegation chain from artifact to root anchor.</p>
</description><component id="_c6a8e838-1a6b-258b-16d3-bd03b4bd9df9" class="guidance"><p id="_542e1bd8-621d-0f66-d236-fd6e7544d9cb">The embedded chain strategy carries the full chain inline and is fully offline-capable.</p>

<p id="_cc019d9c-cdcb-d9e9-b6c7-6951039c397d">The transparency-log reference strategy uses sequence number pointers and requires network access on first encounter.</p>

<p id="_b31909f7-1b41-7fc6-4581-176d8852de9b">The hybrid strategy embeds the immediate chain and includes transparency-log references for freshness.</p>
</component>

</requirement>

<requirement id="_2efed424-c183-ad72-9800-23a4512ea4ad" anchor="r-architecture-1-9" model="ogc">
<title>Trust anchor bundle self-containment</title><identifier>/req/architecture/anchor-bundle-self-contained</identifier><description id="_26eefd91-ea19-39f8-08e5-b2f94d0e26ef"><p id="_59f68b28-a683-a156-791f-4595e3b0d420">A trust anchor bundle shall contain the root aggregate keys or their fingerprints and the metadata needed to identify and validate them, such that a verifier holding the bundle and an artifact with an embedded or hybrid chain requires no additional network access to complete verification.</p>
</description><component id="_ffdb6662-fd06-831e-7620-401156e33fc5" class="guidance"><p id="_bd7c6e48-8d72-ed45-e80c-911cb71f0637">The bundle is the starting point for all verification paths.</p>
</component>

</requirement>

<requirement id="_8a30277d-5e9c-3074-1462-296d685cf5bd" anchor="r-architecture-1-10" model="ogc">
<title>Trust anchor bundle versioning</title><identifier>/req/architecture/anchor-bundle-versioning</identifier><description id="_3e3a6a0e-a653-9f20-f9b7-0fe593f9cf7d"><p id="_c93a1d47-934c-9770-70e5-cebcd04525ea">A trust anchor bundle shall carry a version identifier and a validity period, and bundle updates shall be recorded in a transparency log.</p>
</description><component id="_eb835e03-fc15-5214-8f68-65771488cc73" class="guidance"><p id="_bb54f890-37f9-fe3a-0680-eb4f68a5f641">Bundle versioning enables verifiers to determine whether they hold a current or stale anchor set.</p>
</component>

</requirement>

<requirement id="_c1e06724-5eb2-84ee-5122-806cd0df94ec" anchor="r-architecture-1-11" model="ogc">
<title>Trust anchor bundle distributability</title><identifier>/req/architecture/anchor-bundle-distributable</identifier><description id="_bfdaa308-f4d0-d70c-f7b5-8ea94c3195d3"><p id="_33223e7a-3243-5901-f1bd-478db8b54fd7">A trust anchor bundle shall be expressible in a deterministic format suitable for out-of-band distribution.</p>
</description><component id="_185f4d7c-7d63-0ca7-458a-3880f7253e1a" class="guidance"><p id="_ce890d7e-d45f-d328-52df-74e202afc72a">Examples of out-of-band distribution include physical media, secure channels, and published fingerprints verified against multiple independent sources.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_f4073b40-235a-6830-f5a4-734a4f893299" anchor="artifact-format" inline-header="false" obligation="normative">
<title id="_af32105e-a5a6-64bd-9ae6-68a8a257825f">Artifact format and signature binding</title>
<clause id="_77e1ce24-6475-5a7b-1b3a-d7384d929915" inline-header="false" obligation="normative">
<title id="_5f4b6e39-1b0d-5578-3593-0f263f988427">General</title>
<p id="_f00ed557-b6f4-903f-0da0-2f5bb085ae20">A <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> is the deliverable of the SIGNATIF framework. It is a signed data object carrying one or more signatures over a deterministic canonical representation of its payload. This clause specifies the format-agnostic binding requirements that all conforming artifact formats shall satisfy, the recognized format profiles, and the models for co-signatures, cross-domain trust fusion, and multi-dimensional attestation.</p>

<p id="_eeea5158-1aa8-c045-2db3-06330adeab35">This document is format-agnostic: the binding requirements are specified independently of serialization. Specific signature envelope formats (e.g., XMLDSig, JWS, COSE) are defined as conformance profiles in  <xref target="artifact-format-profiles"/>; the COSE profile encodes artifacts as CBOR (<eref type="inline" bibitemid="rfc8949" citeas="IETF RFC 8949"/>).</p>
</clause>

<clause id="_fd81fa94-0265-d982-c239-a7c49345d990" anchor="artifact-binding" inline-header="false" obligation="normative">
<title id="_e9cbc089-ed4c-857a-c3b6-ac86d5484d64">Signature binding requirements</title>
<p id="_5e94e796-5cf7-284e-73e8-b7daf383e282">Any conforming signature wrapper shall guarantee the following five binding properties:</p>

<ol id="_6771cd05-0866-f9d8-b30f-26fe6bafd2df"><li><p id="_2da9a989-3a1f-6fea-e81e-697fa3508e86">Canonical representation binding. The signature shall bind to a deterministic  <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept> — a byte-string representation of the payload data such that the same logical content always produces the same bytes, regardless of serialization format or encoding.</p>
</li>
<li><p id="_3a1c46b8-f1bf-0f7e-8c1b-a6aa93e2196b">Algorithm identification. The wrapper shall explicitly identify the signing algorithm and its parameters, such that the verifier knows unambiguously how to validate the signature.</p>
</li>
<li><p id="_a641456f-5c90-c750-e3ce-d0096103daad">Signer identification. The wrapper shall reference or embed the signer’s public key or  <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept>, enabling the verifier to locate the key and its delegation chain.</p>
</li>
<li><p id="_1ebbf82a-d1a1-33dd-456f-ed62afcc2259">Chain availability. The wrapper shall carry or reference the full chain from the signer to a root anchor, in accordance with at least one chain discovery strategy (see  <xref target="architecture-discovery"/>).</p>
</li>
<li><p id="_f719c68c-ba5b-2126-24e0-536bd890acba">Self-description. The wrapper shall be self-describing: a verifier shall be able to determine all inputs needed for validation from the wrapper and the  <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept> alone, without external convention.</p>
</li>
</ol>
</clause>

<clause id="_0fd852a9-3357-2177-bc86-2d32321f55a9" anchor="artifact-canonical-payload" inline-header="false" obligation="normative">
<title id="_15ce753f-06c9-0569-31a4-1d6e13df486f">Canonical payload</title>
<p id="_0b34ee7a-fc35-6b67-61d1-52ed8ff1e064">The <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept> is the deterministic byte-string representation of the artifact data that all signatures and  <concept><refterm>co-signature</refterm><renderterm>co-signatures</renderterm><xref target="term-co-signature"/></concept> attest. Every signer — regardless of trust dimension, organization, or trust chain — attests the same canonical bytes.</p>

<p id="_ce6e59fe-d35c-0a33-0fc9-5de25122ea60">A conforming canonicalization algorithm shall satisfy the following characteristics:</p>

<ul id="_8a2391bd-a2bc-18b3-9a4a-dbe5db4b16b1"><li><p id="_91faafc1-278f-56c3-9539-b3cb77fcfbe1">Determinism. The same logical content shall always produce the same canonical byte string, regardless of the serialization format, encoding, or implementation that produced it.</p>
</li>
<li><p id="_684294f5-984a-16ef-9600-a80f0a9856e9">Recoverability. The canonical byte string shall be sufficient to reconstruct the logical content without loss.</p>
</li>
<li><p id="_6ce64f3c-e05c-f3b6-7de9-65832e8d298f">Unambiguity. The canonicalization rules shall be fully specified, leaving no implementation-defined behavior that could cause two implementations to produce different canonical bytes for the same logical content.</p>
</li>
<li><p id="_e6519281-63b2-cc3e-81f7-b0d4aecea1ce">Collision resistance. Two distinct logical contents shall not produce the same canonical byte string (subject to the underlying hash function’s collision resistance).</p>
</li>
</ul>

<p id="_f16f0dc9-330f-e56e-a6be-da021a185769">The specific canonicalization algorithm is specified by each format profile (see  <xref target="artifact-format-profiles"/>). An implementation claiming a format profile shall use the canonicalization algorithm specified by that profile. Canonicalization algorithms used by the initially registered profiles are listed in  <xref target="tab-canonicalization-examples"/>:</p>

<table id="_e58a11f2-c0b3-12ef-28c5-7f3d59f39522" anchor="tab-canonicalization-examples"><colgroup><col width="40%"/><col width="60%"/></colgroup>
<name id="_0c6e9d08-24a9-e7e0-832e-f127b5321979">Examples of canonicalization algorithms by format profile</name>
<thead><tr id="_23a387fa-cbc7-bbbc-8ff2-22d3eb53154c"><th id="_6f6b5b34-db82-e7b0-36a9-ced4a3667ed0" valign="top" align="left">Format profile</th>
<th id="_b34da290-0c87-5044-2395-fecc653ecbb8" valign="top" align="left">Canonicalization characteristics</th>
</tr></thead>
<tbody><tr id="_be5ac028-4c15-d748-edf9-6f149a4a9861"><td id="_a75c4f2b-c4f5-465d-2172-9dc4933dbc6e" valign="top" align="left">JWS-based</td>
<td id="_89ac134e-c0ff-6df8-29a5-69da9b04fd09" valign="top" align="left">Object keys in deterministic order (e.g., lexicographic), no insignificant   whitespace, deterministic number representation, UTF-8 encoding</td>
</tr><tr id="_bdfea446-be79-5bce-2315-160d756bf4ee"><td id="_9ed75eeb-8362-9c76-501b-bb069974020a" valign="top" align="left">COSE-based</td>
<td id="_6058b3d3-6186-6468-feac-9a7b6fe74e9b" valign="top" align="left">Definite-length encoding, map keys in deterministic order, integers in   minimum-length encoding</td>
</tr><tr id="_e33e7f72-0ae9-8e8b-3932-f75dca80e78a"><td id="_5d6e4197-d8e7-52f8-0bd0-fcca730057fb" valign="top" align="left">XMLDSig-based</td>
<td id="_f73b29a2-bd3d-28fd-be20-d1a9ef3db710" valign="top" align="left">Canonical XML (e.g., Exclusive C14N) for the signed subtree, UTF-8 encoding</td>
</tr></tbody>
</table>

<p id="_6f12bb65-3c00-92f1-21ce-f5257dea4a40">Additional format profiles and their canonicalization algorithms may be registered in the scheme’s registry. The choice of format profile is a deployment decision; this document does not mandate a specific format.</p>

<p id="_a46bf327-1b80-43de-4240-d3b6ca2bb3f2">A co-signer cannot selectively attest part of the artifact. Partial attestation is not conforming.</p>
</clause>

<clause id="_2c0b7bee-90ca-c283-348e-5bfe4cf04130" anchor="artifact-format-profiles" inline-header="false" obligation="normative">
<title id="_fcf48c9a-503b-2334-3055-049759f6f4c5">Format profiles</title>
<p id="_0769bc2e-fa4e-3f82-54a3-56f612003eca">The choice of signature envelope format is a deployment decision. This document does not mandate a specific format. An implementation claiming a format profile shall satisfy the binding requirements in  <xref target="artifact-binding"/> in addition to the profile-specific canonicalization characteristics. The format profiles listed in  <xref target="tab-format-profiles-initial"/> are initially registered; additional profiles may be registered per  <xref target="annex-c"/>.</p>

<table id="_27060bc1-dd5b-e042-ef43-f85d0faab117" anchor="tab-format-profiles-initial"><colgroup><col width="28.5714%"/><col width="42.8571%"/><col width="28.5715%"/></colgroup>
<name id="_8afa4cb0-0fe8-1cd4-81f5-896290bbee3a">Initially registered format profiles</name>
<thead><tr id="_56b67e0f-653f-c4cd-3bff-b776ddbbb86d"><th id="_e50e23e7-c9f0-5f7e-0b11-5397bd86479a" valign="top" align="left">Profile</th>
<th id="_8bf71dbb-0cd7-67d3-c48a-48c1298c39d9" valign="top" align="left">Format</th>
<th id="_110189ee-f133-6069-9dcf-843f5f18f491" valign="top" align="left">Reference</th>
</tr></thead>
<tbody><tr id="_fbbdd02c-9b09-0fc7-e1b9-fd634730a1a1"><td id="_ebda83e7-0409-54c3-15dc-1e2fca0d4a89" valign="top" align="left"><tt>/conf/format-xmldsig</tt></td>
<td id="_ef55c293-3308-1972-4658-ad6f2febbbb6" valign="top" align="left">W3C XML Signature with Exclusive XML Canonicalization (Exc-C14N)</td>
<td id="_bfe21d2e-6d53-cf56-2620-282f696aae75" valign="top" align="left"><eref type="inline" bibitemid="w3c-xmldsig" citeas="W3C Recommendation: XML Signature Syntax and Processing Version 2.0"/>, <eref type="inline" bibitemid="w3c-c14n" citeas="W3C Recommendation: Exclusive XML Canonicalization Version 1.0"/></td>
</tr><tr id="_ed63e4f3-19fc-a589-6cf0-6583f8b6df87"><td id="_134b82e8-b3d1-2eef-5f41-9acf80f40eb4" valign="top" align="left"><tt>/conf/format-jws</tt></td>
<td id="_07b6c239-352c-865b-bf67-e2d351fad647" valign="top" align="left">JSON Web Signature, compact or JSON serialization, with detached content</td>
<td id="_9e9cd98f-ce25-c9c5-5546-7bc2ebea948d" valign="top" align="left"><eref type="inline" bibitemid="rfc7515" citeas="IETF RFC 7515"/></td>
</tr><tr id="_9eebb522-ac78-5c92-99f1-480fd1a8e759"><td id="_c91fa777-952c-663c-c96a-0fc945120ab8" valign="top" align="left"><tt>/conf/format-cose</tt></td>
<td id="_edcf9473-0fad-78e4-268d-921dad511313" valign="top" align="left">CBOR Object Signing and Encryption, Sig_Structure</td>
<td id="_3dc0f3c6-6abc-8b95-9d8c-d356cc3c5122" valign="top" align="left"><eref type="inline" bibitemid="rfc8152" citeas="IETF RFC 8152"/></td>
</tr></tbody>
</table>

<p id="_1506c80c-3016-afcc-4f99-68b512365559">Future formats may be registered upon demonstration of conformance to the five binding requirements and specification of their canonicalization algorithm.</p>
</clause>

<clause id="_b017b188-16df-1fd0-cf78-236a1927317d" anchor="artifact-payload-schema" inline-header="false" obligation="normative">
<title id="_91c3582c-0945-ede8-442c-714aa753c6af">Per-domain payload schema</title>
<p id="_aea18a59-1abb-bf82-e300-2b02f1dd4b3f">The payload of a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> follows a domain-specific schema. The schema is identified by a URI (<tt>$id</tt>) and is versioned. Multiple payload schemas may coexist within one SIGNATIF deployment, enabling different domains to define their own artifact content structures.</p>

<p id="_cb5b34c3-95b9-5724-83a8-65e21a958e69">A payload schema shall be deterministic: two artifacts with the same logical content shall canonicalize to the same bytes under the schema.</p>
</clause>

<clause id="_960012a2-a6b6-b4f6-af9b-40eb934ff969" anchor="artifact-versioning" inline-header="false" obligation="normative">
<title id="_2730aaf1-7a8d-a907-4db9-34a90ed40957">Version compatibility</title>
<p id="_eb253c2d-778c-64e5-99aa-1b90013b508e">Artifact format versioning follows semantic compatibility rules:</p>

<ul id="_24dd31f0-4601-275e-d4cc-4ef086a85de1"><li><p id="_a52e0f11-9138-8b51-395e-37b1a70cb098">Major version changes are breaking. Verifiers shall reject artifacts whose major version exceeds the verifier’s supported maximum.</p>
</li>
<li><p id="_d97c3a95-9a44-01bb-d7b2-23d142521c4a">Minor version changes are backward and forward compatible. Verifiers shall ignore unknown fields introduced in minor versions.</p>
</li>
</ul>

<p id="_5ea04f90-7992-3245-39a5-1f1f44eb9fe8">The version is carried explicitly in the wrapper, not implied by the format profile.</p>
</clause>

<clause id="_205aaad2-0573-173e-11e9-ddeff4fbbdb3" anchor="artifact-cosignatures" inline-header="false" obligation="normative">
<title id="_24195412-4ed4-a615-0094-7d6fda7709a2">Co-signatures and multi-party attestation</title>
<clause id="_66e93f94-a00c-c3be-62b4-40cea113e31b" inline-header="false" obligation="normative">
<title id="_bc5dcec0-2bcf-2a2c-bec2-c913ce5d5744">General</title>
<p id="_191b7d4f-d9ba-e8bc-ef94-57c8d2c29f3b">A <concept><refterm>co-signature</refterm><renderterm>co-signature</renderterm><xref target="term-co-signature"/></concept> is an additional signature on the same <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept> of a  <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept>, produced by a signer from an independent role, organization, or  <concept><refterm>trust dimension</refterm><renderterm>trust dimension</renderterm><xref target="term-trust-dimension"/></concept>. Co-signatures are the mechanism by which the artifact becomes a convergence point of independent attestations rather than a single-authority assertion.</p>
</clause>

<clause id="_a580b537-b194-99fc-5d92-975a26ac1020" inline-header="false" obligation="normative">
<title id="_afdf76b5-9cff-0b3c-15ce-e32d63fdfcc8">Co-signature block</title>
<p id="_fcd4b363-1f9c-108e-9bb1-6bcba552aaac">Each co-signature block shall contain:</p>

<ul id="_25c85eb7-b426-7e70-cfa4-38e23a540671"><li><p id="_f967cf8c-0171-1ed2-728d-e155360b4281">Signer identity. An <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> reference or key fingerprint.</p>
</li>
<li><p id="_ee9b1916-ee42-f48b-30aa-4693d6b40fcb">Chain reference. A reference to the signer’s root (which may differ from the primary signer’s root).</p>
</li>
<li><p id="_7dd44bd2-9a4a-9984-af9e-5f890450be2e">Algorithm. The signing algorithm and parameters. Each co-signer may use a different algorithm.</p>
</li>
<li><p id="_3a691bdb-4571-2c2c-d80d-11748d7b830f">Dimension tag. The <concept><refterm>trust dimension</refterm><renderterm>trust dimension</renderterm><xref target="term-trust-dimension"/></concept> type this co-signature attests (e.g., data, person, time, location, environment).</p>
</li>
<li><p id="_cd551b3c-dc56-b42c-d3fa-1a3bb98b7a28">Signature. The cryptographic signature over the canonical payload.</p>
</li>
</ul>
</clause>

<clause id="_8725dd90-c8b4-f450-f34f-c6d1cf894ae2" inline-header="false" obligation="normative">
<title id="_4664184b-13b6-fd30-0c30-514ddf2f2059">Independent verification</title>
<p id="_616da2b7-c276-558a-abc6-22b35b56be20">Each co-signature shall be verified independently:</p>

<ul id="_201d1bba-2b79-9804-3cef-877c67131f3a"><li><p id="_72345bfc-56f4-805b-ca4e-0dc9f57f7761">each has its own chain to its own root;</p>
</li>
<li><p id="_04c68038-32a7-4267-2fdd-6068a35ff43c">the verifier checks each signature, chain, and scope independently;</p>
</li>
<li><p id="_81f41390-aefc-74cd-51d3-aca265f6bf06">no co-signature depends on another for its cryptographic validity (policy dependencies are separate, see  <xref target="verification"/>).</p>
</li>
</ul>
</clause>

<clause id="_38456f33-ed09-0a5b-53ed-4f681a28079a" inline-header="false" obligation="normative">
<title id="_7fc55ae7-3eee-71a9-996f-73071bbd58a8">Canonical payload binding</title>
<p id="_4039c002-567e-5847-ae10-18b4435ae99f">All co-signatures shall attest the same <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept>. A co-signer cannot selectively attest part of the artifact.</p>
</clause>

<clause id="_92d83e98-7a80-8067-3ab7-e1ac9206ce57" inline-header="false" obligation="normative">
<title id="_59c031fd-21b3-05ad-ad96-85293f04b66d">Format profile encoding obligation</title>
<p id="_790274a7-f53e-39cb-7fe2-d996f0dcacd4">Each format profile registered in the scheme’s format profile registry shall specify how co-signature blocks, dimension tags, and chain references are encoded in that format. A format profile that does not define a co-signature encoding shall not claim conformance to the multi-dimensional attestation requirements of this document.</p>
</clause>
</clause>

<clause id="_67af087b-8a47-1eff-ad47-26927c71e6f5" anchor="artifact-cross-domain" inline-header="false" obligation="normative">
<title id="_e8cdac3f-b0eb-4dff-17f8-caa71ad6af6c">Cross-domain trust fusion</title>
<clause id="_620646e5-5842-0607-db9d-1438c4697784" inline-header="false" obligation="normative">
<title id="_8c2dee07-e601-0544-84d0-7f3beb244248">General</title>
<p id="_ddef6a65-c4ab-144d-e54c-bd7c89f6801b"><concept><refterm>co-signature</refterm><renderterm>co-signatures</renderterm><xref target="term-co-signature"/></concept> on a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> may originate from independent  <concept><refterm>trust chain</refterm><renderterm>trust chains</renderterm><xref target="term-trust-chain"/></concept> — different roots, different governance frameworks. The artifact becomes a cross-domain trust junction: a single data object on which multiple independent governance frameworks have converged.</p>
</clause>

<clause id="_2b6cc531-5bde-9a68-6b1f-1a37fe7d1af3" inline-header="false" obligation="normative">
<title id="_73550d2b-38ea-02d3-608a-ca73d65868b7">No root cross-recognition required</title>
<p id="_516d7fdd-a38a-71f7-8e47-b92e6963da23">Cross-domain co-signing does not require the participating roots to cross-certify each other. The co-signatures themselves are the cross-domain trust recognition, established at the artifact level rather than at the CA level.</p>

<p id="_ebeaebde-521d-05c9-4277-d4fa1aa077b2">The verifier holds anchors for multiple roots in the <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept>. Cross-domain verification uses these anchors directly.</p>
</clause>

<clause id="_ec661fcd-b049-97ff-7ee0-01a3ad34626f" inline-header="false" obligation="normative">
<title id="_34fb652d-ac06-54ee-8599-ff2bdf5bb099">Trust cement properties</title>
<p id="_61eea825-4c94-da42-aacd-43d8f3b27783">Once co-signatures are applied to an artifact, the following properties hold:</p>

<ul id="_8bb7b03e-bb25-9bfb-640b-695e6bd9b65d"><li><p id="_37ffdc3f-c3d0-d255-1bba-57eafefc39ed">A co-signature cannot be stripped without breaking the artifact’s self-description.</p>
</li>
<li><p id="_bc25fb26-608b-b1bb-6c28-86304b466e6e">Each co-signer committed to the exact same canonical payload and cannot deny its attestation.</p>
</li>
<li><p id="_56d14cbc-32af-dd4c-5068-d21edeac6f7f">The transparency log records the artifact with all co-signatures, and the record cannot be rewritten.</p>
</li>
<li><p id="_e5d2a05e-c207-979d-ee81-7d806508b08b">Each co-signature may carry its own time anchor, preventing backdating.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_0f929c83-13d9-e319-f1b4-b5cf4794253d" anchor="artifact-multi-dimensional" inline-header="false" obligation="normative">
<title id="_173efd01-e1fe-f995-35e5-5f4f61ba2d0e">Multi-dimensional attestation</title>
<clause id="_3388d4c0-3d0b-cd25-2a11-747a096ea172" inline-header="false" obligation="normative">
<title id="_9752c1b8-f304-3041-41c5-bb78297f438c">General</title>
<p id="_52540a16-ad2a-1ad7-d5cb-1c6df30fe71b">Each <concept><refterm>trust dimension</refterm><renderterm>trust dimension</renderterm><xref target="term-trust-dimension"/></concept> is an independently verifiable aspect of reality, attested by its own  <concept><refterm>dimension attestation</refterm><renderterm>dimension attestation</renderterm><xref target="term-dimension-attestation"/></concept> (a <concept><refterm>co-signature</refterm><renderterm>co-signature</renderterm><xref target="term-co-signature"/></concept> tagged with the dimension type). Dimensions are independent: each has its own trust tree and root, and no cross-recognition between dimension roots is required (<xref target="fig-convergence"/>).</p>

<figure id="_a5ba6f03-4517-46fa-b086-ca44c37906fb" anchor="fig-convergence">
<name id="_224e879c-bf49-8091-4289-8fde4b8f9961">Multi-dimensional convergence on a trusted artifact</name>
<image id="_47b1bf63-03a7-6da5-7669-187cadbba29e" src="images/dimensional-convergence.svg" mimetype="image/svg+xml" height="auto" width="auto" filename="images/dimensional-convergence.svg"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 600" font-family="sans-serif" font-size="12">
  <defs>
    <radialGradient id="centerGlow" cx="50%" cy="50%" r="50%">
      <stop offset="0%" stop-color="#f3e8fd" stop-opacity="0.8"/>
      <stop offset="100%" stop-color="#f3e8fd" stop-opacity="0"/>
    </radialGradient>
  </defs>

  <text x="450" y="25" text-anchor="middle" font-size="15" font-weight="bold">Multi-dimensional convergence on a trusted artifact</text>
  <text x="450" y="44" text-anchor="middle" font-size="12" fill="#666">Each dimension is independently verifiable; convergence increases trust grade</text>

  <!-- Central artifact -->
  <circle cx="450" cy="300" r="180" fill="#f3e8fd" fill-opacity="0.3"/>
  <rect x="350" y="270" width="200" height="60" rx="8" fill="#9334e6" stroke="#7b1fa2" stroke-width="2"/>
  <text x="450" y="295" text-anchor="middle" font-weight="bold" fill="white" font-size="14">Trusted Artifact</text>
  <text x="450" y="315" text-anchor="middle" fill="#e1bee7" font-size="11">Canonical payload hash H</text>

  <!-- Data dimension (top) -->
  <rect x="370" y="70" width="160" height="50" rx="6" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="450" y="90" text-anchor="middle" font-weight="bold">Data dimension</text>
  <text x="450" y="106" text-anchor="middle" font-size="10" fill="#666">Primary signature (End Cert)</text>
  <line x1="450" y1="120" x2="450" y2="270" stroke="#4285f4" stroke-width="1.5" stroke-dasharray="5,3"/>
  <text x="460" y="200" font-size="10" fill="#4285f4">signs H</text>

  <!-- Person dimension (top-right) -->
  <rect x="650" y="100" width="160" height="50" rx="6" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="730" y="120" text-anchor="middle" font-weight="bold">Person dimension</text>
  <text x="730" y="136" text-anchor="middle" font-size="10" fill="#666">Operator co-signature</text>
  <line x1="660" y1="140" x2="540" y2="270" stroke="#34a853" stroke-width="1.5" stroke-dasharray="5,3"/>
  <text x="610" y="200" font-size="10" fill="#34a853">signs H</text>

  <!-- Time dimension (right) -->
  <rect x="700" y="275" width="160" height="50" rx="6" fill="#fef7e0" stroke="#fbbc04" stroke-width="2"/>
  <text x="780" y="295" text-anchor="middle" font-weight="bold">Time dimension</text>
  <text x="780" y="311" text-anchor="middle" font-size="10" fill="#666">Time key (anchored)</text>
  <line x1="700" y1="300" x2="550" y2="300" stroke="#fbbc04" stroke-width="1.5" stroke-dasharray="5,3"/>
  <text x="610" y="290" font-size="10" fill="#fbbc04">signs H</text>

  <!-- Location dimension (bottom-right) -->
  <rect x="650" y="450" width="160" height="50" rx="6" fill="#fce8e6" stroke="#ea4335" stroke-width="2"/>
  <text x="730" y="470" text-anchor="middle" font-weight="bold">Location dimension</text>
  <text x="730" y="486" text-anchor="middle" font-size="10" fill="#666">GNSS co-signature</text>
  <line x1="660" y1="455" x2="540" y2="325" stroke="#ea4335" stroke-width="1.5" stroke-dasharray="5,3"/>
  <text x="610" y="395" font-size="10" fill="#ea4335">signs H</text>

  <!-- Environment dimension (bottom) -->
  <rect x="370" y="480" width="160" height="50" rx="6" fill="#e0f2f1" stroke="#009688" stroke-width="2"/>
  <text x="450" y="500" text-anchor="middle" font-weight="bold">Environment dimension</text>
  <text x="450" y="516" text-anchor="middle" font-size="10" fill="#666">Sensor co-signature</text>
  <line x1="450" y1="480" x2="450" y2="330" stroke="#009688" stroke-width="1.5" stroke-dasharray="5,3"/>
  <text x="460" y="410" font-size="10" fill="#009688">signs H</text>

  <!-- Authorization dimension (bottom-left) -->
  <rect x="90" y="450" width="160" height="50" rx="6" fill="#f3e8fd" stroke="#9334e6" stroke-width="2"/>
  <text x="170" y="470" text-anchor="middle" font-weight="bold">Authorization</text>
  <text x="170" y="486" text-anchor="middle" font-size="10" fill="#666">Regulatory co-signature</text>
  <line x1="250" y1="455" x2="360" y2="325" stroke="#9334e6" stroke-width="1.5" stroke-dasharray="5,3"/>
  <text x="290" y="395" font-size="10" fill="#9334e6">signs H</text>

  <!-- Identity dimension (left) -->
  <rect x="40" y="275" width="160" height="50" rx="6" fill="#fff3e0" stroke="#ff9800" stroke-width="2"/>
  <text x="120" y="295" text-anchor="middle" font-weight="bold">Identity dimension</text>
  <text x="120" y="311" text-anchor="middle" font-size="10" fill="#666">Manufacturer co-signature</text>
  <line x1="200" y1="300" x2="350" y2="300" stroke="#ff9800" stroke-width="1.5" stroke-dasharray="5,3"/>
  <text x="260" y="290" font-size="10" fill="#ff9800">signs H</text>

  <!-- Grade progression -->
  <text x="450" y="565" text-anchor="middle" font-weight="bold" font-size="13">Grade increases as more dimensions converge</text>
  <rect x="150" y="575" width="40" height="20" rx="3" fill="#ef5350"/>
  <text x="170" y="589" text-anchor="middle" font-size="11" fill="white">D</text>
  <rect x="240" y="575" width="40" height="20" rx="3" fill="#ffa726"/>
  <text x="260" y="589" text-anchor="middle" font-size="11" fill="white">C</text>
  <rect x="330" y="575" width="40" height="20" rx="3" fill="#ffd54f"/>
  <text x="350" y="589" text-anchor="middle" font-size="11">B</text>
  <rect x="420" y="575" width="40" height="20" rx="3" fill="#d4e157"/>
  <text x="440" y="589" text-anchor="middle" font-size="11">A</text>
  <rect x="510" y="575" width="40" height="20" rx="3" fill="#81c784"/>
  <text x="530" y="589" text-anchor="middle" font-size="11">A+</text>
  <rect x="600" y="575" width="50" height="20" rx="3" fill="#4caf50"/>
  <text x="625" y="589" text-anchor="middle" font-size="11" fill="white">A+++</text>
</svg></image></figure>

<p id="_d89e99c4-b5d1-e871-dd6c-7ccae6924b47"><xref target="tab-dimension-examples"/> lists examples of trust dimensions and their attestation sources.</p>

<table id="_c3d46839-2591-1aa0-6935-ac9b03a71d73" anchor="tab-dimension-examples"><colgroup><col width="28.5714%"/><col width="42.8571%"/><col width="28.5715%"/></colgroup>
<name id="_dc9c6bee-0f7f-5bfa-2b62-0d3c08eac989">Examples of trust dimensions and their attestations (non-exhaustive; see the scheme’s registry)</name>
<thead><tr id="_a51880d5-87c4-3edf-394e-50c96690d901"><th id="_0b32f951-db41-8906-b1d3-e8dac141e3d4" valign="top" align="left">Dimension</th>
<th id="_381849c0-c94f-6f84-7456-c25e0f3a44c9" valign="top" align="left">What it attests</th>
<th id="_0a2de5e1-4ba7-2885-1280-945ff526728c" valign="top" align="left">External anchor (example)</th>
</tr></thead>
<tbody><tr id="_72c6d3aa-950f-3d83-19bc-b65397e82bad"><td id="_16c11e01-c66a-450f-69a8-3d4024752f0f" valign="top" align="left">data</td>
<td id="_e3501918-a066-cd70-4086-d37a094232c5" valign="top" align="left">The primary content (measured value, record)</td>
<td id="_aa772eac-c11d-0c25-e0c9-b0ff27f558f9" valign="top" align="left">Transparency log</td>
</tr><tr id="_d74ecc89-fb33-1ddb-997a-fe6bf3b71782"><td id="_30cbd25e-d722-5fbc-dd3b-ddbfb32444db" valign="top" align="left">person</td>
<td id="_397f06d7-3ce4-27e8-533f-45b94b0702a4" valign="top" align="left">A human witnessed or authorized the act</td>
<td id="_584357e3-fd67-c44f-8fed-deb872e7d881" valign="top" align="left">Hardware token</td>
</tr><tr id="_6446779f-636f-5131-a41b-e9e6f17dcb6c"><td id="_81ee7a1b-c163-f50f-2b92-8b8dabf1ac3b" valign="top" align="left">time</td>
<td id="_84e0d748-84b7-b26c-268b-470220ef4211" valign="top" align="left">The artifact existed at a stated time</td>
<td id="_6e79bd06-90ea-780e-c930-8a9fc02803cd" valign="top" align="left">External timestamp source</td>
</tr><tr id="_1fd2d5ee-a6ae-7917-3816-3c97bb712ea8"><td id="_be477d21-1f8a-9846-fa0e-51e6a953f5b0" valign="top" align="left">location</td>
<td id="_16b1322e-bcf9-eb72-7d2d-3111429c09fb" valign="top" align="left">The event occurred at stated coordinates</td>
<td id="_acb4fe21-db14-9333-4337-3a82b075e8b7" valign="top" align="left">Location authority signal</td>
</tr><tr id="_0e3c27d8-4dd7-e5a0-f952-a147cd1d50e5"><td id="_61c100d7-433a-2f04-c827-f2c7cefb7819" valign="top" align="left">environment</td>
<td id="_17e95746-acda-8c55-ce96-eb9033978d21" valign="top" align="left">Ambient conditions were within stated bounds</td>
<td id="_cd970d4f-88b0-86a7-7bf7-eb5460aae51d" valign="top" align="left">Calibrated sensor</td>
</tr><tr id="_da7fe348-32a2-655f-d37e-0de2383c469f"><td id="_a367f083-fcb1-51c1-2d28-acc13283dfad" valign="top" align="left">authorization</td>
<td id="_eb23554d-3802-95b2-10d0-90372cae951b" valign="top" align="left">The action was permitted under a policy</td>
<td id="_587532a4-131d-f2d6-8a9e-fdb2a4cbb94d" valign="top" align="left">Regulatory framework</td>
</tr><tr id="_bd26f3b5-e634-3622-41eb-54eb086cb575"><td id="_0d255a62-5836-92b5-b8d5-8da718b28fce" valign="top" align="left">identity</td>
<td id="_e7f21328-4f09-c0c5-4bc9-4ac4bba80506" valign="top" align="left">The device or person is genuine</td>
<td id="_46fc84b6-56e6-5ed7-4fca-926cc94899c3" valign="top" align="left">Identity authority</td>
</tr><tr id="_184d7152-cafc-021c-92b1-4cdbb75c3032"><td id="_c2718613-d4d3-1ffa-c425-e493dfa60c93" valign="top" align="left">oracle</td>
<td id="_9403a616-b759-3a98-d555-5b23714b05df" valign="top" align="left">External data had a stated value at a time</td>
<td id="_7172de4a-da9a-6251-ef21-03af09fa43d7" valign="top" align="left">Multi-source agreement</td>
</tr></tbody>
</table>
</clause>

<clause id="_3119ef92-e697-9b31-a4f3-afd34ba0c1c2" inline-header="false" obligation="normative">
<title id="_28ed4d4c-dad2-ab79-f7bc-427fba6851a8">Convergence</title>
<p id="_e81aa90e-2cf8-2c46-f198-a06a613cd693">All dimension attestations shall sign the same <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept>. The artifact is the convergence point: each dimension is an independent attestation of trustworthiness, and the artifact is where they intersect. More dimensions converging on an artifact produce a more favorable classification label (see <xref target="verification"/> for the classification policy).</p>
</clause>

<clause id="_c400c0d0-7d13-d207-a075-967774240fbb" anchor="time-dimension" inline-header="false" obligation="normative">
<title id="_be470bcd-7dd3-49c6-d82e-3b1783789d68">Time as a first-class dimension</title>
<p id="_54444380-306a-bce6-5739-2271f66957b1">The time dimension is attested by a <concept><refterm>time key</refterm><renderterm>time key</renderterm><xref target="term-time-key"/></concept> — a co-signature from a time authority that records the existence of the artifact hash at a stated time and anchors that record to an external, irrefutable time source. The time dimension is objective, tamper-evident, and cross-domain: it is valid regardless of the organizational hierarchy under which the artifact was produced.</p>
</clause>
</clause>

<clause id="_e003850c-8db0-477c-1296-d396090d29a9" anchor="artifact-living" inline-header="false" obligation="normative">
<title id="_05bf584e-80f6-1c79-83ee-b1f06f873640">Living artifacts</title>
<p id="_10b2ee94-2d4f-b4c3-b281-09c0e8cd12a1">A <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> may accumulate <concept><refterm>dimension attestation</refterm><renderterm>dimension attestations</renderterm><xref target="term-dimension-attestation"/></concept> over time. As additional dimensions converge, the artifact’s <concept><refterm>classification label</refterm><renderterm>classification label</renderterm><xref target="term-classification-label"/></concept> may improve as additional dimensions are attested.</p>

<example id="_08d68e8f-ae12-7299-1b24-cbc2917db777"><p id="_e8d73e2a-ee5c-30e8-3fa7-d9c7e2e73454">At time T0, a device signs a data record (data dimension). At T1, an operator co-signs (person dimension). At T2, a time authority anchors the artifact (time dimension). At T3, a location authority co-signs (location dimension). Each addition increases the dimensional coverage in the coverage report, which the scheme’s classification policy may map to a more favorable classification label.</p>
</example>

<p id="_23326048-2472-4328-1f63-5a1eea8ced1f">The accumulation protocol shall ensure that each added dimension attestation signs the original canonical payload, not a modified version.</p>
</clause>

<clause id="_000c913b-c262-0586-6793-bca4a39b1699" anchor="req-artifact-format" inline-header="false" obligation="normative">
<title id="_c1701087-b03b-a6ce-b771-05cd2caeec32">Requirements</title>
<p id="_cd9b7de0-c91d-e455-dde4-2e2e1f7ba6d8">Artifact format and signature binding has its formalized requirements class described in <xref target="rc-artifact-format-1"/>, with its requirements listed from <xref target="r-artifact-format-1-1"/> to <xref target="r-artifact-format-1-19"/>.</p>

<requirement id="_5f3b42d6-9392-03e3-3e89-4109b14267ff" anchor="rc-artifact-format-1" model="ogc" type="class">
<title>Artifact format and signature binding</title><identifier>/req/artifact-format</identifier><subject>trusted artifact</subject><inherit>/req/architecture</inherit><description id="_aaa9fdba-014c-b343-3904-7438bc02fb43"><p id="_031b4002-7f0b-72d0-e003-dacc43d433e9">Requirements on signature binding, canonical payload, format profiles, co-signatures, cross-domain trust fusion, and multi-dimensional attestation.</p>
</description><requirement id="_704a39af-f018-d972-381d-59845a093480" model="ogc" type="general"> <identifier>/req/artifact-format/canonical-binding</identifier></requirement><requirement id="_a890905a-25af-2843-4fd2-1b6f31be3c91" model="ogc" type="general"> <identifier>/req/artifact-format/algorithm-identification</identifier></requirement><requirement id="_4064cfb2-b7e8-e306-5e70-2056907e6ea9" model="ogc" type="general"> <identifier>/req/artifact-format/signer-identification</identifier></requirement><requirement id="_4d0fd764-23f0-7a45-2aaa-621cdf087132" model="ogc" type="general"> <identifier>/req/artifact-format/chain-availability</identifier></requirement><requirement id="_10cc0670-1ba1-bf65-5596-e4c47b62a97a" model="ogc" type="general"> <identifier>/req/artifact-format/self-description</identifier></requirement><requirement id="_c78d0803-cee9-8c11-ceb2-4c8e1e4e6142" model="ogc" type="general"> <identifier>/req/artifact-format/canonical-determinism</identifier></requirement><requirement id="_014ad7a5-01df-d042-27c5-dbddc3a189ed" model="ogc" type="general"> <identifier>/req/artifact-format/format-profile-satisfaction</identifier></requirement><requirement id="_8e4c57b3-a996-8cac-a613-b1faad60befd" model="ogc" type="general"> <identifier>/req/artifact-format/version-compatibility</identifier></requirement><requirement id="_cec8c249-6921-68e5-cdbf-3f4d1efe3b82" model="ogc" type="general"> <identifier>/req/artifact-format/cosignature-block</identifier></requirement><requirement id="_91623a6e-738e-20fa-4c13-b7e134e909e0" model="ogc" type="general"> <identifier>/req/artifact-format/cosignature-independent-verification</identifier></requirement><requirement id="_5b098541-620f-a781-7cb4-5ed86acc6711" model="ogc" type="general"> <identifier>/req/artifact-format/cosignature-canonical-binding</identifier></requirement><requirement id="_814783a9-d0ff-40a6-1a69-ee3720453ee3" model="ogc" type="general"> <identifier>/req/artifact-format/format-profile-cosignature-encoding</identifier></requirement><requirement id="_59f56374-94e4-3052-8a86-c12e3c9e1102" model="ogc" type="general"> <identifier>/req/artifact-format/cross-domain-no-cross-recognition</identifier></requirement><requirement id="_8589ff52-e1a6-b602-4c95-0ff3f157e844" model="ogc" type="general"> <identifier>/req/artifact-format/trust-cement</identifier></requirement><requirement id="_f624ed14-bcfa-c89e-3741-73d2d7cb238b" model="ogc" type="general"> <identifier>/req/artifact-format/dimensional-convergence</identifier></requirement><requirement id="_8ce1d841-eff0-07f2-991e-f39beb066377" model="ogc" type="general"> <identifier>/req/artifact-format/time-dimension</identifier></requirement><requirement id="_24d5466c-b941-0ad3-a30c-3a2c146fa9c8" model="ogc" type="general"> <identifier>/req/artifact-format/living-artifact</identifier></requirement><requirement id="_cb74a213-39ec-7d7c-bd06-e2b363d2489e" model="ogc" type="general"> <identifier>/req/artifact-format/wrapping-prevention</identifier></requirement><requirement id="_cdb32a84-8b8a-42e6-80d4-4bb07c27fac7" model="ogc" type="general"> <identifier>/req/artifact-format/replay-protection</identifier></requirement>

</requirement>

<requirement id="_60e22a8a-6948-a08b-b245-019853ecaec8" anchor="r-artifact-format-1-1" model="ogc">
<title>Canonical representation binding</title><identifier>/req/artifact-format/canonical-binding</identifier><description id="_3244d95c-dab1-2302-82fb-6994588012fe"><p id="_f94d6a70-370c-f3c5-5553-4eb4c1eba233">A signature wrapper shall bind the signature to a deterministic canonical payload — a byte-string representation of the payload data such that the same logical content always produces the same bytes.</p>
</description><component id="_6e6f4ac8-8acb-972a-d2ec-7424f11ccc3c" class="guidance"><p id="_725e30ac-22aa-f8ba-8d2d-af0b870bec48">The canonicalization algorithm is specified by the applicable format profile.</p>
</component>

</requirement>

<requirement id="_0fa190ae-fb29-2a91-c53d-12bffc3a44d7" anchor="r-artifact-format-1-2" model="ogc">
<title>Algorithm identification</title><identifier>/req/artifact-format/algorithm-identification</identifier><description id="_6fcbca6a-f084-e89b-42c7-d6f479717c9a"><p id="_875f7545-a99b-300f-ab6a-b7a7b2f9b7d7">A signature wrapper shall explicitly identify the signing algorithm and its parameters, such that the verifier can unambiguously determine how to validate the signature.</p>
</description><component id="_d54ab204-845c-7a3c-fc22-402b6b33c77d" class="guidance"><p id="_fd5f5a73-db68-fc0c-550f-3f84f3620a57">Each co-signer may use a different algorithm.</p>
</component>

</requirement>

<requirement id="_86588580-6147-cbdc-7602-10dcdf34a516" anchor="r-artifact-format-1-3" model="ogc">
<title>Signer identification</title><identifier>/req/artifact-format/signer-identification</identifier><description id="_38851e8e-1dac-4640-f243-30e812611c03"><p id="_2042d784-e9ad-3e5e-d91b-6905c6541157">A signature wrapper shall reference or embed the signer’s public key or end certificate, enabling the verifier to locate the key and its delegation chain.</p>
</description><component id="_97801f46-0b6f-58ce-23d8-7110631025a7" class="guidance"><p id="_c42f642e-63d1-33a0-6d71-7f9ab7306799">Signer identifiers are URIs (<eref type="inline" bibitemid="rfc3986" citeas="IETF RFC 3986"/>).</p>
</component>

</requirement>

<requirement id="_3decb9d2-8c32-2e2a-6020-33d0572ab428" anchor="r-artifact-format-1-4" model="ogc">
<title>Chain availability</title><identifier>/req/artifact-format/chain-availability</identifier><description id="_b6f5ac15-90d4-f335-1a8c-cb339dcf8e98"><p id="_92891298-7b12-f01e-8b22-3fa9a1fb4d1b">A signature wrapper shall carry or reference the full chain from the signer to a root anchor, in accordance with at least one chain discovery strategy.</p>
</description><component id="_8ce4f647-4f0b-1d2d-9fae-8467ccadc9a2" class="guidance"><p id="_13c3026d-80df-2e54-7cca-f56275fbd343">Chain discovery strategies are specified in /req/architecture/chain-discovery.</p>
</component>

</requirement>

<requirement id="_c3741859-e937-6187-add0-3f9dbeaae972" anchor="r-artifact-format-1-5" model="ogc">
<title>Self-description</title><identifier>/req/artifact-format/self-description</identifier><description id="_974929aa-90e6-8851-6f37-003745e3d198"><p id="_078cdbeb-47a8-712f-1370-e3413a100acf">A signature wrapper shall be self-describing, such that a verifier can determine all inputs needed for validation from the wrapper and the trust anchor bundle alone, without external convention.</p>
</description>

</requirement>

<requirement id="_e072a5f9-8fb0-036a-90f9-b5f5d7115ab4" anchor="r-artifact-format-1-6" model="ogc">
<title>Canonical payload determinism</title><identifier>/req/artifact-format/canonical-determinism</identifier><description id="_cf85bec4-6025-13ee-c07f-b874a968b554"><p id="_00b76f22-8f69-5226-f98c-9d02acb032f1">The canonicalization of the payload shall be deterministic, such that two artifacts with the same logical content always produce the same canonical bytes.</p>
</description><component id="_30a73553-2db0-b26a-2310-9ed58a1a217f" class="guidance"><p id="_b587518a-5326-5ab9-b964-d3adde815a5e">Per-domain payload schemas shall be deterministic under canonicalization.</p>
</component>

</requirement>

<requirement id="_379f4d3c-4f93-9cc4-7c4f-d6a8ff33b09d" anchor="r-artifact-format-1-7" model="ogc">
<title>Format profile satisfaction</title><identifier>/req/artifact-format/format-profile-satisfaction</identifier><description id="_1972d037-6ad3-f9a0-1ae0-1600445413db"><p id="_b8f585e0-add1-1dea-b36b-3f0d1a26f9e9">An implementation claiming a format profile shall satisfy the five binding requirements in addition to the profile-specific format requirements for that profile.</p>
</description><component id="_c297c38e-cb8f-d80f-2159-f8a1fa1ca337" class="guidance"><p id="_40d9d282-778e-1f5f-85f8-fdad0426004b">Recognized profiles are format-xmldsig, format-jws, and format-cose.</p>

<p id="_cad2db95-fc4e-93a2-8423-0e36d7d59334">Format profiles may define payload schemas using JSON Schema (<eref type="inline" bibitemid="jsonschema" citeas="JSON Schema Specification (Draft 7)"/>). Format profiles may define payload schemas using JSON Schema (<eref type="inline" bibitemid="jsonschema" citeas="JSON Schema Specification (Draft 7)"/>).</p>
</component>

</requirement>

<requirement id="_82a4bf01-c5ca-7d84-a7b9-aee36b78aaac" anchor="r-artifact-format-1-8" model="ogc">
<title>Version compatibility rules</title><identifier>/req/artifact-format/version-compatibility</identifier><description id="_ccdffcc0-db02-7c69-98c2-ab6244c0f36f"><p id="_3e8f41cb-9a9c-a485-10c9-9b2909de9b6d">Artifact format versioning shall follow semantic compatibility rules, where major version changes are breaking and shall be rejected by verifiers whose supported maximum is exceeded; minor version changes are backward and forward compatible, with unknown fields ignored.</p>
</description><component id="_0453cc11-1162-0b55-7b1c-f01113c4ed3a" class="guidance"><p id="_ae2bb455-e000-7690-0550-3341dd909275">The version is carried explicitly in the wrapper.</p>
</component>

</requirement>

<requirement id="_c8dfee45-a990-e172-3d4b-aaff52ba5109" anchor="r-artifact-format-1-9" model="ogc">
<title>Co-signature block contents</title><identifier>/req/artifact-format/cosignature-block</identifier><description id="_3f71b7a9-5ab3-fe49-2fa5-a908bd8edbd4"><p id="_562733be-1cc6-4443-4499-c012a060675a">Each co-signature block shall contain the signer identity, chain reference, algorithm and parameters, dimension tag, and signature over the canonical payload.</p>
</description><component id="_b8f1e06b-5877-85c0-4459-3fe30d4fbff9" class="guidance"><p id="_9ccdc318-8e2a-e277-8f97-765edce52fbe">The dimension tag identifies the trust dimension this co-signature attests.</p>
</component>

</requirement>

<requirement id="_b793932c-e867-244e-e73a-dc6671b45a04" anchor="r-artifact-format-1-10" model="ogc">
<title>Co-signature independent verification</title><identifier>/req/artifact-format/cosignature-independent-verification</identifier><description id="_592e00c4-743a-97a8-105c-e5f6b311fdd7"><p id="_1517e827-5816-91c8-1e69-56000fd42408">Each co-signature shall be verifiable independently, with its own chain to its own root, and no co-signature shall depend on another for its cryptographic validity.</p>
</description><component id="_0423fd0c-7943-8cf7-c996-95262b86eaf0" class="guidance"><p id="_508d2236-8236-f9bc-6732-e086a4803513">Policy dependencies (e.g., minimum number of co-signatures for a classification label) are separate from cryptographic dependency.</p>
</component>

</requirement>

<requirement id="_5b246aa9-8306-027d-4269-09c970a05d54" anchor="r-artifact-format-1-11" model="ogc">
<title>Co-signature canonical payload binding</title><identifier>/req/artifact-format/cosignature-canonical-binding</identifier><description id="_07bf463a-1569-46cc-3ef0-f6617246651b"><p id="_b336ba78-b981-3b21-84eb-31ed4b90b17d">All co-signatures on an artifact shall attest the same canonical payload. Partial attestation of the artifact is not conforming.</p>
</description><component id="_06caf994-79d5-c8cd-321c-70f47ce99e21" class="guidance"><p id="_15f3d649-ee16-4bae-c7fa-c35ca344eb6b">A co-signer cannot selectively attest part of the artifact.</p>
</component>

</requirement>

<requirement id="_e96f5e19-7d0b-3b07-eb36-22c39daeff98" anchor="r-artifact-format-1-12" model="ogc">
<title>Format profile co-signature encoding obligation</title><identifier>/req/artifact-format/format-profile-cosignature-encoding</identifier><description id="_a1e434e8-627c-5473-bf33-0f3e81da4b62"><p id="_50a0e4ca-c5b5-a43b-01b5-80516493c524">Each format profile registered in the scheme’s format profile registry shall specify how co-signature blocks, dimension tags, and chain references are encoded in that format. A format profile that does not define a co-signature encoding shall not claim conformance to the multi-dimensional attestation requirements.</p>
</description><component id="_02bc6eaa-ef12-1cf2-46e7-d04c22186b7e" class="guidance"><p id="_800752d2-b390-74d5-3d14-73fe575d34d5">This ensures interoperability within a format profile for multi-dimensional artifacts.</p>
</component>

</requirement>

<requirement id="_20fc6f6b-74f2-e18b-3d28-84af146bbe73" anchor="r-artifact-format-1-13" model="ogc">
<title>Cross-domain co-signature without root cross-recognition</title><identifier>/req/artifact-format/cross-domain-no-cross-recognition</identifier><description id="_57c2e47e-a5b2-59ff-af14-da54a2b4b0ff"><p id="_f1bd6b9d-a86c-1552-b604-59b2547d244a">Cross-domain co-signatures shall not require participating roots to cross-certify each other; the co-signatures themselves shall provide cross-domain trust at the artifact level.</p>
</description><component id="_8e691745-2b56-58f6-c7c0-1e025f8692c1" class="guidance"><p id="_05400287-2469-cabc-ba5a-be445ba6cca3">The verifier holds anchors for multiple roots in the trust anchor bundle.</p>
</component>

</requirement>

<requirement id="_917799af-4cce-f01e-a3d5-83310597f459" anchor="r-artifact-format-1-14" model="ogc">
<title>Cross-domain trust cement</title><identifier>/req/artifact-format/trust-cement</identifier><description id="_a3f6cfa7-71f0-dede-a10a-f5f58931b1d1"><p id="_1418277a-5994-d497-53a4-4f293f82ef86">Once co-signatures are applied to an artifact, it shall not be possible to strip a co-signature without breaking the artifact’s self-description, and each co-signer’s commitment to the canonical payload shall be undeniable.</p>
</description><component id="_c4ea0635-e246-7341-7829-e6897effd5e5" class="guidance"><p id="_43068d80-3c23-bd01-3ce6-fca058a0f5d0">The transparency log records the artifact with all co-signatures and cannot be rewritten.</p>
</component>

</requirement>

<requirement id="_80c5c7bf-2d79-9475-1280-992e9e9dbed1" anchor="r-artifact-format-1-15" model="ogc">
<title>Multi-dimensional convergence on canonical payload</title><identifier>/req/artifact-format/dimensional-convergence</identifier><description id="_85ad4f3d-03bd-113c-1b5e-95d51c0d3a0e"><p id="_f6f836df-9005-e7c6-13f5-3aaee3ba6c82">All dimension attestations on an artifact shall sign the same canonical payload, making the artifact the convergence point of orthogonal trust dimensions.</p>
</description><component id="_ae4fea2e-e854-c0d0-9a69-e425190a0452" class="guidance"><p id="_0e1e7bdb-2f10-536f-a0dc-d9a03f51d5a0">Each dimension has its own trust tree and root; no cross-recognition between dimension roots is required.</p>
</component>

</requirement>

<requirement id="_fef50e34-376b-f95b-2034-be83fdad8144" anchor="r-artifact-format-1-16" model="ogc">
<title>Time as first-class dimension</title><identifier>/req/artifact-format/time-dimension</identifier><description id="_613c57fb-2763-1374-e461-8e04b0f29305"><p id="_774e6a05-af37-aa22-cf91-b99ef80b1c76">The time dimension shall be attested by a time key — a co-signature from a time authority that records the existence of the artifact hash at a stated time and anchors that record to an external time source.</p>
</description><component id="_a79f80d0-afac-7464-4174-a771f78218b7" class="guidance"><p id="_310b2f1b-b0fe-098c-c056-89218b1ee4ec">The time dimension is objective, tamper-evident, and cross-domain.</p>

<p id="_14745a03-df63-9f8a-a359-c0261817affe">Timestamps use ISO 8601-1 representation (<eref type="inline" bibitemid="iso8601" citeas="ISO 8601-1:2019"/>). Timestamps use ISO 8601-1 representation (<eref type="inline" bibitemid="iso8601" citeas="ISO 8601-1:2019"/>).</p>
</component>

</requirement>

<requirement id="_88a179b0-c848-266b-b2d4-124a8f480d2e" anchor="r-artifact-format-1-17" model="ogc">
<title>Living artifact accumulation</title><identifier>/req/artifact-format/living-artifact</identifier><description id="_d5676fde-5ad9-8044-25e4-230a5cd914d5"><p id="_c9ec1946-fa82-fdd0-b987-b8261c62ef93">A trusted artifact shall support accumulation of dimension attestations over time, provided that each added attestation signs the original canonical payload without modification.</p>
</description><component id="_06c57ab3-c9e4-68a1-c4b7-ac621c0b5bda" class="guidance"><p id="_2ec3548f-2843-9573-f284-b3d43a4724d5">As additional dimensions converge, the coverage report gains fields and the classification label may improve.</p>
</component>

</requirement>

<requirement id="_013cb47c-f79e-54af-b17e-4b5b6bbd2bbb" anchor="r-artifact-format-1-18" model="ogc">
<title>Signature wrapping prevention</title><identifier>/req/artifact-format/wrapping-prevention</identifier><description id="_901896e5-2c48-df76-e834-2f4830df3d88"><p id="_ef952dd6-958b-5c82-1b84-86f0e6774a7b">A conforming signature wrapper shall ensure that the byte range covered by the cryptographic signature is exactly the byte range processed by the verifier for all downstream checks, and the verifier shall reject any artifact where signed content and processed content are not provably identical.</p>
</description><component id="_2f8c88df-f810-de9e-4327-2658545df31a" class="guidance"><p id="_dbb83f05-edb9-6086-c4e7-e202d99573bf">For XML-based profiles, the signed and verified node sets shall be identical.</p>

<p id="_3d94f418-301c-5ec1-442b-54790db52892">For JSON-based and CBOR-based profiles, the signed payload shall be the sole input to downstream processing.</p>
</component>

</requirement>

<requirement id="_3f6f929d-c1c7-7ca7-ef03-23538db2e84b" anchor="r-artifact-format-1-19" model="ogc">
<title>Co-signature replay protection</title><identifier>/req/artifact-format/replay-protection</identifier><description id="_c012ffff-ab2e-28a1-4d52-9602c8e133d0"><p id="_8940b2a4-ee6e-1a7a-4bb7-50218e992278">Each co-signature shall bind to a unique artifact identifier in addition to the canonical payload hash, and the verifier shall reject any co-signature whose artifact identifier does not match the artifact being verified.</p>
</description><component id="_68a6707b-f0d0-b6fe-e556-2cadd102f0d6" class="guidance"><p id="_79f2a999-cbba-5c8f-c767-e3fa35d0a906">The artifact identifier may be a transparency log sequence number or a nonce embedded in the canonical payload.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_d120f2fe-2111-ff71-6b17-5da8b64320b9" anchor="algorithms" inline-header="false" obligation="normative">
<title id="_c176ab97-44d3-5290-6423-dc1bc29928f6">Cryptographic algorithms</title>
<clause id="_180d6088-4062-28f2-299d-8b96f1a786ce" inline-header="false" obligation="normative">
<title id="_d0fe7de5-6e1e-b142-ea53-7c3704ee5df1">General</title>
<p id="_aba44087-e550-8649-20db-2bcc8cdde4b4">This clause specifies the cryptographic algorithms recognized in the SIGNATIF framework, the  <concept><refterm>composite signature</refterm><renderterm>composite signature</renderterm><xref target="term-composite-signature"/></concept> model for post-quantum readiness, and the algorithm agility framework that governs algorithm identifier assignment, negotiation, and deprecation.</p>

<p id="_0f4e4c02-98a1-43f6-e47a-b4921e9cdd2c">The SIGNATIF framework recognizes classical signature algorithms, post-quantum signature algorithms, and composite signatures that combine both; stateful hash-based schemes such as XMSS and HSS serve long-validity artifacts (<eref type="inline" bibitemid="xmss" citeas="IETF RFC 8391"/>, <eref type="inline" bibitemid="lersh" citeas="IETF RFC 8554"/>), and classical mechanisms follow established digital-signature standards (<eref type="inline" bibitemid="iso14888" citeas="ISO/IEC 14888"/>). An implementation may support any subset, subject to the requirements of its claimed conformance classes.</p>
</clause>

<clause id="_b2f3b397-b626-7705-be54-c9f98a0468a1" anchor="algorithms-classical" inline-header="false" obligation="normative">
<title id="_7943f21d-d18b-2427-65bf-c234396b9aa8">Classical signature algorithms</title>
<p id="_f1213fd7-72b7-5951-81d4-c3ec1ea8c2ba">Classical signature algorithms registered in the algorithm identifier registry (<xref target="annex-c"/>) are recognized. The initial registry includes. The initial registry contents are listed in <xref target="tab-classical-algorithms"/>.</p>

<table id="_21ffa3ad-da2c-33a5-0fe3-157a3cbb3a08" anchor="tab-classical-algorithms"><colgroup><col width="33.3333%"/><col width="33.3333%"/><col width="33.3334%"/></colgroup>
<name id="_c3a4068d-7a53-ce9b-c874-9f524d06e751">Examples of classical signature algorithms (scheme registry may include others)</name>
<thead><tr id="_c330bb0c-5db6-dfde-33ef-3a83f6964eff"><th id="_e52166d2-e944-6909-2b5c-6636babbfb59" valign="top" align="left">Algorithm</th>
<th id="_6c44a538-cb1f-3afb-d620-138e447b337f" valign="top" align="left">Parameters</th>
<th id="_aada7969-ae43-9845-1bef-dac1642241f7" valign="top" align="left">Reference</th>
</tr></thead>
<tbody><tr id="_cac3d14d-8bb9-aa69-840c-0b4e0a70ac9c"><td id="_181478c5-4092-e807-85f5-1c001d2be842" valign="top" align="left">ECDSA</td>
<td id="_0820f606-75ab-1c8f-a30e-e5f0c674864c" valign="top" align="left">P-256 (secp256r1)</td>
<td id="_8f0220a5-cd73-fca4-2624-f8fb004abc30" valign="top" align="left"><eref type="inline" bibitemid="fips186-4" citeas="NIST FIPS 186-4"/></td>
</tr><tr id="_a79ad15a-bf55-c1b9-c25b-8f488cd95119"><td id="_e5f4d201-4bec-5616-9f96-edb3e04df44c" valign="top" align="left">EdDSA (Ed25519)</td>
<td id="_7128e92e-bd4c-9c95-a1b6-7f3f91846305" valign="top" align="left">Ed25519</td>
<td id="_c72fa369-3ad1-8417-4cfc-9d0598778b63" valign="top" align="left"><eref type="inline" bibitemid="rfc8032" citeas="IETF RFC 8032"/></td>
</tr></tbody>
</table>

<p id="_e56ece76-061c-e0e9-82e9-b55dc7515a0e">Additional classical algorithms, including national or regional standards such as SM2, may be registered per the scheme’s registration policy.</p>

<p id="_36fc2a79-8ac8-7685-9259-049f4e346379">Classical algorithms are vulnerable to cryptanalytic attacks by sufficiently large quantum computers. Deployments with long-term security requirements should migrate to post-quantum or composite algorithms.</p>
</clause>

<clause id="_52a86b73-59cb-cf47-9445-1ed766e90f63" anchor="algorithms-post-quantum" inline-header="false" obligation="normative">
<title id="_dd1ad2a6-ff97-43c9-a14f-d74712f460f7">Post-quantum signature algorithms</title>
<p id="_ef84d059-edc5-c295-6571-e4235d4dc0fa">Post-quantum signature algorithms registered in the algorithm identifier registry maintained by the scheme (see  <xref target="annex-c"/>) are recognized. The initial registry includes. The initial registry contents are listed in <xref target="tab-pqc-algorithms"/>.</p>

<table id="_112b22d2-038b-1899-0fc8-7dc1e9a7642c" anchor="tab-pqc-algorithms"><colgroup><col width="33.3333%"/><col width="33.3333%"/><col width="33.3334%"/></colgroup>
<name id="_bc47f1dc-0170-7283-bf53-f1ca711dd7ce">Examples of post-quantum signature algorithms (scheme registry may include others)</name>
<thead><tr id="_ceadae1f-60b4-fb07-1c76-4c1ecc79104c"><th id="_37b9daba-e701-e8d0-b8aa-558491639e7b" valign="top" align="left">Algorithm</th>
<th id="_a62fee6a-88c3-d369-fe0b-ff52a22c5628" valign="top" align="left">Standard</th>
<th id="_ae85b5ce-22c6-0020-2702-229b7de621b5" valign="top" align="left">Notes</th>
</tr></thead>
<tbody><tr id="_993f6b10-bf5e-c259-75b0-79e6aa246087"><td id="_f3c1427f-d246-0d67-f636-a3fbe16f7ca3" valign="top" align="left">ML-DSA</td>
<td id="_57214f97-f040-9814-3795-588c38d99066" valign="top" align="left"><eref type="inline" bibitemid="fips204" citeas="NIST FIPS 204"/></td>
<td id="_685bb206-d7ed-e846-b81f-a7f270474fdd" valign="top" align="left">Module-lattice-based; recommended parameter sets ML-DSA-44, ML-DSA-65, ML-DSA-87</td>
</tr><tr id="_8ec74b72-49e4-7abc-f4f5-5f76b48982f8"><td id="_0831f853-815c-2398-3147-019e99fad681" valign="top" align="left">SLH-DSA</td>
<td id="_f59857d3-546d-2345-7bec-7cd3328dd312" valign="top" align="left"><eref type="inline" bibitemid="fips205" citeas="NIST FIPS 205"/></td>
<td id="_ae023977-93c7-cc55-1fb2-d4b50ad07024" valign="top" align="left">Hash-based; conservative but larger signatures</td>
</tr></tbody>
</table>
</clause>

<clause id="_70fbe608-c196-a4d8-ca12-67c6f94c5c7c" anchor="algorithms-composite" inline-header="false" obligation="normative">
<title id="_a4ee11ab-5197-5fc5-997b-7322d6660837">Composite signatures</title>
<p id="_83085245-6039-caf4-680a-e6f7c00c0002">A <concept><refterm>composite signature</refterm><renderterm>composite signature</renderterm><xref target="term-composite-signature"/></concept> is a single signature produced by the AND-composition of two or more signature algorithms over the same  <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept>. All component signatures shall verify for the composite to be valid.</p>

<p id="_0b13d26a-d414-bfba-1048-6d786ed4b571">The primary use case for composite signatures is combining a classical algorithm with a post-quantum algorithm for transition security during post-quantum migration. Compositions of two post-quantum algorithms or other multi-algorithm combinations are also permitted.</p>

<example id="_5932a7b1-30cb-5ae1-0e37-8faa3bdcfed6"><p id="_de0f26fb-a855-79e7-d80e-984a25674d76">A composite signature might combine Ed25519 (classical) with ML-DSA-65 (post-quantum). The verifier validates both components; the composite is valid only if both succeed.</p>
</example>
</clause>

<clause id="_d6c6ba37-ce8e-9fd9-211f-80bf1ef0fcd1" anchor="algorithms-migration" inline-header="false" obligation="normative">
<title id="_60cd3b74-bc07-7429-d048-ffc6b2817dcb">Post-quantum migration path</title>
<p id="_c2737e77-a69e-f920-16aa-99cc17554d20">The framework supports migration from classical to post-quantum algorithms.
The migration is governed by the algorithm agility framework
(see <xref target="algorithm-agility"/>).<note id="_5bfccf35-540c-c176-d793-b342a639d148"><p id="_505e3ae3-322b-afe6-b070-7f45fbd67b6b">A typical migration follows three phases: (1) classical-only, where the deployment uses classical signatures exclusively; (2) composite, where the deployment uses composite signatures for new artifacts while classical-only artifacts remain verifiable; (3) post-quantum-only, where classical-only signatures are deprecated and eventually rejected. The specific timing and phase boundaries are deployment decisions.</p>
</note></p>


</clause>

<clause id="_56400462-8afe-aecd-92b9-a2be63cd8068" anchor="algorithms-agility" inline-header="false" obligation="normative">
<title id="_02eddd2b-78b9-26f1-fed8-b8f73600ffa0">Algorithm agility</title>
<p id="_6638bf87-7617-21d8-7187-68b7a5440873">Algorithm agility ensures that new algorithms can be introduced and old algorithms deprecated without breaking existing verifiers.</p>

<ul id="_c9c0bf85-7e9e-dc3f-be18-adc61760553f"><li><p id="_1a340a53-39eb-dc57-204f-a4b1120eddfa">Identifiers. Each algorithm shall carry an explicit identifier in the signature wrapper. Verifiers shall use this identifier to select the validation method.</p>
</li>
<li><p id="_b0f96afd-a32a-9d42-5ca1-f8930937ca83">Negotiation. An issuer shall use algorithms recognized by its target verifiers. Algorithm identifiers carry sufficient metadata for verifiers to determine support.</p>
</li>
<li><p id="_e6a115c5-9dd5-afbb-1281-b49c9759acd8">Deprecation. Deprecated algorithms shall be announced in advance. Verifiers may downgrade or reject artifacts using deprecated algorithms according to their policy.</p>
</li>
</ul>
</clause>

<clause id="_ec2a6238-2bee-d364-fb40-05f005ffaa5d" anchor="req-algorithms" inline-header="false" obligation="normative">
<title id="_f34971b3-5dbc-0687-a6a9-3dfeff11485d">Requirements</title>
<p id="_f03dab89-7147-0aef-8276-3450857d5ad3">Cryptographic algorithms has its formalized requirements class described in <xref target="rc-algorithms-1"/>, with its requirements listed from <xref target="r-algorithms-1-1"/> to <xref target="r-algorithms-1-7"/>.</p>

<requirement id="_4f5ad9df-82f0-ed24-27c2-3b1074941ff0" anchor="rc-algorithms-1" model="ogc" type="class">
<title>Cryptographic algorithms</title><identifier>/req/algorithms</identifier><subject>cryptographic algorithms</subject><inherit>/req/artifact-format</inherit><description id="_38a35faa-3e42-7596-b972-9b4e38529a5c"><p id="_0f5f3869-9109-52fc-fc51-567c8b8812fe">Requirements on classical and post-quantum signature algorithms, composite signatures, post-quantum migration, algorithm agility, and encryption at rest.</p>
</description><requirement id="_aa466427-ef0b-e2d7-9ab7-930a0ebdde48" model="ogc" type="general"> <identifier>/req/algorithms/classical-algorithms</identifier></requirement><requirement id="_e5cb7174-bdb2-1423-cb11-ec0953a80341" model="ogc" type="general"> <identifier>/req/algorithms/post-quantum-algorithms</identifier></requirement><requirement id="_8bcc637f-8fa7-7669-1706-deddd40a428f" model="ogc" type="general"> <identifier>/req/algorithms/composite-and-semantics</identifier></requirement><requirement id="_e619d04e-6a58-9f81-6ba3-ac9a84a4ed8e" model="ogc" type="general"> <identifier>/req/algorithms/migration-phases</identifier></requirement><requirement id="_9e862f65-6feb-e568-4778-18b632a4a66c" model="ogc" type="general"> <identifier>/req/algorithms/algorithm-agility-identifiers</identifier></requirement><requirement id="_2ca138cd-a4ae-faac-c3b4-780db7c55f3b" model="ogc" type="general"> <identifier>/req/algorithms/encryption-at-rest</identifier></requirement><requirement id="_f9fc6057-031c-87aa-e840-2884f8f03537" model="ogc" type="general"> <identifier>/req/algorithms/minimum-security-parameters</identifier></requirement>

</requirement>

<requirement id="_f2d472c0-c528-6b82-6618-45a1358b4463" anchor="r-algorithms-1-1" model="ogc">
<title>Classical algorithm recognition</title><identifier>/req/algorithms/classical-algorithms</identifier><description id="_c9fe7b8a-735e-5dd9-66ba-15852a532be1"><p id="_5e8917ea-c777-cd30-a7a2-22f97ea476fe">The framework shall recognize classical signature algorithms registered in the algorithm identifier registry (<xref target="annex-c"/>).</p>
</description><component id="_ddf3df3d-fb30-d4cd-8ab6-a5984dcf469f" class="guidance"><p id="_b442ada0-25d5-5835-fd0d-784674d731c6">Additional classical algorithms may be registered per the registration policy.</p>

<example id="_b6ca4277-a0a9-fd70-6c77-26d5c8ec6da5"><p id="_780e2c27-ac2f-977b-e393-2809c90da558">ECDSA with P-256 and Ed25519 are examples of initially registered classical algorithms.</p>
</example>

<example id="_7adf920b-9d16-16dc-4c91-ff5764537a78"><p id="_16927502-47c0-824f-34e6-3d420a237c12">SM2 is an example of a national standard algorithm registrable under the same policy.</p>
</example>
</component>

</requirement>

<requirement id="_11417ed9-9177-21e5-8526-a95eadc53239" anchor="r-algorithms-1-2" model="ogc">
<title>Post-quantum algorithm recognition</title><identifier>/req/algorithms/post-quantum-algorithms</identifier><description id="_510da59a-94b1-ddc9-dab5-189c09427065"><p id="_29477976-3abd-29f1-6535-eef6e84ce99e">The framework shall recognize post-quantum signature algorithms registered in the algorithm identifier registry (<xref target="annex-c"/>).</p>
</description><component id="_7e65b698-707a-bfde-736c-e0177b5d4369" class="guidance"><p id="_7b88c46f-1ca5-85c9-9bb6-61fbba7c0962">Additional post-quantum algorithms may be registered per the registration policy.</p>

<example id="_1ef7ee0c-cfd2-8418-1087-7827d72d1964"><p id="_55713a9d-90f9-569e-c495-d0c4ac6e40a8">ML-DSA per FIPS 204 and SLH-DSA per FIPS 205 are examples of initially registered post-quantum algorithms.</p>
</example>
</component>

</requirement>

<requirement id="_ca51cc8e-a323-6e2d-e1e5-9ccaae63e68f" anchor="r-algorithms-1-3" model="ogc">
<title>Composite signature AND semantics</title><identifier>/req/algorithms/composite-and-semantics</identifier><description id="_937452c2-fede-1d9e-84d3-d3f91c868d51"><p id="_2cc800e4-1c91-a00e-56a5-730f6c46675d">A composite signature shall be the AND-composition of two or more signature algorithms over the same canonical payload, and all component signatures shall verify for the composite to be valid.</p>
</description><component id="_e7e037e8-b70c-e2ac-467e-d9678b01deee" class="guidance"><p id="_6488ea9d-8ea5-ada2-3803-e3248eadbc98">The primary use case for composite signatures is combining a classical algorithm with a post-quantum algorithm for transition security during post-quantum migration.</p>

<p id="_95f4d45a-4045-826a-7746-9bc5b53debd9">Compositions of two post-quantum algorithms or other multi-algorithm combinations are also permitted.</p>
</component>

</requirement>

<requirement id="_f86449ef-d599-3322-175e-d0750f6d6213" anchor="r-algorithms-1-4" model="ogc">
<title>Post-quantum migration phases</title><identifier>/req/algorithms/migration-phases</identifier><description id="_d0f52d99-ce2b-32f6-a0da-f02ab87b235f"><p id="_46d647aa-e21c-ac7a-87d9-898408cdbeb7">The framework shall support a migration path from classical-only through composite to post-quantum-only signatures, governed by the algorithm agility framework.</p>
</description><component id="_8b543442-e8d7-7d57-8594-de404646ec22" class="guidance"><p id="_f47d21ba-9d8f-5a9f-3ffe-f5ad6206536d">Each phase is a deployment policy decision; the framework supports all three.</p>
</component>

</requirement>

<requirement id="_e21dbd5a-e13b-4029-1610-024496bc94e9" anchor="r-algorithms-1-5" model="ogc">
<title>Algorithm agility identifiers</title><identifier>/req/algorithms/algorithm-agility-identifiers</identifier><description id="_46948b00-99f7-f8ac-09f0-18d9b5ff3a83"><p id="_308902e5-aa0d-b428-8c60-e0a72e161f3b">Each algorithm shall carry an explicit identifier in the signature wrapper, and verifiers shall use this identifier to select the validation method and determine support.</p>
</description><component id="_f35de9a1-1206-3c20-75bb-427879d1f98d" class="guidance"><p id="_c626c86f-678e-728c-6c06-e6bc3a95c0b1">Deprecated algorithms shall be announced in advance.</p>
</component>

</requirement>

<requirement id="_094655b7-80c4-3658-83ab-875e6200ba22" anchor="r-algorithms-1-6" model="ogc">
<title>Encryption at rest</title><identifier>/req/algorithms/encryption-at-rest</identifier><description id="_72262831-2ad1-d97a-75c6-10a629d474f7"><p id="_06738045-d2a6-366f-8c91-f3f4f7a7086a">Private keys and sensitive data at rest shall be encrypted using an authenticated encryption algorithm meeting the minimum security parameters in <xref target="tab-security-parameters"/>, with the encryption key derived using a password-based key derivation function resistant to brute-force attacks.</p>
</description><component id="_e5a3f315-8628-6c02-0983-3625c193e5aa" class="guidance"><p id="_c84dd5c7-c08a-ac84-8fa6-bf50dccf2b0e">The choice of specific encryption and key derivation algorithms is an implementation decision.</p>

<p id="_076c1fe1-6666-a0fc-3191-94d13c6f13bd">AES-256-GCM and PBKDF2 are examples of suitable algorithms; ChaCha20-Poly1305, Argon2, scrypt, and other algorithms with equivalent or greater security strength are also acceptable.</p>
</component>

</requirement>

<requirement id="_1bd903f2-ca5c-a433-f837-42ee4b14c7cd" anchor="r-algorithms-1-7" model="ogc">
<title>Minimum security parameters</title><identifier>/req/algorithms/minimum-security-parameters</identifier><description id="_30a97a1f-239d-c838-edb7-c68f33a52b57"><p id="_5af7351c-1573-43b1-72f8-48e5cadf52e4">Conforming implementations shall use algorithms and parameters providing a minimum security strength of 128 bits, and shall not generate or accept keys, signatures, or hashes below this minimum.</p>
</description><component id="_3eac1c48-60f4-9df2-3c37-560f11fe7336" class="guidance"><p id="_eee9284c-e530-3fec-f8ed-bb734f7aa1ef">For long-term security (artifact validity exceeding 10 years), a minimum of 192 bits is recommended.</p>

<p id="_4e5a777a-f147-106c-58f4-61747cd51653">SHA-1 and MD5 are prohibited. Random number generators shall conform to a recognized standard.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_863f5390-d57e-89ac-b28a-9e6550f95fb3" anchor="threshold-signing" inline-header="false" obligation="normative">
<title id="_0bff890b-1f31-45fe-7f92-6c2b532711d3">Threshold signing</title>
<clause id="_872beace-3b6d-d343-3da2-04ee1fac6bd6" inline-header="false" obligation="normative">
<title id="_13cee2c8-e703-9374-b868-b94a872de4f8">General</title>
<p id="_d89d71a1-1576-c39a-6d8e-1d337dd0cc79">In the SIGNATIF framework, <concept><refterm>threshold signing</refterm><renderterm>threshold signing</renderterm><xref target="term-threshold-signing"/></concept> is not a property of the root alone. Any  <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> at any level of the <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept> may operate under a threshold scheme, ensuring that no single key compromises any level of the delegation hierarchy.</p>

<p id="_092300ec-e597-2a4f-8c02-1345bfa4a144">A threshold authority requires at least T of N designated key holders to cooperate to produce a valid signature under the authority’s  <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept>. No individual holder possesses the full signing capability; the aggregate key is composed from member-contributed shares. Schnorr-based signature schemes (<eref type="inline" bibitemid="bip340" citeas="BIP 340"/>) admit compact threshold aggregation under this model.</p>
</clause>

<clause id="_7453dc80-3867-83cc-d10f-cf126b3cc5ea" anchor="threshold-every-level" inline-header="false" obligation="normative">
<title id="_281f69a8-69af-027b-9118-82628d32703c">Threshold at every level</title>
<p id="_6b089830-ec84-7adf-a767-b333455bbf2a">A <concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authority</renderterm><xref target="term-delegated-trust-authority"/></concept> whose members are threshold key holders produces signatures under a threshold scheme. The threshold parameters propagate through the delegation hierarchy. Example threshold parameters by authority level are given in  <xref target="tab-threshold-parameters"/>.</p>

<table id="_d43489f8-6878-1319-1066-78fa829cf667" anchor="tab-threshold-parameters"><colgroup><col width="37.5%"/><col width="37.5%"/><col width="25%"/></colgroup>
<name id="_6acbed97-f245-6776-2a75-c886cdadbf11">Example threshold parameters by authority level</name>
<thead><tr id="_5a22f6b3-d868-f1fe-add9-870c31b8ec92"><th id="_c765eb4a-6704-21c7-dd20-ddb3fac4a108" valign="top" align="left">Authority</th>
<th id="_6811e9db-b670-f5ad-65cd-0d76f169c541" valign="top" align="left">Quorum</th>
<th id="_890a274e-61f1-5d25-1f66-b8909b35f051" valign="top" align="left">Delegates to</th>
</tr></thead>
<tbody><tr id="_b09eaa98-156d-8625-0d61-1ffbca3fd579"><td id="_7ca04e79-920b-de36-5b21-91fb120ce959" valign="top" align="left"><concept><refterm>root trust authority</refterm><renderterm>root trust authority</renderterm><xref target="term-root-trust-authority"/></concept></td>
<td id="_65c897fb-77ef-7127-7fed-68098f185ac4" valign="top" align="left">5-of-7 (example)</td>
<td id="_f2b59822-b7af-69e0-48bb-8f370ba7ed0b" valign="top" align="left">Delegated trust authority A’s aggregate key</td>
</tr><tr id="_6e0e2293-c89d-a12b-5987-5df2dc35e5f1"><td id="_6aabc650-1058-b223-8eeb-ad80515f87a4" valign="top" align="left">Delegated trust authority A</td>
<td id="_cdb64231-590a-e2d5-0d88-15628f422060" valign="top" align="left">3-of-5 (example)</td>
<td id="_49881b10-00e8-71b1-b82e-34fb7739cc8a" valign="top" align="left">Delegated trust authority B’s aggregate key</td>
</tr><tr id="_9f7a8751-f444-5b82-d8ea-519a25c57996"><td id="_47b6411d-beef-4037-fd47-35ca31e4c84c" valign="top" align="left">Delegated trust authority B</td>
<td id="_424199f0-7c13-4b2d-f09f-0a795a9e24fc" valign="top" align="left">2-of-3 (example)</td>
<td id="_c3c26e5b-ad22-bc51-81c0-2aa321e48855" valign="top" align="left">End certificate (1-of-1)</td>
</tr></tbody>
</table>

<p id="_7cbc1081-6027-0803-ad7b-55e5fa476c5c">Each delegation certificate shall carry the child’s aggregate public key, the <concept><refterm>quorum</refterm><renderterm>quorum</renderterm><xref target="term-quorum"/></concept> definition (T, N), and the member identity references. A single-key authority (1-of-1) omits the quorum parameters.</p>
</clause>

<clause id="_901cefeb-6a77-6e97-03dd-3a6b60ace810" anchor="threshold-aggregate-continuity" inline-header="false" obligation="normative">
<title id="_f5dd9fea-0955-d806-57e5-ef688a317ad8">Aggregate key continuity</title>
<p id="_2f101ec1-beaa-5710-228f-8780eba0593d">When a threshold authority rotates a member — adding, removing, or replacing a key holder — the  <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept> shall remain unchanged. The parent’s delegation shall remain valid without re-issuance.</p>

<p id="_a356ca6c-218b-41aa-085f-a23908246aab">This is achieved through threshold re-share protocols that preserve the aggregate public key while redistributing the secret shares among the new member set. Member rotation is transparent to all verifiers and to all parent authorities.</p>
</clause>

<clause id="_41f03705-573e-bf51-ce89-dc7af71954a6" anchor="threshold-nested" inline-header="false" obligation="normative">
<title id="_d113bf5a-ed8f-d10f-d8cf-3f0813e324cc">Nested threshold</title>
<p id="_6deafbc6-50a3-f404-559c-10c4e42f77a7">A threshold <concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authority</renderterm><xref target="term-delegated-trust-authority"/></concept> whose members are themselves threshold authorities forms a nested threshold structure. Signing by the outer authority may require the inner authority to first reach its own quorum, then contribute a share to the outer authority’s threshold.</p>

<p id="_65a4d8cd-0487-9408-6e8d-b6cb616c4f95">Nested threshold structures enable arbitrarily deep trust arrangements that span multiple organizational layers, each with its own quorum policy.</p>
</clause>

<clause id="_13158d91-1ab9-66a7-6f40-6654f42377c1" anchor="threshold-federated" inline-header="false" obligation="normative">
<title id="_19e19a6f-e4ab-a5e5-0bc9-d0b6573ba41d">Federated trust authorities</title>
<clause id="_38ba26b0-e613-6a2c-73f9-5ab8af0985be" inline-header="false" obligation="normative">
<title id="_3e3f2435-e90b-1f56-e025-ca7621335276">Definition</title>
<p id="_63b6e567-e490-ca4f-7549-075ab198f2f6">A <concept><refterm>federated trust authority</refterm><renderterm>federated trust authority</renderterm><xref target="term-federated-trust-authority"/></concept> (FTA) is a threshold <concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authority</renderterm><xref target="term-delegated-trust-authority"/></concept> whose members are independent organizations, each potentially a threshold authority itself. An FTA has:</p>

<ul id="_c4cb6e22-da87-8916-b6b3-0920ad85b6c7"><li><p id="_f4974d06-6686-6741-76ad-7129764d015b">its own <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept>, composed from member-contributed shares;</p>
</li>
<li><p id="_ff97af20-477f-4b49-0c17-e088e7b746c6">its own <concept><refterm>quorum</refterm><renderterm>quorum</renderterm><xref target="term-quorum"/></concept> (M-of-K member organizations);</p>
</li>
<li><p id="_1193e440-9371-c8e5-57d1-c76b2cadcd54">its own <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept>, which may span member hierarchies;</p>
</li>
<li><p id="_aa1436e3-96e2-79e9-9b16-2450dce6a553">its own <concept><refterm>ceremony</refterm><renderterm>ceremony</renderterm><xref target="term-ceremony"/></concept> protocol for cross-organization coordination.</p>
</li>
</ul>

<p id="_ae50b5c2-aaa1-ba96-5f50-415ef3d0d067">No single member organization controls an FTA. The threshold ensures that a specified number of independent organizations must cooperate to exercise the FTA’s signing power.</p>
</clause>

<clause id="_6e2c37b1-3175-28ef-cea9-bc99d2a57e9c" inline-header="false" obligation="normative">
<title id="_c334799a-01ff-4613-78d8-52dba51c537b">Recursive composition</title>
<p id="_87082b77-a7bf-0de2-d715-b099336f366a">FTAs may be composed recursively. An FTA may itself be a member of another FTA, creating arbitrarily deep trust structures.</p>

<example id="_3d5f563d-d429-e648-17c8-d3054e56f40b"><p id="_df1c4ed3-9f65-652e-ad57-cf4c39c029ac">FTA F₁ (3-of-5: {DTA_A, DTA_B, DTA_C, DTA_D, DTA_E}) is a member of FTA F₂ (2-of-4: {DTA_F, DTA_G, DTA_H, FTA_F₁}). Signing by F₂ may require F₁ to internally reach 3-of-5 among its members, then contribute one share to F₂’s 2-of-4 threshold.</p>
</example>
</clause>

<clause id="_e0bceda4-5c14-3319-202b-e66614e988c7" inline-header="false" obligation="normative">
<title id="_2189f3cf-31fe-6d9d-069d-11ad9d89a9fd">Hierarchy-spanning</title>
<p id="_f30b0127-0b12-711c-fd73-eecda611395b">An FTA may include members from independent <concept><refterm>root trust authority</refterm><renderterm>root trust authorities</renderterm><xref target="term-root-trust-authority"/></concept>. Artifacts signed by such an FTA are verifiable against the FTA’s aggregate key, which is recognized by all member hierarchies. This creates trust bridges between otherwise independent roots.</p>
</clause>

<clause id="_ee331304-7089-c368-5ed8-d9533e5941c4" inline-header="false" obligation="normative">
<title id="_77590053-5a30-faa0-ac3d-f21882e5868b">Lifecycle</title>
<p id="_00ed4f55-2423-5d05-b46c-26979609d542">An FTA lifecycle consists of:</p>

<ul id="_c48f910b-c218-69c8-812c-4007a73b46a8"><li><p id="_d6513553-78e7-0edd-644b-ec8cb33ce96b">Formation. Member organizations contribute shares; the aggregate key is computed and published.</p>
</li>
<li><p id="_99a54fbf-0e07-cc67-59e1-9ec89b04a281">Delegation. The FTA delegates to subordinate delegated trust authorities using its aggregate key.</p>
</li>
<li><p id="_b67a6a65-0823-c849-fda9-6fb9ee1378d4">Re-share. Member organizations join or leave without changing the aggregate key (see  <xref target="threshold-aggregate-continuity"/>).</p>
</li>
<li><p id="_904f0613-fb7c-ab32-bbf7-f68ca95f4cd2">Dissolution. The aggregate key is retired. Historical artifacts signed before dissolution remain valid if their chains and scope remain valid.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_cf4c6226-e0ee-5d64-1a10-270b1a9bafdd" anchor="threshold-ceremony" inline-header="false" obligation="normative">
<title id="_f253983b-1e91-e6c8-85a9-b5120e51f537">Ceremony protocol</title>
<p id="_46d95c1c-aece-075b-1136-e534a918bb80">A <concept><refterm>ceremony</refterm><renderterm>ceremony</renderterm><xref target="term-ceremony"/></concept> is the protocol by which a <concept><refterm>quorum</refterm><renderterm>quorum</renderterm><xref target="term-quorum"/></concept> of key holders cooperates to produce a  <concept><refterm>threshold signing</refterm><renderterm>threshold signing</renderterm><xref target="term-threshold-signing"/></concept> signature. The SIGNATIF framework is ceremony-protocol-neutral: any protocol that produces a verifiable threshold signature under the authority’s aggregate key may be used.</p>

<p id="_74373677-ea30-7d9d-fd53-3f44d70bac79">A ceremony protocol shall:</p>

<ul id="_b5962f16-6079-45dc-1af5-9848ec85e63e"><li><p id="_674f4cde-4730-b811-c247-5df3dad8dd27">produce a signature verifiable against the authority’s published aggregate key;</p>
</li>
<li><p id="_c5f63830-86e7-db6b-49c1-28fdd9aa9571">ensure that fewer than T members cannot produce a valid signature;</p>
</li>
<li><p id="_9c239ade-9342-e92f-01a9-a1c1ab927485">produce a ceremony record (see <xref target="ceremony-records"/>) that is independently verifiable.</p>
</li>
</ul>
</clause>

<clause id="_92521978-a39c-d3c3-6d97-77d645c91e5f" anchor="req-threshold-signing" inline-header="false" obligation="normative">
<title id="_42f57017-d7b6-c283-838b-9f09c0cd4ec7">Requirements</title>
<p id="_c562bce8-043b-6246-eca6-82259378e08d">Threshold signing and federated trust authorities has its formalized requirements class described in <xref target="rc-threshold-signing-1"/>, with its requirements listed from <xref target="r-threshold-signing-1-1"/> to <xref target="r-threshold-signing-1-12"/>.</p>

<requirement id="_54d604fa-98ae-0706-b3e4-f4867d6e56be" anchor="rc-threshold-signing-1" model="ogc" type="class">
<title>Threshold signing and federated trust authorities</title><identifier>/req/threshold-signing</identifier><subject>threshold signing</subject><inherit>/req/architecture</inherit><description id="_ec37fee5-236a-e7a6-bcd9-e390cf127da4"><p id="_0cf32b78-027d-89db-e209-4893ece05742">Requirements on threshold signing at every trust authority level, aggregate key continuity, federated trust authorities, and the ceremony protocol.</p>
</description><requirement id="_fabd9c06-0675-ea93-868f-755e2a0fd896" model="ogc" type="general"> <identifier>/req/threshold-signing/threshold-every-level</identifier></requirement><requirement id="_6e21eb6f-f4e2-2855-a77d-f31f3cd2de76" model="ogc" type="general"> <identifier>/req/threshold-signing/quorum-in-delegation</identifier></requirement><requirement id="_b9c3044c-e7fa-482b-bb10-ceff1b6f46e1" model="ogc" type="general"> <identifier>/req/threshold-signing/aggregate-key-continuity</identifier></requirement><requirement id="_7f296009-780c-a316-0b92-5e6e8f8f1fa2" model="ogc" type="general"> <identifier>/req/threshold-signing/nested-threshold</identifier></requirement><requirement id="_d7e9881c-3b0b-57d4-397e-923bb5a6ca62" model="ogc" type="general"> <identifier>/req/threshold-signing/fta-formation</identifier></requirement><requirement id="_4ac56311-66b1-8c9a-19be-5050ba71d60f" model="ogc" type="general"> <identifier>/req/threshold-signing/fta-recursive-composition</identifier></requirement><requirement id="_503bd082-3717-0375-0e7f-abc78c1dca90" model="ogc" type="general"> <identifier>/req/threshold-signing/fta-hierarchy-spanning</identifier></requirement><requirement id="_4e49a59e-fc99-c1de-02aa-af8b154baab0" model="ogc" type="general"> <identifier>/req/threshold-signing/fta-reshare</identifier></requirement><requirement id="_923eea52-140c-7ba1-a475-e144cae7b41b" model="ogc" type="general"> <identifier>/req/threshold-signing/ceremony-threshold-property</identifier></requirement><requirement id="_6a433901-6a17-275f-fd5b-5874ba96c685" model="ogc" type="general"> <identifier>/req/threshold-signing/rogue-key-prevention</identifier></requirement><requirement id="_0fa12222-ad41-51c8-fc26-89ad6394bf95" model="ogc" type="general"> <identifier>/req/threshold-signing/ceremony-robustness</identifier></requirement><requirement id="_81666237-9f6b-5386-2456-a2432bfeec4c" model="ogc" type="general"> <identifier>/req/threshold-signing/ceremony-record-production</identifier></requirement>

</requirement>

<requirement id="_b42d9002-4f38-ece8-d810-d4c284d09444" anchor="r-threshold-signing-1-1" model="ogc">
<title>Threshold at every level</title><identifier>/req/threshold-signing/threshold-every-level</identifier><description id="_3b6523d5-0a51-a87b-559e-8eb194f0b630"><p id="_2684ad97-904b-d122-af91-7291f5879397">Any trust authority at any level of the trust graph shall be able to operate under a threshold scheme, such that no single key compromises any level of the delegation hierarchy.</p>
</description><component id="_98203bf3-3052-546b-2a40-f893bc87dd3c" class="guidance"><p id="_e9e74036-9605-baff-86d3-060e900b21ac">A single-key authority (1-of-1) is permitted but does not provide threshold protection.</p>

<p id="_ac71bb5b-15bc-3cc7-d0f2-f011a4cfd18f">The quorum parameters (T, N) are carried in the authority’s delegation certificate.</p>
</component>

</requirement>

<requirement id="_6be46c2c-9c5d-7392-a03d-c6b8bfe98f17" anchor="r-threshold-signing-1-2" model="ogc">
<title>Quorum parameters in delegation</title><identifier>/req/threshold-signing/quorum-in-delegation</identifier><description id="_ebc8a422-a852-0841-5f56-3e3528ac242f"><p id="_4f1332fe-fa0f-13ef-a8bb-57f5d0d82e4a">A delegation certificate for a threshold child authority shall carry the child’s aggregate public key, the quorum definition (T, N), and references to the member identities.</p>
</description><component id="_37a661cc-8b0a-b753-88f7-8dac7a0c7913" class="guidance"><p id="_b27f082d-e4a4-68fd-3402-cf2254406539">Member identity references should be transparency-log sequence numbers or equivalent verifiable identifiers.</p>
</component>

</requirement>

<requirement id="_7c2383d1-3efb-edd8-f9ac-ca50285d259e" anchor="r-threshold-signing-1-3" model="ogc">
<title>Aggregate key continuity under member rotation</title><identifier>/req/threshold-signing/aggregate-key-continuity</identifier><description id="_5d95a8f7-2597-9dcf-1031-3afe989d1b46"><p id="_d5c8ffb4-df97-d262-bc07-7549793c94b2">When a threshold authority rotates a member, the aggregate key shall remain unchanged, and all existing delegations from parent authorities shall remain valid without re-issuance.</p>
</description><component id="_eff3e8c8-e9f5-7a08-de2b-52853ff047ad" class="guidance"><p id="_126bd500-f5f4-c460-50c6-afedc974f06a">This is achieved through threshold re-share protocols that preserve the aggregate public key while redistributing secret shares.</p>
</component>

</requirement>

<requirement id="_af5a53a3-4418-9f00-ca13-c98fbfd86bd9" anchor="r-threshold-signing-1-4" model="ogc">
<title>Nested threshold</title><identifier>/req/threshold-signing/nested-threshold</identifier><description id="_8b7dd015-0f65-2170-af3e-4eaa93f9787a"><p id="_633120bf-3e0c-61f0-8ea9-2d816e4fb107">A threshold delegated trust authority whose members are themselves threshold authorities shall be supported, such that signing by the outer authority requires inner authorities to reach their own quorum before contributing shares.</p>
</description><component id="_2d57f055-051a-2b94-17b2-200b727ff874" class="guidance"><p id="_88a8dd08-31d2-4842-b709-7a1f92b157da">Nested threshold structures may span multiple organizational layers.</p>
</component>

</requirement>

<requirement id="_658dd29f-6fb0-44b0-dedf-7cfdb6de574b" anchor="r-threshold-signing-1-5" model="ogc">
<title>Federated trust authority formation</title><identifier>/req/threshold-signing/fta-formation</identifier><description id="_c220773a-db98-64c1-44b8-159ee93bc81f"><p id="_69bf07a2-c231-16ac-41ee-e50194410c6a">A federated trust authority shall be formed by independent organizations contributing shares to produce a single aggregate key, such that no single member organization controls the authority.</p>
</description><component id="_e36e4be3-80d4-b983-2630-441a5ae2ad40" class="guidance"><p id="_21d5a6e2-b2a8-b8de-873e-b1e28b3d3c0c">The FTA carries its own quorum (M-of-K member organizations), scope, and ceremony protocol.</p>
</component>

</requirement>

<requirement id="_07033947-9c0b-dfda-18a4-01776df2f52f" anchor="r-threshold-signing-1-6" model="ogc">
<title>Federated trust authority recursive composition</title><identifier>/req/threshold-signing/fta-recursive-composition</identifier><description id="_91b2b808-d240-3719-0dc6-bdbcc18dd2cb"><p id="_52f4cead-23dc-02da-10d6-79703c18a042">A federated trust authority shall be permitted to be a member of another federated trust authority, enabling recursively composed trust structures.</p>
</description><component id="_f4271cdd-e4e3-8bf5-4ae2-6edc00da0387" class="guidance"><p id="_32112609-c5ff-9988-9aa4-091d9244ed55">Signing by a composite FTA may require inner FTAs to reach their own quorum before contributing shares to the outer FTA.</p>
</component>

</requirement>

<requirement id="_545bf3a8-a0eb-98d7-96bc-e655f97f10ce" anchor="r-threshold-signing-1-7" model="ogc">
<title>Federated trust authority hierarchy-spanning</title><identifier>/req/threshold-signing/fta-hierarchy-spanning</identifier><description id="_32ed9036-d7c3-0efa-6df2-0b8c58eee108"><p id="_8716a955-c4e8-555e-3d73-10b2292d28a9">A federated trust authority shall be permitted to include members from independent root trust authorities, producing artifacts verifiable against the FTA’s aggregate key and recognized by all member hierarchies.</p>
</description><component id="_5b0358a9-28cd-595e-74e1-a99fe4613b56" class="guidance"><p id="_1ce268e4-cdf6-339c-81d0-56d8dbff1265">This creates trust bridges between otherwise independent roots.</p>
</component>

</requirement>

<requirement id="_a863f3f5-e667-b9f2-81e0-c43dfb45e4ba" anchor="r-threshold-signing-1-8" model="ogc">
<title>Federated trust authority re-share</title><identifier>/req/threshold-signing/fta-reshare</identifier><description id="_a87ec520-c893-2e31-36f3-9cfebea6f6ad"><p id="_58471fb3-b7e3-f224-af83-7b40baa3ca49">A federated trust authority shall support member join and leave operations that preserve the aggregate key, such that historical artifacts remain valid.</p>
</description><component id="_5fe6ce31-f65c-3560-6f7a-2c0183f29e75" class="guidance"><p id="_3656ee4c-2a4e-74bb-c44c-828bd80f6b60">Dissolution of an FTA retires the aggregate key but does not invalidate artifacts signed before dissolution whose chains and scope remain valid.</p>
</component>

</requirement>

<requirement id="_39e3ff37-d52f-ec19-5fd3-6869c8896f94" anchor="r-threshold-signing-1-9" model="ogc">
<title>Ceremony protocol threshold property</title><identifier>/req/threshold-signing/ceremony-threshold-property</identifier><description id="_2acfc562-bc65-77c3-cd76-ff64b501b527"><p id="_2f37aac2-9f3e-6b83-c4b6-9602d0e24d6e">A ceremony protocol shall produce a signature verifiable against the authority’s published aggregate key and shall ensure that fewer than T members cannot produce a valid signature.</p>
</description><component id="_ff9a2fb1-6049-4d16-b62c-5225cf2cf804" class="guidance"><p id="_8d127bfb-76bf-1a74-ad29-60b227219f4e">The SIGNATIF framework is ceremony-protocol-neutral; any protocol satisfying these properties may be used.</p>
</component>

</requirement>

<requirement id="_13e9e9d0-0351-e2e8-1112-7a4a312745c6" anchor="r-threshold-signing-1-10" model="ogc">
<title>Rogue-key attack prevention</title><identifier>/req/threshold-signing/rogue-key-prevention</identifier><description id="_d8f1930e-158f-b4b4-50d3-92b4a0ea76a9"><p id="_670c2d65-806d-6d66-2e56-dee3b27366ae">Each member of a threshold authority shall demonstrate possession of the private key corresponding to their contributed public share during key generation, and the aggregate key computation shall incorporate all member public keys in a manner secure against rogue-key attacks.</p>
</description><component id="_c6086e6d-4932-34c1-e0b0-ed436fe83c4e" class="guidance"><p id="_a65ff09e-94d0-ef98-e760-2756fb8116aa">Proof-of-possession prevents a malicious member from registering a crafted key that makes the aggregate key equal to their solo key.</p>
</component>

</requirement>

<requirement id="_13addb35-c4da-8f82-19fe-f6d6882e0b1a" anchor="r-threshold-signing-1-11" model="ogc">
<title>Ceremony identifiable abort and nonce commitment</title><identifier>/req/threshold-signing/ceremony-robustness</identifier><description id="_67384ce7-c30e-4e30-21bb-73e859e42191"><p id="_4b98b7ef-753a-81b7-615f-b8bd9a718e14">A conforming ceremony protocol shall provide identifiable abort (identifying the member causing failure), nonce commitment to prevent nonce bias, and a documented policy for handling member non-participation.</p>
</description>

</requirement>

<requirement id="_d92aa1f2-8ec3-af2f-fdad-b12724b7bdf2" anchor="r-threshold-signing-1-12" model="ogc">
<title>Ceremony record production</title><identifier>/req/threshold-signing/ceremony-record-production</identifier><description id="_8bab84ec-48d6-3372-9700-6417df2c2006"><p id="_d71cc71e-8cd0-ae6a-41dd-be86fad3ee05">A ceremony shall produce a verifiable ceremony record that documents the participating members, the threshold parameters, and the signature produced.</p>
</description><component id="_67b9d0cc-b518-08fd-65aa-0f0185a0a6f1" class="guidance"><p id="_ed2486a2-f36d-8ac3-ed97-75695ca03bb3">Detailed ceremony record requirements are specified in /req/ceremony/.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_a795fd49-98ed-75a8-a485-6ab1548d1be2" anchor="trust-chain-scope" inline-header="false" obligation="normative">
<title id="_1dd1fedc-8be8-fa92-8a87-7633a31af77f">Trust chain and authorization scope governance</title>
<clause id="_a8f1cb0c-cc44-ccdb-7313-2f1907a60b10" inline-header="false" obligation="normative">
<title id="_77b7a2c9-ae4d-263c-0aa7-58b5dea5ee0e">General</title>
<p id="_de2dd8d5-71a5-1939-7592-2919861d9e1b">The <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> is a first-class concept in the SIGNATIF framework. Unlike traditional PKI, in which a CA’s authorization boundary is defined by external policy and is not verifiable from the certificate itself, the authorization scope in this document is a signed field carried in every delegation certificate and end certificate, cryptographically enforced at every chain link.</p>

<p id="_ab8d27b3-8b5e-4e09-c8a6-87aa635dca7c">This clause specifies the authorization scope data model, the <concept><refterm>monotonic narrowing invariant</refterm><renderterm>monotonic narrowing invariant</renderterm><xref target="term-monotonic-narrowing-invariant"/></concept>, <concept><refterm>authorization scope condition</refterm><renderterm>scope conditions</renderterm><xref target="term-authorization-scope-condition"/></concept> as executable predicates, and the multi-layer enforcement model.</p>
</clause>

<clause id="_7b6164b4-953d-5fbb-2f85-fd12cf86fb8f" anchor="scope-structure" inline-header="false" obligation="normative">
<title id="_75a16842-d26b-0197-c5f7-a997003dd96f">Authorization scope structure</title>
<p id="_9771b3a4-39c8-d577-ef1b-0ae023d60128">An authorization scope is a multi-dimensional constraint set. Each <concept><refterm>authorization scope dimension</refterm><renderterm>scope dimension</renderterm><xref target="term-authorization-scope-dimension"/></concept> constrains one axis of the authorization boundary independently. The initially defined scope dimensions are listed in  <xref target="tab-scope-dimensions"/>; geographic values may use the country codes of  <eref type="inline" bibitemid="iso3166-1" citeas="ISO 3166-1:2020"/>.</p>

<table id="_3f31f960-c995-87d2-3693-920032669d22" anchor="tab-scope-dimensions"><colgroup><col width="25%"/><col width="37.5%"/><col width="37.5%"/></colgroup>
<name id="_eaba9aab-c9f6-01f8-45c4-49da35383697">Initially defined authorization scope dimensions (non-exhaustive; additional dimensions may be defined by profiles)</name>
<thead><tr id="_a9220bae-03c1-75f2-9120-81af4419bc96"><th id="_1a0cec88-3385-b163-3b48-ec3177159686" valign="top" align="left">Dimension</th>
<th id="_44cc2c7d-68f8-0b73-0fab-f348098f7b1d" valign="top" align="left">Constrains</th>
<th id="_a9573c62-9f74-13a1-e581-2a66c2f26cb2" valign="top" align="left">Example values</th>
</tr></thead>
<tbody><tr id="_39978b2e-65e4-ed1e-db7a-aa7183d51f49"><td id="_e5cd8450-5976-4702-7c6f-2cf6042c9646" valign="top" align="left">domain</td>
<td id="_6dbae23f-c020-29df-3607-845974564313" valign="top" align="left">The field of application</td>
<td id="_6036d61b-747d-85f3-e6af-dbbd304c9af3" valign="top" align="left"><tt>pharma</tt>, <tt>supply-chain</tt>, <tt>credentials</tt>, or wildcard</td>
</tr><tr id="_6d00cd52-9b58-5240-c63c-5c05e99d3db5"><td id="_23923a0e-e418-78e7-3968-eb6d247f272b" valign="top" align="left">subdomain</td>
<td id="_21a3a98c-bb25-a3ef-7dc5-9d73a23032be" valign="top" align="left">The area within the domain</td>
<td id="_e69894b9-9015-5fa9-16c7-710666ee1b26" valign="top" align="left"><tt>manufacturing</tt>, <tt>cold-chain</tt>, or wildcard</td>
</tr><tr id="_4a476d4e-e235-a075-2c79-fa5ae983dfd5"><td id="_83ba2cca-4932-078e-85bc-d9410ab755ec" valign="top" align="left">class</td>
<td id="_c8e9a9b9-38dd-048d-1db5-b22b1553e4f6" valign="top" align="left">The type of object</td>
<td id="_ef786971-907b-96f5-a589-44004b2f3cd9" valign="top" align="left"><tt>{"vaccine", "tablet"}</tt>, or wildcard</td>
</tr><tr id="_85662ce5-0e2d-494a-b16e-d29dcd19c6e8"><td id="_6079acd1-8b25-4454-5b6c-f7d14e4c0c1f" valign="top" align="left">instance</td>
<td id="_2bb82fbd-84ea-f8fd-b3d3-465e79e1fb2a" valign="top" align="left">The specific model</td>
<td id="_6ff0e830-8c74-9c69-7541-03d07f92d434" valign="top" align="left"><tt>LOT-2026-001</tt>, or wildcard</td>
</tr><tr id="_a5f7ac05-7ac1-267d-03a7-fc4494c9fbc2"><td id="_5562f425-ec0d-58bc-7386-707d432c4b9c" valign="top" align="left">identity</td>
<td id="_6cfad7c0-5bf5-5c16-09c8-d91b07e270a1" valign="top" align="left">The specific unit</td>
<td id="_051a1be3-24f7-6800-05e4-38892672036d" valign="top" align="left"><tt>BATCH-A</tt>, or wildcard</td>
</tr><tr id="_2912eb83-0b2f-abec-48e3-4d34cb55e6b7"><td id="_df971ac6-e96e-350d-c757-c30868d4113f" valign="top" align="left">conditions</td>
<td id="_618e2e61-ed8c-c6e7-66b6-fc7820be71d4" valign="top" align="left">Executable predicates on artifact content</td>
<td id="_73f08eeb-4c53-f37f-d757-7835b71573ea" valign="top" align="left">See <xref target="scope-conditions"/> (uses inverted narrowing: child shall be a superset of parent)</td>
</tr></tbody>
</table>

<p id="_d7bff95b-2c6a-1bc7-305b-6cf36ca570a5">Each dimension may carry the wildcard value (denoting no constraint on that axis), a set of values, or a single value. Narrowing a dimension means replacing a wider constraint with a narrower one: wildcard narrows to set or single; set narrows to subset or single; single narrows to the same single only.</p>
</clause>

<clause id="_84b3109b-75b1-2aad-6a55-18015d315bb7" anchor="scope-monotonic-narrowing" inline-header="false" obligation="normative">
<title id="_4eeb3582-ee25-b10f-7128-471a717ff045">Monotonic narrowing invariant</title>
<p id="_4d118fb8-3db9-7566-f1e9-6bf0a41635b7">At every delegation link, the child scope shall be a subset of (or equal to) the parent scope on every dimension. This is the  <concept><refterm>monotonic narrowing invariant</refterm><renderterm>monotonic narrowing invariant</renderterm><xref target="term-monotonic-narrowing-invariant"/></concept> (<xref target="fig-scope-narrowing"/>).</p>

<figure id="_13ad36d1-0be0-2aa2-a777-04ab34be2b41" anchor="fig-scope-narrowing">
<name id="_ccb39e12-0ad5-ecc9-511e-ee378fc371ff">Monotonic scope narrowing through the delegation chain</name>
<image id="_8f21ff66-8afe-8063-c361-11fbec1c9617" src="images/scope-narrowing.svg" mimetype="image/svg+xml" height="auto" width="auto" filename="images/scope-narrowing.svg"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 550" font-family="sans-serif" font-size="12">
  <defs>
    <marker id="snarr" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto">
      <path d="M0,0 L10,5 L0,10 z" fill="#555"/>
    </marker>
  </defs>

  <text x="450" y="25" text-anchor="middle" font-size="15" font-weight="bold">Monotonic scope narrowing — S₀ ⊇ S₁ ⊇ S₂ ⊇ S₃</text>
  <text x="450" y="44" text-anchor="middle" font-size="12" fill="#666">Each delegation narrows scope; widening at any link is a hard verification failure</text>

  <!-- Level 0: RTA -->
  <rect x="50" y="70" width="800" height="55" rx="6" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="450" y="90" text-anchor="middle" font-weight="bold">S₀ (Root Trust Authority)</text>
  <text x="450" y="108" text-anchor="middle" font-size="11" fill="#555">domain: *  |  subdomain: *  |  class: *  |  instance: *  |  identity: *</text>
  <text x="450" y="120" text-anchor="middle" font-size="10" fill="#888">Wildcard on all dimensions — broadest possible scope</text>

  <!-- Arrow down -->
  <line x1="450" y1="125" x2="450" y2="155" stroke="#555" stroke-width="2" marker-end="url(#snarr)"/>
  <text x="465" y="145" font-size="11" fill="#34a853">delegates ↓ (narrows domain)</text>

  <!-- Level 1: DTA_A -->
  <rect x="100" y="160" width="700" height="55" rx="6" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="450" y="180" text-anchor="middle" font-weight="bold">S₁ (Delegated Trust Authority — Issuing)</text>
  <text x="450" y="198" text-anchor="middle" font-size="11" fill="#555">domain: metrology  |  subdomain: *  |  class: *  |  instance: *  |  identity: *</text>
  <text x="450" y="210" text-anchor="middle" font-size="10" fill="#888">Domain narrowed to metrology; all other dimensions still wildcard</text>

  <!-- Arrow down -->
  <line x1="450" y1="215" x2="450" y2="245" stroke="#555" stroke-width="2" marker-end="url(#snarr)"/>
  <text x="465" y="235" font-size="11" fill="#34a853">delegates ↓ (narrows subdomain + class)</text>

  <!-- Level 2: DTA_B -->
  <rect x="150" y="250" width="600" height="55" rx="6" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="450" y="270" text-anchor="middle" font-weight="bold">S₂ (Delegated Trust Authority — Testing Lab)</text>
  <text x="450" y="288" text-anchor="middle" font-size="11" fill="#555">domain: metrology  |  subdomain: weighing  |  class: {NAWI, load cell}  |  instance: *  |  identity: *</text>
  <text x="450" y="300" text-anchor="middle" font-size="10" fill="#888">Subdomain and class narrowed; instance and identity still wildcard</text>

  <!-- Arrow down -->
  <line x1="450" y1="305" x2="450" y2="335" stroke="#555" stroke-width="2" marker-end="url(#snarr)"/>
  <text x="465" y="325" font-size="11" fill="#34a853">issues ↓ (narrows instance + identity)</text>

  <!-- Level 3: End Cert -->
  <rect x="200" y="340" width="500" height="55" rx="6" fill="#fef7e0" stroke="#fbbc04" stroke-width="2"/>
  <text x="450" y="360" text-anchor="middle" font-weight="bold">S₃ (End Certificate — Device Key)</text>
  <text x="450" y="378" text-anchor="middle" font-size="11" fill="#555">domain: metrology  |  subdomain: weighing  |  class: NAI  |  instance: LC-500  |  identity: SN-001</text>
  <text x="450" y="390" text-anchor="middle" font-size="10" fill="#888">Fully narrowed to a single device identity</text>

  <!-- Widening rejection -->
  <rect x="200" y="420" width="500" height="50" rx="6" fill="#fce8e6" stroke="#d32f2f" stroke-width="2"/>
  <text x="450" y="442" text-anchor="middle" font-weight="bold" fill="#d32f2f">WIDENING REJECTED</text>
  <text x="450" y="458" text-anchor="middle" font-size="11" fill="#d32f2f">e.g., identity: SN-001 → identity: * = hard verification failure</text>

  <!-- Error arrow -->
  <line x1="450" y1="395" x2="450" y2="420" stroke="#d32f2f" stroke-width="2" stroke-dasharray="5,3"/>

  <!-- Four-layer enforcement note -->
  <text x="450" y="500" text-anchor="middle" font-weight="bold" font-size="13">Four-layer enforcement</text>
  <text x="80" y="520" font-size="11" fill="#555">① Certificate extension (signed)</text>
  <text x="330" y="520" font-size="11" fill="#555">② Chain verification (every link)</text>
  <text x="560" y="520" font-size="11" fill="#555">③ Pipeline (condition eval)</text>
  <text x="730" y="520" font-size="11" fill="#555">④ Transparency log (audit)</text>
</svg></image></figure>

<p id="_a0fb5626-b0c4-a458-bfa1-563546bc2aac">The narrowing relation is defined by the following algorithm. Given a parent scope  <tt>S_p</tt> and a child scope <tt>S_c</tt>, <tt>narrowed(S_p, S_c)</tt> holds if and only if the following procedure returns true:</p>

<ol id="_82262a9b-6389-4977-8e5c-56f76bd69e37" type="arabic"><li><p id="_f98ad166-cd15-7a27-2e03-c79b5c3c6a37">Normalize both scopes: singleton sets <tt>{x}</tt> are equivalent to the single value  <tt>x</tt> and shall be normalized before comparison.</p>
</li>
<li><p id="_e05803bc-5119-65f1-6e8c-f0d9eb23a47a">For each scope dimension <tt>d</tt> in the union of dimensions present in <tt>S_p</tt> and  <tt>S_c</tt>:</p>
<ol id="_13e49fde-a9b7-8adb-e342-60f800babcd3"><li><p id="_c0951c58-3e62-47a7-bd6c-7a26b2e6ae85">Let <tt>v_p</tt> be the value of dimension <tt>d</tt> in <tt>S_p</tt> (wildcard if absent).</p>
</li>
<li><p id="_4ab58d33-35b3-60bf-38e0-ff663f9a35b2">Let <tt>v_c</tt> be the value of dimension <tt>d</tt> in <tt>S_c</tt> (wildcard if absent).</p>
</li>
<li><p id="_f53b459f-3e1a-70db-d924-996945c9530d">If <tt>v_p</tt> is wildcard, the dimension is narrowed regardless of <tt>v_c</tt>. Continue to the next dimension.</p>
</li>
<li><p id="_ed34b7b1-1072-8db9-4271-a934b5c4e687">If <tt>v_c</tt> is wildcard and <tt>v_p</tt> is not wildcard, the dimension is widened. Return false.</p>
</li>
<li><p id="_bf484a1d-17ed-1384-3466-e78365e0082c">If both <tt>v_p</tt> and <tt>v_c</tt> are single values: the dimension is narrowed if and only if  <tt>v_c = v_p</tt>. If <tt>v_c</tt> is not equal to <tt>v_p</tt>, return false.</p>
</li>
<li><p id="_7a9f71a9-3a32-135d-67dc-6814be630924">If <tt>v_p</tt> is a single value and <tt>v_c</tt> is a set: the dimension is widened. A set cannot be narrower than a single value. Return false.</p>
</li>
<li><p id="_c2ab6b1e-d4ef-5162-deeb-5c5333ff72a9">If <tt>v_p</tt> is a set and <tt>v_c</tt> is a single value: the dimension is narrowed if and only if  <tt>v_c</tt> is a member of <tt>v_p</tt>. If not, return false.</p>
</li>
<li><p id="_6211303f-85a5-4249-acfa-ffaed8480bb3">If <tt>v_p</tt> is a set and <tt>v_c</tt> is a set: the dimension is narrowed if and only if  <tt>v_c</tt> is a subset of <tt>v_p</tt> (set inclusion). If not, return false.</p>
</li>
</ol>
</li>
<li><p id="_6ef36aed-f9c3-fa20-5048-2d2dfb009501">Let <tt>C_p</tt> be the set of scope conditions in <tt>S_p</tt> and <tt>C_c</tt> the set in <tt>S_c</tt>. The conditions dimension is narrowed if and only if <tt>C_c</tt> is a superset of  <tt>C_p</tt> (every condition in the parent is also present in the child, and the child may add additional conditions). If any parent condition is absent from the child, return false.</p>
</li>
<li><p id="_d7e9bdbd-b2ea-94aa-f16c-d521b6d810d2">Return true.</p>
</li>
</ol>

<p id="_321198e2-97e0-a76a-b49d-37a083d8745b">An artifact signed under <tt>S_c</tt> satisfies the scope if <tt>narrowed(S_p, S_c)</tt> holds at every delegation link from the root to the end certificate, and all conditions in the effective scope (the narrowest along the chain) evaluate to true against the artifact content.</p>

<p id="_15a546a1-7aca-08a1-e622-2f1a0de2ed6c">Widening any dimension at any delegation link constitutes a hard verification failure. The verifier shall reject any chain in which  <tt>narrowed(S_p, S_c)</tt> returns false at any link.</p>
</clause>

<clause id="_b05edbae-0f3f-c1aa-39d4-72d8c5dc15fb" anchor="scope-conditions" inline-header="false" obligation="normative">
<title id="_4bc6cbfe-b7e9-074e-abb4-241d1a5b2acc">Authorization scope conditions</title>
<p id="_787a7e21-dcdb-b14a-23f4-0f36fb133b20">A <concept><refterm>authorization scope condition</refterm><renderterm>scope condition</renderterm><xref target="term-authorization-scope-condition"/></concept> is an executable predicate included in a scope, evaluated at verification time against the content and context of the  <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept>. Scope conditions bind signing authority to live state, not merely to static identity.</p>

<p id="_190f4025-e46a-b3b8-25dd-9772c2b3ced6">A scope condition may assert, for example:</p>

<ul id="_7e676146-8de5-b286-f6a9-b2669294692e"><li><p id="_c5ed2270-3d8c-2622-571c-95a677ea9c5d">that a measured value falls within a specified tolerance;</p>
</li>
<li><p id="_c9d12b8c-c69e-d2a6-0319-b4f673747a2e">that a certification is valid at the signature time;</p>
</li>
<li><p id="_08b7d796-6add-bcc0-3adb-300b58396813">that a compliance status holds;</p>
</li>
<li><p id="_c8ed68c9-6d8d-1e56-558f-a9ad3caeda64">that an environmental reading is within an acceptable range.</p>
</li>
</ul>

<p id="_76c8b57a-4fd3-e235-c51c-02c4f9408802">An artifact signed by a key whose scope conditions are not met fails verification, regardless of the cryptographic validity of the signature.</p>

<p id="_d0e1b0b7-1892-d9ac-7727-f8cadeabc94d">Scope conditions shall be expressed in a machine-checkable, deterministic format. The condition language shall be non-Turing-complete. The evaluation of any condition shall terminate in time bounded by a polynomial function of the input size. The evaluation context (the artifact content and any external state references) shall be fully determined by the artifact and its chain, such that two independent verifiers evaluating the same condition reach the same result.</p>
</clause>

<clause id="_b7c2fad0-4ee1-6232-7dc6-ae4d9b2e171b" anchor="scope-encoding" inline-header="false" obligation="normative">
<title id="_e34c7b38-7fc4-66f7-dcfa-962a1c7a1b90">Authorization scope encoding</title>
<p id="_e997dd8c-dda7-77f5-6772-0c35de9d2cff">Scope shall be encoded in a format that is:</p>

<ul id="_b131face-22c0-5e5e-0150-2d81f6eda12d"><li><p id="_1ad0cbe7-42de-b388-91ef-1d96132edde2">Machine-checkable. The narrowing relation and condition evaluation shall be verifiable without human interpretation of free text.</p>
</li>
<li><p id="_52e2567d-b3b2-3900-2f69-6aed644bf1a0">Compact. The encoding shall be wire-efficient, as scope is carried in every certificate.</p>
</li>
<li><p id="_5539b271-af97-7f8b-da2a-b88fbf8d0036">Extensible. New scope dimensions and condition types shall be addable without breaking existing verifiers that do not recognize them.</p>
</li>
</ul>

<p id="_f57b256e-5a8c-2321-c263-89a60952b5df">The scope is carried in a certificate extension (the <tt>authorizedScopes</tt> extension or equivalent in the applicable format profile). Format profiles specified in  <xref target="artifact-format"/> define the concrete encoding for each supported serialization.</p>
</clause>

<clause id="_8e0c38fe-90e9-bef8-1c58-4b90df40df02" anchor="scope-four-layer" inline-header="false" obligation="normative">
<title id="_b2749b5e-9f57-a689-0806-5861ee1503fe">Multi-layer enforcement</title>
<p id="_3ba11fff-80af-5214-8b2a-55a66c8115e1">Scope is enforced at multiple independent layers:</p>

<ol id="_0e00c558-a0ff-23b7-6055-1ca22c152556"><li><p id="_d84936a1-7053-4601-2c1d-4d6e621bb323">Certificate extension. The scope is carried in the certificate, signed by the parent authority. Tampering with the scope invalidates the signature.</p>
</li>
<li><p id="_e1711892-bc7d-bd8d-4d4e-7b65ee0d35a7">Chain verification. The <concept><refterm>monotonic narrowing invariant</refterm><renderterm>monotonic narrowing invariant</renderterm><xref target="term-monotonic-narrowing-invariant"/></concept> is checked at every delegation link. Widening on any dimension causes rejection.</p>
</li>
<li><p id="_217fca9d-3e47-685d-1ccd-63c30ab91e6d">Verification pipeline. The <concept><refterm>verification pipeline</refterm><renderterm>verification pipeline</renderterm><xref target="term-verification-pipeline"/></concept> includes a scope check that confirms the artifact’s content falls within the scope of the signing key, including evaluation of all  <concept><refterm>authorization scope condition</refterm><renderterm>scope conditions</renderterm><xref target="term-authorization-scope-condition"/></concept>.</p>
</li>
<li><p id="_4a527a20-6e1e-f07f-0651-6dc08a9e9f26">Transparency log. The scope is recorded in the public transparency log for every certificate, enabling audit and detection of scope violations by third parties.</p>
</li>
</ol>
</clause>

<clause id="_a89b1502-5bc9-b928-481a-fb75a172b61c" anchor="req-scope" inline-header="false" obligation="normative">
<title id="_85b683d4-5e60-bfb4-c768-d60b16d52546">Requirements</title>
<p id="_c09c2968-0273-7be1-e6f7-7397d4a8992d">Trust chain and authorization scope governance has its formalized requirements class described in <xref target="rc-scope-1"/>, with its requirements listed from <xref target="r-scope-1-1"/> to <xref target="r-scope-1-8"/>.</p>

<requirement id="_571d1450-219c-f2a7-e8c2-6bf350c24b23" anchor="rc-scope-1" model="ogc" type="class">
<title>Trust chain and authorization scope governance</title><identifier>/req/scope</identifier><subject>scope governance</subject><inherit>/req/architecture</inherit><description id="_0002b67a-719b-cce6-153e-1f79c13e5660"><p id="_90015053-5a95-4055-7890-1725fbbb440b">Requirements on scope structure, monotonic narrowing, scope conditions, scope encoding, and four-layer enforcement.</p>
</description><requirement id="_2fcaf866-8fb5-0bd3-2acf-e9c1aff70adf" model="ogc" type="general"> <identifier>/req/scope/scope-structure</identifier></requirement><requirement id="_17ad7e8f-8a6d-ff5c-7377-0c2c0b893508" model="ogc" type="general"> <identifier>/req/scope/monotonic-narrowing</identifier></requirement><requirement id="_c9c97919-c39c-d901-f7f6-e25512ca7380" model="ogc" type="general"> <identifier>/req/scope/widening-rejection</identifier></requirement><requirement id="_fd458362-1508-925d-b6c8-62b804a80cbb" model="ogc" type="general"> <identifier>/req/scope/scope-conditions</identifier></requirement><requirement id="_6263726b-9e48-b13e-b0d0-aedee23eb94f" model="ogc" type="general"> <identifier>/req/scope/condition-determinism</identifier></requirement><requirement id="_717c982a-b0a3-2097-703f-36176868a8dd" model="ogc" type="general"> <identifier>/req/scope/scope-encoding</identifier></requirement><requirement id="_d814f193-4771-b10f-f3f5-66b0a8961569" model="ogc" type="general"> <identifier>/req/scope/four-layer-enforcement</identifier></requirement><requirement id="_a0f58ddf-c10e-0a96-91ce-b9a8fd9d0473" model="ogc" type="general"> <identifier>/req/scope/scope-in-transparency</identifier></requirement>

</requirement>

<requirement id="_974bdd31-67b4-169a-0bf9-6b0b012ce5b0" anchor="r-scope-1-1" model="ogc">
<title>Scope as multi-dimensional constraint set</title><identifier>/req/scope/scope-structure</identifier><description id="_4551e846-a5bc-cb04-0b4d-38517d1ceb89"><p id="_e20ef415-a9d5-578f-53fc-878e64cf6d9f">The scope of a trust authority shall be expressed as a multi-dimensional constraint set in which each scope dimension constrains one axis of the authorization boundary independently.</p>
</description><component id="_46472619-889f-07bd-b243-cb3f9ca4903d" class="guidance"><p id="_edab8097-82cb-0ecc-5042-91e4ba7b27c9">Scope dimensions include, non-exhaustively, domain, subdomain, class, instance, and identity.</p>

<p id="_04761fc1-696a-3577-933c-46e8fe430a13">Each dimension may carry the wildcard value, a set of values, or a single value.</p>
</component>

</requirement>

<requirement id="_b95019f5-02af-abc8-54ba-0bd75f9184e0" anchor="r-scope-1-2" model="ogc">
<title>Monotonic narrowing invariant</title><identifier>/req/scope/monotonic-narrowing</identifier><description id="_2ed86d93-ff50-2c60-7464-356617c9bfc3"><p id="_2f710688-560a-7504-6a28-db9637663d1b">At every delegation link, the child scope shall be a subset of (or equal to) the parent scope on every scope dimension.</p>
</description><component id="_100ebd2b-0624-aec5-9a37-27acd9a9327e" class="guidance"><p id="_f9fd5256-2b4d-9fff-9fa2-4503efa78557">The narrowing relation is, wildcard encompasses any value; set encompasses subset or single; single encompasses the same single only.</p>
</component>

</requirement>

<requirement id="_4dcca8a2-9faa-8e2d-39e8-cc8cc1ebb3a8" anchor="r-scope-1-3" model="ogc">
<title>Scope widening rejection</title><identifier>/req/scope/widening-rejection</identifier><description id="_75259666-c867-7460-46a5-cfd65ebbd555"><p id="_48520fc5-0657-5590-f756-b2cccc0c2e16">A verifier shall reject any verification path on which scope widening is detected on any scope dimension at any delegation link.</p>
</description><component id="_33bfed0e-be35-a8d3-c92f-3d92d9833034" class="guidance"><p id="_554009ee-74d6-ba8e-fc83-b65e1c6a0db9">Widening constitutes a hard verification failure, not a warning or downgrade.</p>
</component>

</requirement>

<requirement id="_bcfa8e28-d75d-b9bb-16ce-37d176ac4383" anchor="r-scope-1-4" model="ogc">
<title>Scope conditions as executable predicates</title><identifier>/req/scope/scope-conditions</identifier><description id="_4608d6ec-904a-df37-5f03-2260aa6eb318"><p id="_04757b93-0732-7d93-b871-5a0d28598c36">A scope may include scope conditions, which shall be executable predicates evaluated at verification time against the content and context of the trusted artifact.</p>
</description><component id="_bcff2785-74ec-6567-d3c5-b7bd7fc5f3f2" class="guidance"><p id="_2dd97be3-ad8b-3d83-64da-5a32890f8380">An artifact signed by a key whose scope conditions are not met shall fail verification, regardless of cryptographic signature validity.</p>
</component>

</requirement>

<requirement id="_faf37a5f-adcb-747e-cb96-e7d8b19791d7" anchor="r-scope-1-5" model="ogc">
<title>Scope condition determinism</title><identifier>/req/scope/condition-determinism</identifier><description id="_dccb277d-9923-320f-9cb8-285bbf2126ea"><p id="_9f544759-5d4a-50b5-fd18-b63fcd5263f9">The evaluation context for a scope condition shall be fully determined by the artifact and its chain, such that two independent verifiers evaluating the same condition reach the same result.</p>
</description><component id="_71a68560-14b5-5fb9-f458-b31543fff69f" class="guidance"><p id="_a94917ba-4cf2-026a-7e16-dcc9c7801b65">External state references in conditions shall be resolved to deterministic, verifiable inputs (e.g., transparency log entries, timestamp anchors).</p>
</component>

</requirement>

<requirement id="_db48dc63-7f3c-a6fe-2d3c-ca5dac8561be" anchor="r-scope-1-6" model="ogc">
<title>Scope encoding properties</title><identifier>/req/scope/scope-encoding</identifier><description id="_04f6c48d-6d16-52e0-75e1-1bc6359133f6"><p id="_64d2eee9-b4c4-cb13-ec62-7343b9d3303a">The scope encoding shall be machine-checkable, compact, and extensible, carried in a certificate extension identifiable by conforming verifiers.</p>
</description><component id="_3a3c52a7-6bde-00e7-5542-24e98bb040f1" class="guidance"><p id="_40df85e8-809f-e42e-4229-2ad84fb51080">Machine-checkable means the narrowing relation and condition evaluation are verifiable without human interpretation of free text.</p>

<p id="_6527ce5b-7179-8a88-9d09-745467e9d269">Extensible means new dimensions and condition types can be added without breaking verifiers that do not recognize them.</p>
</component>

</requirement>

<requirement id="_d95f0870-3bdf-6f17-105a-802112bf2994" anchor="r-scope-1-7" model="ogc">
<title>Four-layer scope enforcement</title><identifier>/req/scope/four-layer-enforcement</identifier><description id="_d1d104db-8776-dae0-04a6-6929b0fd6c70"><p id="_245e56b7-f3b3-6ae8-f62c-5311bdd0d971">Scope shall be enforced at four layers, in the signed certificate extension, at every chain verification link, in the verification pipeline including condition evaluation, and in the transparency log recording.</p>
</description><component id="_7e404a0f-07ed-cdc4-6d14-f2f68b7d61aa" class="guidance"><p id="_7f133196-dfaa-3d4e-0ca8-fb8535b7d045">This defence-in-depth model ensures that scope violations are caught at multiple independent checkpoints.</p>
</component>

</requirement>

<requirement id="_72a1479c-6c6a-0d36-3bb7-55ae1581f657" anchor="r-scope-1-8" model="ogc">
<title>Scope recorded in transparency log</title><identifier>/req/scope/scope-in-transparency</identifier><description id="_9d9b4151-b2ec-8b35-f8d6-f2a55ca30327"><p id="_560b1881-fe60-1899-db20-9e2c4bb07678">The scope of every delegation certificate and end certificate shall be recorded in a recognized transparency log, enabling third-party audit of scope assignments.</p>
</description><component id="_f2ae1a1b-ff57-d3a9-dab5-b7f07e6651df" class="guidance"><p id="_a68b19e6-97d5-18b2-a2d6-eca91d239802">This enables detection of scope violations by parties other than the verifier.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_906be611-23f5-cf38-d869-75052f037647" anchor="revocation" inline-header="false" obligation="normative">
<title id="_5808afd7-7aa9-f3e7-d93e-b9ce4df6bd11">Revocation and artifact binding</title>
<clause id="_5a6a744f-be6c-fd18-5d0c-0a1d21080cbb" inline-header="false" obligation="normative">
<title id="_5ecf2af2-ed51-64e1-68b1-18421de3dc88">General</title>
<p id="_1954b722-e212-585e-8dbf-7a67727f0d65">PKI provides robust certificate-level revocation through CRLs and OCSP (<eref type="inline" bibitemid="rfc6960" citeas="IETF RFC 6960"/>). In the SIGNATIF framework, revocation additionally propagates to artifacts: revoking a <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> state flags every <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> transitively bound to that state, across all  <concept><refterm>trust dimension</refterm><renderterm>trust dimensions</renderterm><xref target="term-trust-dimension"/></concept> and all <concept><refterm>trust chain</refterm><renderterm>trust chains</renderterm><xref target="term-trust-chain"/></concept>.</p>

<p id="_44c00e7b-99ab-3ff7-642e-e84d5c86f62b">This clause specifies the certificate revocation list (CRL) profile, the hash-binding model that links artifacts to authority states, the propagation algorithm, and the query interface for discovering bound artifacts.</p>
</clause>

<clause id="_c65afcfb-3be7-11bb-37ca-09ca80f917c0" anchor="revocation-crl" inline-header="false" obligation="normative">
<title id="_c45c1e4c-4090-0282-cf58-04276ec1dc48">Certificate revocation list</title>
<p id="_f5efe01f-193c-e012-b7a5-6882bf21c55a">A certificate revocation list (CRL) is a signed, time-stamped list of revoked <concept><refterm>end certificate</refterm><renderterm>end certificates</renderterm><xref target="term-end-certificate"/></concept> and <concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authority</renderterm><xref target="term-delegated-trust-authority"/></concept> credentials. A CRL shall:</p>

<ul id="_81de5b39-d887-52ab-e5f4-25c970e74898"><li><p id="_723b65de-dce5-098c-8578-dacee73d0165">identify the issuing <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> whose revoked credentials it lists;</p>
</li>
<li><p id="_78998fc4-3957-b36a-fd49-594712d31fec">carry each revoked credential’s fingerprint, the revocation time, and the revocation reason;</p>
</li>
<li><p id="_dc36a603-b41d-d3f9-fd1e-aa3ff72740b9">carry a validity period during which it is authoritative — after expiry, verifiers shall fetch a current CRL or apply a grace period policy (see  <xref target="revocation-offline"/>);</p>
</li>
<li><p id="_1815a12a-155d-36f9-5747-f546be80977c">be itself recorded in a <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept> to enable audit of revocation decisions.</p>
</li>
</ul>

<p id="_191c5a61-c4cc-5ba0-1c53-bcd38e7abc89">The specific CRL format is a deployment decision.<note id="_75966bca-07b6-b75e-e1e7-865c22147a76"><p id="_5fc18ce2-71d8-c8a5-aa92-b5bf18c06901">X.509 CRLs as profiled in <eref type="inline" bibitemid="rfc5280" citeas="IETF RFC 5280"/> are an example of a recognized CRL format.</p>
</note></p>


</clause>

<clause id="_2eb89fff-5cf1-06af-4000-6988122897d9" anchor="revocation-hash-binding" inline-header="false" obligation="normative">
<title id="_2917d441-f8d6-c643-204c-0c08c73a1684">Hash-binding to authority states</title>
<p id="_40864c7d-c948-0514-5ce5-ad17c6f8110e">A <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> carries a cryptographic hash-binding to the authority states under which it was produced. These states include:</p>

<ul id="_8ff42fc7-7878-8efe-cd5a-67900b16cb7d"><li><p id="_9e65c2d6-25a9-e4ac-af77-832d7b071894">the certification state of the issuing device (if applicable);</p>
</li>
<li><p id="_cbe4dccf-eef0-b56d-6e00-9b97b7b81b6d">the evaluative state of the testing or inspection authority;</p>
</li>
<li><p id="_14ba080f-979e-820d-2d2f-577ebbbfe2e2">the compliance state of the regulatory framework;</p>
</li>
<li><p id="_1e881c26-79dc-9d9c-a4b4-928316e042a2">any other state whose validity is a precondition for the artifact’s trustworthiness.</p>
</li>
</ul>

<p id="_4308273a-a8a8-c0a3-fa93-a83c52548e12">The hash-binding is a digest of the relevant state, embedded in the artifact or referenced via the transparency log. The binding is signed as part of the <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept>.</p>
</clause>

<clause id="_5f183bf4-9438-93c9-e253-7ac90669b411" anchor="revocation-propagation" inline-header="false" obligation="normative">
<title id="_9649a754-f6ee-4a1f-a53f-a8d1dd1922fa">Propagation algorithm</title>
<p id="_82861b4b-a709-20e9-5031-6297285a92a0">When an authority state is revoked, the propagation algorithm shall flag every artifact transitively bound to that state. The propagation query is performed by the  <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept> operator (or a <concept><refterm>mirror</refterm><renderterm>mirror</renderterm><xref target="term-mirror"/></concept>) to discover the set of affected artifacts; an offline verifier checks individual artifact bindings against cached revocation data.</p>

<ol id="_59fa6e82-a038-e41f-dec9-b6fbd4c11eba"><li><p id="_501340ec-1f38-d242-9b15-121eada401b3">Identify the revoked state by its hash or identifier.</p>
</li>
<li><p id="_520e80ee-ed04-9cbe-0f69-8da733d40f69">Query the set of artifacts whose hash-binding includes the revoked state. This query uses the transparency log index.</p>
</li>
<li><p id="_6ea903d3-aa62-e84e-c8bf-4007919411dc">Mark each affected artifact as bound to a revoked state. Marking does not delete or alter the artifact; it flags its revocation status.</p>
</li>
<li><p id="_0c216077-008e-5a36-d199-eb319071aa8e">Propagate through <concept><refterm>co-signature</refterm><renderterm>co-signatures</renderterm><xref target="term-co-signature"/></concept>: if a co-signature on an artifact originates from a revoked authority, the artifact is flagged.</p>
</li>
</ol>

<p id="_affcadf4-7be1-376e-d363-9937da73c861">An artifact flagged as bound to a revoked state shall receive the scheme’s rejected classification label, regardless of other dimensional coverage.</p>
</clause>

<clause id="_d3281822-ae98-d380-3c1b-679e086228c3" anchor="revocation-condition-withdrawal" inline-header="false" obligation="normative">
<title id="_c2c084b3-7925-f1bb-d4db-734a8664c4b3">Scope condition withdrawal</title>
<p id="_1155ab13-803c-f30d-4b9f-4a2824f5be73">A <concept><refterm>authorization scope condition</refterm><renderterm>scope condition</renderterm><xref target="term-authorization-scope-condition"/></concept> may reference an external state (e.g., a calibration certificate, a compliance status, an accreditation). When that external state is revoked, all artifacts whose scope conditions depend on it shall be flagged.</p>

<p id="_f5800325-d991-086f-7ae1-136e8ad1e30d">The withdrawal propagation algorithm:</p>

<ol id="_76de1846-55ac-6b63-7adf-75110602aa81" type="arabic"><li><p id="_67d6d844-8e22-dca9-89d2-e48fa6f13bd6">Identify the revoked external state by its hash or identifier.</p>
</li>
<li><p id="_5b54657a-5df1-8af3-2938-c6254c364014">Query the set of artifacts whose <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> includes a condition referencing the revoked state. This query uses the scope encoding in the artifact’s chain certificates and the transparency log index.</p>
</li>
<li><p id="_490d24f4-e028-9d65-aaeb-a5b3a94311bc">For each affected artifact, re-evaluate the scope conditions. If a condition now evaluates to false, the artifact is flagged with a <tt>scope_condition_failed</tt> failure reason (see <xref target="verification-results"/>).</p>
</li>
<li><p id="_8b86edba-11f0-d525-60d6-1668f1eddc63">An artifact flagged through condition withdrawal shall receive the scheme’s rejected classification label, consistent with the scope condition hard check in the verification pipeline (see  <xref target="verification"/>).</p>
</li>
<note id="_0f92fafe-17d5-3155-c68c-0512740228ab"><p id="_267e919b-2c89-e114-1ac5-1bf3670460ea">Scope condition withdrawal is a form of <concept><refterm>trust repudiation</refterm><renderterm>trust repudiation</renderterm><xref target="term-trust-repudiation"/></concept>: trust granted under a condition that is later invalidated is formally withdrawn. This completes the trust lifecycle — conditions are not permanent assumptions but live predicates that can fail retroactively.</p>
</note></ol>


</clause>

<clause id="_e1fc9d67-eb79-1da7-b875-aff60a9c27a6" anchor="revocation-flag-semantics" inline-header="false" obligation="normative">
<title id="_50916ffb-d5e1-1a57-90eb-956727d51de5">Flag semantics</title>
<p id="_77d52267-2a74-5adf-5c57-e77d622b739b">Revocation propagation uses flag semantics, not deletion:</p>

<ul id="_92514364-7689-d5b1-23d0-967ea66401f1"><li><p id="_90962b2c-61d9-bb18-e1cb-a5b83372971d">The artifact is marked as bound to a revoked state, not removed.</p>
</li>
<li><p id="_dfe34008-531b-9669-e565-46e94c032fd9">The marking is queryable: a verifier can determine whether an artifact is affected by querying the revocation status of its bound states.</p>
</li>
<li><p id="_b7845e43-df4c-b0c7-ad18-0dc4e0f7a6d1">The marking is reversible if the revocation is itself revoked (e.g., a false positive is corrected).</p>
</li>
</ul>

<p id="_62b1a281-e79d-94d4-0cdc-8f541fb006ee">This approach preserves the audit trail while preventing acceptance of artifacts whose trust foundation has been revoked.</p>
</clause>

<clause id="_72ace942-b3c5-78ed-1319-b79c61648d88" anchor="revocation-query" inline-header="false" obligation="normative">
<title id="_b5630f3e-0baf-9c6a-0917-a3c85a889294">Query interface</title>
<p id="_f8cbaf6b-bd41-10eb-7dc6-8cad85fe8727">A verifier shall be able to query the revocation status of an artifact through the following interface:</p>

<ul id="_2009e2fc-df95-9dc3-b09f-757d117bd5b3"><li><p id="_8d2f22e9-383e-52ba-bf37-5091e40d2ed7">Given an artifact, return its bound authority states and their revocation status.</p>
</li>
<li><p id="_09da510c-bd7d-2d5c-5ac4-ed5b5367afd1">Given a revoked state, return the set of artifacts transitively bound to it.</p>
</li>
</ul>

<p id="_e7e96d1f-1116-b25c-3c51-3e1f8569b2f9">The query interface shall be usable offline against cached CRLs and transparency log indices.</p>
</clause>

<clause id="_a0d30ee1-4937-9421-b661-625ae77c4bc6" anchor="revocation-offline" inline-header="false" obligation="normative">
<title id="_e82113f7-da03-5dd8-e548-3666c4b28320">Offline verification and grace period</title>
<p id="_00cdc63c-4da0-95a9-3757-6b2f13267316">For offline verification, a verifier shall apply a CRL grace period policy:</p>

<ul id="_c835f1cc-ac87-19ed-746f-9ebe12fa4848"><li><p id="_4fca0fcb-5d43-a094-4dcb-d4ca205d5de4">If the verifier holds a CRL within its validity period, revocation status is determined from the CRL directly.</p>
</li>
<li><p id="_58793faa-a503-d6ce-04ac-636c1e05ce6c">If the verifier’s CRL is expired but within a configurable grace period, the verifier may accept the stale CRL with a classification downgrade.</p>
</li>
<li><p id="_2b2281d0-8892-49ae-e46f-e5a79f9c309a">If the CRL is expired beyond the grace period, the verifier shall reject artifacts whose chain includes authorities subject to that CRL.</p>
</li>
</ul>
</clause>

<clause id="_4e0cd2e0-75d3-c090-375a-b6ba0a749716" anchor="req-revocation" inline-header="false" obligation="normative">
<title id="_7d334858-8a14-5a78-c5c2-7f3422f52dd1">Requirements</title>
<p id="_0d9b15bf-fed5-247d-ddbe-36785921e2f2">Revocation and artifact binding has its formalized requirements class described in <xref target="rc-revocation-1"/>, with its requirements listed from <xref target="r-revocation-1-1"/> to <xref target="r-revocation-1-7"/>.</p>

<requirement id="_56a88532-3b00-a8c5-d2f5-2e4154edc3a7" anchor="rc-revocation-1" model="ogc" type="class">
<title>Revocation and artifact binding</title><identifier>/req/revocation</identifier><subject>revocation</subject><inherit>/req/architecture</inherit><inherit>/req/artifact-format</inherit><description id="_a53d414c-2e1e-cb63-f836-79d8ac71128a"><p id="_80085b99-ef65-4ae8-2455-dae69c07c5ce">Requirements on certificate revocation lists, hash-binding to authority states, propagation to bound artifacts, and offline revocation checking.</p>
</description><requirement id="_41cb0fc2-f00d-d347-311a-a1d71bb6113f" model="ogc" type="general"> <identifier>/req/revocation/crl-profile</identifier></requirement><requirement id="_7e6e248c-45c3-96d9-f56c-80b9466f252e" model="ogc" type="general"> <identifier>/req/revocation/hash-binding</identifier></requirement><requirement id="_b55196ee-2c4a-371a-a705-26c16e61b238" model="ogc" type="general"> <identifier>/req/revocation/propagation</identifier></requirement><requirement id="_29b356f2-1c0e-b15c-cdd4-b3320488e66d" model="ogc" type="general"> <identifier>/req/revocation/flag-semantics</identifier></requirement><requirement id="_1aaf53b9-1666-f4f1-e02c-39f68f026456" model="ogc" type="general"> <identifier>/req/revocation/query-interface</identifier></requirement><requirement id="_2f25ea4d-d3e6-159f-92e7-c9edfb592687" model="ogc" type="general"> <identifier>/req/revocation/offline-grace-period</identifier></requirement><requirement id="_00bb3b9f-7b9f-d92e-4717-a2af98ece5a4" model="ogc" type="general"> <identifier>/req/revocation/scope-condition-withdrawal</identifier></requirement>

</requirement>

<requirement id="_5eda4501-2e37-9244-b3d4-1a388bd41d4b" anchor="r-revocation-1-1" model="ogc">
<title>CRL profile</title><identifier>/req/revocation/crl-profile</identifier><description id="_0aadfaf8-05dc-978f-8392-0dcf11a0d8ec"><p id="_f6cda714-e95b-0096-a525-43fef11b057a">A certificate revocation list shall be a signed, time-stamped list of revoked credentials that identifies the issuing trust authority, carries revoked credential fingerprints with revocation time and reason, carries a validity period, and is recorded in a transparency log.</p>
</description><component id="_8602ecab-5645-be89-8914-1fad1d15ec37" class="guidance"><p id="_f8c5bc9b-346b-02a7-42cf-f808b9cabea1">The CRL is authoritative only within its validity period.</p>

<p id="_d1f6b92a-0a5a-577a-4e95-f78825647201">Alternative revocation list formats may be registered for non-X.509 certificate profiles.</p>

<example id="_f03ed41b-2717-248e-ea83-14cafc94b216"><p id="_0304a044-f93b-795a-e82b-4be9af55002b">When X.509 certificates are used, the CRL profile follows RFC 5280.</p>
</example>
</component>

</requirement>

<requirement id="_800bcd74-b469-80f1-3002-9024ec3d4f7b" anchor="r-revocation-1-2" model="ogc">
<title>Hash-binding to authority states</title><identifier>/req/revocation/hash-binding</identifier><description id="_add61085-64a3-305f-91be-2075c8c59b22"><p id="_def13c5f-975a-b709-cb30-b09d12332dee">A trusted artifact shall carry a cryptographic hash-binding to the authority states under which it was produced, embedded in the canonical payload or referenced via the transparency log.</p>
</description><component id="_32c01624-ab8e-7433-a47b-d98acca7cadd" class="guidance"><p id="_a6182266-9382-d9b2-6555-472d7ce12978">Authority states include calibration, evaluation, compliance, and other states whose validity is a precondition for the artifact’s trustworthiness.</p>
</component>

</requirement>

<requirement id="_3295dfe7-950b-7d29-e4a2-2aa8f2299cce" anchor="r-revocation-1-3" model="ogc">
<title>Propagation to bound artifacts</title><identifier>/req/revocation/propagation</identifier><description id="_408ade87-3f90-9c68-bb11-25a6251dbb98"><p id="_cec339ec-9fc5-5536-e00b-8c521e783631">When an authority state is revoked, the revocation shall propagate to every artifact transitively bound to that state across all trust dimensions and trust chains, marking each affected artifact.</p>
</description><component id="_220c918f-b3ee-a66b-4458-ee4bd3449490" class="guidance"><p id="_3ba007c0-fd54-4c00-be3d-9fdfc1e0cc4b">Propagation uses the transparency log index to discover bound artifacts.</p>

<p id="_53a4fe7b-78f2-a958-2676-9b5117ad8fb1">An artifact flagged as bound to a revoked state shall receive the scheme’s rejected classification label.</p>
</component>

</requirement>

<requirement id="_c99ffaa7-dd7a-d676-da57-d328c55d7a2b" anchor="r-revocation-1-4" model="ogc">
<title>Flag semantics (marked not deleted)</title><identifier>/req/revocation/flag-semantics</identifier><description id="_7830d9b4-ddfb-7b27-78b4-f8d8a48979ba"><p id="_19ec5ada-e1e2-95f1-9db8-b60dfc412f19">Revocation propagation shall mark affected artifacts as bound to a revoked state without deleting or altering them, and the marking shall be queryable and reversible if the revocation is corrected.</p>
</description><component id="_66a4ef65-c7a0-0ad9-2899-a335c62511d8" class="guidance"><p id="_9bc5a681-ba66-bd3a-76f3-ba6ef83a1959">This preserves the audit trail while preventing acceptance of affected artifacts.</p>
</component>

</requirement>

<requirement id="_cf66307c-992c-80c7-df12-2b6e6ea819f8" anchor="r-revocation-1-5" model="ogc">
<title>Query interface</title><identifier>/req/revocation/query-interface</identifier><description id="_efbd8c5a-94f6-f9b4-f2a3-72cf6365ddb5"><p id="_c778034b-4276-a08c-861a-d39430a06476">A verifier shall be able to query the revocation status of an artifact by returning its bound authority states and their revocation status, and to query the set of artifacts bound to a given revoked state.</p>
</description><component id="_60d901f0-5ed3-f09b-a72e-ea538f54fd60" class="guidance"><p id="_ecd4039f-dfaa-fe10-c978-052c1a0500bc">The query interface shall be usable offline against cached CRLs and transparency log indices.</p>
</component>

</requirement>

<requirement id="_703813e9-71c5-2438-cbc4-3af1bac2b18c" anchor="r-revocation-1-6" model="ogc">
<title>Offline grace period policy</title><identifier>/req/revocation/offline-grace-period</identifier><description id="_53ccfc94-0183-9e11-fa79-eb21c0e384b2"><p id="_93c86ef4-60a2-04ea-2d0f-98ac5dbe98c3">A verifier shall apply a CRL grace period policy for offline verification, accepting a stale CRL within a configurable grace period with a classification downgrade, and rejecting artifacts whose CRL is expired beyond the grace period.</p>
</description>

</requirement>

<requirement id="_cb0850f0-34fb-ce10-5ee1-b62e8fb5b4a6" anchor="r-revocation-1-7" model="ogc">
<title>Scope condition withdrawal propagation</title><identifier>/req/revocation/scope-condition-withdrawal</identifier><description id="_0f8529b5-cc9a-65b7-45fd-a4a3684c33c8"><p id="_fe56975e-5d80-75d0-44fe-adaa3fd9a116">When an external state referenced by a scope condition is revoked, the revocation shall propagate to every artifact whose scope includes a condition referencing that state, re-evaluating the condition and flagging affected artifacts.</p>
</description><component id="_9f1f782c-f373-f1ee-3cda-8f47075a5b80" class="guidance"><p id="_17a2ff79-a4fc-bd9a-7593-31cfc52f299d">Artifacts flagged through condition withdrawal shall receive the scheme’s rejected classification label.</p>

<p id="_bd587759-4447-ae16-221b-2485eaa11950">This is a form of trust repudiation — trust granted under an invalidated condition is formally withdrawn.</p>

<p id="_b7233889-1787-6148-de35-dca54a5e4f64">If the CRL is within its validity period, revocation status is determined directly.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_3c9766eb-c3e6-51ab-1c30-c6a3329af1ae" anchor="transparency" inline-header="false" obligation="normative">
<title id="_307e1380-c9ed-c2fb-38a7-58fcc5b8de9d">Transparency and multi-log attestation</title>
<clause id="_b2a25c38-dc57-77c6-ec02-5f62ed91d63d" inline-header="false" obligation="normative">
<title id="_510dfe68-ccc0-083d-47f6-bcc43b374f03">General</title>
<p id="_06c42ada-5a24-bc43-bdb0-dab0a91bc06c">Every <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> and every <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> shall be recorded in a recognized  <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept> by the issuing authority. This is a normative requirement on issuance, not on verification.</p>

<p id="_8ce1b8e9-f3b0-77d3-c75c-a76d1980f5cd">At verification time, transparency log inclusion is a soft check: artifacts not provably included in a recognized log are downgraded (see <xref target="verification"/>). A verifier whose policy sets <tt>requires_transparency</tt> to true (the default) rejects artifacts without inclusion proofs; a verifier whose policy sets it to false accepts them at a downgraded classification label.</p>

<p id="_41cedd13-9c68-57c1-30ec-6129b24612a9">This clause specifies the transparency log structure, inclusion proofs, external time anchoring,  <concept><refterm>gossip</refterm><renderterm>gossip</renderterm><xref target="term-gossip"/></concept> between <concept><refterm>mirror</refterm><renderterm>mirrors</renderterm><xref target="term-mirror"/></concept>, and the multi-log attestation model.</p>
</clause>

<clause id="_79bd49ff-a51b-afe2-0dab-dd3d18c85825" anchor="transparency-log-structure" inline-header="false" obligation="normative">
<title id="_efe6c2a0-7ec4-0889-2759-7627d0efa7d5">Transparency log structure</title>
<p id="_18922798-4151-3dcc-79c5-81092cfc486b">A <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept> shall be implemented as an append-only data structure with the following properties:</p>

<ul id="_3c30b3b2-4d44-a5e1-e52b-6e3c50281b88"><li><p id="_9bed2d50-93a5-94d2-77e0-86db5ad93616">Inclusion proofs. The log shall support cryptographic proofs that a specific entry is included at a specific log state, without requiring the verifier to download the entire log.</p>
</li>
<li><p id="_f6093e62-3030-0536-3ce3-3cfcf783f849">Append-only. Entries may be added but never modified or removed. The log head (a cryptographic commitment to the entire log contents) shall be published at each update.</p>
</li>
<li><p id="_bdd87814-1fba-1ec5-dde5-9d9c75905c4a">Log head signatures. Each log head shall be signed by the log operator, enabling verifiers to confirm they are viewing an authentic log state.</p>
</li>
<li><p id="_b4b8a7ae-3fd5-96c3-6b59-2da5340d0f49">Domain separation. The log shall prevent second-preimage attacks through domain separation between leaf and internal node data.</p>
</li>
<li><p id="_fa8a5e1f-7cc6-9a94-21da-65fc1346c36d">Consistency proofs. The log shall support cryptographic proofs that a new tree head extends a previously published tree head — i.e., the log is append-only between any two published states. A consistency proof enables a verifier to confirm that no entries were removed or modified between two log states.</p>
</li>
<note id="_b02fb30d-6d90-9b53-3e52-280448167aa8"><p id="_66d45344-0a6e-74c7-49ff-5d067ff9b645">Merkle trees as specified in <eref type="inline" bibitemid="rfc6962" citeas="IETF RFC 6962"/>, continued by the version 2 design (<eref type="inline" bibitemid="rfc9162" citeas="IETF RFC 9162"/>), are an example of a log structure satisfying these properties. Other append-only log constructions with equivalent inclusion proof and consistency proof guarantees may be used.</p>
</note></ul>


</clause>

<clause id="_e744c3be-93db-d3cf-8b6d-028809b7d0ef" anchor="transparency-consistency-proof" inline-header="false" obligation="normative">
<title id="_80e00a62-5034-5dd8-6d89-5ec64054829d">Consistency proof</title>
<p id="_8b789ba5-5b01-7716-4f9e-4b0550771f94">A consistency proof demonstrates that a new tree head is a valid extension of a previously known tree head — that no entries were removed or modified between the two states.</p>

<p id="_4debdf69-ac9c-bf91-1397-eb8a27a32a8a">A consistency proof shall consist of:</p>

<ul id="_b9989a2a-0103-8f03-1947-7beebb959658"><li><p id="_4cb2f5e3-161b-3774-e6ae-88ab6855a294">the old tree head (root hash and tree size);</p>
</li>
<li><p id="_7c182df0-3b0e-90cc-8093-d160c4e01d76">the new tree head (root hash, tree size, and timestamp);</p>
</li>
<li><p id="_1b974543-6c1e-6a2b-c8f5-18a57c216327">the audit path of intermediate hashes connecting the two states.</p>
</li>
</ul>

<p id="_d86640c5-3042-c390-a93e-914cc32685e8">The verifier shall validate the consistency proof by recomputing the root hashes from the audit path and confirming that the new tree head contains all entries of the old tree head as a prefix.</p>

<p id="_6b5bae6c-93a8-9cfe-f55e-2341248d9bef">Mirrors and verifiers shall use consistency proofs to verify the append-only property of the log over time (see  <xref target="transparency-mirrors"/>). A log that cannot produce a consistency proof between two claimed sequential tree heads is evidence of misbehaviour.</p>
</clause>

<clause id="_e35f208d-7d65-e966-cd14-7e76a8e38bad" anchor="transparency-inclusion-proof" inline-header="false" obligation="normative">
<title id="_183240e6-4e4c-e928-03e9-9bb655798705">Inclusion proof</title>
<p id="_5070a48f-e5d7-2394-efde-e79086f8bea2">An <concept><refterm>inclusion proof</refterm><renderterm>inclusion proof</renderterm><xref target="term-inclusion-proof"/></concept> demonstrates that a specific entry (an end certificate or a trusted artifact) is included in a transparency log at a specific tree head.</p>

<p id="_a5b5ae0e-9cf8-66e5-1f4a-881267323ae9">An inclusion proof shall consist of:</p>

<ul id="_146c4847-87ca-974d-3d8b-393c096ceef1"><li><p id="_98010eef-4061-16c3-88cb-d76cb11ca2fe">the leaf hash of the entry;</p>
</li>
<li><p id="_0fd18254-a2de-1d83-a503-c5c0ecf20578">the audit path (the set of sibling hashes from the leaf to the root);</p>
</li>
<li><p id="_cdfa4775-27cc-2442-b632-039e62800d9b">the tree head (root hash, tree size, and timestamp) against which the proof is validated;</p>
</li>
<li><p id="_13fa0c67-114c-0ce4-fd3f-22acc459d65a">the log operator’s signature over the tree head.</p>
</li>
</ul>

<p id="_f3d9ece6-4d6d-5b7d-9294-f95113dd8675">The verifier shall validate the inclusion proof by recomputing the root hash from the leaf and audit path, comparing it to the tree head, and validating the tree head signature.</p>
</clause>

<clause id="_da548bec-e00f-9ea1-6c09-242afe50c647" anchor="transparency-anchoring" inline-header="false" obligation="normative">
<title id="_1ae98d4c-6029-c93a-d829-8579182bce7b">External time anchoring</title>
<p id="_864519bd-a94a-df33-7570-0fcde57419c5">Each tree head shall be anchored to an external, irrefutable time source to prove that the log state existed at a specific time. The anchoring shall produce a verifiable proof that the tree head hash was committed to the external source within the tree head’s timestamp window. Decentralized anchoring infrastructures such as  <eref type="inline" bibitemid="opentimestamps" citeas="OpenTimestamps"/> satisfy this requirement.</p>
</clause>

<clause id="_a88ac056-1b29-0230-f039-0e01dfa28aef" anchor="transparency-mirrors" inline-header="false" obligation="normative">
<title id="_898be29e-4d00-16f6-b2d9-eabab00585aa">Mirrors and gossip</title>
<clause id="_bb79011f-852f-7161-79cd-7cbfcf3ef396" inline-header="false" obligation="normative">
<title id="_b160ac8f-9ac5-72b9-e648-0b0116da1c65">Mirrors</title>
<p id="_c513a9f6-921f-4503-d8fd-ffb2e6fe07f9">A <concept><refterm>mirror</refterm><renderterm>mirror</renderterm><xref target="term-mirror"/></concept> is an independent operator that replicates a <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept> and serves inclusion proofs and log entries to verifiers. Mirrors provide:</p>

<ul id="_6fa95712-cf15-7646-3093-0a3a8a76c6cf"><li><p id="_3c480fe6-b1a9-9371-3df5-35c579dc4814">Availability. If the primary log operator is unavailable, mirrors continue to serve the log.</p>
</li>
<li><p id="_3dbd98ee-65b7-0574-00f8-867a522e779d">Integrity. Mirrors independently verify the log’s append-only property by checking that each new tree head extends the previous one.</p>
</li>
<li><p id="_2add299d-a8ff-7819-6d1c-ba6cec9f61fd">Detection. Mirrors detect log misbehaviour (e.g., a split view where the log operator presents different tree heads to different verifiers).</p>
</li>
</ul>
</clause>

<clause id="_f0211f1e-5059-279e-f7c6-4fd22a863311" inline-header="false" obligation="normative">
<title id="_a1132cd4-b073-936c-3a52-3ec3c371fa64">Gossip</title>
<p id="_2468d67f-b74f-f8d0-a7ef-1070c7849727"><concept><refterm>gossip</refterm><renderterm>gossip</renderterm><xref target="term-gossip"/></concept> is the protocol by which mirrors and verifiers cross-check their views of a transparency log by comparing tree head fingerprints. A gossip quorum of at least 2-of-3 independent sources agreeing on a tree head provides corroboration that the log state is consistent.</p>

<p id="_9f69110c-b0d7-a1e2-f7f8-7ee065a0e9a0">A verifier shall confirm that the tree head it relies on is observed by at least the gossip quorum before accepting inclusion proofs against that tree head.</p>
</clause>
</clause>

<clause id="_8826ad45-4dbd-e9ed-3a91-2561d4a1c2d9" anchor="transparency-multi-log" inline-header="false" obligation="normative">
<title id="_032d45b0-ba57-ec36-b2dd-7f68cccf85a6">Multi-log attestation</title>
<p id="_488558c9-83bf-5aba-6397-782f32d94a90">For artifacts issued by a <concept><refterm>federated trust authority</refterm><renderterm>federated trust authority</renderterm><xref target="term-federated-trust-authority"/></concept>, the issuing authority may require inclusion in at least M of K independent transparency logs, where M and K are specified by the authority’s policy.</p>

<p id="_0b23a42d-47b8-cdeb-c8a1-ffbefd75eaf1">Multi-log attestation ensures that no single log operator controls the record. An artifact meeting a multi-log quorum requirement shall carry inclusion proofs from at least M independent logs.</p>

<p id="_eeffbc8c-ec82-0496-a562-b078ba39ffe8">The verifier shall validate each inclusion proof independently and confirm that at least M of the K recognized logs include the artifact.</p>
</clause>

<clause id="_d1c7119d-17b5-bd9b-da73-c53a08ba0323" anchor="req-transparency" inline-header="false" obligation="normative">
<title id="_3936962a-5ec7-fd6f-8e87-549d35ff0acc">Requirements</title>
<p id="_8674e83d-299d-384c-f890-5ce5c2a407e3">Transparency and multi-log attestation has its formalized requirements class described in <xref target="rc-transparency-1"/>, with its requirements listed from <xref target="r-transparency-1-1"/> to <xref target="r-transparency-1-8"/>.</p>

<requirement id="_ac4a0873-834e-11c6-c660-33ca99c079e9" anchor="rc-transparency-1" model="ogc" type="class">
<title>Transparency and multi-log attestation</title><identifier>/req/transparency</identifier><subject>transparency</subject><inherit>/req/architecture</inherit><description id="_e080eaef-d9e9-bfe4-4948-62f3ceb542b9"><p id="_09f83703-e90d-c14f-dec4-0450c871f13d">Requirements on Merkle transparency logs, inclusion proofs, external time anchoring, mirrors, gossip, and multi-log attestation.</p>
</description><requirement id="_f89a97ea-511b-d007-9c1a-73fffdbd3413" model="ogc" type="general"> <identifier>/req/transparency/merkle-append-only</identifier></requirement><requirement id="_9a862661-c09c-15df-a153-b098a8d9a785" model="ogc" type="general"> <identifier>/req/transparency/inclusion-proof</identifier></requirement><requirement id="_e3f43ded-6a1d-d302-f44d-360cd01b1a64" model="ogc" type="general"> <identifier>/req/transparency/tree-head-anchoring</identifier></requirement><requirement id="_fcd1fb79-97a6-ed55-a6f5-0047fdcf1364" model="ogc" type="general"> <identifier>/req/transparency/mirror-integrity</identifier></requirement><requirement id="_b6849626-7a41-bd1e-ba89-b173c67afbf0" model="ogc" type="general"> <identifier>/req/transparency/gossip-quorum</identifier></requirement><requirement id="_af99475f-3340-3be8-e99b-be805fb67499" model="ogc" type="general"> <identifier>/req/transparency/mandatory-inclusion</identifier></requirement><requirement id="_f5e73ccc-7ceb-f6ea-c05e-f584666d79f8" model="ogc" type="general"> <identifier>/req/transparency/multi-log-quorum</identifier></requirement><requirement id="_e61b8f26-1d0d-38e4-9ece-ba34c46d175b" model="ogc" type="general"> <identifier>/req/transparency/consistency-proofs</identifier></requirement>

</requirement>

<requirement id="_e625e875-be82-dd47-f2a0-6653371f8cca" anchor="r-transparency-1-1" model="ogc">
<title>Merkle tree append-only structure</title><identifier>/req/transparency/merkle-append-only</identifier><description id="_e44ff2d9-fc2b-6066-863f-1a0e14e7ffc0"><p id="_2d62d581-33ba-d3b3-7910-a8838daf2391">A transparency log shall be implemented as an append-only log with inclusion proofs, with domain-separated hashing for leaf and internal nodes, and each tree head shall be signed by the log operator.</p>
</description><component id="_57863a35-04eb-559b-960d-27671d14c0ce" class="guidance"><p id="_cf1e5c6b-d7bf-b348-0fb1-25f4c8194d8d">Domain separation prevents second-preimage attacks. RFC 6962 uses 0x00 prefix for leaves and 0x01 prefix for internal nodes.</p>

<p id="_270bc8f7-1ca6-97b3-3b87-1321f90cbb8c">The Merkle tree semantics follow RFC 6962.</p>
</component>

</requirement>

<requirement id="_bde5b2ab-e82c-70f1-b870-baf8dba8f1b0" anchor="r-transparency-1-2" model="ogc">
<title>Inclusion proof format</title><identifier>/req/transparency/inclusion-proof</identifier><description id="_208e5eef-1448-854d-b994-fe78c85675e9"><p id="_e4ce7069-efc0-0549-acf4-20bb1df98922">An inclusion proof shall consist of the leaf hash, the audit path, the tree head (root hash, tree size, timestamp), and the log operator signature over the tree head.</p>
</description><component id="_2cdf78ce-5df4-aff9-3dd8-1c79a18316ed" class="guidance"><p id="_9fc0916d-cf72-a583-2773-4c2b8f6d312d">The verifier validates the proof by recomputing the root from the leaf and audit path.</p>
</component>

</requirement>

<requirement id="_096ffe65-6fc0-c297-3f2c-258dedaec0c4" anchor="r-transparency-1-3" model="ogc">
<title>External time anchoring of tree heads</title><identifier>/req/transparency/tree-head-anchoring</identifier><description id="_60e2ee5b-47a2-6ca2-53ec-710c36d84341"><p id="_228bca25-b2da-9caa-839b-04df691f0610">Each tree head shall be anchored to an external irrefutable time source, producing a verifiable proof that the tree head hash was committed to the external source at or near the tree head timestamp.</p>
</description><component id="_46673cd3-5b51-67c4-10c9-849656e785b9" class="guidance"><p id="_49a6db92-b960-79de-cb13-8114d1faac5b">The anchoring proves that the log state existed at a specific time, independently of the log operator’s own assertion.</p>
</component>

</requirement>

<requirement id="_25a94b6a-11a5-25f8-f94c-05619eeeed95" anchor="r-transparency-1-4" model="ogc">
<title>Mirror replication and integrity</title><identifier>/req/transparency/mirror-integrity</identifier><description id="_0e0cd5e9-ad07-690f-c063-c000a3a3b5aa"><p id="_2125eb96-b5d4-d490-8757-d7ffb8f531b8">A mirror shall independently verify the log’s append-only property by checking that each new tree head extends the previous one, and shall serve inclusion proofs and log entries to verifiers.</p>
</description><component id="_9325a418-4f62-52e1-7254-9aaaa9adb345" class="guidance"><p id="_71e43e0d-e202-a2af-1af6-eedf197dd5d8">Mirrors detect log misbehaviour including split views.</p>
</component>

</requirement>

<requirement id="_404a85a5-050e-fa9e-1c12-92cc1083568e" anchor="r-transparency-1-5" model="ogc">
<title>Gossip quorum for tree head consistency</title><identifier>/req/transparency/gossip-quorum</identifier><description id="_ccaf8488-62d7-ae08-63a1-aee457cf0c2e"><p id="_97233910-ec9a-adfd-ce57-16bb9fdef0cc">A verifier shall confirm that the tree head it relies on is observed by at least a gossip quorum of independent sources before accepting inclusion proofs against that tree head.</p>
</description><component id="_a509dbf0-ce3a-0e12-0690-2fdd0d25aa02" class="guidance"><p id="_212c1b5d-c58c-9d8a-fd1f-fc1d55d212fb">A gossip quorum of at least 2-of-3 independent sources provides strong assurance.</p>
</component>

</requirement>

<requirement id="_029a721f-cbe5-c38e-1458-5582f6dc54aa" anchor="r-transparency-1-6" model="ogc">
<title>Mandatory transparency inclusion</title><identifier>/req/transparency/mandatory-inclusion</identifier><description id="_d2a552e1-25e7-cfcb-f931-c29949059257"><p id="_05f42aa4-42c7-78c1-f180-90cde0d380a6">Every end certificate and trusted artifact shall be included in a recognized transparency log, and artifacts not provably included shall be downgraded or rejected.</p>
</description><component id="_e0751f2b-18e6-53a8-aaa0-8511e6ad62fb" class="guidance"><p id="_2a5c543c-fe3f-e6c5-da62-dec84c989953">Transparency is a verification requirement, not an optional overlay.</p>
</component>

</requirement>

<requirement id="_fa558d4a-0705-00d4-9fee-739c4663a193" anchor="r-transparency-1-7" model="ogc">
<title>Multi-log attestation quorum</title><identifier>/req/transparency/multi-log-quorum</identifier><description id="_cdf052f6-7a5f-2718-2867-547b134e33cd"><p id="_a54312c3-4eb2-7d16-0a8a-b08dc5fc26d9">For artifacts issued by a federated trust authority whose policy requires multi-log attestation, the artifact shall carry inclusion proofs from at least M of K independent transparency logs, where M and K are specified by the policy.</p>
</description><component id="_ec35d880-4730-76f4-807e-bb5b8def0bee" class="guidance"><p id="_837131a1-570f-822d-efa8-782a0442d65b">Each inclusion proof is validated independently.</p>

<p id="_5fc3fce2-3ab3-bb77-5373-4b9a9ff6c41a">No single log operator controls the record.</p>
</component>

</requirement>

<requirement id="_0d38ac6a-5d54-9ab0-e630-01520e7d3b02" anchor="r-transparency-1-8" model="ogc">
<title>Consistency proofs</title><identifier>/req/transparency/consistency-proofs</identifier><description id="_87715c0a-d1be-9552-fcc8-e4691c01cc28"><p id="_c381df55-a1e2-3712-7c79-e4c4637989ee">A transparency log shall support consistency proofs demonstrating that one signed tree head is a prefix of a later signed tree head, consisting of the minimal set of intermediate hashes that allows a verifier to confirm the prefix relationship without downloading the entire log.</p>
</description><component id="_c9c89df1-1c1b-72da-fba5-b5c90053373d" class="guidance"><p id="_97db7458-ba0c-5459-5b47-b1939b715158">Mirrors shall validate consistency proofs between consecutive tree heads.</p>

<p id="_b4a8362e-ba6a-df70-68e4-b668e9a9797f">Verifiers may request consistency proofs between any two observed tree heads.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_b1b39654-8508-6dda-c905-42f23e9a7e32" anchor="verification" inline-header="false" obligation="normative">
<title id="_515a4535-ca68-2376-54d9-39161b5574e2">Verification pipeline</title>
<clause id="_13b65a56-54ef-c4d8-386e-30ebe57bfe6b" inline-header="false" obligation="normative">
<title id="_43ba1532-e4bb-9dea-be1e-5ba68ffacce0">General</title>
<p id="_f5190cfb-c8d0-2383-d7a8-dfc66092494c">A verifier in the SIGNATIF framework applies an ordered sequence of checks to a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept>, resolves the <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept> to find one or more verification paths to root anchors, produces an objective coverage report, applies the scheme’s classification policy to derive a grade label, and applies its acceptance policy to determine whether to accept the artifact.</p>

<p id="_10d3cb2c-88fb-be3a-c04e-ff91c76d651a">This clause specifies the pipeline architecture, the hard and soft checks, the coverage report, the classification policy, the acceptance policy, and the time freshness window.</p>
</clause>

<clause id="_001ba7d0-cf95-69ff-acb9-26de9ab2ef6b" anchor="verification-pipeline" inline-header="false" obligation="normative">
<title id="_0ea3008b-af68-0168-bbc5-ec19e456a771">Pipeline architecture</title>
<p id="_49c0bca8-bd56-f730-e706-a9fb572641ce">The <concept><refterm>verification pipeline</refterm><renderterm>verification pipeline</renderterm><xref target="term-verification-pipeline"/></concept> is an ordered sequence of checks applied to an artifact (<xref target="fig-pipeline"/>). Checks are classified as hard or soft:</p>

<figure id="_976a2863-f49a-d3de-cae1-5dcf0404fce8" anchor="fig-pipeline">
<name id="_790d5a39-4e7a-a70b-28e0-7ac9b6e10e8a">Verification pipeline — ordered checks and classification</name>
<image id="_b7667d55-4e11-b531-e343-6d1d7084736c" src="images/verification-pipeline.svg" mimetype="image/svg+xml" height="auto" width="auto" filename="images/verification-pipeline.svg"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 720" font-family="sans-serif" font-size="12">
  <defs>
    <marker id="parr" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto">
      <path d="M0,0 L10,5 L0,10 z" fill="#555"/>
    </marker>
    <marker id="parrR" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto">
      <path d="M0,0 L10,5 L0,10 z" fill="#d32f2f"/>
    </marker>
    <marker id="parrG" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto">
      <path d="M0,0 L10,5 L0,10 z" fill="#2e7d32"/>
    </marker>
  </defs>

  <text x="450" y="25" text-anchor="middle" font-size="15" font-weight="bold">Verification pipeline — ordered checks and grade assignment</text>

  <!-- Input -->
  <ellipse cx="450" cy="65" rx="120" ry="25" fill="#f3e8fd" stroke="#9334e6" stroke-width="2"/>
  <text x="450" y="70" text-anchor="middle" font-weight="bold">Trusted Artifact + Trust Anchor Bundle</text>
  <line x1="450" y1="90" x2="450" y2="110" stroke="#555" stroke-width="2" marker-end="url(#parr)"/>

  <!-- HARD CHECKS label -->
  <text x="180" y="105" font-weight="bold" font-size="13" fill="#d32f2f">HARD CHECKS (short-circuit → F)</text>
  <line x1="180" y1="110" x2="720" y2="110" stroke="#d32f2f" stroke-width="1" stroke-dasharray="4,3"/>

  <!-- Hard check 1: Format -->
  <rect x="350" y="125" width="200" height="35" rx="5" fill="#ffebee" stroke="#d32f2f" stroke-width="1.5"/>
  <text x="450" y="147" text-anchor="middle">1. Format validity</text>
  <line x1="450" y1="160" x2="450" y2="175" stroke="#555" stroke-width="1.5" marker-end="url(#parr)"/>

  <!-- Hard check 2: Signature -->
  <rect x="350" y="180" width="200" height="35" rx="5" fill="#ffebee" stroke="#d32f2f" stroke-width="1.5"/>
  <text x="450" y="202" text-anchor="middle">2. Signature validity (all co-sigs)</text>
  <line x1="450" y1="215" x2="450" y2="230" stroke="#555" stroke-width="1.5" marker-end="url(#parr)"/>

  <!-- Hard check 3: Chain -->
  <rect x="350" y="235" width="200" height="35" rx="5" fill="#ffebee" stroke="#d32f2f" stroke-width="1.5"/>
  <text x="450" y="257" text-anchor="middle">3. Chain integrity (graph path)</text>
  <line x1="450" y1="270" x2="450" y2="285" stroke="#555" stroke-width="1.5" marker-end="url(#parr)"/>

  <!-- Hard check 4: Scope -->
  <rect x="350" y="290" width="200" height="35" rx="5" fill="#ffebee" stroke="#d32f2f" stroke-width="1.5"/>
  <text x="450" y="312" text-anchor="middle">4. Scope narrowing + conditions</text>
  <line x1="450" y1="325" x2="450" y2="340" stroke="#555" stroke-width="1.5" marker-end="url(#parr)"/>

  <!-- Hard check 5: Revocation -->
  <rect x="350" y="345" width="200" height="35" rx="5" fill="#ffebee" stroke="#d32f2f" stroke-width="1.5"/>
  <text x="450" y="367" text-anchor="middle">5. Revocation status</text>

  <!-- Fail branch to F -->
  <line x1="550" y1="142" x2="750" y2="142" stroke="#d32f2f" stroke-width="1.5"/>
  <line x1="550" y1="197" x2="750" y2="197" stroke="#d32f2f" stroke-width="1.5"/>
  <line x1="550" y1="252" x2="750" y2="252" stroke="#d32f2f" stroke-width="1.5"/>
  <line x1="550" y1="307" x2="750" y2="307" stroke="#d32f2f" stroke-width="1.5"/>
  <line x1="550" y1="362" x2="750" y2="362" stroke="#d32f2f" stroke-width="1.5"/>
  <line x1="750" y1="142" x2="750" y2="362" stroke="#d32f2f" stroke-width="1.5"/>
  <rect x="710" y="370" width="80" height="35" rx="5" fill="#d32f2f" stroke="#b71c1c" stroke-width="2"/>
  <text x="750" y="392" text-anchor="middle" font-weight="bold" fill="white">Grade F</text>
  <text x="750" y="420" text-anchor="middle" font-size="10" fill="#d32f2f">INVALID</text>

  <!-- Continue from hard checks -->
  <line x1="450" y1="380" x2="450" y2="420" stroke="#2e7d32" stroke-width="2" marker-end="url(#parrG)"/>

  <!-- SOFT CHECKS label -->
  <text x="180" y="415" font-weight="bold" font-size="13" fill="#1565c0">SOFT CHECKS (accumulate grade)</text>
  <line x1="180" y1="420" x2="720" y2="420" stroke="#1565c0" stroke-width="1" stroke-dasharray="4,3"/>

  <!-- Starting grade D -->
  <rect x="375" y="425" width="150" height="30" rx="5" fill="#e3f2fd" stroke="#1565c0" stroke-width="1.5"/>
  <text x="450" y="444" text-anchor="middle">Start: Grade D</text>
  <line x1="450" y1="455" x2="450" y2="470" stroke="#555" stroke-width="1.5" marker-end="url(#parr)"/>

  <!-- Soft check: Transparency -->
  <rect x="325" y="475" width="250" height="30" rx="5" fill="#e3f2fd" stroke="#1565c0" stroke-width="1.5"/>
  <text x="450" y="494" text-anchor="middle">Transparency inclusion → raise to C</text>
  <line x1="450" y1="505" x2="450" y2="520" stroke="#555" stroke-width="1.5" marker-end="url(#parr)"/>

  <!-- Soft check: Time -->
  <rect x="325" y="525" width="250" height="30" rx="5" fill="#e3f2fd" stroke="#1565c0" stroke-width="1.5"/>
  <text x="450" y="544" text-anchor="middle">Time anchor → raise to B</text>
  <line x1="450" y1="555" x2="450" y2="570" stroke="#555" stroke-width="1.5" marker-end="url(#parr)"/>

  <!-- Soft check: Cross-domain -->
  <rect x="325" y="575" width="250" height="30" rx="5" fill="#e3f2fd" stroke="#1565c0" stroke-width="1.5"/>
  <text x="450" y="594" text-anchor="middle">Cross-domain co-signatures → A / A+</text>
  <line x1="450" y1="605" x2="450" y2="620" stroke="#555" stroke-width="1.5" marker-end="url(#parr)"/>

  <!-- Soft check: Multi-log -->
  <rect x="325" y="625" width="250" height="30" rx="5" fill="#e3f2fd" stroke="#1565c0" stroke-width="1.5"/>
  <text x="450" y="644" text-anchor="middle">Multi-log quorum → A++ / A+++</text>
  <line x1="450" y1="655" x2="450" y2="670" stroke="#555" stroke-width="2" marker-end="url(#parr)"/>

  <!-- Policy comparison -->
  <rect x="325" y="675" width="250" height="35" rx="5" fill="#e8f5e9" stroke="#2e7d32" stroke-width="2"/>
  <text x="450" y="697" text-anchor="middle" font-weight="bold">Compare against policy → Accept/Reject</text>
</svg></image></figure>

<ul id="_ffa4bd7d-c9a8-261e-89d9-8b7b940db478"><li><p id="_ed796513-d252-7c45-6b26-826d2615b6b1">Hard checks determine pass or fail of the pipeline. If any hard check fails, the pipeline short-circuits; the coverage report hard_checks field is set to fail.</p>
</li>
<li><p id="_85181d32-8e05-e0f8-9b43-ce2f6347e195">Soft checks populate the coverage report but do not cause outright failure. Each soft check that passes contributes a positive coverage field; each that does not pass leaves that field unpopulated. The classification policy determines how these fields map to the classification label.</p>
</li>
</ul>

<p id="_86d4ed19-b3c6-6329-9fff-654ba4b1d0da"><xref target="tab-pipeline-checks"/> classifies each check and states its purpose.</p>

<table id="_17f99875-a809-67d4-a0a5-8b0ed5cf9f17" anchor="tab-pipeline-checks"><colgroup><col width="28.5714%"/><col width="28.5714%"/><col width="42.8572%"/></colgroup>
<name id="_2a78aed9-4118-f9b0-9368-1e5f5db60437">Verification pipeline checks</name>
<thead><tr id="_0902388f-5a0b-bf2e-65cd-36ba5e72bd5a"><th id="_ef8c6b14-ab4e-eba2-c583-ff2c04b7d340" valign="top" align="left">Check</th>
<th id="_e26b902b-8bfa-16a9-2264-6ef9884ec053" valign="top" align="left">Classification</th>
<th id="_f2503e40-1990-a75e-5737-31b6f2a2de64" valign="top" align="left">Purpose</th>
</tr></thead>
<tbody><tr id="_da0e2b28-9688-baaa-85fe-9d498c7b774e"><td id="_f4a8252f-ad98-d55e-0f34-a8db92bdcab1" valign="top" align="left">Format validity</td>
<td id="_56c003b3-f789-7c6f-232c-dfa5eb03845c" valign="top" align="left">Hard</td>
<td id="_3f9c257a-29dc-b25a-31d9-8db4e0e6fc1f" valign="top" align="left">The artifact wrapper is well-formed and self-describing.</td>
</tr><tr id="_f8dc99bd-fa59-7b58-fc16-df24c12f0ef0"><td id="_4d98b59b-306b-a8c2-daef-63dd906ef51e" valign="top" align="left">Signature validity</td>
<td id="_d729467c-24b6-932b-0594-ba41af047cba" valign="top" align="left">Hard</td>
<td id="_af24476d-85c9-433e-ed0c-addb1a2e82e5" valign="top" align="left">The primary signature and all co-signatures are cryptographically valid.</td>
</tr><tr id="_7ab078ab-e7bf-0427-4017-c8f290119ec7"><td id="_b79c1f49-adf8-3612-d48e-d1ea1876aa32" valign="top" align="left">Chain integrity</td>
<td id="_21809c98-ac46-954c-9daa-f7a151bbefae" valign="top" align="left">Hard</td>
<td id="_e1275a9c-f232-59a8-1cfc-939b681377a2" valign="top" align="left">Every delegation link is signed and the chain resolves to a root anchor.</td>
</tr><tr id="_51fc7699-2637-e33e-66ae-72dc228e931c"><td id="_8dee7cab-07ff-9563-5bbb-625902e31c09" valign="top" align="left">Scope narrowing</td>
<td id="_df2c7804-ab25-3fff-00bc-eaa81c90a393" valign="top" align="left">Hard</td>
<td id="_755d47f1-f0b1-4590-c92b-56067cb7c589" valign="top" align="left">The <concept><refterm>monotonic narrowing invariant</refterm><renderterm>monotonic narrowing invariant</renderterm><xref target="term-monotonic-narrowing-invariant"/></concept> holds on every dimension at every link.</td>
</tr><tr id="_fb2900f2-d2cb-7189-424c-034062061056"><td id="_706a3230-9616-9072-61c3-f820ee248659" valign="top" align="left">Scope conditions</td>
<td id="_f2cb0324-adb2-c3a3-4c30-6b890f1d3033" valign="top" align="left">Hard</td>
<td id="_4f8efdc5-f8eb-61df-527c-1ac96da3602a" valign="top" align="left">All <concept><refterm>authorization scope condition</refterm><renderterm>scope conditions</renderterm><xref target="term-authorization-scope-condition"/></concept> evaluate to true at verification time.</td>
</tr><tr id="_d2beddd4-6b6a-a1c2-cfed-ff6e8c41b55f"><td id="_48b5578a-e80f-d89f-8208-da8815e12ee1" valign="top" align="left">Revocation status</td>
<td id="_6bc48bf6-5ac7-1d97-1066-d5cebac061a6" valign="top" align="left">Hard</td>
<td id="_06fe9079-e733-9754-2aba-c3a2e42227c8" valign="top" align="left">No authority on the path is revoked; no bound state is revoked.</td>
</tr><tr id="_9fc91f72-a39a-6b3b-1a8b-8e807409f171"><td id="_cfcd4ee4-9e7e-547f-aa6c-479c0fd124b0" valign="top" align="left">Transparency inclusion</td>
<td id="_9cbd9ad4-8ed6-e4d8-a818-f3a0a154b626" valign="top" align="left">Soft</td>
<td id="_bb25b2e6-ea0e-7ffc-3290-9821aad773d4" valign="top" align="left">The artifact and all certificates are included in recognized transparency logs.</td>
</tr><tr id="_ad2dbb16-0912-5df6-cfab-61aaa25901c8"><td id="_3a37e634-e72e-21b0-91d9-6690627fadc3" valign="top" align="left">Time anchor</td>
<td id="_b2b498f2-e125-a19e-1554-086ec81d8250" valign="top" align="left">Soft</td>
<td id="_c20a909a-9cc9-e12e-265c-74cf8edfaf85" valign="top" align="left">The artifact is anchored to an external time source via a time dimension attestation.</td>
</tr><tr id="_92f2abd4-8989-7b1c-1f94-3f12fe99b12b"><td id="_1463fe6e-d1a9-d3ad-ffa6-e019771f4f1c" valign="top" align="left">Cross-domain co-signatures</td>
<td id="_1032c3bf-d976-85d5-8c97-a908326267d1" valign="top" align="left">Soft</td>
<td id="_47aefe24-fcb4-3a23-046c-d8a6ab5221ef" valign="top" align="left">The artifact carries co-signatures from independent root hierarchies.</td>
</tr><tr id="_87fd323d-3202-e529-3c17-d30e19d0258d"><td id="_909cbad8-8bf4-c5fc-edc7-1fc91368a1ff" valign="top" align="left">Multi-log attestation</td>
<td id="_acb4724c-2ad4-5ed1-f0da-3e4cce55d452" valign="top" align="left">Soft</td>
<td id="_de5c32fb-1d05-b9a6-6d5e-f74d4d5d92aa" valign="top" align="left">The artifact is included in M-of-K independent transparency logs.</td>
</tr></tbody>
</table>
</clause>

<clause id="_bbbb43eb-8855-5ef8-3f25-bb5f2fb2df85" anchor="verification-pathfinding" inline-header="false" obligation="normative">
<title id="_e967c9ba-6514-b9c6-c022-fabf6e580b18">Trust graph path-finding</title>
<clause id="_b4bcd2c6-43d6-07ab-1bd8-3becad975223" inline-header="false" obligation="normative">
<title id="_098848a6-5081-a6e9-cf6d-1bbf06f3a780">General</title>
<p id="_57e0230f-85ef-51d8-c377-fe580d72639d">The verifier enumerates all valid verification paths from the artifact to root anchors in the  <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept>. The coverage report is computed as a pure function of the set of all valid paths, not of any single path. This ensures that two conforming verifiers that find the same set of valid paths produce identical coverage reports, regardless of path enumeration order.</p>
</clause>

<clause id="_6b9deeb4-3174-ca70-ff80-c282b1a40cf1" inline-header="false" obligation="normative">
<title id="_1af70d90-669c-962f-7ba5-61cdd7a5f8c1">Path enumeration algorithm</title>
<p id="_54738859-2f9a-0357-08b3-73464d6e02ba">The path enumeration algorithm proceeds as follows:</p>

<ol id="_2c033ada-6716-f5a0-a8d2-e010f1dc269c" type="arabic"><li><p id="_e4c3c8a3-bdb5-bb11-c71a-00135269886f">Let <tt>P</tt> be the empty set of valid paths.</p>
</li>
<li><p id="_13bffda2-42b1-8453-623a-53451c874d89">For each signature <tt>s</tt> on the artifact (primary and co-signatures):</p>
<ol id="_5a9c1874-73be-d9f4-189d-011559b90379"><li><p id="_11aae1fd-4182-e474-ea3c-8397b6e50420">Let <tt>path</tt> be the singleton path containing <tt>s</tt>.</p>
</li>
<li><p id="_b9df57a6-9f7e-fd5a-0cef-26588b5a93f7">Call <tt>extend(path, P)</tt>.</p>
</li>
</ol>
</li>
<li><p id="_9c83b841-b0fb-9f30-7a34-77cbdc6c4009">Return <tt>P</tt>.</p>
</li>
</ol>
</clause>

<clause id="_aaf89262-6504-947e-406e-f68168734564" inline-header="false" obligation="normative">
<title id="_0a3f42a4-1ce2-6334-6399-aefb60f3e338">Path extension procedure</title>
<p id="_62e33135-94a3-ee99-32ed-328993eb7496">The <tt>extend(path, P)</tt> procedure:</p>

<ol id="_eeea0594-e6a6-e8d1-b8aa-117b3c5ecd93" type="arabic"><li><p id="_88fccdda-1e80-22a5-5e98-25902abb9d89">Let <tt>node</tt> be the tail of <tt>path</tt>.</p>
</li>
<li><p id="_b6bf36bb-7ddd-5946-88ce-4a59e67fafcd">If <tt>node</tt> is a root anchor in the <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept>, add <tt>path</tt> to <tt>P</tt> and return.</p>
</li>
<li><p id="_35c055c9-673f-34f5-1002-d10cf897bb42">For each delegation link from <tt>node</tt> to a parent <tt>parent</tt>:</p>
<ol id="_5347896d-429a-f38c-9761-53b1cbb7379b"><li><p id="_c4befb48-c46c-668d-6fbe-41599a17b4a0">Validate the signature on the delegation link. If invalid, skip this link.</p>
</li>
<li><p id="_c3b81858-d0ee-34a5-f360-31cb6bf041ff">Validate that <tt>narrowed(scope(parent), scope(node))</tt> holds (see  <xref target="scope-monotonic-narrowing"/>). If not, skip this link.</p>
</li>
<li><p id="_d761c3c8-c819-c9c0-7fa8-f3711d036779">Validate transparency log inclusion for the delegation certificate. If not included, skip this link.</p>
</li>
<li><p id="_747570be-b91e-b958-4362-495bc00afaff">Validate revocation status for <tt>parent</tt>. If revoked, skip this link.</p>
</li>
<li><p id="_a5321aa1-d62a-63d2-98ae-0973c4dbbf92">Let <tt>extended</tt> be <tt>path</tt> with <tt>parent</tt> appended.</p>
</li>
<li><p id="_20d25d8f-d5b6-bfa6-2514-04827854631b">If <tt>extended</tt> does not contain a cycle (no repeated node), call <tt>extend(extended, P)</tt>.</p>
</li>
</ol>
</li>
</ol>

<p id="_f654aeec-4caa-9ce5-8af4-1e182b216318">The set <tt>P</tt> contains all valid verification paths. The cross-domain diversity of the artifact is the number of distinct root anchors reached across all paths in  <tt>P</tt>.</p>
</clause>

<clause id="_6b208c76-788e-da5c-b23b-ce6e07aba58d" inline-header="false" obligation="normative">
<title id="_5cf6ce56-6d08-0d2b-0dc6-529c144b8b68">Independence of roots and logs</title>
<p id="_fdcd2f8b-4aa7-8283-2cdb-2170f86ad41d">Two root anchors <tt>r1</tt> and <tt>r2</tt> are independent if neither is reachable from the other via delegation links in the  <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept> and they do not share a common delegating ancestor other than themselves. Cross-domain co-signature counting for higher classification labels uses the number of distinct independent roots in <tt>P</tt>, not the number of paths.</p>

<p id="_dcd94e0a-9bef-b94b-9ddb-cbe168ced6a0">Two transparency logs are independent if they are operated by different organizations and neither organization operates a log that the other recognizes. Multi-log attestation quorum (higher classification labels) uses the count of independent logs, not total logs.</p>
</clause>
</clause>

<clause id="_6005a6b8-1a6e-5c61-df66-64adc058706a" anchor="verification-coverage" inline-header="false" obligation="normative">
<title id="_5df07755-8ca4-8b8c-caa7-62020c88b7d4">Coverage report</title>
<p id="_18a73a20-1d07-c39a-d653-94bd8fd815d2">The verification pipeline produces an objective coverage report containing the verification facts. The coverage report is a deterministic function of the artifact, the set of valid verification paths, and the verifier’s verification state (trust anchor bundle, cached CRLs, cached transparency log tree heads). Two conforming verifiers with the same verification state produce identical coverage reports.</p>

<p id="_5e2c465b-fb96-0cf5-3ccc-179d9dc5df79">The coverage report contains the following fields. The fields are listed in <xref target="tab-coverage-fields"/>.</p>

<table id="_8dc259b5-5015-5e5f-a82f-23efb41ce24e" anchor="tab-coverage-fields"><colgroup><col width="40%"/><col width="60%"/></colgroup>
<name id="_bdca0a51-a2c2-129d-e53c-26ad49ec961e">Coverage report fields</name>
<thead><tr id="_18bca4cc-9f9b-192b-fef5-84ab8532d153"><th id="_7b80cc0b-4914-990e-c1be-d796f03a3998" valign="top" align="left">Field</th>
<th id="_8437af53-ab56-2c5e-b5ef-d2570a79200e" valign="top" align="left">Description</th>
</tr></thead>
<tbody><tr id="_ac961d6f-6d0c-a168-a6e7-0c479192b4cd"><td id="_0f03ce57-2ed6-2f38-dcc9-9ef6b7308cd5" valign="top" align="left"><tt>hard_checks</tt></td>
<td id="_873538d3-af52-f18f-a3fc-7f1c559aaeb0" valign="top" align="left"><tt>pass</tt> if all hard checks (format, signature, chain, scope narrowing, scope   conditions, revocation) pass; otherwise  <tt>fail</tt> with typed failure reasons.</td>
</tr><tr id="_9d69c61d-9510-2220-158b-12e3f4016bd5"><td id="_80d77f88-dde9-3f74-14a5-29dd1dfdc5ae" valign="top" align="left"><tt>transparency_included</tt></td>
<td id="_47d2d7fc-b9d0-478c-b364-2bb904893fd9" valign="top" align="left"><tt>true</tt> if the artifact and all certificates on all paths are included in a   recognized transparency log with valid inclusion proofs.</td>
</tr><tr id="_684ab783-f3c5-da30-dfaa-9f3430e0ae47"><td id="_297c4368-bb56-9f09-a7fa-69b1db10e900" valign="top" align="left"><tt>time_anchored</tt></td>
<td id="_b979a999-71a5-f8a9-22eb-02d73d86a64f" valign="top" align="left"><tt>true</tt> if at least one time dimension attestation anchors the artifact to an   external time source.</td>
</tr><tr id="_9ffaf15d-d204-46f9-d9eb-cd5efa9d312b"><td id="_31d88275-d7c1-995a-5e0c-0e07f024711b" valign="top" align="left"><tt>dimensions_verified</tt></td>
<td id="_213e1733-de48-14e8-afa4-93200b0b0453" valign="top" align="left">List of trust dimension tags with verified attestations on the artifact   (e.g.,  <tt>["data", "person", "location", "environment"]</tt>).</td>
</tr><tr id="_b10be3ef-45bc-da20-8957-d788e3d682d4"><td id="_ce6ab8a4-0b79-2025-f4b1-55e051fa4c17" valign="top" align="left"><tt>dimension_count</tt></td>
<td id="_3c92e2df-2bef-5996-be12-5c2c43321e7c" valign="top" align="left">Count of verified non-data, non-time dimensions (person, location,   environment, authorization, identity, oracle, and others registered by the   scheme).</td>
</tr><tr id="_ade0284a-70a2-7492-c161-4625bc62ac48"><td id="_fd0b9afd-ed72-b330-06b4-4f90d360c03b" valign="top" align="left"><tt>independent_roots</tt></td>
<td id="_b36d8b92-772b-3067-0cab-5c1bd6260001" valign="top" align="left">Count of distinct independent root anchors reached via co-signatures,   excluding the primary signer’s root.</td>
</tr><tr id="_520bbfbf-0247-4ac0-e773-a87d306355ce"><td id="_879a0213-dc43-de7f-7ae4-01384e9e1dcb" valign="top" align="left"><tt>multi_log_quorum</tt></td>
<td id="_942a33bf-7b5a-413a-3895-4f00f9c89fd3" valign="top" align="left"><tt>true</tt> if the artifact meets the multi-log attestation quorum (at least   M-of-K independent transparency logs include the artifact).</td>
</tr><tr id="_aa7a649f-9b6f-fb4f-848b-f841a6563af1"><td id="_c02a2d37-6bb5-0d4b-b51f-cf724a903ed0" valign="top" align="left"><tt>paths_found</tt></td>
<td id="_117a287d-79ab-9936-beb0-bd361eacfe66" valign="top" align="left">Number of valid verification paths from the artifact to root anchors.</td>
</tr></tbody>
</table>

<p id="_c1df6aff-9073-a055-25f0-9b498857b68d">These fields are the objective primitives from which classification and acceptance decisions are derived.</p>
</clause>

<clause id="_5f1b3ac8-974d-edcf-6ed9-a057a1b0ddd1" anchor="verification-classification" inline-header="false" obligation="normative">
<title id="_c44be090-e37a-abe4-102b-8fa038313656">Classification policy</title>
<p id="_be716c26-3eba-08ef-1673-5958b1a5a01e">The scheme defines a classification policy that maps coverage report fields to grade labels. The classification policy is a deterministic, programmatic function — not a subjective judgment. The scheme publishes its classification policy in the deployment manifest.</p>

<p id="_9f48e178-87b3-9b37-111c-cc1bbef7623c">The classification policy shall be expressed as deterministic rules over the coverage report fields. Example classification policies:</p>

<sourcecode id="_baeb840a-7c05-7d5d-d4d8-6ee830a9621a"><body>// Example: pharmaceutical supply chain scheme
classify(coverage) {
  if (coverage.hard_checks != "pass") return "rejected";
  if (!coverage.transparency_included) return "unverified";
  if (!coverage.time_anchored) return "basic";
  if (coverage.multi_log_quorum &amp;&amp; coverage.dimension_count &gt;= 2
      &amp;&amp; coverage.independent_roots &gt;= 1)
    return "certified";
  if (coverage.dimension_count &gt;= 2 &amp;&amp; coverage.independent_roots &gt;= 1)
    return "attested";
  if (coverage.dimension_count &gt;= 1 || coverage.independent_roots &gt;= 1)
    return "verified";
  return "basic";
}</body></sourcecode>


<sourcecode id="_155890cd-6534-602b-ba07-851120c9993f"><body>// Example: financial compliance scheme
classify(coverage) {
  if (coverage.hard_checks != "pass") return "invalid";
  if (coverage.dimensions_verified.length &gt;= 4
      &amp;&amp; coverage.independent_roots &gt;= 2
      &amp;&amp; coverage.multi_log_quorum)
    return "tier-1";
  if (coverage.dimensions_verified.length &gt;= 2)
    return "tier-2";
  return "tier-3";
}</body></sourcecode>


<p id="_f0b3fd63-6df7-3c9c-895b-fc17bc4bfce3">Each scheme defines its own labels, thresholds, and rules. The standard does not prescribe grade labels or classification thresholds. The classification policy shall be a pure function of the coverage report — for a given coverage report, the classification produces the same label for any verifier using the same scheme’s policy.</p>
</clause>

<clause id="_f0e48171-5e49-f5fb-e7a6-a0c586934e86" anchor="verification-acceptance" inline-header="false" obligation="normative">
<title id="_79ba25e4-10d3-bacb-5e98-aa342d0a89c3">Acceptance policy</title>
<p id="_071b0348-8fea-6d99-3f53-32692e6a78e9">Each verifier defines an acceptance policy that maps the classification label to an accept or reject decision for a given context:</p>

<sourcecode id="_8ce4e093-217b-f586-48e9-f326fef97222"><body>// Example acceptance policy
accept(grade, context) {
  if (grade == "rejected" || grade == "invalid") return false;
  if (context == "controlled_substance" &amp;&amp; grade != "certified") return false;
  if (context == "standard_import" &amp;&amp; grade == "unverified") return false;
  return true;
}</body></sourcecode>


<p id="_3a0dff2a-abb4-242b-b977-ae4c9c304f52">The acceptance policy is the verifier’s risk decision. The standard does not prescribe acceptance thresholds.</p>
</clause>

<clause id="_e4f281ab-a490-54aa-458a-7418ef1e6b5e" anchor="verification-freshness" inline-header="false" obligation="normative">
<title id="_27545973-9d4b-cf5f-7e97-8b3ababaa2f1">Time freshness window</title>
<p id="_a5a96f81-f739-2fad-6fac-eff3fd1794a6">A verifier shall apply a configurable time freshness window to time dimension attestations. The freshness window defines the maximum acceptable age of a time attestation relative to the verifier’s current time.</p>

<p id="_5e4dfc74-3c23-e900-155c-16cc9e6cf0b1">The verifier shall reject any time attestation whose timestamp falls outside the configured freshness window. Artifacts whose time attestations are stale but within a secondary grace period may be accepted at a downgraded classification label, as determined by the acceptance policy.</p>

<p id="_75d3b02c-a78d-101d-dfe2-6056c02c1fb1">The freshness window parameter shall be declared in the verifier’s acceptance policy. The default freshness window is scheme-defined.</p>
</clause>

<clause id="_a8abe893-e074-25d0-4535-8cd10df503af" anchor="verification-offline" inline-header="false" obligation="normative">
<title id="_d4cba605-1f7f-5d79-286f-3f24b62cd8a5">Offline verification</title>
<p id="_e46c4fc4-f028-4500-67d0-8d2ef1285270">A verifier shall be able to verify artifacts offline using:</p>

<ul id="_e543822c-163c-9423-0349-3a412f019083"><li><p id="_16e4435c-55a2-8363-753c-4a3718cc85d7">the <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept>;</p>
</li>
<li><p id="_3ef2fa63-6d16-1640-0ca1-f062c9f0e0fd">cached CRLs within their validity or grace period (see <xref target="revocation-offline"/>);</p>
</li>
<li><p id="_9ca5fb09-9cd4-c871-e202-c8f498461ee9">cached transparency log tree heads and inclusion proofs;</p>
</li>
<li><p id="_7f4f2ec8-1436-f512-38dd-6d32dfb3d056">embedded or hybrid chains carried with the artifact.</p>
</li>
</ul>

<p id="_959a4611-af19-b554-6716-5a265086bf52">Offline verification produces the same classification label as online verification, except where freshness-dependent checks (e.g., time freshness window, CRL currency) cannot be satisfied.</p>
</clause>

<clause id="_1ffc8d22-b06f-e289-e9da-0e534adf789e" anchor="verification-results" inline-header="false" obligation="normative">
<title id="_60240d48-9d6a-cc3c-5ca7-b7c3045f2b98">Verification result structure</title>
<p id="_a00a56f0-2d20-941f-f60b-671dfc51ba9d">The verification pipeline produces a structured result containing the classification label, the set of valid verification paths, and — if hard_checks is fail — the specific failure reason(s). Typed failure reasons enable the verifier to distinguish operational conditions that require different responses.</p>

<p id="_a2c36a0b-3608-5452-d6b0-fe14eba69b24">The verification result shall contain:</p>

<ul id="_1f957503-54fb-f055-96e9-a8fb0973b12c"><li><p id="_811441fe-fc7a-2487-b1a9-0d92defea05a"><tt>classified_grade</tt>: the scheme-defined classification label.</p>
</li>
<li><p id="_b333b554-dc84-59ec-ebd4-b25693321ca9"><tt>paths</tt>: the set of valid verification paths found.</p>
</li>
<li><p id="_4d1bf0a6-b9c3-6248-73b2-0d938d943105"><tt>dimensional_coverage</tt>: the set of trust dimensions with verified attestations.</p>
</li>
<li><p id="_c9bc015d-607a-d8e5-9719-6ec98ca082d1"><tt>failures</tt>: if hard_checks is fail, a list of failure entries, each containing:</p>
<ul id="_6bb02c18-46ca-c972-7067-e5bd324bae1a"><li><p id="_ccb789fc-fa28-1d2c-8c1d-785f966de889"><tt>check</tt>: the name of the hard check that failed.</p>
</li>
<li><p id="_7baa9dd5-282a-b584-924a-36a7ed3b237a"><tt>reason</tt>: one of the typed failure reasons listed below.</p>
</li>
<li><p id="_75a94d12-1eca-a466-4b59-eb55e824ffb3"><tt>detail</tt>: implementation-specific diagnostic text.</p>
</li>
</ul>
</li>
<li><p id="_e35bddbd-dd69-26a5-3270-b4b43115134d"><tt>downgrades</tt>: a list of soft-check non-passes (e.g., transparency missing, time anchor absent, cross-domain count below threshold), each containing the check name and the current value. This field is populated regardless of the assigned classification label.</p>
</li>
</ul>

<p id="_8b09f317-3f59-8710-777f-1922383a5216">The following typed failure reasons are defined. The defined failure reasons are listed in <xref target="tab-failure-reasons"/>.</p>

<table id="_7c124b0d-3eeb-2688-3e74-1a39c1acdb32" anchor="tab-failure-reasons"><colgroup><col width="40%"/><col width="60%"/></colgroup>
<name id="_e7b65565-80d0-ed77-1c8c-2059917696c4">Typed failure reasons</name>
<thead><tr id="_4e449b2b-9fb3-1369-3bce-51b0c8a5b666"><th id="_9832ad4b-5b3d-5a99-0805-aa4cab96dd97" valign="top" align="left">Failure reason</th>
<th id="_35ef60dd-260d-8f97-8c30-b69152b3ea19" valign="top" align="left">Meaning</th>
</tr></thead>
<tbody><tr id="_fe6050e9-c80b-355f-1b9a-aa10650f2da6"><td id="_9d0939c8-9534-9500-58cf-e0a557bb1c81" valign="top" align="left"><tt>format_invalid</tt></td>
<td id="_40b95f8d-33dd-6bf3-94fb-6e9095effa09" valign="top" align="left">The artifact wrapper is malformed or cannot be parsed.</td>
</tr><tr id="_a4aa1cbf-a85f-fb78-ed31-aac4fc2cfc9e"><td id="_a74e65b7-e6d0-1e17-8849-21a3239bd0e0" valign="top" align="left"><tt>signature_invalid</tt></td>
<td id="_8456218a-4dc8-e93b-205b-cb35a6bc7fa9" valign="top" align="left">A signature (primary or co-signature) failed cryptographic validation.</td>
</tr><tr id="_abe4b3cf-2a57-67ca-4111-f528e98ca089"><td id="_0700efd8-8f93-dba7-b21c-e51068ef3c6b" valign="top" align="left"><tt>chain_broken</tt></td>
<td id="_9f95cf0d-f5f8-43e7-35eb-08204eb7120e" valign="top" align="left">No valid path exists from the artifact to any root anchor in the trust   anchor bundle.</td>
</tr><tr id="_5fa7bab1-3426-e87b-ba46-6f418c3621d9"><td id="_027dce6e-b100-6537-3885-920eb17e93bd" valign="top" align="left"><tt>scope_widened</tt></td>
<td id="_49f1eadd-6ca5-7b83-d8a2-63705d15ea00" valign="top" align="left">The monotonic narrowing invariant was violated at a delegation link.</td>
</tr><tr id="_fe62b8a9-6cf3-ded9-65e3-c45e44b675ca"><td id="_c0f21a7e-405c-2a5f-682b-4ad5fef31f8d" valign="top" align="left"><tt>scope_condition_failed</tt></td>
<td id="_4eb04931-7dfb-55a4-f293-488d30f14265" valign="top" align="left">A scope condition evaluated to false against the artifact content.</td>
</tr><tr id="_53b267de-2941-9be9-ce32-8d1e56e1d33a"><td id="_8ff0ebd7-bb25-0b3d-c3df-2faf04a0d474" valign="top" align="left"><tt>revoked</tt></td>
<td id="_d448a2a9-4215-ee90-6a87-4eb363b7bd52" valign="top" align="left">An authority on the verification path, or a state bound to the artifact, is   revoked.</td>
</tr><tr id="_4023a0f2-9084-2fd1-84df-f612d4a518b1"><td id="_cdcca230-cd0b-9305-a021-e84b9906b3d2" valign="top" align="left"><tt>transparency_missing</tt></td>
<td id="_f077b5a9-a076-f06d-cebf-ae5d98d6686a" valign="top" align="left">A certificate or artifact is not provably included in a recognized   transparency log (soft check failure; may downgrade rather than fail unless   policy requires transparency).</td>
</tr></tbody>
</table>

<p id="_6683908c-9ace-5df7-e2d5-71980297737e">An implementation may define additional failure reasons. Extensions shall use the  <tt>x-</tt> prefix to avoid collision with future standardized reasons.</p>
</clause>

<clause id="_9bc4db80-c484-850b-b9fb-b3c2b56fa15b" anchor="req-verification" inline-header="false" obligation="normative">
<title id="_5af56b44-4315-555b-0cf6-01e0be84ac7c">Requirements</title>
<p id="_0c3f46f0-2b0a-8158-bc5c-144ed5749b67">Verification pipeline has its formalized requirements class described in <xref target="rc-verification-1"/>, with its requirements listed from <xref target="r-verification-1-1"/> to <xref target="r-verification-1-8"/>.</p>

<requirement id="_779ea69f-fb2d-9399-9d04-e7c228ed1800" anchor="rc-verification-1" model="ogc" type="class">
<title>Verification pipeline</title><identifier>/req/verification</identifier><subject>verification</subject><inherit>/req/architecture</inherit><inherit>/req/artifact-format</inherit><inherit>/req/scope</inherit><inherit>/req/revocation</inherit><inherit>/req/transparency</inherit><description id="_37e033dc-c67f-8f2c-3500-ef8b7b21ddcb"><p id="_8cd7de2e-4573-669d-2fe9-6813acb67104">Requirements on the verification pipeline, trust graph path-finding, coverage report production, classification policy, and acceptance policy.</p>
</description><requirement id="_ee57ef99-b458-241b-24d9-a6ad67d98cd5" model="ogc" type="general"> <identifier>/req/verification/pipeline-architecture</identifier></requirement><requirement id="_63ebb238-35fb-d260-896e-d11d208ebf9d" model="ogc" type="general"> <identifier>/req/verification/hard-checks</identifier></requirement><requirement id="_52a75470-2b99-fcaa-37df-7fe84f95f22f" model="ogc" type="general"> <identifier>/req/verification/pathfinding</identifier></requirement><requirement id="_5071aeba-7b4f-1846-9ee7-e9ac4187364a" model="ogc" type="general"> <identifier>/req/verification/coverage-report</identifier></requirement><requirement id="_43593c70-875a-7d2e-5a82-c46718d47756" model="ogc" type="general"> <identifier>/req/verification/classification-policy</identifier></requirement><requirement id="_ef886f4f-4545-38ff-69d4-169edcf85284" model="ogc" type="general"> <identifier>/req/verification/acceptance-policy</identifier></requirement><requirement id="_792bdc70-0918-5d47-6ebc-019f12dbba2d" model="ogc" type="general"> <identifier>/req/verification/time-freshness-window</identifier></requirement><requirement id="_8ee98f40-f3e1-b497-745c-a32961492667" model="ogc" type="general"> <identifier>/req/verification/offline-verification</identifier></requirement>

</requirement>

<requirement id="_c6b52499-5a5d-d780-a587-63bb9f205655" anchor="r-verification-1-1" model="ogc">
<title>Ordered pipeline with hard and soft checks</title><identifier>/req/verification/pipeline-architecture</identifier><description id="_1de2eb13-0284-3307-2e7e-a249caf9bb06"><p id="_bf5f07c9-13d4-7fb4-f36e-216fa1340999">The verification pipeline shall apply an ordered sequence of checks classified as hard or soft, short-circuiting to the scheme’s rejected label on any hard check failure and accumulating soft check results into the coverage report.</p>
</description><component id="_0e78c6a2-d719-3d8f-d48d-b5de58ef4ffb" class="guidance"><p id="_c07a732d-9d1f-9648-ca30-eb1e7409c18c">Hard checks are format validity, signature validity, chain integrity, scope narrowing, scope conditions, and revocation status.</p>

<p id="_336e5f86-6e52-df86-21ae-4888266f6743">Soft checks are transparency inclusion, time anchor, cross-domain co-signatures, and multi-log attestation.</p>
</component>

</requirement>

<requirement id="_5a7dc5b4-b8e1-1fbd-6472-ace166ff7e74" anchor="r-verification-1-2" model="ogc">
<title>Hard check classification</title><identifier>/req/verification/hard-checks</identifier><description id="_6102a1b4-b215-5461-0e72-5c4cf17bbd4a"><p id="_76c4d068-1457-71a0-9058-83841eba6d32">The following checks shall be hard checks whose failure causes the pipeline to short-circuit to the scheme’s rejected label, covering format validity, signature validity, chain integrity, scope narrowing invariant, scope condition evaluation, and revocation status.</p>
</description><component id="_e24c3a39-df55-d5ab-7893-1107ab165799" class="guidance"><p id="_b23c781d-09fe-4ea9-fe29-13064e08b8ad">Hard checks determine pass or fail of the pipeline.</p>
</component>

</requirement>

<requirement id="_18c5a966-8ca9-0a75-22d3-3af59c303368" anchor="r-verification-1-3" model="ogc">
<title>Trust graph path-finding</title><identifier>/req/verification/pathfinding</identifier><description id="_3bf80ccc-fa33-6af9-6022-2d00d7c2f306"><p id="_629f4a80-74c4-7de1-af6b-05ef80b2cdf8">The verifier shall find one or more paths in the trust graph from each signature on the artifact to root anchors in the trust anchor bundle, validating signature and scope narrowing at every link, and shall collect all valid paths and their distinct roots for cross-domain diversity scoring.</p>
</description><component id="_c8450772-631b-170a-6910-4ac0e9d56512" class="guidance"><p id="_7c296661-0479-9b4e-1dbe-60aca6498e99">Multiple valid paths may exist. The coverage report may reflect the best path or require paths through multiple independent roots.</p>
</component>

</requirement>

<requirement id="_99482c1f-4b86-9965-8d57-f9717b69b4d4" anchor="r-verification-1-4" model="ogc">
<title>Coverage report production</title><identifier>/req/verification/coverage-report</identifier><description id="_4784dd18-069e-8479-7cad-22edf3c90fb5"><p id="_53ba12c1-c2f5-af58-dbc9-3e4e3731d731">The verification pipeline shall produce a coverage report containing objective verification facts including hard check status, transparency inclusion status, time anchor status, verified dimension list, dimension count, independent root count, and multi-log quorum status.</p>
</description><component id="_017d04bd-6ba1-40a3-0bb8-a08d85188187" class="guidance"><p id="_2474a70e-d4b8-5df7-b57e-5f28f40191ee">The coverage report is a deterministic function of the artifact and the verifier’s verification state.</p>

<p id="_345a4d87-e4d6-d5f8-784b-aeffb393a7e4">Two conforming verifiers with the same state produce identical coverage reports.</p>
</component>

</requirement>

<requirement id="_fd68e71f-7386-14de-d3b7-24f6c1d9285f" anchor="r-verification-1-5" model="ogc">
<title>Scheme-defined classification policy</title><identifier>/req/verification/classification-policy</identifier><description id="_190256d3-7bbc-1a56-09a7-badd47d48344"><p id="_5d92ccea-a473-ebac-06e1-f2b115c9d880">The scheme shall define a deterministic classification policy that maps coverage report fields to grade labels. The classification policy shall be a pure function of the coverage report, published in the deployment manifest.</p>
</description><component id="_7d9ecd19-c7a4-b437-7592-f32dd4aaf5aa" class="guidance"><p id="_5e05e8c9-8165-c74a-7e71-3ed4ed2a85fb">The standard does not prescribe grade labels or classification thresholds.</p>

<p id="_449d094c-5c43-c990-61b4-9c2223522651">Each scheme defines its own labels, thresholds, and rules appropriate to its domain.</p>
</component>

</requirement>

<requirement id="_5a1b3706-449c-8404-bb50-01d4462d8b15" anchor="r-verification-1-6" model="ogc">
<title>Verifier acceptance policy</title><identifier>/req/verification/acceptance-policy</identifier><description id="_6f366e4f-dba0-68e2-a94d-6e5d2313f16b"><p id="_2b9a9809-6a96-bcf0-e15b-05fc0f41cb59">The verifier shall define an acceptance policy that maps the classification label to an accept or reject decision for a given decision context.</p>
</description><component id="_4a6c8c5e-1d7a-1f31-b2d6-7ef01b3dfad5" class="guidance"><p id="_9f24f12b-dfdf-c686-861d-04c3f9b76470">The acceptance policy is the verifier’s risk decision.</p>

<p id="_db39a83f-9563-0225-1e60-1b459286e7b3">The standard does not prescribe acceptance thresholds.</p>
</component>

</requirement>

<requirement id="_3bf961a9-9018-b5ff-84e9-4c158d3518ea" anchor="r-verification-1-7" model="ogc">
<title>Time freshness window</title><identifier>/req/verification/time-freshness-window</identifier><description id="_8a1e4e74-5798-e538-3e7d-b85fb4040591"><p id="_21d2bf47-ebeb-d382-f1ed-e50fac71235f">A verifier shall apply a configurable time freshness window to time dimension attestations and shall reject any time attestation whose timestamp falls outside the configured window. Artifacts whose time attestations are within a secondary grace period may be accepted at a downgraded classification label as determined by the acceptance policy.</p>
</description><component id="_9a9a95d1-ecb0-e69a-452f-0327e87b9bfc" class="guidance"><p id="_aa5ee663-6c13-b661-9487-c0ce436e090b">The freshness window parameter is declared in the verifier’s acceptance policy.</p>

<p id="_d7629392-b551-d7ec-2bd6-cbc419aff044">The default freshness window is scheme-defined.</p>
</component>

</requirement>

<requirement id="_a318e0ab-1631-9b7d-6e17-4d6d3d698626" anchor="r-verification-1-8" model="ogc">
<title>Offline verification capability</title><identifier>/req/verification/offline-verification</identifier><description id="_8a77885e-8300-bb00-43de-1fb56fc5f789"><p id="_588ab2a8-0b17-726f-e57f-f1507acd1da9">A verifier shall be able to verify artifacts offline using the trust anchor bundle, cached CRLs within validity or grace period, cached transparency tree heads and inclusion proofs, and embedded or hybrid chains.</p>
</description><component id="_2d9b9040-04e9-110b-0fb1-0a6b12b6924d" class="guidance"><p id="_a112cad1-640c-107f-9531-dce53f5b2b09">Offline verification produces the same classification label as online verification except where freshness-dependent checks cannot be satisfied.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_09959b38-f833-d120-1822-37a549e9fbbb" anchor="key-lifecycle" inline-header="false" obligation="normative">
<title id="_765a3b74-e07a-cdf2-50e2-5e527a891e67">Key lifecycle</title>
<clause id="_de472ee8-5177-f345-556b-b534fe6f5ab6" inline-header="false" obligation="normative">
<title id="_a1520fdb-f7c0-a1d2-3cc3-4f2d3bb760e5">General</title>
<p id="_87050539-c7da-c374-951e-f6dc7191e353">This clause specifies the lifecycle of cryptographic keys in the SIGNATIF framework: generation, encrypted storage, import and export, hardware security module interfaces, and certificate signing requests.</p>

<p id="_6fe8c888-d7bf-48b5-3d56-5396dc95c772">Key lifecycle requirements apply to all signing keys: root <concept><refterm>aggregate key</refterm><renderterm>aggregate keys</renderterm><xref target="term-aggregate-key"/></concept>, threshold member shares, <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> keys, and <concept><refterm>time key</refterm><renderterm>time keys</renderterm><xref target="term-time-key"/></concept>. Key management follows established practice (<eref type="inline" bibitemid="iso11770" citeas="ISO/IEC 11770"/>, <eref type="inline" bibitemid="nist-sp800-57" citeas="NIST SP 800-57pt1r5"/>).</p>
</clause>

<clause id="_71bf7f46-4cce-1108-da79-508906001367" anchor="key-generation" inline-header="false" obligation="normative">
<title id="_9043a51c-71f3-a7de-368a-efe00a4c43f5">Key generation</title>
<p id="_7aa03aee-21a7-072a-b993-68fc33fc8123">Keys shall be generated using a cryptographically secure random number generator. The generation parameters shall conform to the specification of the chosen algorithm as registered in the scheme’s algorithm identifier registry.</p>

<p id="_0bba16dd-d080-8a46-3dd6-812ec298cbc6">Threshold key shares shall be generated using a threshold key generation protocol that ensures no individual member possesses the full signing key.</p>
</clause>

<clause id="_9ef9c2b3-6748-437c-1e82-f586f243dc3c" anchor="key-storage" inline-header="false" obligation="normative">
<title id="_715abe27-5832-de1e-f276-7711722eaf76">Encrypted storage</title>
<p id="_b08206bb-0213-7723-05b6-f2cf69723f75">Private keys shall be stored encrypted at rest using an authenticated encryption algorithm with adequate security strength. The encryption key shall be derived from a passphrase using a password-based key derivation function resistant to brute-force attacks. The choice of specific algorithms is an implementation decision.</p>

<p id="_549dad19-2178-31b1-9dc2-758d8f0be29d">Private keys shall not be stored in plaintext under any circumstances. Export of private keys shall require explicit user action and shall produce encrypted output.</p>
</clause>

<clause id="_32d0afb8-afda-8877-b166-e950c7911bd9" anchor="key-import-export" inline-header="false" obligation="normative">
<title id="_b1122434-79c3-80e5-b500-d6e3839655eb">Import and export</title>
<p id="_8590f75c-ac73-7f8b-25b8-cad66a2e5aaa">Key import and export shall use a recognized, interoperable key encoding format. PKCS#8 for private keys, SubjectPublicKeyInfo for public keys, and X.509 for certificates are recognized encodings; additional encodings may be registered.</p>

<p id="_0fad9b40-3b3f-afa1-47cc-629f17700f5d">Imported keys shall be validated for format correctness and algorithm consistency before use.</p>
</clause>

<clause id="_bf31ed98-5f75-1301-c3f5-8ff6916463f7" anchor="key-hardware" inline-header="false" obligation="normative">
<title id="_a69eb3cf-b5ef-c7cf-c1f2-66edf034cceb">Hardware security module interface</title>
<p id="_db0b005f-e3f7-47dc-5903-5529f29e98b8">Keys may be stored and used within a hardware security module (HSM) accessed via PKCS#11 or an equivalent interface. When an HSM is used:</p>

<ul id="_161d55d4-b4bb-caf7-f5b4-77b279ec13f0"><li><p id="_d822a3be-2667-9447-8909-6cd7bcb7a44c">The private key shall never leave the HSM in plaintext.</p>
</li>
<li><p id="_3e8eea65-59fe-046d-1ca4-5e7e1863c449">Signing operations shall be performed within the HSM.</p>
</li>
<li><p id="_8bbb513d-9622-7b0a-6734-f49182b8bec3">Session management shall use authenticated sessions with PIN or equivalent access control.</p>
</li>
<li><p id="_fbe8a598-44c3-bef5-f5d6-3048f57b914d">The HSM shall enforce access policies that prevent unauthorized key use.</p>
</li>
</ul>
</clause>

<clause id="_2206901d-5f42-85e3-fe23-02917a3bb3ee" anchor="key-csr" inline-header="false" obligation="normative">
<title id="_333b4cd6-e002-ed76-4392-2be75a161728">Certificate signing requests</title>
<p id="_ec666b1f-7c7b-f431-4522-191545e1705a">A certificate signing request (CSR) shall follow a recognized CSR format and shall include a proof-of-possession (PoP) signature demonstrating that the requester holds the private key corresponding to the public key in the request. PKCS#10 is a recognized format; additional formats may be registered.</p>

<p id="_3f764cc2-8928-4994-edc0-98bc9f62cfcd">The issuing <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> shall verify the PoP before issuing an <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> or delegation certificate.</p>
</clause>

<clause id="_dfc81012-2336-ccf7-0a51-51efc5274fd9" anchor="key-rotation" inline-header="false" obligation="normative">
<title id="_20010dd0-77c8-c068-0b23-f64c14cc838e">Key rotation</title>
<p id="_d542141b-206f-836a-463f-1cfdd43ce25e">Keys shall be rotated according to the authority’s key rotation policy. Rotation of threshold member shares shall preserve the  <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept> (see <xref target="threshold-aggregate-continuity"/>). Rotation of end certificate keys shall produce a new certificate under the same or narrower  <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept>.</p>
</clause>

<clause id="_2f3230f9-26ad-9008-e8aa-e59c0c863344" anchor="req-key-lifecycle" inline-header="false" obligation="normative">
<title id="_4093df7e-5cf5-5048-6c94-a435df5f3987">Requirements</title>
<p id="_d26db0e8-43c4-01d2-961e-f09bc0ca7724">Key lifecycle has its formalized requirements class described in <xref target="rc-key-lifecycle-1"/>, with its requirements listed from <xref target="r-key-lifecycle-1-1"/> to <xref target="r-key-lifecycle-1-6"/>.</p>

<requirement id="_11497c2a-2357-b490-6459-aac7e85bca8b" anchor="rc-key-lifecycle-1" model="ogc" type="class">
<title>Key lifecycle</title><identifier>/req/key-lifecycle</identifier><subject>key lifecycle</subject><inherit>/req/algorithms</inherit><inherit>/req/threshold-signing</inherit><description id="_5344d367-ed9e-03ae-0fe1-8f94f10b68b2"><p id="_e786a42e-de44-389d-0293-ee7c3c7e6827">Requirements on key generation, encrypted storage, import and export, hardware security module interfaces, certificate signing requests, and key rotation.</p>
</description><requirement id="_68c6b32c-e287-23df-b44d-be3bb2808148" model="ogc" type="general"> <identifier>/req/key-lifecycle/key-generation</identifier></requirement><requirement id="_fbf1fde7-2cec-808f-08a9-4cfb30232301" model="ogc" type="general"> <identifier>/req/key-lifecycle/encrypted-storage</identifier></requirement><requirement id="_8ffdcd31-ceba-6f7d-759d-dd3ebb46f5f3" model="ogc" type="general"> <identifier>/req/key-lifecycle/import-export</identifier></requirement><requirement id="_5af63f4c-e5cc-ede5-94a8-265030a8ce15" model="ogc" type="general"> <identifier>/req/key-lifecycle/hsm-interface</identifier></requirement><requirement id="_8250ecf0-2313-d719-5fc3-bcdb1e0d0d41" model="ogc" type="general"> <identifier>/req/key-lifecycle/csr-pop</identifier></requirement><requirement id="_cde10d90-03c6-7dd5-fc9e-5baaa8255e3e" model="ogc" type="general"> <identifier>/req/key-lifecycle/key-rotation</identifier></requirement>

</requirement>

<requirement id="_7094afbe-cf64-2b82-4b35-fd9281b80d1d" anchor="r-key-lifecycle-1-1" model="ogc">
<title>Secure key generation</title><identifier>/req/key-lifecycle/key-generation</identifier><description id="_0a1da116-6a37-e01d-9cb4-461d98b318d7"><p id="_d339daf9-8964-ba77-05c8-fde6db0b85d2">Keys shall be generated using a cryptographically secure random number generator with parameters conforming to the chosen algorithm specification.</p>
</description><component id="_82932d41-dfb4-63cd-9329-7f43296a515d" class="guidance"><p id="_28211470-8c9a-51fc-8511-9a74cd8d0ba6">Threshold key shares shall be generated using a threshold key generation protocol ensuring no individual member possesses the full signing key.</p>

<p id="_6c381351-97fa-7f70-8156-886625daf75f">Random bit generation should follow <eref type="inline" bibitemid="iso18031" citeas="ISO/IEC 18031:2025"/>.</p>
</component>

</requirement>

<requirement id="_d38e7ef2-59de-9c48-f667-9c6f3eb71bf3" anchor="r-key-lifecycle-1-2" model="ogc">
<title>Encrypted key storage</title><identifier>/req/key-lifecycle/encrypted-storage</identifier><description id="_ac809b69-bd19-03af-ab6b-6c0d050d13cf"><p id="_56870608-363a-0e3c-2e24-d349d0142c3b">Private keys shall be stored encrypted at rest using an authenticated encryption algorithm meeting the minimum security parameters in <xref target="tab-security-parameters"/>, with the encryption key derived from a passphrase using a password-based key derivation function resistant to brute-force attacks.</p>
</description><component id="_3620bb11-8445-2f0a-879a-45fe09c6ebf6" class="guidance"><p id="_94677829-441e-84d1-6dc6-90db99062dc2">The choice of specific encryption and derivation algorithms is an implementation decision.</p>

<p id="_dd7b95b4-31d7-814f-fe9d-63a90ab6bf0e">Private keys shall not be stored in plaintext under any circumstances.</p>

<example id="_e0b1e5b2-232a-b03f-3b8d-ba8920e30afd"><p id="_46438789-5bdc-4aa5-f38d-b3fb172fa8c1">AES-256-GCM is an example of a suitable authenticated encryption algorithm.</p>
</example>

<example id="_a9c58826-3a55-669c-dc0e-ab7fa8b103cb"><p id="_202fd54b-e8d2-3bf4-5433-d63d64cfbe25">PBKDF2, Argon2, and scrypt are examples of suitable key derivation functions.</p>
</example>
</component>

</requirement>

<requirement id="_240f52d1-9b8e-4f81-b2e4-cbd3819ff563" anchor="r-key-lifecycle-1-3" model="ogc">
<title>Key import and export encodings</title><identifier>/req/key-lifecycle/import-export</identifier><description id="_eed4dd9a-05e8-4cd9-0a9d-a1fff610b04e"><p id="_9ba608ef-8e95-ffdc-3ff8-bbe1edcc0911">Key import and export shall use a recognized, interoperable key encoding format.</p>
</description><component id="_2b7c4a44-783c-e0fa-981a-971db396d4ef" class="guidance"><p id="_babe1404-f7af-5989-4869-4c612d14aac2">Imported keys shall be validated for format correctness and algorithm consistency before use.</p>

<p id="_57ab943e-aecb-50f1-79fb-ebe38fe24d5c">Additional encodings may be registered per Annex C.</p>

<example id="_abc435aa-cbc8-30af-f754-a5a7ee62e2e4"><p id="_8e42fd11-ab0b-2dda-8911-f03a370476aa">PKCS#8 for private keys, SubjectPublicKeyInfo for public keys, and X.509 for certificates are examples of recognized encodings.</p>
</example>

<example id="_5f4f298e-bffa-9b2a-31a7-edefe3960d4a"><p id="_8e3459d6-26c7-f914-6aa3-789adeee472a">JOSE JWK and COSE key format are examples of alternative interoperable encodings.</p>
</example>
</component>

</requirement>

<requirement id="_8833a7b2-7af4-0194-ce84-1cf6c5f1236a" anchor="r-key-lifecycle-1-4" model="ogc">
<title>Hardware security module interface</title><identifier>/req/key-lifecycle/hsm-interface</identifier><description id="_3732480e-0e9c-9d10-f8f3-ed7be2b4e1a8"><p id="_8fd93747-a243-952b-c730-098ddad7dc1c">When an HSM is used, the private key shall never leave the HSM in plaintext, signing shall be performed within the HSM, and session management shall use authenticated sessions with PIN or equivalent access control.</p>
</description><component id="_ce0eee4b-8071-89a8-dc11-c1a37aa863c9" class="guidance"><p id="_72641957-1ad6-5d4a-b3c6-f841b6f6a673">The HSM shall enforce access policies preventing unauthorized key use.</p>

<p id="_3cb42ff6-3f83-2a25-f98a-d89671b38987">An HSM evaluated under <eref type="inline" bibitemid="iso19790" citeas="ISO/IEC 19790:2025"/> (methodology <eref type="inline" bibitemid="iso18045" citeas="ISO/IEC 18045:2026"/>) satisfies these requirements structurally; the OASIS PKCS #11 interface (<eref type="inline" bibitemid="pkcs11" citeas="PKCS #11 v3.0"/>) is an example device interface.</p>
</component>

</requirement>

<requirement id="_555d398c-0d59-1101-d5bd-381e24a46b6d" anchor="r-key-lifecycle-1-5" model="ogc">
<title>Certificate signing request with proof of possession</title><identifier>/req/key-lifecycle/csr-pop</identifier><description id="_9b4c80c2-169e-dc83-3d0c-a8fcc0e7ccee"><p id="_45d61fb9-4e4a-74a4-05a7-b79b78ab6543">A certificate signing request shall follow a recognized CSR format and shall include a proof-of-possession signature demonstrating the requester holds the corresponding private key.</p>
</description><component id="_2bfbd662-dca6-7e74-40bf-1a8544f927df" class="guidance"><p id="_bf33db13-7f83-8e2a-19ef-58d801f3da8b">The issuing trust authority shall verify the proof-of-possession before issuing a certificate.</p>

<p id="_0a577c25-3880-c0f1-b8a8-ab4d7c880176">Additional CSR formats may be registered per Annex C.</p>

<example id="_282bf573-5660-f612-51a8-7e6b96b9c4ce"><p id="_56b02ae4-c111-863d-8151-2bed8c95b0af">PKCS#10 is an example of a recognized CSR format.</p>
</example>

<example id="_f01b91b1-61d6-1dd2-767d-67a995a19ffa"><p id="_8a4d161d-fb93-f61d-8d3c-f75cc3cb300a">The PKCS #10 certificate request syntax (<eref type="inline" bibitemid="pkcs10" citeas="PKCS #10 v1.7"/>) is the reference format. The PKCS #10 certificate request syntax (<eref type="inline" bibitemid="pkcs10" citeas="PKCS #10 v1.7"/>) is the reference format.</p>
</example>
</component>

</requirement>

<requirement id="_7386c43e-43d1-b9c5-c936-a370f28a03da" anchor="r-key-lifecycle-1-6" model="ogc">
<title>Key rotation</title><identifier>/req/key-lifecycle/key-rotation</identifier><description id="_a7a21bb5-6988-6def-7b3e-9510bc36edd0"><p id="_0e8c4e1f-cd43-25bd-3dd9-b9e256bac62b">Keys shall be rotated according to the authority’s key rotation policy, with threshold member rotation preserving the aggregate key and end certificate key rotation producing a new certificate under the same or narrower scope.</p>
</description>

</requirement>
</clause>
</clause>

<clause id="_6af53800-7d59-451b-b3bd-6440f17a8ab0" anchor="delivery" inline-header="false" obligation="normative">
<title id="_9356d022-dc86-90cb-7a4a-27753487ba1e">Delivery and discovery</title>
<clause id="_893f419b-4212-bacf-9918-057e1685ea2e" inline-header="false" obligation="normative">
<title id="_634be367-f84a-64ee-f156-7cdb5dcb6113">General</title>
<p id="_ba73568b-4b47-7277-f748-334393e93f54">This clause specifies how <concept><refterm>trusted artifact</refterm><renderterm>trusted artifacts</renderterm><xref target="term-trusted-artifact"/></concept> and certificates are delivered to verifiers, and how delegation chains are discovered and resolved. Delivery mechanisms include compact encodings for non-connected devices, machine-readable public projections, and chain discovery strategies.</p>

<p id="_007b519a-7c41-d0d3-fcba-70404eb120f3">Delivery and discovery are distinct from verification: a verifier first obtains the artifact (delivery), then resolves its chain (discovery), then applies the verification pipeline (<xref target="verification"/>).</p>
</clause>

<clause id="_560e37fa-d6fb-0e54-7438-f0eb2d895069" anchor="delivery-qr" inline-header="false" obligation="normative">
<title id="_9b841c96-080c-ff0b-23f9-1e4f4c18d90a">Compact encoding (two-dimensional barcode)</title>
<p id="_8f6c3a61-2292-d9bf-9172-6895d27cfc4d">For delivery to devices without network connectivity, a <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> or its  <concept><refterm>passport</refterm><renderterm>passport</renderterm><xref target="term-passport"/></concept> may be encoded as a two-dimensional barcode (e.g., QR code). The encoding shall:</p>

<ul id="_8fe475f0-7a41-1858-e16c-3af9c23300a8"><li><p id="_f7a339bd-d8d9-11d0-9c97-fd64011b4f67">be self-contained, carrying the artifact or passport data plus the minimum chain necessary for offline verification;</p>
</li>
<li><p id="_fda20641-6aff-150d-7ca1-51385d2b0fcf">include error correction sufficient for the expected scanning environment;</p>
</li>
<li><p id="_dff0dbcd-2fae-c109-d62a-f6f3a07bdd60">carry a version identifier for encoding evolution.</p>
</li>
</ul>

<p id="_0907c803-31d2-8e43-4e20-cbc53254e735">The maximum data capacity of the barcode format constrains the artifact size. For larger artifacts, the barcode may carry a compact reference (e.g., a transparency log sequence number) that a connected verifier resolves.</p>
</clause>

<clause id="_382924a1-a5b5-91b1-cbf6-aefb4fe856f1" anchor="delivery-passport" inline-header="false" obligation="normative">
<title id="_af71f9ea-abb8-963a-592d-c46606a1823f">Passport</title>
<p id="_c24363ef-3010-f07f-240e-96600bf8cccc">A <concept><refterm>passport</refterm><renderterm>passport</renderterm><xref target="term-passport"/></concept> is the machine-readable public projection of an <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> or <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept>, optimized for compact storage and rapid presentation. A passport shall:</p>

<ul id="_fa8a9812-eb43-ae90-1a99-9dd412b99149"><li><p id="_7a7a581c-1437-931a-5bcc-3f424e46fc36">carry the certificate or artifact identifier, key fingerprint, scope summary, and validity period;</p>
</li>
<li><p id="_bffdc7f9-e1b0-17db-3e47-31c1e2a5876c">be expressible in a deterministic, machine-readable format (e.g., JSON-LD or CBOR);</p>
</li>
<li><p id="_fe253884-fb2a-1e0f-b8b3-798c07f2ed69">be verifiable against the same trust anchor bundle and transparency log as the underlying certificate or artifact.</p>
</li>
</ul>

<p id="_4beabce8-a100-60cd-f574-0ce6a9b58763">A passport is a presentation format, not a separate trust object. The underlying certificate or artifact remains the authoritative source.</p>
</clause>

<clause id="_d54641fe-4909-27ef-b9f4-02b2ea402ada" anchor="delivery-chain-discovery" inline-header="false" obligation="normative">
<title id="_64a3fe5f-d80e-2029-4086-a3913bcc0641">Chain discovery mechanisms</title>
<p id="_4ce8a506-b80c-40cf-9220-a85a760a5c44">Chain discovery mechanisms are specified in <xref target="architecture-discovery"/>. This clause specifies the delivery aspects:</p>

<ul id="_434a49c5-3d95-22eb-f435-1f46fdc8f979"><li><p id="_34af7525-fdc2-5e53-2799-1e958b29b296">Embedded chain delivery. The artifact carries the full chain inline. No additional network access is required for discovery.</p>
</li>
<li><p id="_27ad35bb-7f95-73ec-2249-6bad2c9062eb">Transparency-log reference delivery. The artifact carries references (transparency-log sequence numbers). The verifier fetches the referenced certificates from a transparency log or mirror on first encounter.</p>
</li>
<li><p id="_98de567a-7fc5-23e4-4234-2eaabaedccdc">Hybrid delivery. The artifact carries the end certificate and immediate chain, with transparency-log references for the remaining chain.</p>
</li>
</ul>
</clause>

<clause id="_e2710646-6c07-2d21-adbb-99941471e821" anchor="delivery-connected" inline-header="false" obligation="normative">
<title id="_daebf9cc-ebe2-4c79-b24b-6b0c04ccdde3">Connected device delivery</title>
<p id="_e926507a-be5f-ac7d-e2c9-0324336ded0f">For connected devices, artifacts and certificates may be delivered via network protocols. The delivery protocol shall:</p>

<ul id="_309c7fba-a11f-60c7-8643-0d9c0be6a802"><li><p id="_a706284b-474d-039a-7570-0cf55d1383e7">authenticate the source (e.g., via TLS or equivalent);</p>
</li>
<li><p id="_564b7277-b7c6-93fb-8212-3025ff3090f6">provide integrity protection for the delivered data;</p>
</li>
<li><p id="_c10edfb7-ea70-57f2-f8b3-c7f4a71b81ae">support caching of certificates and transparency log entries to minimize repeated network access.</p>
</li>
<note id="_ca72a33b-934f-ed39-6f3e-85d70eadbb19"><p id="_71a1cfb8-edbd-6573-80b2-543a89b716a3">The specific transport protocol is out of scope of this document (see <xref target="scope"/>). Implementations may use any protocol that satisfies the above requirements.</p>
</note></ul>


</clause>

<clause id="_d711048d-196c-b16a-ef62-79dad956973b" anchor="delivery-challenge-response" inline-header="false" obligation="normative">
<title id="_263d4bec-0114-f359-f62f-8f0f9e0ee37c">Challenge-response</title>
<p id="_daa4aa24-7fe3-da50-ee78-2cefe82e1cdb">A verifier may challenge a device signer to produce a fresh <concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> bound to a nonce, proving that the signing key is live and the artifact was produced on demand.</p>

<p id="_ebb3b8e0-4c29-3640-34c6-88cd8951a880">A challenge-response exchange shall satisfy the following:</p>

<ul id="_32fb35c9-5237-68cc-a318-032180fb4957"><li><p id="_e6d12bdb-3809-0dea-f865-4acd89481dc7">Nonce entropy. The nonce shall have at least 128 bits of entropy and shall be generated using a cryptographically secure random source.</p>
</li>
<li><p id="_aac08a7c-576b-7c34-56e0-08401924a587">Freshness window. The verifier shall apply a time freshness window (see  <xref target="verification-freshness"/>) to the challenge-response. A response received outside the window shall be rejected.</p>
</li>
<li><p id="_6378d892-6a08-eb7c-8f76-f8667276c9e8">Nonce binding. The device shall bind the nonce into the <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept> of the response artifact, such that the signature covers the nonce.</p>
</li>
<li><p id="_e0acdd54-d44e-d3f1-6c3c-0d5aa1de0070">Replay rejection. The verifier shall reject any response whose nonce does not match the challenge nonce, or whose timestamp falls outside the freshness window.</p>
</li>
<li><p id="_f531d15a-d2bb-2b01-636f-8f2173d3b086">Single-use nonce. The verifier shall not accept two responses for the same challenge nonce.</p>
</li>
</ul>
</clause>

<clause id="_057dafa3-7e2c-2d61-9e1f-6b496468ef7b" anchor="req-delivery" inline-header="false" obligation="normative">
<title id="_943c83ea-1d46-4698-4385-855e02c76f73">Requirements</title>
<p id="_792fc5ea-8e4d-271b-bb87-2b21a2e24f5f">Delivery and discovery has its formalized requirements class described in <xref target="rc-delivery-1"/>, with its requirements listed from <xref target="r-delivery-1-1"/> to <xref target="r-delivery-1-6"/>.</p>

<requirement id="_0ecddf12-fa1d-bd66-8b7d-c4002526ce42" anchor="rc-delivery-1" model="ogc" type="class">
<title>Delivery and discovery</title><identifier>/req/delivery</identifier><subject>delivery and discovery</subject><inherit>/req/architecture</inherit><inherit>/req/artifact-format</inherit><description id="_6e6bc38e-7a9f-cf64-5848-bdca23a22b16"><p id="_03e14aa9-54f1-4c80-9f31-aa81d3b6a148">Requirements on artifact and certificate delivery, compact barcode encoding, passport format, and chain discovery mechanisms.</p>
</description><requirement id="_c36c2219-a6bd-5bcc-aa25-9ba39b152170" model="ogc" type="general"> <identifier>/req/delivery/barcode-encoding</identifier></requirement><requirement id="_05ff7cb5-90fe-ac22-39f9-65d09c4f74ce" model="ogc" type="general"> <identifier>/req/delivery/passport-format</identifier></requirement><requirement id="_da79278e-8fa0-0e6c-0b44-1d6766bbdb87" model="ogc" type="general"> <identifier>/req/delivery/embedded-delivery</identifier></requirement><requirement id="_04a6819c-085a-9f52-d4e5-39e9748f6ace" model="ogc" type="general"> <identifier>/req/delivery/log-reference-delivery</identifier></requirement><requirement id="_63eea3b9-2843-a16e-0d69-a0b3b7fa5912" model="ogc" type="general"> <identifier>/req/delivery/connected-delivery</identifier></requirement><requirement id="_59ce4bf2-5d6f-74d4-cfef-bff28e5687fc" model="ogc" type="general"> <identifier>/req/delivery/challenge-response</identifier></requirement>

</requirement>

<requirement id="_99dcc5b1-d75d-69a8-cfd9-1cbbd4e2921f" anchor="r-delivery-1-1" model="ogc">
<title>Compact barcode encoding</title><identifier>/req/delivery/barcode-encoding</identifier><description id="_c7e83e13-4eee-ebfa-65df-dfaf90427182"><p id="_400b3327-f605-7be4-846e-aed365e15fab">A trusted artifact or passport delivered as a two-dimensional barcode shall be self-contained, carry a version identifier, and include error correction sufficient for the expected scanning environment.</p>
</description><component id="_961e2937-006d-00d7-473b-afce730a2522" class="guidance"><p id="_f41d2240-41eb-c20d-dabc-9f5d8d53fea4">The maximum data capacity of the barcode format constrains artifact size.</p>

<p id="_27d4e0df-2cf7-f23a-bf92-d9f4c2ef2d8b">For larger artifacts, the barcode may carry a compact reference resolvable by a connected verifier.</p>
</component>

</requirement>

<requirement id="_787ba1db-7879-9d0a-b4c9-e65051e867ef" anchor="r-delivery-1-2" model="ogc">
<title>Passport format</title><identifier>/req/delivery/passport-format</identifier><description id="_ebb4439d-208e-e063-815b-43cda887116b"><p id="_ae154e97-2d5c-6cf9-f92e-3013aa2516eb">A passport shall carry the certificate or artifact identifier, key fingerprint, scope summary, and validity period, shall be expressible in a deterministic machine-readable format, and shall be verifiable against the same trust anchor bundle and transparency log as the underlying object.</p>
</description><component id="_52433bce-6592-aa6f-25e1-01b35406c190" class="guidance"><p id="_98c15c68-6f53-1c5d-0ca2-af80e5e6dcba">A passport is a presentation format, not a separate trust object.</p>

<p id="_b8c057a6-c7d9-efa6-4333-5a14ff326e9e">Check characters per <eref type="inline" bibitemid="iso7064" citeas="ISO/IEC 7064:2003"/> may protect the compact encoding. Check characters per <eref type="inline" bibitemid="iso7064" citeas="ISO/IEC 7064:2003"/> may protect the compact encoding.</p>
</component>

</requirement>

<requirement id="_19566cff-bc27-73bc-98b7-97ffc2000adb" anchor="r-delivery-1-3" model="ogc">
<title>Embedded chain delivery</title><identifier>/req/delivery/embedded-delivery</identifier><description id="_bf129847-4a46-f6df-bfae-587d277f8c16"><p id="_d4da8fbf-ca27-77ac-1300-b28caabb94f2">An artifact delivered with an embedded chain shall carry the full delegation chain inline, requiring no additional network access for chain discovery.</p>
</description>

</requirement>

<requirement id="_2ea0674f-5d4e-fd77-a510-dc5211e2d009" anchor="r-delivery-1-4" model="ogc">
<title>Transparency-log reference delivery</title><identifier>/req/delivery/log-reference-delivery</identifier><description id="_f7d1e8fc-3d2c-2ff7-ad48-b20c0b954c8c"><p id="_43f3b172-f650-7cde-8be7-1399f542a0b1">An artifact delivered with transparency-log references shall carry sequence number pointers enabling the verifier to fetch referenced certificates from a transparency log or mirror on first encounter.</p>
</description>

</requirement>

<requirement id="_ce93cc49-c3c3-7fbe-8b17-98608bdd868b" anchor="r-delivery-1-5" model="ogc">
<title>Connected device delivery integrity</title><identifier>/req/delivery/connected-delivery</identifier><description id="_8fb718df-125c-4c95-0ddc-f437368fdd01"><p id="_a385d314-fa8d-2bbb-8a66-8e6551122c44">Delivery via network protocols shall authenticate the source, provide integrity protection, and support caching of certificates and transparency log entries.</p>
</description><component id="_1bf71a78-6cad-18fd-d7fe-af3ef01f0b3f" class="guidance"><p id="_e23b3a52-9d87-29b1-1d59-e3ebdb0e25b4">The specific transport protocol is out of scope of this document.</p>
</component>

</requirement>

<requirement id="_2515284a-e521-ad02-6028-14d45f51073b" anchor="r-delivery-1-6" model="ogc">
<title>Challenge-response protocol</title><identifier>/req/delivery/challenge-response</identifier><description id="_80bd2de4-1717-f932-51c7-18c67215d7b4"><p id="_bc4067ef-e38b-5fee-a156-649151eaed5c">A challenge-response exchange shall use a nonce with at least 128 bits of entropy, bind the nonce into the canonical payload of the response artifact, and shall be subject to the time freshness window. The verifier shall reject any response whose nonce does not match the challenge or whose timestamp falls outside the freshness window, and shall not accept two responses for the same challenge nonce.</p>
</description><component id="_a6fb7a80-a9a2-98e2-c94f-3ea93e6141c2" class="guidance"><p id="_75a22404-2531-05fc-6851-63435aa9c2fe">Challenge-response proves that the signing key is live and the artifact was produced on demand.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_c231e7bc-3ac0-bd7b-659f-0e0562644728" anchor="ceremony-records" inline-header="false" obligation="normative">
<title id="_a79a9e12-b9a3-6a87-5e00-0de64303bd34">Ceremony records and transcripts</title>
<clause id="_a780795e-63f4-ee1c-1619-256dbc113781" inline-header="false" obligation="normative">
<title id="_89212685-a1bf-fd8a-61d2-bc69431d69c1">General</title>
<p id="_c9696795-c58e-65ae-13bd-3ab4fc048563">A <concept><refterm>ceremony</refterm><renderterm>ceremony</renderterm><xref target="term-ceremony"/></concept> record is a verifiable transcript of a threshold signing ceremony. It documents who participated, what was signed, the quorum parameters, and the signature produced. Ceremony records provide signing accountability and auditability for threshold signing operations.</p>

<p id="_c2a532d5-453d-d230-dd89-27bc0c6ce9f7">This clause specifies the transcript format, signing requirements, persistence, and the audit algorithm.</p>
</clause>

<clause id="_90d697d5-7477-b216-891c-10dc88a2831d" anchor="ceremony-transcript-format" inline-header="false" obligation="normative">
<title id="_71b6bfba-ea8d-c949-2030-7cd926189d53">Transcript format</title>
<p id="_a9d21aa2-fab3-ad15-cd09-332ef5ffff4a">A ceremony transcript shall be expressed in a deterministic, machine-readable format and shall contain:</p>

<ul id="_dbde0ecd-c213-b115-1674-fa5209e36d66"><li><p id="_7603a1d7-e7a7-1f16-f73a-d379b9a6b06a">Ceremony type. The type of ceremony (e.g., root creation, DTA issuance, member rotation, re-share, artifact signing).</p>
</li>
<li><p id="_3a698fdf-72b3-1341-22ec-e9313073fa70">Participants. The identities of the participating key holders, with their contribution proofs.</p>
</li>
<li><p id="_6ef5da09-f261-d7b8-f1fa-ef43a4b19ca0">Quorum parameters. The (T, N) threshold parameters and the number of participants who contributed.</p>
</li>
<li><p id="_3d684579-a48a-0c94-86c4-9197545557ac">Payload. The <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept> hash that was signed.</p>
</li>
<li><p id="_7153915a-d379-5ac4-a8c6-b3e46e1593db">Signature. The resulting threshold signature under the authority’s <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept>.</p>
</li>
<li><p id="_1e39f238-f2cc-bfee-4abe-e9fc29da8fad">Timestamp. The time of the ceremony, anchored to a <concept><refterm>time key</refterm><renderterm>time key</renderterm><xref target="term-time-key"/></concept> or external time source where possible.</p>
</li>
</ul>
</clause>

<clause id="_fff3324c-2da0-44ea-73f9-7b12ff998e12" anchor="ceremony-signing" inline-header="false" obligation="normative">
<title id="_23a052d3-5b1d-868e-2a7f-a1eb453b6c89">Transcript signing</title>
<p id="_4f92c6e9-24ab-f240-e0eb-a1cf159d3423">The ceremony transcript shall be signed by each participating member, attesting to their participation. The transcript shall also carry the aggregate threshold signature produced by the ceremony.</p>

<p id="_d330ef4a-bbb5-303e-291a-ffeebcc87d8e">A transcript without all member signatures or without the aggregate signature is incomplete and shall not be accepted as evidence of a valid ceremony.</p>
</clause>

<clause id="_d93283ca-46e5-bbec-b4c8-8fe136c4c139" anchor="ceremony-persistence" inline-header="false" obligation="normative">
<title id="_ef198327-846e-c2af-c526-4905f44d6b8d">Persistence and retention</title>
<p id="_3a6b1c3c-1be5-8f02-0f7b-1ed4299f03e4">Ceremony transcripts shall be persisted to durable storage and retained for the validity period of the artifacts they produced. Retention shall exceed the maximum possible artifact lifetime, including any grace periods.</p>

<p id="_1a332697-f777-7218-0191-3f2fd7ff4196">Transcripts shall be cross-referenced with the <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept>: the artifact or certificate produced by the ceremony shall appear in the log, and the transcript shall reference the corresponding log entry.</p>
</clause>

<clause id="_aee89877-34f9-3d3b-4a8b-d57dd0e747bf" anchor="ceremony-audit" inline-header="false" obligation="normative">
<title id="_4fb3d1de-8f4f-730c-0669-dfccc8491d1a">Audit algorithm</title>
<p id="_e6310e7f-ddfe-61d2-9fb1-6ff29e519a60">The ceremony audit algorithm verifies that a ceremony transcript is consistent and valid:</p>

<ol id="_2161c1f9-4a89-04de-e4aa-778ecf2e0d97"><li><p id="_962563c1-f89f-e910-a40c-7e6a8057527f">Verify each member’s participation signature.</p>
</li>
<li><p id="_abf95379-84aa-d16e-7c2d-b35b2d1f8fa0">Verify the aggregate threshold signature against the authority’s published aggregate key.</p>
</li>
<li><p id="_9c82ba92-8de5-d9d0-b21a-6b28e1f46091">Confirm that at least T of N members participated.</p>
</li>
<li><p id="_13cd49fc-cc6a-fead-ab3f-64727bdcf5a2">Cross-reference the transcript’s payload with the <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept> entry for the produced artifact or certificate.</p>
</li>
<li><p id="_bf9a85ff-7cce-ccbd-16ea-824eaaec8a64">Confirm the timestamp is consistent with the transparency log entry.</p>
</li>
</ol>
</clause>

<clause id="_16560234-5627-ab22-ed45-42b0e7c63157" anchor="req-ceremony" inline-header="false" obligation="normative">
<title id="_7b1b4abd-68a0-6fd3-ab53-7d652a1d061e">Requirements</title>
<p id="_757f1c23-4e0f-659c-0e6c-a3a00dca5217">Ceremony records has its formalized requirements class described in <xref target="rc-ceremony-1"/>, with its requirements listed from <xref target="r-ceremony-1-1"/> to <xref target="r-ceremony-1-5"/>.</p>

<requirement id="_ad48de8e-ec15-388a-9b57-10f4b1780174" anchor="rc-ceremony-1" model="ogc" type="class">
<title>Ceremony records</title><identifier>/req/ceremony</identifier><subject>ceremony records</subject><inherit>/req/threshold-signing</inherit><description id="_60d92c6c-f964-9ccb-e485-56c0912ebca0"><p id="_4dedcdb8-99ba-4286-b02d-039d5021d09d">Requirements on ceremony transcript format, signing, persistence, retention, and the audit algorithm.</p>
</description><requirement id="_8a53e525-fdbc-0f07-7883-17a7ebd6b084" model="ogc" type="general"> <identifier>/req/ceremony/transcript-contents</identifier></requirement><requirement id="_41b4d813-b79d-e60a-efbb-8dbd1d325c59" model="ogc" type="general"> <identifier>/req/ceremony/transcript-signing</identifier></requirement><requirement id="_28189cb1-1598-204e-c8ac-ff25e7ad5ef9" model="ogc" type="general"> <identifier>/req/ceremony/transcript-persistence</identifier></requirement><requirement id="_9688630e-0d5d-95c4-b932-f0f16c4029f2" model="ogc" type="general"> <identifier>/req/ceremony/transcript-log-cross-reference</identifier></requirement><requirement id="_8a92df0d-86b1-3b66-37f4-e1b7136e7340" model="ogc" type="general"> <identifier>/req/ceremony/audit-algorithm</identifier></requirement>

</requirement>

<requirement id="_65eb3206-9ed6-0609-aeb4-80bca417d747" anchor="r-ceremony-1-1" model="ogc">
<title>Transcript contents</title><identifier>/req/ceremony/transcript-contents</identifier><description id="_fba2578b-717b-a9b2-6b66-d8bb239097e9"><p id="_56b037c9-28c8-ebd2-d75f-5a9c923d1ff8">A ceremony transcript shall contain the ceremony type, participant identities with contribution proofs, quorum parameters, the canonical payload hash signed, the resulting aggregate threshold signature, and a timestamp.</p>
</description>

</requirement>

<requirement id="_9f2cd9e2-14a8-c1a5-c90f-6a40116d92cf" anchor="r-ceremony-1-2" model="ogc">
<title>Transcript signing by participants</title><identifier>/req/ceremony/transcript-signing</identifier><description id="_8b595113-88c1-306a-a2b5-70dd5ab982d5"><p id="_6ab6f849-c0c5-98a5-010c-993779e409bc">A ceremony transcript shall be signed by each participating member attesting their participation, and shall carry the aggregate threshold signature produced by the ceremony.</p>
</description><component id="_5ff7566b-903c-ca34-575f-df6ee8907c3f" class="guidance"><p id="_9e2aa17c-61f9-c8f4-8347-910edf17cd0a">A transcript without all member signatures or the aggregate signature is incomplete and shall not be accepted.</p>
</component>

</requirement>

<requirement id="_6d4b8175-c1ee-8f39-964f-3e60fa9102ed" anchor="r-ceremony-1-3" model="ogc">
<title>Transcript persistence and retention</title><identifier>/req/ceremony/transcript-persistence</identifier><description id="_314693e6-26ad-8ff6-d2af-2563c081674c"><p id="_7e61d63d-7935-66aa-b0b9-e7e6ff01b93a">Ceremony transcripts shall be persisted to durable storage and retained for the validity period of the artifacts they produced, exceeding the maximum possible artifact lifetime including grace periods.</p>
</description>

</requirement>

<requirement id="_76092340-1a48-a751-fea2-319d6b1b34a2" anchor="r-ceremony-1-4" model="ogc">
<title>Transcript transparency log cross-reference</title><identifier>/req/ceremony/transcript-log-cross-reference</identifier><description id="_87ad91f3-dd76-b243-98af-531c856bc2f0"><p id="_b3ad3b7a-ec6d-d484-593b-883e775b8fc6">A ceremony transcript shall be cross-referenced with the transparency log entry for the artifact or certificate produced by the ceremony.</p>
</description>

</requirement>

<requirement id="_00b10150-7aaf-08a2-85f9-2bb3315f9e9d" anchor="r-ceremony-1-5" model="ogc">
<title>Transcript audit algorithm</title><identifier>/req/ceremony/audit-algorithm</identifier><description id="_26aad50a-26c9-a9f5-5b0e-560ec4ef717d"><p id="_b323a829-314a-0585-4593-71861fae12e1">The ceremony audit algorithm shall verify each member participation signature, verify the aggregate threshold signature, confirm at least T of N members participated, cross-reference the payload with the transparency log entry, and confirm timestamp consistency.</p>
</description>

</requirement>
</clause>
</clause>

<clause id="_59f7bddb-2892-76d7-d879-a0ed5f7c49a6" anchor="manifest" inline-header="false" obligation="normative">
<title id="_8ae3af6b-5aa2-58ea-b152-9d6a777093ae">Deployment manifest</title>
<clause id="_add510f1-4caf-e129-2924-1304dec6c934" inline-header="false" obligation="normative">
<title id="_132d93a1-598b-23e3-da5c-92481cbdb28f">General</title>
<p id="_0eb64a79-abf3-fad8-230e-312618d903f7">A deployment manifest is a declarative description of a SIGNATIF deployment’s topology, authorities, algorithms, and transparency endpoints. It enables a deployer to declare the structure of their trust infrastructure in a machine-checkable format, and enables verifiers to understand the deployment’s configuration.</p>

<p id="_9ef8e231-6213-b8ad-622d-859dc80b550a">This clause specifies the manifest format, required fields, validation rules, and versioning.</p>
</clause>

<clause id="_f1664714-2e9c-4045-bd56-0bd9ea6e15c8" anchor="manifest-format" inline-header="false" obligation="normative">
<title id="_93a94594-27b6-1116-95fa-119bf2931a0e">Manifest format</title>
<p id="_e2bb9c73-d814-3aa6-b572-e211b206bdc0">A deployment manifest shall be expressed in a declarative format (e.g., TOML, YAML, or JSON) and shall carry a manifest version identifier for evolution.</p>

<p id="_12f6ba68-9a90-2b9e-b349-22897720dd8c">The manifest shall be signed by the <concept><refterm>root trust authority</refterm><renderterm>root trust authority</renderterm><xref target="term-root-trust-authority"/></concept> whose deployment it describes.</p>
</clause>

<clause id="_69297296-8191-ff05-f570-f842228bc5f9" anchor="manifest-contents" inline-header="false" obligation="normative">
<title id="_4d577d5b-25b5-d24e-df04-f8f47579a77a">Manifest contents</title>
<p id="_7dcd5a8e-c36e-1b42-e906-4436f2292c80">A deployment manifest shall declare the following:</p>

<ul id="_4b3b14b3-d035-f6ef-f513-4626973527ef"><li><p id="_3cf634af-e77a-b7bd-ed6d-edae182f885f">Topology type. The trust topology profile (hierarchical, federated, cross-recognized, or mesh) per  <xref target="conformance"/>.</p>
</li>
<li><p id="_d7e02621-823c-4ec2-f3e2-b0de1db8c9de">Authorities. The <concept><refterm>trust authority</refterm><renderterm>trust authorities</renderterm><xref target="term-trust-authority"/></concept> in the deployment, each with its identifier,  <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept> or fingerprint, <concept><refterm>quorum</refterm><renderterm>quorum</renderterm><xref target="term-quorum"/></concept> parameters (if threshold), and parent reference.</p>
</li>
<li><p id="_6b593234-21d7-e801-5c99-1e7c1fd0c74d">Scope. The root <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> and any delegation narrowing rules.</p>
</li>
<li><p id="_f6e62dec-adc2-26f3-f7d3-6c671dab1c13">Algorithms. The signature algorithms recognized by the deployment (classical, post-quantum, or composite).</p>
</li>
<li><p id="_3ba33dbd-4044-decb-535d-abc76bd286fe">Transparency endpoints. The <concept><refterm>transparency log</refterm><renderterm>transparency logs</renderterm><xref target="term-transparency-log"/></concept> and <concept><refterm>mirror</refterm><renderterm>mirrors</renderterm><xref target="term-mirror"/></concept> recognized by the deployment, with their endpoints and public keys.</p>
</li>
<li><p id="_a464308f-1c9f-b619-e4e6-6b3e98446832">Multi-log policy. If applicable, the M-of-K multi-log attestation parameters.</p>
</li>
<li><p id="_84171b47-a6da-1acf-90a4-2f1545668618">Classification policy. The scheme’s classification policy that maps coverage report fields to grade labels (see  <xref target="verification-classification"/>). The classification policy shall be a pure function of the coverage report fields.</p>
</li>
<li><p id="_d243158d-33fd-be1c-229c-fe2c3260960a">Trust anchor references. References to the <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept> version(s) recognized by the deployment.</p>
</li>
</ul>
</clause>

<clause id="_4f956a9d-00b1-91ac-d2d2-cfed467d32c3" anchor="manifest-validation" inline-header="false" obligation="normative">
<title id="_c8267faa-b873-720a-c533-06eaac3cf1a0">Validation rules</title>
<p id="_290d7c67-781d-4652-d827-0128b2fb545a">A deployment manifest shall satisfy the following validation rules:</p>

<ul id="_8b3faab4-ea8c-d7b6-1696-96130e8142f3"><li><p id="_e8417735-a2d2-9d50-32e8-cb583f4b5650">All declared authorities shall form a valid <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept> — a DAG with no cycles.</p>
</li>
<li><p id="_b4a303e8-6d66-62e8-118c-45f895731f94">Every delegation link shall satisfy the <concept><refterm>monotonic narrowing invariant</refterm><renderterm>monotonic narrowing invariant</renderterm><xref target="term-monotonic-narrowing-invariant"/></concept> on scope.</p>
</li>
<li><p id="_12a08f1a-b1a2-74a5-68fa-7e833e061ea8">Quorum parameters shall be consistent: T shall not exceed N for any threshold authority.</p>
</li>
<li><p id="_f8d53a41-3ee8-21fd-a4b4-7c22aa265792">Declared algorithms shall be recognized by this document’s algorithm registry.</p>
</li>
<li><p id="_5dc15dd2-5492-256f-3825-dfd7ca9606fa">Transparency endpoints shall be reachable and their public keys shall match their declared fingerprints.</p>
</li>
<li><p id="_47387326-fab0-ccff-5600-2795cc95a277">The classification policy shall be deterministic — given the same coverage report fields, it shall produce the same grade label.</p>
</li>
</ul>
</clause>

<clause id="_2891294f-8aaf-d2e2-89c8-98105388f14d" anchor="manifest-versioning" inline-header="false" obligation="normative">
<title id="_42a84f05-1440-7405-7f6d-4c76c214064b">Manifest versioning</title>
<p id="_fe105776-c973-b12e-3319-54a330ca12aa">Manifest versions follow semantic compatibility rules. Major version changes indicate breaking structural changes. Minor version changes add fields without breaking existing parsers.</p>

<p id="_423a7469-3d44-bc50-77f6-2f4fad25d9dd">A deployment may carry multiple manifest versions simultaneously during migration. The most recent signed manifest is authoritative.</p>
</clause>

<clause id="_9895dfcd-7d53-915b-90a0-7a2f744d57a4" anchor="req-manifest" inline-header="false" obligation="normative">
<title id="_75d560d3-7cea-7099-f53f-94b66238df6e">Requirements</title>
<p id="_a064633f-14af-8fa1-b699-8a4a993ecf40">Deployment manifest has its formalized requirements class described in <xref target="rc-manifest-1"/>, with its requirements listed from <xref target="r-manifest-1-1"/> to <xref target="r-manifest-1-7"/>.</p>

<requirement id="_07e52d78-626f-cacf-4b6c-450956accc6f" anchor="rc-manifest-1" model="ogc" type="class">
<title>Deployment manifest</title><identifier>/req/manifest</identifier><subject>deployment manifest</subject><inherit>/req/architecture</inherit><inherit>/req/threshold-signing</inherit><inherit>/req/scope</inherit><inherit>/req/algorithms</inherit><inherit>/req/transparency</inherit><description id="_84345e52-b7cf-d99c-3019-576e6c3e8fa5"><p id="_5b6d58b9-08f7-8e67-e5cd-b45394fb0ed4">Requirements on deployment manifest format, contents, validation rules, and versioning.</p>
</description><requirement id="_664f48a4-cf09-59da-454b-46e6bef7ac7f" model="ogc" type="general"> <identifier>/req/manifest/manifest-format</identifier></requirement><requirement id="_9b565a55-8f1d-6596-1484-78e3f0255029" model="ogc" type="general"> <identifier>/req/manifest/manifest-topology</identifier></requirement><requirement id="_8b9ee28c-9dc7-87cb-ef95-925af2330c9f" model="ogc" type="general"> <identifier>/req/manifest/manifest-algorithms</identifier></requirement><requirement id="_3caf43a9-1733-75a5-21dd-a5ee5573e528" model="ogc" type="general"> <identifier>/req/manifest/manifest-transparency</identifier></requirement><requirement id="_751d6bf9-8dbe-3119-0b36-01d8de7152ab" model="ogc" type="general"> <identifier>/req/manifest/manifest-validation-acyclic</identifier></requirement><requirement id="_2783c778-f2ab-5fbc-a5a5-b22a8a99dd9e" model="ogc" type="general"> <identifier>/req/manifest/manifest-validation-quorum</identifier></requirement><requirement id="_2c3d1723-456f-9678-fbc9-ae08656cc9ab" model="ogc" type="general"> <identifier>/req/manifest/manifest-versioning</identifier></requirement>

</requirement>

<requirement id="_d7454dc6-196b-64b9-01db-11152fe06948" anchor="r-manifest-1-1" model="ogc">
<title>Manifest format and signing</title><identifier>/req/manifest/manifest-format</identifier><description id="_138b4b9c-4b68-b58b-7a21-a9bee950b18f"><p id="_ee132299-e5ad-9095-50fd-0188a87edf8e">A deployment manifest shall be expressed in a declarative format, carry a manifest version identifier, and be signed by the root trust authority whose deployment it describes.</p>
</description>

</requirement>

<requirement id="_6b941a2f-e20e-6cb1-5908-5c5c22cf2a2c" anchor="r-manifest-1-2" model="ogc">
<title>Manifest topology declaration</title><identifier>/req/manifest/manifest-topology</identifier><description id="_3eacd8c5-21ee-c5a8-86e8-377212b283fb"><p id="_4aeb40ed-1d6f-7a70-03ee-bdcc3e25d5c9">A deployment manifest shall declare the trust topology profile, the trust authorities with their identifiers, aggregate keys or fingerprints, quorum parameters, and parent references.</p>
</description><component id="_f1a77923-3ca7-e803-7ae8-27d83b97a3f7" class="guidance"><p id="_97203464-e737-01f0-e28a-bfa957cdf8e5">Topology profiles are hierarchical, federated, cross-recognized, and mesh.</p>
</component>

</requirement>

<requirement id="_df4a8bef-caa8-9fc7-a778-e303c8bbf66e" anchor="r-manifest-1-3" model="ogc">
<title>Manifest algorithm declaration</title><identifier>/req/manifest/manifest-algorithms</identifier><description id="_56c70a9e-7d1b-c13f-bacc-14b3c5a54aba"><p id="_000d1a26-cf81-ea7a-305b-44cd0786bd12">A deployment manifest shall declare the signature algorithms recognized by the deployment from the framework’s algorithm registry.</p>
</description>

</requirement>

<requirement id="_26fd333b-bcd8-e6bf-cf51-505aa950af82" anchor="r-manifest-1-4" model="ogc">
<title>Manifest transparency declaration</title><identifier>/req/manifest/manifest-transparency</identifier><description id="_b424097b-16a7-32c6-c7bb-2348508470ec"><p id="_2086e287-72d9-7acf-b960-1c973696f9cc">A deployment manifest shall declare the recognized transparency logs and mirrors with their endpoints and public keys, and the multi-log attestation policy parameters if applicable.</p>
</description>

</requirement>

<requirement id="_e12dcd0c-99a5-ca68-0c1d-c434941a5cd0" anchor="r-manifest-1-5" model="ogc">
<title>Manifest validation — acyclic graph</title><identifier>/req/manifest/manifest-validation-acyclic</identifier><description id="_4c7e5c35-cad6-47e8-23fe-eb14bb32ef31"><p id="_b38b7f57-0ce6-73a4-a431-b84afb672d06">A deployment manifest shall be validated to ensure all declared authorities form a valid trust graph with no cycles, and every delegation link satisfies the monotonic narrowing invariant.</p>
</description>

</requirement>

<requirement id="_5c351ddf-f782-2078-19b4-5b9bf151d10c" anchor="r-manifest-1-6" model="ogc">
<title>Manifest validation — quorum consistency</title><identifier>/req/manifest/manifest-validation-quorum</identifier><description id="_07010bbe-eb7c-8658-e48e-06cd08f0878d"><p id="_515c88a5-96e1-8550-5d72-f200ff80bdd2">A deployment manifest shall be validated to ensure quorum parameters are consistent, with T not exceeding N for any threshold authority.</p>
</description>

</requirement>

<requirement id="_75de99b7-20fd-9593-0008-0f8da814ffd4" anchor="r-manifest-1-7" model="ogc">
<title>Manifest versioning</title><identifier>/req/manifest/manifest-versioning</identifier><description id="_e88605a6-99b1-12b4-c189-ebb21bc636cc"><p id="_727c9cd1-ccb3-b1cc-1f20-a24d3e22bc32">Manifest versions shall follow semantic compatibility rules, and the most recent signed manifest shall be authoritative for the deployment.</p>
</description>

</requirement>
</clause>
</clause>

<clause id="_9453b56a-c34b-932c-437f-451a45d4a513" anchor="governance" inline-header="false" obligation="normative">
<title id="_09087138-5fff-7f38-c4d5-8cf39ee298bd">Governance and mutual recognition</title>
<clause id="_368c15d8-9b27-4c39-fef6-13e99f129c80" inline-header="false" obligation="normative">
<title id="_7f3ebf84-1d16-0f3d-27bc-8b5f5eb1fefd">General</title>
<p id="_1e03fc3f-fb2c-1ed4-7245-66efb7142bd2">This clause specifies the governance requirements for <concept><refterm>root trust authority</refterm><renderterm>root trust authorities</renderterm><xref target="term-root-trust-authority"/></concept> and the trust topology profiles that a SIGNATIF deployment may adopt. Topology is declared in the deployment manifest (see  <xref target="manifest"/>) and determines the structure of the <concept><refterm>trust graph</refterm><renderterm>trust graph</renderterm><xref target="term-trust-graph"/></concept> (<xref target="fig-topologies"/>).</p>

<figure id="_190dff7a-feed-68e1-4111-91b8ef48f5ec" anchor="fig-topologies">
<name id="_003dcea0-d311-a0c4-0149-ad0c15d64b34">Trust topology profiles</name>
<image id="_24500e62-47b4-c747-c6b0-ae92dac77872" src="images/topology-comparison.svg" mimetype="image/svg+xml" height="auto" width="auto" filename="images/topology-comparison.svg"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 500" font-family="sans-serif" font-size="11">
  <text x="450" y="25" text-anchor="middle" font-size="15" font-weight="bold">Trust topology profiles</text>

  <!-- Hierarchical -->
  <rect x="20" y="50" width="200" height="430" rx="8" fill="#f8f9fa" stroke="#dee2e6" stroke-width="1"/>
  <rect x="30" y="60" width="180" height="28" rx="4" fill="#4285f4"/>
  <text x="120" y="78" text-anchor="middle" fill="white" font-weight="bold">Hierarchical</text>
  <text x="120" y="105" text-anchor="middle" font-size="10" fill="#666">Single root, linear chains</text>
  <!-- RTA -->
  <circle cx="120" cy="140" r="20" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="120" y="144" text-anchor="middle" font-size="9">RTA</text>
  <!-- DTAs -->
  <circle cx="80" cy="210" r="15" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="80" y="214" text-anchor="middle" font-size="8">DTA</text>
  <circle cx="160" cy="210" r="15" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="160" y="214" text-anchor="middle" font-size="8">DTA</text>
  <line x1="110" y1="155" x2="85" y2="198" stroke="#999"/>
  <line x1="130" y1="155" x2="155" y2="198" stroke="#999"/>
  <!-- End certs -->
  <rect x="55" y="270" width="50" height="20" rx="3" fill="#fef7e0" stroke="#fbbc04"/>
  <text x="80" y="284" text-anchor="middle" font-size="8">EC</text>
  <rect x="135" y="270" width="50" height="20" rx="3" fill="#fef7e0" stroke="#fbbc04"/>
  <text x="160" y="284" text-anchor="middle" font-size="8">EC</text>
  <line x1="80" y1="225" x2="80" y2="270" stroke="#999"/>
  <line x1="160" y1="225" x2="160" y2="270" stroke="#999"/>
  <text x="120" y="330" text-anchor="middle" font-size="10" fill="#555">Simplest profile.</text>
  <text x="120" y="345" text-anchor="middle" font-size="10" fill="#555">Single-root anchor</text>
  <text x="120" y="360" text-anchor="middle" font-size="10" fill="#555">bundle.</text>

  <!-- Federated -->
  <rect x="240" y="50" width="200" height="430" rx="8" fill="#f8f9fa" stroke="#dee2e6" stroke-width="1"/>
  <rect x="250" y="60" width="180" height="28" rx="4" fill="#34a853"/>
  <text x="340" y="78" text-anchor="middle" fill="white" font-weight="bold">Federated</text>
  <text x="340" y="105" text-anchor="middle" font-size="10" fill="#666">Multiple independent roots</text>
  <!-- RTA1 -->
  <circle cx="290" cy="140" r="18" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="290" y="144" text-anchor="middle" font-size="8">RTA₁</text>
  <!-- RTA2 -->
  <circle cx="390" cy="140" r="18" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="390" y="144" text-anchor="middle" font-size="8">RTA₂</text>
  <!-- FTA spanning -->
  <rect x="300" y="195" width="80" height="25" rx="4" fill="#fce8e6" stroke="#ea4335" stroke-width="2" stroke-dasharray="4,2"/>
  <text x="340" y="212" text-anchor="middle" font-size="9" font-weight="bold">FTA</text>
  <line x1="295" y1="155" x2="325" y2="195" stroke="#ea4335" stroke-dasharray="3,2"/>
  <line x1="385" y1="155" x2="355" y2="195" stroke="#ea4355" stroke-dasharray="3,2"/>
  <!-- End cert -->
  <rect x="315" y="260" width="50" height="20" rx="3" fill="#fef7e0" stroke="#fbbc04"/>
  <text x="340" y="274" text-anchor="middle" font-size="8">EC</text>
  <line x1="340" y1="220" x2="340" y2="260" stroke="#999"/>
  <text x="340" y="330" text-anchor="middle" font-size="10" fill="#555">Multi-root anchor</text>
  <text x="340" y="345" text-anchor="middle" font-size="10" fill="#555">bundle. FTAs span</text>
  <text x="340" y="360" text-anchor="middle" font-size="10" fill="#555">hierarchies.</text>

  <!-- Cross-recognized -->
  <rect x="460" y="50" width="200" height="430" rx="8" fill="#f8f9fa" stroke="#dee2e6" stroke-width="1"/>
  <rect x="470" y="60" width="180" height="28" rx="4" fill="#ff9800"/>
  <text x="560" y="78" text-anchor="middle" fill="white" font-weight="bold">Cross-recognized</text>
  <text x="560" y="105" text-anchor="middle" font-size="10" fill="#666">Hierarchies with links</text>
  <!-- RTA1 -->
  <circle cx="510" cy="140" r="18" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="510" y="144" text-anchor="middle" font-size="8">RTA₁</text>
  <!-- RTA2 -->
  <circle cx="610" cy="140" r="18" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="610" y="144" text-anchor="middle" font-size="8">RTA₂</text>
  <!-- Cross-recognition link -->
  <line x1="528" y1="140" x2="592" y2="140" stroke="#ff9800" stroke-width="2" stroke-dasharray="5,3"/>
  <text x="560" y="132" text-anchor="middle" font-size="8" fill="#ff9800" font-weight="bold">mutual recog.</text>
  <!-- DTAs -->
  <circle cx="510" cy="210" r="15" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="510" y="214" text-anchor="middle" font-size="8">DTA</text>
  <circle cx="610" cy="210" r="15" fill="#e6f4ea" stroke="#34a853" stroke-width="2"/>
  <text x="610" y="214" text-anchor="middle" font-size="8">DTA</text>
  <line x1="510" y1="155" x2="510" y2="195" stroke="#999"/>
  <line x1="610" y1="155" x2="610" y2="195" stroke="#999"/>
  <text x="560" y="330" text-anchor="middle" font-size="10" fill="#555">Root-level mutual</text>
  <text x="560" y="345" text-anchor="middle" font-size="10" fill="#555">recognition via</text>
  <text x="560" y="360" text-anchor="middle" font-size="10" fill="#555">signed credentials.</text>

  <!-- Mesh -->
  <rect x="680" y="50" width="200" height="430" rx="8" fill="#f8f9fa" stroke="#dee2e6" stroke-width="1"/>
  <rect x="690" y="60" width="180" height="28" rx="4" fill="#9334e6"/>
  <text x="780" y="78" text-anchor="middle" fill="white" font-weight="bold">Mesh</text>
  <text x="780" y="105" text-anchor="middle" font-size="10" fill="#666">General DAG, FTAs</text>
  <!-- RTA1 -->
  <circle cx="730" cy="140" r="16" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="730" y="144" text-anchor="middle" font-size="7">RTA₁</text>
  <!-- RTA2 -->
  <circle cx="830" cy="140" r="16" fill="#e8f0fe" stroke="#4285f4" stroke-width="2"/>
  <text x="830" y="144" text-anchor="middle" font-size="7">RTA₂</text>
  <!-- FTA nodes -->
  <rect x="695" y="195" width="40" height="20" rx="3" fill="#fce8e6" stroke="#ea4335" stroke-width="1.5" stroke-dasharray="3,2"/>
  <text x="715" y="209" text-anchor="middle" font-size="7">FTA</text>
  <rect x="825" y="195" width="40" height="20" rx="3" fill="#fce8e6" stroke="#ea4335" stroke-width="1.5" stroke-dasharray="3,2"/>
  <text x="845" y="209" text-anchor="middle" font-size="7">FTA</text>
  <rect x="760" y="240" width="40" height="20" rx="3" fill="#fce8e6" stroke="#ea4335" stroke-width="1.5" stroke-dasharray="3,2"/>
  <text x="780" y="254" text-anchor="middle" font-size="7">FTA</text>
  <!-- Mesh edges -->
  <line x1="730" y1="156" x2="720" y2="195" stroke="#999"/>
  <line x1="830" y1="156" x2="840" y2="195" stroke="#999"/>
  <line x1="730" y1="156" x2="770" y2="240" stroke="#999"/>
  <line x1="830" y1="156" x2="790" y2="240" stroke="#999"/>
  <line x1="735" y1="205" x2="760" y2="245" stroke="#ea4335" stroke-width="1" stroke-dasharray="2,2"/>
  <line x1="825" y1="205" x2="800" y2="245" stroke="#ea4335" stroke-width="1" stroke-dasharray="2,2"/>
  <text x="780" y="330" text-anchor="middle" font-size="10" fill="#555">Most general.</text>
  <text x="780" y="345" text-anchor="middle" font-size="10" fill="#555">Arbitrary cross-domain</text>
  <text x="780" y="360" text-anchor="middle" font-size="10" fill="#555">co-signatures.</text>
</svg></image></figure>
</clause>

<clause id="_9bcd5845-f20b-3b33-f27b-dd638c807d7b" anchor="governance-topologies" inline-header="false" obligation="normative">
<title id="_4b1217bd-af81-aa34-4064-08fa6560a4fe">Trust topology profiles</title>
<clause id="_f2bb8cd7-67b9-87ff-d785-6c5b631c5a19" inline-header="false" obligation="normative">
<title id="_c37f87b4-8d1c-09f0-8d94-846a9b2f3b32">Hierarchical</title>
<p id="_5b78cb61-ed7a-0f1a-1621-90d18957d089">A hierarchical topology is a strict tree with a single <concept><refterm>root trust authority</refterm><renderterm>root trust authority</renderterm><xref target="term-root-trust-authority"/></concept>. Every delegation chain is linear from root to  <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept>. This is the simplest topology and is suitable for single-organization deployments.</p>

<p id="_9ae16cec-0b5f-4b88-83ef-adec117c272a">The <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept> for a hierarchical deployment carries a single root anchor.</p>
</clause>

<clause id="_4e6eb3f9-fc29-ce13-355b-7317b52fb54f" inline-header="false" obligation="normative">
<title id="_5aacc915-6dce-659d-ccd1-edb2d71ef327">Federated</title>
<p id="_948ab767-07b0-105e-6d96-b366c678e624">A federated topology has multiple independent <concept><refterm>root trust authority</refterm><renderterm>root trust authorities</renderterm><xref target="term-root-trust-authority"/></concept>. No single root controls all paths. <concept><refterm>federated trust authority</refterm><renderterm>federated trust authorities</renderterm><xref target="term-federated-trust-authority"/></concept> may span roots, creating cross-hierarchy edges.</p>

<p id="_c4a4398c-f197-31ec-1bc4-7e67fcf1d11c">The trust anchor bundle for a federated deployment carries multiple root anchors.</p>
</clause>

<clause id="_2bbaa5cc-c165-2f57-8012-e4430fe3d15b" inline-header="false" obligation="normative">
<title id="_eeff0df9-4758-e913-3cae-09d777fbdafb">Cross-recognized</title>
<p id="_cfb8014d-167b-d918-3726-f9b89f9e2453">A cross-recognized topology consists of hierarchical deployments with explicit cross-recognition links between roots. Two or more roots mutually recognize each other’s authority, enabling artifacts from one hierarchy to be verified against another’s anchors.</p>

<p id="_a0caf39f-bddb-9b25-dd5b-2a5ca008ada0">Cross-recognition is established by mutual signing: each root signs the other’s root anchor, creating a cross-recognition edge in the trust graph.</p>
</clause>

<clause id="_cc195248-09b4-466e-e6fa-cc2a8b690893" inline-header="false" obligation="normative">
<title id="_d3c2197f-517d-61fa-3592-da9d434829c5">Mesh</title>
<p id="_36ae18a8-ba02-0dc6-822e-fe68a4728362">A mesh topology is a general directed acyclic graph with hierarchy-spanning  <concept><refterm>federated trust authority</refterm><renderterm>federated trust authorities</renderterm><xref target="term-federated-trust-authority"/></concept> and arbitrary cross-domain co-signatures. This is the most general topology and supports the highest verification complexity.</p>

<p id="_a055b41e-a914-a3e0-44db-bb14b4b98553">Mesh topologies arise naturally when multiple independent organizations form federations and when artifacts carry cross-domain co-signatures.</p>
</clause>
</clause>

<clause id="_0ca8cc8a-9400-5db2-41ee-3b4475c2ca13" anchor="governance-root" inline-header="false" obligation="normative">
<title id="_1a21f077-6248-dbe4-9bb5-e2018d9a0486">Root trust authority governance</title>
<p id="_3170104b-c89c-3e72-7808-172cecfbf331">A <concept><refterm>root trust authority</refterm><renderterm>root trust authority</renderterm><xref target="term-root-trust-authority"/></concept> shall satisfy the following governance requirements:</p>

<ul id="_7dc6b0d0-c4b6-eb62-74c8-c0f117662aa8"><li><p id="_854ded4b-66a6-1678-c1a3-c1588511b677">Defined scope. The root shall publish its initial <concept><refterm>authorization scope</refterm><renderterm>scope</renderterm><xref target="term-authorization-scope"/></concept> and delegation policy.</p>
</li>
<li><p id="_c0bd2553-8136-76ef-1b72-e06e67a369a1">Transparency. All root-level operations (delegation, scope changes, key rotation) shall be recorded in a recognized  <concept><refterm>transparency log</refterm><renderterm>transparency log</renderterm><xref target="term-transparency-log"/></concept>.</p>
</li>
<li><p id="_33b699b7-3ef9-d56c-c6e9-2ac019baac43">Threshold or federation. The root shall operate under a threshold scheme or as a  <concept><refterm>federated trust authority</refterm><renderterm>federated trust authority</renderterm><xref target="term-federated-trust-authority"/></concept> to prevent single-point compromise.</p>
</li>
<li><p id="_4c90980d-1db2-5085-e4af-c486008766d0">Information security management. The root shall maintain an information security management system (ISMS) or equivalent organizational assurance framework. ISO/IEC 27001, WebTrust for CAs, and ETSI EN 319 411 are recognized frameworks. The root shall undergo periodic independent security audits covering key management, ceremony procedures, personnel controls, and incident response. Audit attestations shall be published.</p>
</li>
<li><p id="_c1281965-5fc0-c90e-9ea8-e5a94cfc3e32">Auditability. The root shall maintain verifiable records of all governance decisions.</p>
</li>
<li><p id="_567ec62d-b923-a6b9-a955-0ffbbb213a8c">Anchor publication. The root’s <concept><refterm>aggregate key</refterm><renderterm>aggregate key</renderterm><xref target="term-aggregate-key"/></concept> shall be published in a <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept> with a version and validity period.</p>
</li>
</ul>

<p id="_aa85e7dd-5c4e-194c-a673-393a8803a5e3">A <concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authority</renderterm><xref target="term-delegated-trust-authority"/></concept> that issues end certificates shall maintain an ISMS or equivalent organizational assurance framework and shall undergo periodic security audits. The depth and frequency of audits may be determined by the scheme’s governance policy, proportionate to the authority’s scope and risk profile.</p>
</clause>

<clause id="_68f92f0c-3a66-09c3-ee97-e8bb78b6c75c" anchor="governance-mutual-recognition" inline-header="false" obligation="normative">
<title id="_324795bd-ec93-3f2f-9b7e-5924780a393e">Mutual recognition</title>
<p id="_be34badd-24e7-f99c-cf10-b1b86bc5b984">Mutual recognition between two <concept><refterm>root trust authority</refterm><renderterm>root trust authorities</renderterm><xref target="term-root-trust-authority"/></concept> shall be expressed as a signed cross-recognition credential in which each root attests the other’s aggregate key and scope. The cross-recognition credential shall be recorded in both roots’ transparency logs.</p>

<p id="_984f5ab4-bf7d-e13f-47af-d7fbfd977dcd">Mutual recognition does not merge the hierarchies. Each root retains its own governance. The recognition enables verifiers holding both roots’ anchors to accept artifacts from either hierarchy.</p>
</clause>

<clause id="_aababb15-f951-dd7f-0898-c39b48248cd4" anchor="req-governance" inline-header="false" obligation="normative">
<title id="_313baa46-b275-68ec-31f5-c84e36eb457c">Requirements</title>
<p id="_27806a4d-34c8-2b4e-0393-99f191584ef9">Governance and mutual recognition has its formalized requirements class described in <xref target="rc-governance-1"/>, with its requirements listed from <xref target="r-governance-1-1"/> to <xref target="r-governance-1-5"/>.</p>

<requirement id="_bd7fff6e-7a01-773b-27ff-632de747f42d" anchor="rc-governance-1" model="ogc" type="class">
<title>Governance and mutual recognition</title><identifier>/req/governance</identifier><subject>governance</subject><inherit>/req/architecture</inherit><inherit>/req/threshold-signing</inherit><description id="_fdf19796-ec1b-8527-d709-7026a81ebd32"><p id="_b2a47c06-6608-e4dd-8072-40ddbccc78c4">Requirements on trust topology profiles, root trust authority governance, and mutual recognition.</p>
</description><requirement id="_e5717e92-029d-1231-e208-c6948d64a1e9" model="ogc" type="general"> <identifier>/req/governance/topology-declaration</identifier></requirement><requirement id="_d340148d-2c33-af71-7de0-4f12e8dc0a62" model="ogc" type="general"> <identifier>/req/governance/root-governance</identifier></requirement><requirement id="_e6e109f5-4ba8-8334-462f-09166e423f8e" model="ogc" type="general"> <identifier>/req/governance/issuing-authority-assurance</identifier></requirement><requirement id="_78d8909d-b607-96f2-55d0-827d7941bcde" model="ogc" type="general"> <identifier>/req/governance/mutual-recognition</identifier></requirement><requirement id="_2a4347a8-d8c4-37f7-2c79-30544f31c85d" model="ogc" type="general"> <identifier>/req/governance/topology-conformance</identifier></requirement>

</requirement>

<requirement id="_0b31d601-cab2-d506-7837-15d143195422" anchor="r-governance-1-1" model="ogc">
<title>Topology declaration in manifest</title><identifier>/req/governance/topology-declaration</identifier><description id="_5a0f23c1-51ad-e5b5-b41d-fb7a254e6a6e"><p id="_22533ed9-5297-48d8-fdc8-8048283c739f">A deployment shall declare its trust topology profile — hierarchical, federated, cross-recognized, or mesh — in the deployment manifest.</p>
</description><component id="_ea59ce7f-c3ce-78f9-81a8-00dad987dc96" class="guidance"><p id="_e86b8fce-5a06-44a7-fb82-e1a59f3253a0">The topology determines the structure of the trust graph.</p>
</component>

</requirement>

<requirement id="_10f2b384-6566-2b25-d6b1-97de264edca9" anchor="r-governance-1-2" model="ogc">
<title>Root trust authority governance requirements</title><identifier>/req/governance/root-governance</identifier><description id="_85e83764-4868-f984-09fa-de94d73ccb8a"><p id="_f12f4f55-daf0-7bf5-7b54-d4965874787a">A root trust authority shall publish its initial scope and delegation policy, record all root-level operations in a recognized transparency log, operate under threshold or federation, maintain verifiable governance records, publish its aggregate key in a versioned trust anchor bundle, and maintain an information security management system with periodic independent security audits.</p>
</description><component id="_66a913c8-4af4-eabd-d3f6-005f3c4ef4b5" class="guidance"><p id="_074be09a-4ef6-7ca5-91c2-4579ab011236">ISO/IEC 27001, WebTrust for CAs, and ETSI EN 319 411 are recognized ISMS frameworks.</p>

<p id="_9bf4f5b2-e4fc-931d-0d70-f6b06fb9ddf6">Audit attestations shall be published.</p>
</component>

</requirement>

<requirement id="_046a1e6e-41e8-212e-90f9-ae1842700ec7" anchor="r-governance-1-3" model="ogc">
<title>Issuing authority organizational assurance</title><identifier>/req/governance/issuing-authority-assurance</identifier><description id="_c0985c26-0220-8516-5339-4792d4d2dfbe"><p id="_20a1a20b-f3b5-9a9f-905a-12f3f31f2f64">A delegated trust authority that issues end certificates shall maintain an information security management system or equivalent organizational assurance framework and shall undergo periodic security audits proportionate to its scope and risk profile.</p>
</description><component id="_9a804ff7-d899-58f2-922e-ac18c5414969" class="guidance"><p id="_20b9ed9e-a7bf-eb73-8480-a2d094364695">The depth and frequency of audits may be determined by the scheme’s governance policy.</p>
</component>

</requirement>

<requirement id="_6893ccc6-c0e8-d50f-6910-19a29b4f63b5" anchor="r-governance-1-4" model="ogc">
<title>Mutual recognition via signed credentials</title><identifier>/req/governance/mutual-recognition</identifier><description id="_af772363-bf3a-0824-f2e0-3c38f09c9aa4"><p id="_ff30e68d-91a2-bcd6-14ec-fb584d4a37bd">Mutual recognition between two root trust authorities shall be expressed as signed cross-recognition credentials in which each root attests the other’s aggregate key and scope, recorded in both roots’ transparency logs.</p>
</description><component id="_36514ab1-d577-c493-882e-ef9b7ce3eb79" class="guidance"><p id="_cf6bf8f9-f862-1af7-28b5-b97486fddaa7">Mutual recognition does not merge hierarchies; each root retains its own governance.</p>
</component>

</requirement>

<requirement id="_af4e5163-c575-eac6-e6a8-07a1836fbc40" anchor="r-governance-1-5" model="ogc">
<title>Topology conformance</title><identifier>/req/governance/topology-conformance</identifier><description id="_3f4e21fd-1c04-f756-03c1-d03a77d79e7a"><p id="_a5657623-5a08-7aab-ffd1-629122c03210">A deployment claiming a topology conformance profile shall satisfy the structural requirements of that topology as specified in the conformance class.</p>
</description><component id="_e26df4eb-1649-0966-b653-bd75507bfa93" class="guidance"><p id="_42fe69c9-8f91-ff82-6d8a-da8d66a6ef2f">Hierarchical requires a single root and linear chains.</p>

<p id="_a6c7b9be-eef9-2700-b90d-6277fa848eaa">Federated requires multiple independent roots and a multi-root anchor bundle.</p>

<p id="_405e2447-f53c-e8ed-bfdd-cdb081c5742e">Cross-recognized requires explicit cross-recognition links.</p>

<p id="_6e47d49e-95a4-3470-ff23-1343410d9325">Mesh requires a general DAG with hierarchy-spanning FTAs.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_4d9c009d-bb57-6c35-cd10-93c74a080f22" anchor="algorithm-agility" inline-header="false" obligation="normative">
<title id="_211daf8a-5063-bb16-c1ad-8be3840824dc">Algorithm agility</title>
<clause id="_46d43615-16df-5eda-e07e-8ea727829b91" inline-header="false" obligation="normative">
<title id="_305e7586-d0a4-6327-5126-81c26d46123b">General</title>
<p id="_6e719be6-1914-9476-ceab-f3b5479968da">Algorithm agility ensures that the SIGNATIF framework can adopt new cryptographic algorithms and deprecate old ones without breaking existing verifiers. This clause specifies the algorithm identifier registry, the deprecation process, and the migration governance model. Comparable algorithm transitions in existing infrastructures are treated in  <eref type="inline" bibitemid="nist-sp800-131a" citeas="NIST SP 800-131Ar2"/>.</p>
</clause>

<clause id="_3c7d7ea9-5492-6bf9-43db-190c2aa7f2f5" anchor="algorithm-agility-registry" inline-header="false" obligation="normative">
<title id="_057aef20-2734-ffa3-84fc-e38d1d28d09d">Algorithm identifier registry</title>
<p id="_9d26b5ea-6470-83c0-8106-78146afef23e">The algorithm identifier registry is maintained by the scheme (see <xref target="annex-c"/>). Each entry in the registry carries the algorithm identifier, the algorithm family (classical, post-quantum, or composite), the standard reference, and the status (active, deprecated, or retired).</p>

<p id="_011c16d3-cdb8-a7d4-26ac-17d3784a539f">The status field is governed by the deprecation process in <xref target="algorithm-agility-deprecation"/>. An implementation shall use algorithm identifiers from the registry. Unregistered identifiers shall not be accepted by conforming verifiers.</p>
</clause>

<clause id="_0c6a4817-519c-6345-17ce-86f54cd6e422" anchor="algorithm-agility-deprecation" inline-header="false" obligation="normative">
<title id="_6972fabb-2d19-6f56-6389-b87e6f2e8852">Deprecation process</title>
<p id="_8b5be2fe-8e71-39bb-4887-a7047db71165">When an algorithm is identified as weak or obsolete, it shall be deprecated through the following process:</p>

<ol id="_b62dcce7-d1f7-94b2-f2b5-68ead278dcbc"><li><p id="_811121f7-9f15-7723-66e6-a289f756a753">Announcement. The deprecation shall be announced with a deprecation date and a retirement date.</p>
</li>
<li><p id="_bf93ee64-98cf-e1a6-5acc-e2935f73fbd7">Deprecation period. During the deprecation period, the algorithm remains usable but verifiers shall downgrade artifacts using the deprecated algorithm.</p>
</li>
<li><p id="_577ac9a4-d2f4-c563-0557-98dbce38f895">Retirement. After the retirement date, verifiers shall reject artifacts using the retired algorithm.</p>
</li>
</ol>

<p id="_62d9ab64-4f6b-47b8-167e-47a2ac505b55">The deprecation and retirement dates shall allow sufficient time for migration to replacement algorithms.</p>
</clause>

<clause id="_9fe81e87-b40f-2a2a-01c9-65e9894ac963" anchor="algorithm-agility-migration" inline-header="false" obligation="normative">
<title id="_88ff68d9-cc27-f633-5c21-0f5c5461c1c9">Migration governance</title>
<p id="_f00f530d-76d7-ad15-35eb-de76e2f52c60">Algorithm migration shall be governed by the deployment’s policy. The deployment manifest (see  <xref target="manifest"/>) shall declare the active algorithms and the migration phase (classical-only, composite, or post-quantum-only).</p>

<p id="_0dcb5fcb-3985-a1f6-4d59-350d5d9adc05">Migration between phases shall follow a published schedule. During composite phase, new artifacts shall use composite signatures while existing classical-only artifacts remain verifiable. After migration to post-quantum-only, classical-only signatures shall be rejected.</p>
</clause>

<clause id="_a41e003e-b012-26db-9fb6-6a8b0a2460de" anchor="req-algorithm-agility" inline-header="false" obligation="normative">
<title id="_3c0b2a15-c7dc-e83a-ec5e-11e0db0747ba">Requirements</title>
<p id="_bbb8ba39-416c-c3aa-3429-def6ee3521a2">Algorithm agility has its formalized requirements class described in <xref target="rc-algorithm-agility-1"/>, with its requirements listed from <xref target="r-algorithm-agility-1-1"/> to <xref target="r-algorithm-agility-1-4"/>.</p>

<requirement id="_fb8766ba-38a0-da05-bd65-2f0c5018cc2e" anchor="rc-algorithm-agility-1" model="ogc" type="class">
<title>Algorithm agility</title><identifier>/req/algorithm-agility</identifier><subject>algorithm agility</subject><inherit>/req/algorithms</inherit><description id="_1ab4726b-51fb-4184-04aa-32e74e076e3e"><p id="_0db748bf-2d57-b9dc-f3a9-60c65bb251de">Requirements on the algorithm identifier registry, deprecation process, and migration governance.</p>
</description><requirement id="_aeecbced-b076-c29f-698e-600651a34200" model="ogc" type="general"> <identifier>/req/algorithm-agility/algorithm-registry</identifier></requirement><requirement id="_afb285f8-80fe-5e29-a6ac-960d72f1e246" model="ogc" type="general"> <identifier>/req/algorithm-agility/deprecation-process</identifier></requirement><requirement id="_7e3a0d1d-d91b-8391-0208-33f18fe62470" model="ogc" type="general"> <identifier>/req/algorithm-agility/migration-declaration</identifier></requirement><requirement id="_ea5dfe71-226b-9e9c-6d05-f799133c3a41" model="ogc" type="general"> <identifier>/req/algorithm-agility/composite-backward-compatibility</identifier></requirement>

</requirement>

<requirement id="_6a686089-842f-a6ec-1c2a-ea8ec43380e3" anchor="r-algorithm-agility-1-1" model="ogc">
<title>Algorithm identifier registry</title><identifier>/req/algorithm-agility/algorithm-registry</identifier><description id="_82ec71c8-e8c7-2157-132c-498354076664"><p id="_0aa67faa-b256-9f70-bf51-478b2a52a8a4">The framework shall maintain an algorithm identifier registry listing recognized algorithms with their names, standard references, parameter sets, and status (active, deprecated, or retired).</p>
</description><component id="_40794aa3-9916-e3a2-c5fa-1657a0decb11" class="guidance"><p id="_d0ad82f7-b1f9-e7d6-62e2-0a0adc9bad12">Unregistered identifiers shall not be accepted by conforming verifiers.</p>
</component>

</requirement>

<requirement id="_8cdd3374-1300-2b75-9620-470a97a0d863" anchor="r-algorithm-agility-1-2" model="ogc">
<title>Algorithm deprecation process</title><identifier>/req/algorithm-agility/deprecation-process</identifier><description id="_fa7f3eba-c14d-218a-9c0b-3aec02bfffc1"><p id="_6fa032b8-8b91-3b3e-9df6-bb00876fe323">Algorithm deprecation shall follow a published process with announcement, deprecation period with classification downgrade, and retirement with rejection, allowing sufficient time for migration.</p>
</description><component id="_65c51a03-95d0-c30b-be66-20eedd75c31c" class="guidance"><p id="_50c31b52-8899-693c-ff7b-bc8a81ea970c">Deprecated algorithms produce a coverage report downgrade during the deprecation period.</p>

<p id="_98ecf4a3-ead8-dedc-5886-784bc5e5cf44">Retired algorithms are rejected after the retirement date.</p>
</component>

</requirement>

<requirement id="_5f707fb9-8071-6248-3003-786471dbd5e8" anchor="r-algorithm-agility-1-3" model="ogc">
<title>Migration phase declaration</title><identifier>/req/algorithm-agility/migration-declaration</identifier><description id="_a5c5d23a-894e-aa38-f3d6-5cd83071e0a7"><p id="_577d225b-363f-f6bf-933a-e820178d1e59">A deployment shall declare its active algorithms and migration phase — classical-only, composite, or post-quantum-only — in the deployment manifest.</p>
</description><component id="_605bd865-539f-d373-eda5-509056bbe930" class="guidance"><p id="_dee1760a-5c9f-826e-e610-c786f282dd99">Migration between phases shall follow a published schedule.</p>
</component>

</requirement>

<requirement id="_fc3a806b-b093-d486-70a0-313abeef3afe" anchor="r-algorithm-agility-1-4" model="ogc">
<title>Composite phase backward compatibility</title><identifier>/req/algorithm-agility/composite-backward-compatibility</identifier><description id="_9cade3d9-2ca2-e1be-d05c-47d604f0ee60"><p id="_38a2cc8b-64e8-90c1-6922-ba52a3248eef">During the composite migration phase, new artifacts shall use composite signatures while existing classical-only artifacts remain verifiable.</p>
</description><component id="_339ecba7-1619-2a46-054e-f7268626af78" class="guidance"><p id="_e753b2a5-eff3-9920-b63b-20ff6c6075fe">After migration to post-quantum-only, classical-only signatures shall be rejected.</p>
</component>

</requirement>
</clause>
</clause>

<clause id="_5b1273bf-86ac-923d-5215-9aabd0e97433" anchor="security" inline-header="false" obligation="normative">
<title id="_0d7177db-dbcf-cb8d-d450-b3a8ee35fd78">Security considerations</title>
<clause id="_421952f6-2c40-3a57-9a55-5338a7639710" inline-header="false" obligation="normative">
<title id="_70fd69a5-2941-5e52-87e9-bf16d7c8fa0c">General</title>
<p id="_cbc7632c-b8d0-1f31-cbea-4c42ff674070">This clause describes security threats relevant to the SIGNATIF framework and the mitigations specified in the normative clauses. The threats are organized by attack surface. For each threat, the relevant normative requirements are identified.</p>

<p id="_1b7d380f-f77d-06af-7887-2436a61a678d">The security of the SIGNATIF framework depends on the correctness of the underlying cryptographic algorithms, the integrity of the  <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept>, the append-only property of <concept><refterm>transparency log</refterm><renderterm>transparency logs</renderterm><xref target="term-transparency-log"/></concept>, and the threshold properties of  <concept><refterm>ceremony</refterm><renderterm>ceremony</renderterm><xref target="term-ceremony"/></concept> protocols. Compromise of any of these foundations undermines the guarantees of the framework.</p>
</clause>

<clause id="_90d26150-9266-c2b7-9368-8cf247f8c26d" anchor="security-threat-model" inline-header="false" obligation="normative">
<title id="_0c08fc9f-1831-8fce-18e0-62af11dc6d35">Threat model</title>
<p id="_6d413461-4f28-4cdf-5e1b-a704e25ce60f">The threat model assumes the following attacker capabilities:</p>

<ul id="_b2bd8709-0fab-dc9d-a137-66237ed3aa27"><li><p id="_905f2324-c83f-af8b-015f-057e449375f2">Network control. The attacker controls the network between the verifier and all transparency logs, mirrors, and issuing authorities, and may delay, replay, or inject messages.</p>
</li>
<li><p id="_50f61eb3-2510-382a-09da-b62e34477662">Single-key compromise. The attacker may compromise any single signing key that is not protected by threshold.</p>
</li>
<li><p id="_7c54e7c6-43c4-d3b4-4464-f304bc66098e">Single-authority compromise. The attacker may compromise a single <concept><refterm>trust authority</refterm><renderterm>trust authority</renderterm><xref target="term-trust-authority"/></concept> that operates under a threshold scheme, provided the compromise does not reach the quorum threshold T.</p>
</li>
<li><p id="_2562d872-1984-3c65-98b3-053fcb16caa3">Log operator coercion. The attacker may coerce a single transparency log operator to present inconsistent views to different verifiers (split-view attack).</p>
</li>
</ul>

<p id="_63ae8174-ae79-8ae1-4e6d-fc5c5c52cdc4">The threat model excludes the following:</p>

<ul id="_cfda023b-3803-68e7-1ab4-329d4d36657f"><li><p id="_97a66f78-5345-5706-7d5e-63794f06d6aa">compromise of a quorum of threshold members (T or more);</p>
</li>
<li><p id="_be8daa04-b4f0-5b3c-648c-ccfc7e6e37b4">compromise of two or more independent transparency log operators;</p>
</li>
<li><p id="_67b07a93-55a9-84fd-19ed-84e477fd4e32">break of the underlying cryptographic primitives (hash collisions, signature forgery);</p>
</li>
<li><p id="_aecff720-d7db-1746-8b5f-c88c1f9eabc7">compromise of the verifier’s local trust anchor bundle storage.</p>
</li>
</ul>
</clause>

<clause id="_3b63e7fd-f085-3846-eb4a-2de55fc1574c" anchor="security-transparency" inline-header="false" obligation="normative">
<title id="_8c810027-5151-4d64-96a6-83d452ae3e5c">Transparency log attacks</title>
<clause id="_6ca28ceb-ceea-3e38-c23d-bc2dd6810ea2" inline-header="false" obligation="normative">
<title id="_4147cf68-2176-227e-11bd-a13e76c9f739">Split-view attack</title>
<p id="_71325bc1-0043-d359-9acd-0b4e02649456">A transparency log operator may attempt to present different tree heads to different verifiers, enabling the issuance of artifacts visible to some verifiers but not others.</p>

<p id="_f83b8aa9-b015-5a4b-9504-0563932804d2">The mitigation is <concept><refterm>gossip</refterm><renderterm>gossip</renderterm><xref target="term-gossip"/></concept> (see <xref target="transparency-mirrors"/>): verifiers and mirrors cross-check tree head fingerprints. A verifier that detects a tree head not observed by the gossip quorum rejects inclusion proofs against that tree head.</p>
</clause>

<clause id="_8e468abf-c895-5021-73f4-319d1b850fab" inline-header="false" obligation="normative">
<title id="_132d8854-722a-b6fd-8ae3-feaf8daabe5a">Log omission attack</title>
<p id="_fa4856ef-fc3f-a0fe-a1ad-9f720e0fc82c">A log operator may attempt to omit an artifact from the log while claiming it was included.</p>

<p id="_25808571-8b8f-6199-b48f-2416944fef7d">The mitigation is the <concept><refterm>inclusion proof</refterm><renderterm>inclusion proof</renderterm><xref target="term-inclusion-proof"/></concept> (see <xref target="transparency-inclusion-proof"/>): the verifier recomputes the Merkle root from the leaf and audit path and compares it to the signed tree head. A log operator cannot forge an inclusion proof without producing a hash collision.</p>
</clause>

<clause id="_7fa084d2-6806-2714-96ef-9a809d580e79" inline-header="false" obligation="normative">
<title id="_c3c1a171-0023-1d79-3868-7006fe2f1050">Stale tree head attack</title>
<p id="_a882f9ef-f1d1-07cf-99f0-bed3fbfa304b">An attacker may present an old tree head that predates the inclusion of a revoked certificate, causing the verifier to accept an artifact as logged when it is not in the current log.</p>

<p id="_0b65cbe2-8aee-95c0-2e7c-b3546d3b78f0">The mitigation is the gossip quorum and the external time anchoring of tree heads (see  <xref target="transparency-anchoring"/>). The verifier confirms that the tree head is current (observed by the gossip quorum) and that its external time anchor is within the freshness window.</p>
</clause>

<clause id="_73bbc252-fc0a-e7de-e62f-67b90ea43a1d" inline-header="false" obligation="normative">
<title id="_a8f3db03-3968-9656-e84e-6510e27341e9">Log operator key compromise</title>
<p id="_4ce3c2b5-558e-5fdb-3750-2229152412cf">An attacker who obtains the log operator’s signing key can sign fraudulent tree heads with valid signatures, potentially enabling split-view attacks or the injection of forged entries.</p>

<p id="_d385ce25-86e4-72de-e2e1-d1f4ee94d059">The mitigation is layered:</p>

<ul id="_8b029814-282e-43d0-0d97-ad9ce82d7ce0"><li><p id="_a7f0df9a-c3e3-2fb6-e4a4-0216cd8412ed">Multi-log attestation. Requiring inclusion in M-of-K independent logs (see  <xref target="transparency-multi-log"/>) ensures that compromise of a single log operator key does not undermine artifact trustworthiness.</p>
</li>
<li><p id="_a65f57cc-5e30-188d-b1bf-821638a646b0">Gossip-based detection. A fraudulent tree head signed with a compromised key is detected when mirrors and verifiers compare their views via gossip (see  <xref target="transparency-mirrors"/>).</p>
</li>
<li><p id="_dbcff003-a612-7cf7-1566-841bd98a0e66">Operator key protection. The log operator’s signing key shall be protected using threshold signing or hardware-backed storage, reducing the risk of single-party compromise.</p>
</li>
<li><p id="_ce91387d-f7d5-c9fd-4cb4-39c1ea72c973">Key rotation transparency. Log operator key rotations shall be recorded in the log itself, enabling verifiers to audit the history of key changes.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_44915638-2870-1ee3-193e-e744f2a6bf9b" anchor="security-threshold" inline-header="false" obligation="normative">
<title id="_effe212c-8872-801b-a116-87ee97164f5a">Threshold signing attacks</title>
<clause id="_061cbbee-7af5-716f-0f3e-8fd8b9f9ed0f" inline-header="false" obligation="normative">
<title id="_ce868dd6-e4a6-3793-f37b-cdf460da13ab">Sub-quorum compromise</title>
<p id="_8edeb81a-c538-bcd7-b418-860283236991">An attacker may compromise fewer than T threshold members and attempt to produce a valid signature.</p>

<p id="_58d0d1b2-7b3e-5fbe-32c5-618e7ae4b16c">The mitigation is the ceremony protocol threshold property (see  <xref target="threshold-signing"/>): fewer than T members cannot produce a valid signature under the aggregate key. This property shall hold for every conforming ceremony protocol.</p>
</clause>

<clause id="_0dd5fe53-99be-929c-897a-2e82c6d62d16" inline-header="false" obligation="normative">
<title id="_1de508c0-0c32-fe2f-1b39-e255558c8dc4">Aggregate key continuity attack</title>
<p id="_82625ba6-4d96-fe13-95ec-095b3a5a7e28">An attacker may attempt to exploit a member rotation event to change the aggregate key and invalidate existing delegations.</p>

<p id="_2eb432e3-29b5-23e6-d7d7-a7d98318d677">The mitigation is the aggregate key continuity requirement (see  <xref target="threshold-aggregate-continuity"/>): member rotation preserves the aggregate key. The attacker cannot force an aggregate key change through member rotation.</p>
</clause>

<clause id="_d65adfe8-098f-284b-a231-25967112b52d" inline-header="false" obligation="normative">
<title id="_243fb4ea-e7aa-6c72-4d8e-1f13d5e5e726">Ceremony record forgery</title>
<p id="_8db1f950-01ae-aea7-13d8-d56e5dca1b8d">An attacker may forge a ceremony record to claim a signing event occurred with different participants or parameters.</p>

<p id="_30de64e9-e483-5cd0-4bd0-98d3a73b61a2">The mitigation is the ceremony record signing requirement (see  <xref target="ceremony-signing"/>): each participant signs the transcript, and the aggregate threshold signature is recorded. Forgery requires compromising the quorum.</p>
</clause>
</clause>

<clause id="_0aca77c0-74cb-5de3-3276-030d3113b18e" anchor="security-scope" inline-header="false" obligation="normative">
<title id="_07c20b20-8c05-775d-07c2-6b4760d8024b">Scope attacks</title>
<clause id="_dc8f8469-075b-355b-471c-8f4ea44229a6" inline-header="false" obligation="normative">
<title id="_af9a2e3a-df59-5072-e058-cedd343a2130">Scope widening attack</title>
<p id="_2053e7de-9ffd-c739-02ec-e013e94f5e20">An attacker may modify a delegation certificate to widen the scope beyond what the parent authorized, enabling the issuance of artifacts outside the authorized boundary.</p>

<p id="_e91b845b-5ee7-6dba-7512-a05acadfa18f">The mitigation is the <concept><refterm>monotonic narrowing invariant</refterm><renderterm>monotonic narrowing invariant</renderterm><xref target="term-monotonic-narrowing-invariant"/></concept> (see  <xref target="scope-monotonic-narrowing"/>): the verifier checks at every chain link that the child scope is a subset of the parent scope on every dimension. Widening causes hard rejection. The scope is carried in the signed certificate extension, so modification invalidates the signature.</p>
</clause>

<clause id="_fc22646c-07f1-8e19-dfa0-f53c32e95d1e" inline-header="false" obligation="normative">
<title id="_c3fc8e10-84d8-be11-c087-6c7f3dde5ab1">Scope condition bypass</title>
<p id="_d55bd322-7ad2-0a7a-3ae0-078a282537fb">An attacker may produce an artifact whose content does not satisfy the signing key’s scope conditions but claim it does.</p>

<p id="_5605dae4-3824-7434-0a9f-531b64abf823">The mitigation is the scope condition evaluation requirement (see  <xref target="scope-conditions"/>): the verifier evaluates all scope conditions at verification time. An artifact failing any condition is rejected regardless of signature validity. The evaluation context is fully determined by the artifact and its chain, ensuring deterministic verification.</p>
</clause>
</clause>

<clause id="_da296a8a-89e2-cd5b-b72e-1bf0a7eb9ed9" anchor="security-time" inline-header="false" obligation="normative">
<title id="_6825a037-7787-52db-f5c4-2abb3a78aac9">Time anchoring attacks</title>
<clause id="_4fb21ff3-5bdb-cb12-1320-261d64dd3fa4" inline-header="false" obligation="normative">
<title id="_f55c7449-a82e-71d0-1ecb-acf82a9ad31e">Backdating attack</title>
<p id="_2339f5d5-4127-693b-a53b-c4a26c156341">An attacker may attempt to backdate an artifact by manipulating the time dimension attestation.</p>

<p id="_19e59378-44f2-3351-c4c2-3c1534b4e2ec">The mitigation is the external time anchoring requirement (see  <xref target="transparency-anchoring"/> and <xref target="time-dimension"/>): the time dimension attestation is anchored to an external, irrefutable time source. Backdating requires compromising the external time source or re-mining the anchor (e.g., re-computing proof-of-work).</p>
</clause>

<clause id="_e59fcbbf-0f62-f4af-71f1-fb31981af363" inline-header="false" obligation="normative">
<title id="_a4498098-b35c-cc96-cf2b-375a673c57e3">Timestamp freshness attack</title>
<p id="_8aabd30e-ab33-fcff-e2c6-51210280fe9e">An attacker may present an old timestamp as current.</p>

<p id="_b44c227e-a4db-96c0-ae08-400177ca45f0">The mitigation is the verifier’s time freshness window policy (see  <xref target="verification-freshness"/>): the verifier rejects time anchors outside the freshness window specified by its policy.</p>
</clause>
</clause>

<clause id="_a02b8214-e0ff-1181-5ff3-bdd9cdf2b4aa" anchor="security-bundle" inline-header="false" obligation="normative">
<title id="_9ff5fee4-7885-4118-5989-69958851bf7b">Trust anchor bundle attacks</title>
<clause id="_ded223d9-d583-1029-995e-4c35d8b949c8" inline-header="false" obligation="normative">
<title id="_6902512a-3c1a-b519-9166-25c496c9beef">Bundle poisoning</title>
<p id="_d099f275-69b9-445e-4e24-720578e1c73b">An attacker may substitute a malicious root anchor in the verifier’s trust anchor bundle.</p>

<p id="_9be7dc04-0c80-0b8f-f5ec-b2e89e62d874">The mitigation is the trust anchor bundle self-containment and distributability requirements (see  <xref target="architecture-anchors"/>): the bundle is deterministic and distributable via out-of-band channels with published fingerprints. The verifier confirms the bundle fingerprint against multiple independent sources before use.</p>
</clause>

<clause id="_bc4062d8-cd0c-2d45-093a-18a10c4eb567" inline-header="false" obligation="normative">
<title id="_5b1fb987-9559-e30d-d187-696347695390">Stale bundle attack</title>
<p id="_07d2b2e0-511c-4808-763b-33fde2fdac83">An attacker may cause the verifier to use an outdated bundle that does not include a recently added root or includes a revoked root.</p>

<p id="_bed38dbb-8d64-89ea-1bbf-45f69b60702f">The mitigation is the bundle versioning requirement (see  <xref target="architecture-anchors"/>): the bundle carries a version identifier and validity period, and bundle updates are transparency-logged. The verifier checks the bundle version against the transparency log.</p>
</clause>
</clause>

<clause id="_374ed02b-b006-4a26-0cbc-82ac76be6d5a" anchor="security-migration" inline-header="false" obligation="normative">
<title id="_8ed37afa-d651-392c-7742-e74e62467780">Algorithm migration attacks</title>
<clause id="_b9af5d35-0ee8-fbe7-99a8-4e3aecca73a0" inline-header="false" obligation="normative">
<title id="_06481e6f-dc16-7cec-f708-9717d4e6e2e9">Downgrade attack</title>
<p id="_b7484537-a1b2-d02d-2f43-0a12212c4f2c">During post-quantum migration, an attacker may attempt to force the use of a weaker algorithm (classical-only when composite or post-quantum is available).</p>

<p id="_25f210ea-6547-259b-cc53-bfb5604f1a18">The mitigation is the algorithm agility framework (see  <xref target="algorithm-agility"/>): algorithm identifiers are explicit in the signature wrapper, and the deployment manifest declares the active migration phase. The verifier rejects algorithms below the deployment’s declared phase.</p>
</clause>

<clause id="_666f2a83-4146-767f-a0d5-22f44faa292f" inline-header="false" obligation="normative">
<title id="_c17a7358-12bc-7af4-0486-2b8e0aa24c38">Algorithm deprecation exploitation</title>
<p id="_b5fdcb91-4b7f-05d7-d7ad-ab36f03e2408">An attacker may exploit the deprecation period to use a known-weak algorithm.</p>

<p id="_4547338c-0ebc-40ce-ab85-886ff4968870">The mitigation is the deprecation process (see  <xref target="algorithm-agility-deprecation"/>): deprecated algorithms produce a classification downgrade during the deprecation period and are rejected after retirement. The deprecation schedule is published in advance.</p>
</clause>
</clause>

<clause id="_0526e3a5-634c-c758-c8bd-c052449bd7c7" anchor="security-dos" inline-header="false" obligation="normative">
<title id="_4ca69879-d6c0-bd8d-efd2-9525d675a949">Denial of service</title>
<clause id="_e93fb426-3a89-05a6-dce7-b90979d96424" inline-header="false" obligation="normative">
<title id="_16fac435-a65a-613d-cf43-f5cf55dfa6c9">CRL flood</title>
<p id="_1680a751-f118-43f7-f512-e7f68bba583e">An attacker may flood the verifier with CRL update requests, causing cache exhaustion or processing delays.</p>

<p id="_7aeb1b3c-9c99-f013-b52e-d9daecda7c35">The mitigation is the offline grace period policy (see  <xref target="revocation-offline"/>): the verifier applies a configurable CRL grace period and does not require real-time CRL updates. Stale CRLs within the grace period are accepted with a classification downgrade.</p>
</clause>

<clause id="_5de0e5be-4d4c-b402-8186-9ab1d74514e6" inline-header="false" obligation="normative">
<title id="_baae92d8-ce68-6977-46d2-38bf8c680740">Transparency log flood</title>
<p id="_763da9f2-b03d-6c68-0ddf-514bb3bba7a0">An attacker may submit a large number of spurious entries to a transparency log, inflating the log size and slowing inclusion proof verification.</p>

<p id="_7a22594f-fc4a-cb0a-a67a-05b959b83912">The mitigation is implementation-specific (rate limiting, proof size optimization) and is out of scope of this document. However, the framework does not require the verifier to process the entire log; the verifier needs only the specific inclusion proofs for the artifacts it verifies.</p>
</clause>
</clause>

<clause id="_0c71ef44-37be-c2b0-b894-f2ad73e3723d" anchor="security-privacy" inline-header="false" obligation="normative">
<title id="_9e4c7c85-6c96-1d7e-939a-729ddc31b972">Privacy considerations</title>
<p id="_344c7727-50c2-37ac-0d93-1fd5d548e814">SIGNATIF artifacts may carry <concept><refterm>dimension attestation</refterm><renderterm>dimension attestations</renderterm><xref target="term-dimension-attestation"/></concept> that reveal information about the signer, the location, the environmental conditions, and the device identity. Implementers should consider the privacy implications of including these attestations:</p>

<ul id="_31d5693a-eb1c-ec40-dd52-6a75a9a8a1c3"><li><p id="_d583f38a-c7a8-7f99-d268-7e5dc5d3970a">Location attestations reveal the geographic position of the signing event. Implementers should assess whether location precision is necessary or whether coarser granularity suffices.</p>
</li>
<li><p id="_20f1e86b-0ca5-80b6-dba0-4d60c0406604">Person attestations reveal the identity of the human operator. Implementers should consider whether operator pseudonyms suffice.</p>
</li>
<li><p id="_0ccc6ab3-ca2e-f7ab-cd12-d31cc4cae544">Device identity attestations reveal the specific device serial number. Implementers should assess the correlation risk across multiple artifacts from the same device.</p>
</li>
<li><p id="_e7a9dd22-b095-7f02-f26e-9f109ccd13d3">Transparency log entries are publicly visible. Artifacts logged in a transparency log are discoverable by any party with access to the log. Implementers should assess whether the artifact content itself is sensitive.</p>
</li>
<note id="_7f1422c6-9136-6f63-dc3e-cd3ed8136b28"><p id="_8914cf65-9469-fb3d-2e17-045c1c2a3f96">Transparency logs record artifact existence, not artifact content. To minimize personal data exposure, deployments should log only the artifact hash and metadata (dimensions present, classification label at issuance time), not the full payload. Full artifact content distribution is a separate concern from transparency logging. The framework does not mandate any particular privacy-preserving technique. Profiles of this document may specify privacy enhancements (e.g., zero-knowledge attestations, selective disclosure) appropriate to their domain.</p>
</note></ul>


</clause>

<clause id="_8ec60116-a223-8938-f46e-53f15448ba64" anchor="security-rogue-key" inline-header="false" obligation="normative">
<title id="_f2cdc322-a89b-acd7-08f0-da1d882b7ee9">Rogue-key attack mitigation</title>
<p id="_557deb8e-aec1-f258-8e6e-5386db39cd7d">In threshold signature schemes, a malicious member may register a public key crafted as a function of honest members’ keys such that the aggregate key equals the attacker’s own solo key. This rogue-key attack defeats the threshold property.</p>

<p id="_ad559c96-7c46-94fb-deea-e53a8947afb6">Each member of a threshold authority shall demonstrate possession of the private key corresponding to their contributed public share during the threshold key generation ceremony. The aggregate key computation shall incorporate all member public keys in a manner that is secure against rogue-key attacks (e.g., coefficient-based key aggregation or PoP-verified aggregation).</p>

<p id="_93992555-5d15-a6f2-ecdf-e11beaf8be93">A threshold authority that does not enforce member proof-of-possession is non-conforming.</p>
</clause>

<clause id="_d7f60236-d1c3-2d1c-b7e3-40461cd04a76" anchor="security-consistency-proofs" inline-header="false" obligation="normative">
<title id="_a22e26b9-5ffb-043d-9adf-f7b81805cd81">Transparency log consistency proofs</title>
<p id="_4cf699f9-884e-5755-79f6-52330137ec98">Inclusion proofs demonstrate that a specific entry is in a tree at a given size. Consistency proofs demonstrate that one tree head is a prefix of a later tree head — i.e., that the log has not removed or rewritten history.</p>

<p id="_7b4a4768-cc4f-aa1b-4116-d788ec8d0715">A transparency log shall support consistency proofs. A consistency proof shall consist of the minimal set of intermediate hashes allowing a verifier to confirm that tree size  <tt>m</tt> is a prefix of tree size <tt>n</tt> (where <tt>m &lt; n</tt>) without downloading the entire log.</p>

<p id="_6b362064-6f75-dd28-d021-81d6446405b1">A mirror shall validate the consistency proof between each consecutive pair of tree heads and shall reject any tree head that fails the consistency check. A verifier may request a consistency proof between any two tree heads it has observed to confirm append-only behaviour.</p>
</clause>

<clause id="_46728a3d-eb25-f323-b481-ee62b6bbf532" anchor="security-replay" inline-header="false" obligation="normative">
<title id="_c73b9750-402d-92bf-4005-c02e225f487b">Co-signature replay protection</title>
<p id="_3b35b87a-288c-24c8-8e0a-b1ca6f0373e7">Each co-signature shall bind not only to the canonical payload hash but also to a unique artifact identifier. The artifact identifier may be a transparency log sequence number, a deployment-assigned nonce embedded in the canonical payload, or a freshly generated random value included in the signed content.</p>

<p id="_4492469a-5fe8-5fa4-90cf-0f06bd4f04fc">The verifier shall reject any co-signature whose artifact identifier does not match the artifact being verified. Reuse of a co-signature across artifacts constitutes a hard verification failure.</p>

<p id="_36cadf1f-ba48-fd1f-67b2-545065c30e3d">For living artifacts (artifacts that accumulate dimension attestations over time), each revision of the co-signature set shall produce a new transparency log entry binding the current full co-signature set to the canonical payload. The accumulation window shall be bounded by the artifact’s validity period.</p>
</clause>

<clause id="_36c27e04-8005-a302-ff91-747cfc3d9f6f" anchor="security-wrapping" inline-header="false" obligation="normative">
<title id="_1d0e6dfa-fbec-ac07-dffc-0169a2b14889">Canonicalization and signature wrapping attacks</title>
<p id="_44bfcf25-349f-bf57-ed20-5f1a8124a46a">A conforming signature wrapper shall ensure that the byte range covered by the cryptographic signature is exactly the byte range processed by the verifier for all downstream checks, including scope evaluation, classification, and revocation binding.</p>

<p id="_6803656f-9744-31d8-8a39-94f4721cc480">The verifier shall reject any artifact in which the signed content and the processed content are not provably identical. Unsigned fields shall not influence verification outcomes.</p>

<p id="_40c31a8e-3977-c32d-4cf4-97faf3c2f53c">For format profiles using XML-based serialization, the signed and verified node sets shall be identical (defending against XML Signature Wrapping attacks). For JSON-based and CBOR-based profiles, the signed and decoded payload shall be the sole input to downstream processing.</p>
</clause>

<clause id="_41672f04-d225-6dcc-5c4b-0c4f668895f1" anchor="security-forward" inline-header="false" obligation="normative">
<title id="_4201ad16-58d1-534b-5c2b-409831c25f56">Forward and backward security</title>
<p id="_f3eda1dc-8dcb-d73c-0952-48dd9337e0e3">Upon member removal or re-share, the departing member’s share shall be cryptographically destroyed in a verifiable manner. The ceremony record shall attest to share destruction.</p>

<p id="_f12e64a4-8264-7636-e55f-07ac5f633bf3">A threshold authority shall maintain an epoch counter. Each signature shall carry its epoch. Verifiers shall reject signatures from epochs known to be compromised.</p>

<p id="_e1205a7a-e10d-56fe-af57-f5ad2a492737">Threshold authorities with long-term security requirements (artifact validity exceeding 10 years) should employ a forward-secure threshold signature scheme, in which compromise of current shares does not enable forgery of signatures from prior epochs.</p>
</clause>

<clause id="_883adaeb-d3e9-1e45-f9d6-f4c1a60c93b4" anchor="security-min-params" inline-header="false" obligation="normative">
<title id="_5aeea768-963f-9e86-b1c0-8e2f9a8e7896">Minimum security parameters</title>
<p id="_145d30b4-2a89-d466-7f65-fd3df0d591d8">Conforming implementations shall use algorithms and parameters providing a minimum security strength of 128 bits. For artifacts with long-term security requirements (validity exceeding 10 years), a minimum of 192 bits is recommended.</p>

<p id="_b0b12701-14cc-1a02-ac21-4cb06f9648d9">The following minimum parameters apply. The parameters are given in <xref target="tab-security-parameters"/>.</p>

<table id="_502b2428-def6-b9a7-213f-0b9c51936e04" anchor="tab-security-parameters"><colgroup><col width="40%"/><col width="60%"/></colgroup>
<name id="_b2a5ce76-80ff-0594-071c-1310f8834d4e">Minimum security parameters</name>
<thead><tr id="_a5b966b7-33a6-3bd2-5920-b6c42b6297af"><th id="_7251d03a-7176-19b3-fb3e-dcf80bf14a48" valign="top" align="left">Algorithm type</th>
<th id="_5e5261f4-b22a-140a-a365-66e79a5d8f9e" valign="top" align="left">Minimum parameters</th>
</tr></thead>
<tbody><tr id="_42977be8-cd8e-1117-9b49-7dad5dfca03e"><td id="_24c56a28-5395-9bed-b84d-ab6731307484" valign="top" align="left">Elliptic curve signatures</td>
<td id="_580e82e5-540b-b816-84ac-9abb7fed1737" valign="top" align="left">Minimum 256-bit curve (e.g., P-256, Ed25519)</td>
</tr><tr id="_ac8823e0-9c14-43e2-b1f8-dc332746ef77"><td id="_b9537eb5-e6b5-fa29-a1f4-bc310594b453" valign="top" align="left">Post-quantum signatures</td>
<td id="_3ddc8536-2808-5660-222f-ae894c75545a" valign="top" align="left">Minimum NIST PQ Level 2 (e.g., ML-DSA-44)</td>
</tr><tr id="_63604772-e55a-19d6-80eb-a3be8077819c"><td id="_f5c67d2f-589f-9bbf-e05a-d55b6f0d284f" valign="top" align="left">Hash functions</td>
<td id="_2fbe1bb4-2fb4-d05a-8bb6-18f4ed9a0513" valign="top" align="left">Minimum SHA-256 or equivalent; SHA-1 and MD5 are prohibited</td>
</tr><tr id="_8f4067c0-d57f-d900-6327-15df6fe92474"><td id="_321ca68b-8eb6-130c-6884-6ea122b12605" valign="top" align="left">Symmetric encryption (at rest)</td>
<td id="_d5fc8908-632b-799a-7335-12491bd2b2e2" valign="top" align="left">Minimum 128-bit key (e.g., AES-128); 256-bit recommended</td>
</tr><tr id="_7632c1da-7343-1042-96c6-40232954e6df"><td id="_e0cb983f-b035-9637-83d6-943a0301176f" valign="top" align="left">Password-based key derivation</td>
<td id="_5a476aca-55b3-0228-5ccf-7742b10cc848" valign="top" align="left">Minimum 100,000 iterations (PBKDF2) or equivalent work factor</td>
</tr></tbody>
</table>

<p id="_37e9cd62-fbf1-aa68-33a2-3a1004a9a0a6">Implementations shall not generate or accept keys, signatures, or hashes below these minimums. Random number generators used for key generation and nonce production shall conform to a recognized standard (e.g., NIST SP 800-90A or ISO/IEC 18031).</p>
</clause>

<clause id="_3c45101b-54f5-2c01-0620-c8b2aa3b29cb" anchor="security-side-channel" inline-header="false" obligation="normative">
<title id="_8bd93558-d314-2699-1fc2-3b4a6f3aa3a4">Side-channel resistance</title>
<p id="_c88e5320-0a58-f6d5-0bd7-cba2739d8247">Implementations of threshold signing ceremonies shall employ constant-time arithmetic for all operations involving secret shares or partial signatures. Implementations shall document their side-channel countermeasures.</p>

<p id="_a8485b91-9a48-ca36-7a9f-17241d8e912d">Device signers subject to physical access shall employ hardware-level protections (e.g., secure elements conforming to ISO/IEC 19790 at Security Level 3 or higher) for key storage and signing operations.</p>

<p id="_0d3a85ea-f299-139c-02f8-4a92ec3e7435">Ceremony protocols shall specify abort procedures that prevent a malicious member from extracting share material through malformed contribution attacks. Nonce commitment (commit-then-reveal) shall be used in partial signature protocols to prevent nonce bias attacks.</p>
</clause>

<clause id="_aee2f869-e255-7baf-c65b-f0858058c90e" anchor="security-sybil-eclipse" inline-header="false" obligation="normative">
<title id="_a9fd8c96-6593-7888-59ed-5327d2bfc6a3">Sybil and eclipse attacks</title>
<p id="_af25fd92-5ae2-9f4d-bc14-b6afa4ba057a">The trust anchor bundle policy shall define criteria for root inclusion that prevent Sybil-based classification inflation. Roots shall demonstrate organizational independence (distinct legal entities, distinct governance, distinct operational infrastructure) before inclusion. The cross-domain diversity metric counts only roots whose independence is attested by the bundle policy.</p>

<p id="_462d75ca-5cd1-dc3a-55d5-250b0f12b641">Mirror discovery shall use diverse, independent channels. The verifier shall confirm that gossip sources span at least two distinct network paths. Deployments in high-risk environments should supplement gossip with out-of-band log verification (e.g., published fingerprint lists distributed via physical media).</p>

<p id="_8bd77557-de3a-4e12-fe67-5f44b5131ef6">The threat model explicitly acknowledges that a network-controlling attacker who eclipses the verifier from all honest mirrors can present a fabricated transparency view. This risk is mitigated by gossip diversity but cannot be fully eliminated without out-of-band verification channels.</p>
</clause>

<clause id="_52bd7145-78a9-4e3b-20df-f9cd08a0f874" anchor="security-ceremony-robustness" inline-header="false" obligation="normative">
<title id="_996c73c5-40f4-472f-ada5-761e09477c3f">Ceremony protocol robustness</title>
<p id="_c658b9d8-42bf-0f72-9c31-0c9387e4f911">A conforming ceremony protocol shall specify:</p>

<ul id="_474ab24a-d339-8832-7b79-85a5d3a54530"><li><p id="_7cb7954f-2f71-e331-0736-30a8f7733920">Identifiable abort. If the ceremony aborts, the protocol shall identify which member(s) caused the abort, enabling accountability.</p>
</li>
<li><p id="_0242f1c8-e9d6-0775-e9ac-c67f3f5c7b88">Nonce commitment. Partial signature protocols shall use nonce commitment to prevent nonce bias attacks by malicious members.</p>
</li>
<li><p id="_8ff1c147-18f4-0ca3-1733-d6cac94d9a5b">Censorship resistance. The authority shall document its policy for handling member non-participation, including thresholds for member removal for sustained non-participation.</p>
</li>
</ul>
</clause>

<clause id="_c41b4742-0b5a-f751-4ac2-6bb9ca2d4283" anchor="security-disaster-recovery" inline-header="false" obligation="normative">
<title id="_119f5286-8365-93e9-e32a-db312ae2c164">Disaster recovery</title>
<p id="_8f3a2721-14ba-276a-f1dc-f6eb6d761b6b">Root trust authorities shall document a disaster recovery plan addressing:</p>

<ul id="_ba2de3e6-4d45-94b9-d8e7-47084214d06c"><li><p id="_ea75577f-5f33-d6c4-5b87-b422418c465f">escrow of threshold shares under independent custodians;</p>
</li>
<li><p id="_7f76629a-0b7d-d5ef-455c-23e7e52d122f">procedures for root key reconstruction in the event of partial member loss;</p>
</li>
<li><p id="_86892c6d-d8d8-331f-6379-fd1fbb17db96">transition procedures for migrating to a successor root authority, including re-anchoring of the trust anchor bundle;</p>
</li>
<li><p id="_d9ecd79d-b446-3c06-1048-7c123f5852a5">procedures for post-dissolution revocation of artifacts discovered to be vulnerable.</p>
</li>
</ul>
</clause>

<clause id="_2a063536-9144-c4a5-eb43-ebcca05cc26d" anchor="security-long-term" inline-header="false" obligation="normative">
<title id="_dcef1875-6f30-a93b-cccd-410f3e01ca1e">Long-term security and algorithm degradation</title>
<p id="_210bc7c4-e721-1d01-a7ae-8dc7d99b83ff">Artifacts with validity periods exceeding 20 years face the risk that their signing algorithm may be cryptographically broken during the artifact’s lifetime. Conforming deployments shall specify a maximum artifact validity period per algorithm, after which re-signing with a current algorithm is required.</p>

<p id="_91879be5-5b7c-dcb4-7685-b55c0c0bc76e">For artifacts with indeterminate validity, the deployment shall specify a re-attestation cadence. The algorithm agility framework’s deprecation process (see  <xref target="algorithm-agility-deprecation"/>) shall include provision for mandatory re-signing of long-lived artifacts before algorithm retirement.</p>
</clause>

<clause id="_19072bdf-ce54-da84-f66f-d56588829d33" anchor="security-key-escrow" inline-header="false" obligation="normative">
<title id="_29a424c4-73ae-d717-467e-7906f1b9880a">Key escrow and lawful intercept</title>
<p id="_b8913541-ad69-8de7-5a6d-2afa48de5094">The SIGNATIF framework does not provide a key escrow or lawful intercept capability. Threshold schemes are designed so that no single party can produce signatures, and the aggregate key is not reconstructable from individual shares. Deployments in jurisdictions requiring key escrow shall document how their SIGNATIF conformance interacts with applicable legal requirements.</p>

<p id="_8bf2daaf-c788-0814-3e12-ca6ca8e46f6a">The framework’s trust repudiation mechanisms (revocation, scope condition withdrawal) operate on artifact validity, not on key recovery, and do not provide a decryption or signature-forcing capability.</p>
</clause>

<clause id="_571d6af1-d8eb-aeb0-d8bd-0301a142e791" anchor="security-sc27-alignment" inline-header="false" obligation="normative">
<title id="_39005cdb-90ed-abd0-cfe6-f423b94764ac">Alignment with ISO/IEC security standards</title>
<p id="_56c7513f-faf8-4a5e-d917-131d0095a757">Organizations operating SIGNATIF trust authorities should maintain an information security management system conforming to  <eref type="inline" bibitemid="iso27001" citeas="ISO/IEC 27001:2022"/>, with SIGNATIF-specific risks (key compromise, ceremony disruption, transparency log integrity, scope violation) documented in the risk assessment.</p>

<p id="_9687a614-c886-eadf-5978-fda8f53a6b20">Threshold key shares and root aggregate key material should be stored and operated within cryptographic modules conforming to ISO/IEC 19790 at Security Level 3 or higher. Key establishment, transport, and agreement should conform to the applicable mechanisms in ISO/IEC 11770.</p>

<p id="_8fb58fbf-e9b2-dacc-d5ff-be71ae2dcf8d">The composite signature model defined in this document is compatible with the digital signature framework of ISO/IEC 14888. A composite signature is equivalent to the joint verification of multiple digital signatures over the same message.</p>
</clause>
</clause>


















</sections><annex id="_4e5e128e-1b06-2456-bc26-ba71a3e91409" anchor="annex-a" inline-header="false" obligation="normative">
<title id="_dc767c69-3ae9-6fc0-79d9-03b712a7d075">Conformance test suite</title>
<clause id="_e1826c20-bafe-3d77-ae59-ae4cf64c4f7c" inline-header="false" obligation="normative">
<title id="_cf8e0bad-9b28-c71a-cb74-cecacffc038e">General</title>
<p id="_30131061-b16f-427a-c789-6677cc224d04">This annex provides the conformance classes intended to verify that an implementation conforms to the requirements specified in this document. Each conformance class targets a requirements class defined in the normative clauses.</p>

<p id="_8c5a9689-92ab-1571-532f-056d6fc1ee26">Conformance classes are rendered from structured data using the conformance class template. Each conformance class lists its conformance tests, with each test targeting one or more requirements.</p>
</clause>

<clause id="_9e08c301-d1bc-ec4e-7adb-d6cd0acf4514" inline-header="false" obligation="normative">
<title id="_cfad8c30-65f2-3a2a-aedb-27c30867dd32">Architecture and trust model</title>
<p id="_39d25e89-a9cf-5100-b8e0-06a02aa3cb24">Architecture and trust model conformance has its formalized conformance class described in <xref target="cc-architecture-1"/>, with its conformance tests listed from <xref target="ct-architecture-1-1"/> to <xref target="ct-architecture-1-11"/>.</p>

<requirement id="_30aeb355-bed3-3628-d206-f1e14d1765db" anchor="cc-architecture-1" model="ogc" type="conformanceclass">
<title>Architecture and trust model conformance</title><identifier>/conf/architecture</identifier><classification><tag>target</tag><value>/req/architecture</value></classification><description id="_749078d6-12fe-d219-e4cb-da7a671b8462"><p id="_acd0bbde-488e-0d81-fb73-056dadd6ad8f">Conformance tests for the architecture and trust model requirements.</p>
</description><requirement id="_bb06d555-7519-9139-cba8-68e0b4bc94cf" model="ogc" type="verification"> <identifier>/conf/architecture/four-level-model</identifier></requirement><requirement id="_f962f6f1-3b49-0ead-0cdf-023835c62105" model="ogc" type="verification"> <identifier>/conf/architecture/delegation-certificate</identifier></requirement><requirement id="_3cf5aed4-fd57-ad3b-bf3f-a8732ac0ea5d" model="ogc" type="verification"> <identifier>/conf/architecture/delegation-scope-narrowing</identifier></requirement><requirement id="_6147ba8d-b0bd-05b1-7efa-4a3b00db0ba3" model="ogc" type="verification"> <identifier>/conf/architecture/end-certificate-contents</identifier></requirement><requirement id="_c3ed8814-0bdb-7b4f-8b3b-274c4fb5a093" model="ogc" type="verification"> <identifier>/conf/architecture/trust-graph-pathfinding</identifier></requirement><requirement id="_485ddbca-d78f-7a63-2ddf-e489a29c3d6c" model="ogc" type="verification"> <identifier>/conf/architecture/path-transparency-inclusion</identifier></requirement><requirement id="_9b97feb9-c572-c0cf-ce01-02dd85b2f57f" model="ogc" type="verification"> <identifier>/conf/architecture/path-revocation-checking</identifier></requirement><requirement id="_6ba05c21-3d02-dfc9-22d6-3641e32acf06" model="ogc" type="verification"> <identifier>/conf/architecture/chain-discovery</identifier></requirement><requirement id="_6f94cb75-f026-047e-a142-3d89599e53b7" model="ogc" type="verification"> <identifier>/conf/architecture/anchor-bundle-self-contained</identifier></requirement><requirement id="_227f8149-8fc4-cf1b-118a-e74aa0301fce" model="ogc" type="verification"> <identifier>/conf/architecture/anchor-bundle-versioning</identifier></requirement><requirement id="_1b5517ae-f678-3a63-d5a2-7f103be47d6d" model="ogc" type="verification"> <identifier>/conf/architecture/anchor-bundle-distributable</identifier></requirement>

</requirement>

<requirement id="_f45aba32-8f42-cc89-aaf2-c58e34847f62" anchor="ct-architecture-1-1" model="ogc" type="verification">
<title>Four-level delegation model validation</title><identifier>/conf/architecture/four-level-model</identifier><classification><tag>target</tag><value>/req/architecture/four-level-model</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_d8e82f52-1041-7e74-ea82-a43331df827c" class="guidance"><ul id="_95def59e-b068-0d19-2f0d-e65b92143de6"><li><p id="_faacca0a-0dda-dc29-b7c8-4f340d693e32">Verify that delegation chains can pass through zero or more delegated trust authorities.</p>
</li>
</ul>
</component><component id="_c807f0ea-8538-20a8-e9b9-b75174eadad2" class="test-purpose"><p id="_462e5afe-819d-bdd3-8bc1-7bff204f9166">Verify that the implementation implements the four-level delegation model.</p>
</component><component id="_ab49fdee-fa7c-ee35-b994-600ba7f8f798" class="test-method"><p id="_372e4a0a-fe2f-fd94-45bd-f1e44e780473">Inspect the implementation to confirm that signing authority flows from a root trust authority through delegated trust authorities to end certificates that authorize keys to produce trusted artifacts.</p>
</component>

</requirement>

<requirement id="_31a32b6c-16bb-2e27-92c7-7ba828a222fb" anchor="ct-architecture-1-2" model="ogc" type="verification">
<title>Delegation certificate binding validation</title><identifier>/conf/architecture/delegation-certificate</identifier><classification><tag>target</tag><value>/req/architecture/delegation-certificate</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_9db766ce-835c-11a2-3278-1e8d7f8324f0" class="guidance"><ul id="_f58ac357-e0e1-f4f2-88dd-3d4a50fc878d"><li><p id="_1b24900a-5a39-96a6-6ca5-01d884e648e6">For 1-of-1 children, verify quorum parameters are omitted.</p>
</li>
</ul>
</component><component id="_8555dd0a-b11a-7c67-cd32-ae388f91344a" class="test-purpose"><p id="_2d408a42-ff74-08e1-31ed-a4672183025e">Verify that delegations are expressed as signed credentials binding the required fields.</p>
</component><component id="_804b6365-147f-17e8-7ab1-e33cf513bfc1" class="test-method"><p id="_f744ca87-2f3c-e280-d308-7b6cae13806f">Inspect delegation certificate format and verify it carries the child’s aggregate key, quorum parameters (if threshold), narrowed scope, and ceremony protocol reference (if applicable). Verify the certificate is signed by the parent.</p>
</component>

</requirement>

<requirement id="_adb18f14-6723-7c13-a7e7-ccc2aeb1937d" anchor="ct-architecture-1-3" model="ogc" type="verification">
<title>Delegation scope narrowing test</title><identifier>/conf/architecture/delegation-scope-narrowing</identifier><classification><tag>target</tag><value>/req/architecture/delegation-scope-narrowing</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_45711b7c-0109-9a98-659f-31cc471e819f" class="guidance"><ul id="_eda89de2-2df0-aa58-61b0-26eab21eecff"><li><p id="_8ab0a578-051f-a58d-48ba-fac17f918547">Test widening on each scope dimension independently.</p>
</li>
</ul>
</component><component id="_9e8a5fc7-4809-c7d1-cd44-3cd34e69bfd0" class="test-purpose"><p id="_58c8e235-7744-675e-3151-67f3b764f1f2">Verify that scope narrowing is enforced at every delegation link.</p>
</component><component id="_c213e2c2-e3ac-04bf-4cb3-36bc33cb4ae5" class="test-method"><p id="_84b80600-162e-c055-f611-e478fd39d07c">Construct test delegations with valid (narrowing) and invalid (widening) scope changes. Verify the verifier accepts valid narrowing and rejects widening on any dimension.</p>
</component>

</requirement>

<requirement id="_7ff8f198-81ca-5efb-e1ea-33e958fbe1ab" anchor="ct-architecture-1-4" model="ogc" type="verification">
<title>End certificate contents validation</title><identifier>/conf/architecture/end-certificate-contents</identifier><classification><tag>target</tag><value>/req/architecture/end-certificate-contents</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_384b5605-6203-8870-cd1a-fc2dedae1b27" class="guidance"><ul id="_db1036a9-7601-c3ed-7ab0-5bcb042eacf3"><li><p id="_ea2c2d28-d25b-1504-2d8e-9dd479d80526">Confirm scope conditions are present when applicable.</p>
</li>
</ul>
</component><component id="_be772bfe-c08a-e1d0-e624-f19cffcc025d" class="test-purpose"><p id="_92a02270-f641-bff1-b915-b79c4a30ca3b">Verify that end certificates carry the required fields.</p>
</component><component id="_f93818dd-935e-027b-95e4-7dc494ba865d" class="test-method"><p id="_9a389631-33bc-4c32-cd57-bed19c7d0b31">Inspect end certificate format and verify it carries the authorized key or fingerprint, scope, scope conditions, and issuing chain reference. Verify the certificate does not delegate authority further.</p>
</component>

</requirement>

<requirement id="_115b13b3-6523-3c72-659a-c2b79e982b2e" anchor="ct-architecture-1-5" model="ogc" type="verification">
<title>Trust graph path discoverability test</title><identifier>/conf/architecture/trust-graph-pathfinding</identifier><classification><tag>target</tag><value>/req/architecture/trust-graph-pathfinding</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_551c5485-0370-d6ea-dbde-c213c6599587" class="guidance"><ul id="_dd866531-d1b1-82a4-b42d-22e941704e0b"><li><p id="_a118498e-26f1-64cc-7016-18c7fa4872df">Test with graphs containing cycles to verify DAG property is maintained.</p>
</li>
</ul>
</component><component id="_fc3d840b-1be6-7c2d-416d-eb2f6768d48a" class="test-purpose"><p id="_22f93796-4a51-2ae6-72a9-a1565ef6c8bc">Verify the verifier can find paths from artifact to root anchor in the trust graph.</p>
</component><component id="_b8edc5ea-b190-05f5-7702-f417af53aeb2" class="test-method"><p id="_3ddbd100-fe1a-9770-d92e-660e93f11f96">Construct a trust graph with multiple paths (threshold memberships, federated authorities, cross-domain co-signatures). Verify the verifier finds valid paths, validates signatures and scope narrowing at every link, and rejects paths with broken signatures or scope violations.</p>
</component>

</requirement>

<requirement id="_9569cc99-1810-1a96-7282-eea9eca79b37" anchor="ct-architecture-1-6" model="ogc" type="verification">
<title>Path transparency inclusion test</title><identifier>/conf/architecture/path-transparency-inclusion</identifier><classification><tag>target</tag><value>/req/architecture/path-transparency-inclusion</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_35d17eca-0c3e-bd1d-5568-bcdac1058abe" class="test-purpose"><p id="_9c3b52ed-0b42-d166-b37d-cdbf24f2e91d">Verify transparency log inclusion is confirmed for every certificate on a verification path.</p>
</component><component id="_46c9681e-79e1-6d2c-9729-48cd5993870a" class="test-method"><p id="_8310d3fb-5067-4295-3e2f-c8cc988ba284">Construct an artifact whose chain includes certificates with and without transparency log inclusion proofs. Verify the verifier downgrades or rejects artifacts with un-logged certificates.</p>
</component>

</requirement>

<requirement id="_ff1a6281-6ff0-c934-5e70-3fd2be3e7581" anchor="ct-architecture-1-7" model="ogc" type="verification">
<title>Path revocation checking test</title><identifier>/conf/architecture/path-revocation-checking</identifier><classification><tag>target</tag><value>/req/architecture/path-revocation-checking</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_d282888e-8c64-1fc7-d1a3-f72a45c799f8" class="test-purpose"><p id="_29643ff0-e3d2-4f35-e24e-3e65f7cceb11">Verify revocation status is checked for every authority on a path.</p>
</component><component id="_572c987f-f343-cca3-4dfc-af69206820a8" class="test-method"><p id="_de3e70c6-5816-094b-37c8-b992579b8cd3">Construct an artifact whose chain includes a revoked authority. Verify the verifier detects the revocation and propagates it to the bound artifact.</p>
</component>

</requirement>

<requirement id="_dbe96dce-ec5f-b0bf-a786-0b09950304b8" anchor="ct-architecture-1-8" model="ogc" type="verification">
<title>Chain discovery strategy test</title><identifier>/conf/architecture/chain-discovery</identifier><classification><tag>target</tag><value>/req/architecture/chain-discovery</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_a3494911-2f45-b734-0417-b62a2b1a8244" class="guidance"><ul id="_fd47d537-9590-83c4-9bfe-0ddfa79e4046"><li><p id="_bb70fe0f-f60a-3aee-ff89-279b30dc9a06">For offline-capable strategies, verify no network access is required.</p>
</li>
</ul>
</component><component id="_a7e0795c-c9e8-4b87-3851-0b601e36ab8b" class="test-purpose"><p id="_85440c3a-be15-c57b-6db8-d70024b30d83">Verify the verifier supports at least one chain discovery strategy.</p>
</component><component id="_92905289-7f57-8bb5-9024-b1378b123096" class="test-method"><p id="_c25d948f-5beb-a381-5f4d-d8b14fb5d3ec">Test the verifier with artifacts using embedded chains, transparency-log references, and hybrid strategies. Verify the verifier can reconstruct the full chain for at least one strategy.</p>
</component>

</requirement>

<requirement id="_87ea2dae-519e-9222-a3aa-941aecc755c2" anchor="ct-architecture-1-9" model="ogc" type="verification">
<title>Trust anchor bundle self-containment validation</title><identifier>/conf/architecture/anchor-bundle-self-contained</identifier><classification><tag>target</tag><value>/req/architecture/anchor-bundle-self-contained</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_098d29f7-798d-a549-0db3-553f47523012" class="test-purpose"><p id="_30297aa3-203f-f21f-510f-b57512b9f410">Verify the trust anchor bundle is self-contained for offline verification.</p>
</component><component id="_34a7be0f-161c-04e1-32da-92f6390e17f1" class="test-method"><p id="_1bf52417-8603-0ee4-ea43-dc4f9665596c">Inspect the bundle format and verify it contains root aggregate keys or fingerprints plus validation metadata. Test offline verification with an embedded-chain artifact and confirm no network access is required.</p>
</component>

</requirement>

<requirement id="_beca8405-a037-973a-d382-97da205922f7" anchor="ct-architecture-1-10" model="ogc" type="verification">
<title>Trust anchor bundle versioning validation</title><identifier>/conf/architecture/anchor-bundle-versioning</identifier><classification><tag>target</tag><value>/req/architecture/anchor-bundle-versioning</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_c412e485-5d4f-c2ea-636d-ad6c116df80b" class="test-purpose"><p id="_4c01f9ce-ff6d-ae50-edae-eecb54b7a6d3">Verify the trust anchor bundle is versioned and updates are logged.</p>
</component><component id="_fb59281c-a5d9-ec1d-dadd-418c22021754" class="test-method"><p id="_ac975f95-5d5e-931d-7426-f72abe50a509">Inspect the bundle to confirm it carries a version identifier and validity period. Verify bundle updates are recorded in a transparency log.</p>
</component>

</requirement>

<requirement id="_194eee72-9b7b-748d-2b5c-18ba5188746f" anchor="ct-architecture-1-11" model="ogc" type="verification">
<title>Trust anchor bundle distributability validation</title><identifier>/conf/architecture/anchor-bundle-distributable</identifier><classification><tag>target</tag><value>/req/architecture/anchor-bundle-distributable</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_4faa237d-751a-e63a-c8a9-7aeec3b4e76e" class="test-purpose"><p id="_a166e234-3830-d007-20ef-e31bcdc55209">Verify the trust anchor bundle is expressible in a deterministic distributable format.</p>
</component><component id="_9d87cd52-59ac-4dea-9c03-1dfeb7d36769" class="test-method"><p id="_ece5d787-9474-8383-4098-790c8ebcd965">Serialize the bundle and verify the output is deterministic (same input produces identical bytes). Verify the format is suitable for out-of-band distribution.</p>
</component>

</requirement>
</clause>

<clause id="_655117f2-4491-3fc1-5b72-07333bd42058" inline-header="false" obligation="normative">
<title id="_511d4d80-0acd-6652-2631-99dc3746a0ec">Artifact format and signature binding</title>
<p id="_9f7e44a5-4d5d-67c4-8e14-afffef18e8d1">Artifact format conformance has its formalized conformance class described in <xref target="cc-artifact-format-1"/>, with its conformance tests listed from <xref target="ct-artifact-format-1-1"/> to <xref target="ct-artifact-format-1-19"/>.</p>

<requirement id="_120ae286-7413-9600-9907-c05e03c8c53e" anchor="cc-artifact-format-1" model="ogc" type="conformanceclass">
<title>Artifact format conformance</title><identifier>/conf/artifact-format</identifier><inherit>/conf/architecture</inherit><classification><tag>target</tag><value>/req/artifact-format</value></classification><description id="_bafde1e1-0df8-298a-5a43-5e240f9894fb"><p id="_5a070f2b-3ee3-4e65-e111-fda9f37f97ca">Conformance tests for artifact format and signature binding requirements.</p>
</description><requirement id="_3212cc4f-656d-6c5b-e15a-78d9e09bb208" model="ogc" type="verification"> <identifier>/conf/artifact-format/canonical-binding</identifier></requirement><requirement id="_21af1d8a-edac-c48f-25fe-56302709beca" model="ogc" type="verification"> <identifier>/conf/artifact-format/algorithm-identification</identifier></requirement><requirement id="_2055bfe3-eec2-d099-9a95-c180ffc414c8" model="ogc" type="verification"> <identifier>/conf/artifact-format/signer-identification</identifier></requirement><requirement id="_ad4a1af3-b749-c088-d472-eb68e737eab7" model="ogc" type="verification"> <identifier>/conf/artifact-format/chain-availability</identifier></requirement><requirement id="_cae8468f-9724-82e4-f632-574178088fa8" model="ogc" type="verification"> <identifier>/conf/artifact-format/self-description</identifier></requirement><requirement id="_78259393-ed0c-0f7f-f19c-0887c6a36eff" model="ogc" type="verification"> <identifier>/conf/artifact-format/canonical-determinism</identifier></requirement><requirement id="_9d20e190-68d6-835c-615e-61125bf510f4" model="ogc" type="verification"> <identifier>/conf/artifact-format/format-profile-satisfaction</identifier></requirement><requirement id="_bd1039e5-f0b6-fc0e-5393-1447b22e8a4c" model="ogc" type="verification"> <identifier>/conf/artifact-format/version-compatibility</identifier></requirement><requirement id="_ec19f78b-fa70-ed5c-69c0-eeba76fe4e67" model="ogc" type="verification"> <identifier>/conf/artifact-format/cosignature-block</identifier></requirement><requirement id="_b6266483-09a0-66f8-d5e5-806e4c7c173c" model="ogc" type="verification"> <identifier>/conf/artifact-format/cosignature-independent-verification</identifier></requirement><requirement id="_359c7e7f-a016-5ddc-a0bc-8c3e2c089fe6" model="ogc" type="verification"> <identifier>/conf/artifact-format/cosignature-canonical-binding</identifier></requirement><requirement id="_3a55d6e0-8742-936a-3d0a-78b95071095e" model="ogc" type="verification"> <identifier>/conf/artifact-format/format-profile-cosignature-encoding</identifier></requirement><requirement id="_696e5600-c51a-47bf-48c8-e5015d055f52" model="ogc" type="verification"> <identifier>/conf/artifact-format/cross-domain-no-cross-recognition</identifier></requirement><requirement id="_2916c635-f52b-71ac-a5fe-07f5ee17b7ac" model="ogc" type="verification"> <identifier>/conf/artifact-format/trust-cement</identifier></requirement><requirement id="_6e4929dc-7e42-33a4-085d-7374e13c75bd" model="ogc" type="verification"> <identifier>/conf/artifact-format/dimensional-convergence</identifier></requirement><requirement id="_80aeb50f-deef-0633-e880-5b8c83e5b9e7" model="ogc" type="verification"> <identifier>/conf/artifact-format/time-dimension</identifier></requirement><requirement id="_54ee1d3e-d249-b059-f563-f8ade994d476" model="ogc" type="verification"> <identifier>/conf/artifact-format/living-artifact</identifier></requirement><requirement id="_94471441-6886-0f10-d23c-c0ed253e3dc9" model="ogc" type="verification"> <identifier>/conf/artifact-format/wrapping-prevention</identifier></requirement><requirement id="_e09ead86-4697-83e6-05f9-178fb2bb9457" model="ogc" type="verification"> <identifier>/conf/artifact-format/replay-protection</identifier></requirement>

</requirement>

<requirement id="_7ed8b4c6-553e-9b60-d75f-6686b170c00c" anchor="ct-artifact-format-1-1" model="ogc" type="verification">
<title>Canonical representation binding validation</title><identifier>/conf/artifact-format/canonical-binding</identifier><classification><tag>target</tag><value>/req/artifact-format/canonical-binding</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_18e63796-852c-1a01-da5e-e85b6c601ce1" class="test-purpose"><p id="_933f7725-176a-0854-a897-0a2d12de5640">Verify the signature binds to a deterministic canonical payload.</p>
</component><component id="_efa4712d-df7c-9c25-c2dc-b9c96b01c000" class="test-method"><p id="_0b688a97-eb0b-edb8-a6ae-0ece2ed92160">Produce multiple serializations of the same logical payload. Canonicalize each and verify the canonical bytes are identical. Verify the signature validates against the canonical bytes.</p>
</component>

</requirement>

<requirement id="_8fbc7cbd-2abd-6e5d-4246-1e32a5bb54bd" anchor="ct-artifact-format-1-2" model="ogc" type="verification">
<title>Algorithm identification validation</title><identifier>/conf/artifact-format/algorithm-identification</identifier><classification><tag>target</tag><value>/req/artifact-format/algorithm-identification</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_255a8b3f-4cb8-ef30-12e7-7bef8b315581" class="test-purpose"><p id="_c2fa5f7e-2714-7d45-6812-65014faada7b">Verify the wrapper explicitly identifies the signing algorithm and parameters.</p>
</component><component id="_ff4af9e0-dec4-c9e0-87c7-650a9d794e37" class="test-method"><p id="_6eac3b4a-ac7b-23de-a701-e862d8e47c34">Inspect signature wrappers and verify the algorithm and parameters are explicitly carried. Verify verifiers can unambiguously determine the validation method.</p>
</component>

</requirement>

<requirement id="_9da28471-f058-b622-1245-6dbd4d14d4ad" anchor="ct-artifact-format-1-3" model="ogc" type="verification">
<title>Signer identification validation</title><identifier>/conf/artifact-format/signer-identification</identifier><classification><tag>target</tag><value>/req/artifact-format/signer-identification</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_ee8477b1-4bce-2060-644c-ee7d85c9f461" class="test-purpose"><p id="_b477f25f-bdf0-9cb2-85d8-c2e36b8871d4">Verify the wrapper references or embeds the signer’s key or end certificate.</p>
</component><component id="_ade4652e-cadc-556a-6a58-34c633736df9" class="test-method"><p id="_8ff741b4-ec9b-d1dd-ad43-d09ece95db7f">Inspect signature wrappers and verify the signer identity is present. Verify the verifier can locate the key and delegation chain from the wrapper.</p>
</component>

</requirement>

<requirement id="_9ec88706-cd80-1b5e-76a3-7fcf59f27e03" anchor="ct-artifact-format-1-4" model="ogc" type="verification">
<title>Chain availability validation</title><identifier>/conf/artifact-format/chain-availability</identifier><classification><tag>target</tag><value>/req/artifact-format/chain-availability</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_fa2532b9-17e4-0fd6-1bc3-5e29a9fd1915" class="test-purpose"><p id="_4488706c-2716-fe84-c9bf-e8509ae3540b">Verify the wrapper carries or references the full chain to root.</p>
</component><component id="_a4bd276f-742e-6362-43d2-a0ee8065ff05" class="test-method"><p id="_d71353ff-c50b-6e5f-87d4-783ff821fc94">Test artifacts with embedded, referenced, and hybrid chain strategies. Verify the verifier can reconstruct the full chain for each conforming strategy.</p>
</component>

</requirement>

<requirement id="_8f97a27c-03ae-f811-0060-54260e413dd3" anchor="ct-artifact-format-1-5" model="ogc" type="verification">
<title>Self-description validation</title><identifier>/conf/artifact-format/self-description</identifier><classification><tag>target</tag><value>/req/artifact-format/self-description</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_e8138851-908b-3270-8560-f8965a774d2f" class="test-purpose"><p id="_37af31cb-c4e1-a88b-b35f-3abad247d3fd">Verify the wrapper is self-describing.</p>
</component><component id="_7a8a0125-c7ff-9f74-095d-2f930bcfce39" class="test-method"><p id="_b5be295e-5182-0560-f4fa-29547f842941">Provide a verifier with only the wrapper and the trust anchor bundle. Verify all inputs needed for validation are derivable without external convention.</p>
</component>

</requirement>

<requirement id="_6101907b-920d-2b65-3a77-a7551f3e8d4c" anchor="ct-artifact-format-1-6" model="ogc" type="verification">
<title>Canonical payload determinism test</title><identifier>/conf/artifact-format/canonical-determinism</identifier><classification><tag>target</tag><value>/req/artifact-format/canonical-determinism</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_efaa34aa-788c-2d07-d4b2-7563cc4d184b" class="test-purpose"><p id="_e08b95dd-c019-f23a-02d8-32168784763e">Verify canonicalization is deterministic.</p>
</component><component id="_9882c429-795f-122d-5fc2-59031a4b5f2f" class="test-method"><p id="_25918180-82b6-b31e-33fc-d51cf97bcc4b">Canonicalize the same logical payload using two independent implementations. Verify the canonical bytes are identical. Repeat with different serializations of the same logical content.</p>
</component>

</requirement>

<requirement id="_38fdeef2-2708-e0da-843a-7db26a60b04a" anchor="ct-artifact-format-1-7" model="ogc" type="verification">
<title>Format profile satisfaction test</title><identifier>/conf/artifact-format/format-profile-satisfaction</identifier><classification><tag>target</tag><value>/req/artifact-format/format-profile-satisfaction</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_b502e8eb-5432-7a78-382e-8e8bc3e54a8f" class="test-purpose"><p id="_9bbb1605-534a-781b-5408-19d0023dc83c">Verify implementations claiming a format profile satisfy the five binding requirements.</p>
</component><component id="_841d9cd6-3b01-dc7a-6c37-6a42dcc4f4ff" class="test-method"><p id="_e84da40c-3f79-5c9c-ca21-732b3cd7cf62">For each claimed format profile, verify the five binding requirements are met in addition to the profile-specific format requirements. Test with xmldsig, jws, and cose profiles.</p>
</component>

</requirement>

<requirement id="_ca45e67e-e40d-e2f1-f958-91826f4ca3dc" anchor="ct-artifact-format-1-8" model="ogc" type="verification">
<title>Version compatibility test</title><identifier>/conf/artifact-format/version-compatibility</identifier><classification><tag>target</tag><value>/req/artifact-format/version-compatibility</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_cefed33f-e0f9-adf0-fef0-c11827b8a790" class="test-purpose"><p id="_0b37eeac-d71f-e1ac-5fd6-558be5632f9e">Verify semantic versioning rules are followed.</p>
</component><component id="_6bad0c3e-8149-6280-fe61-2c3925a6b596" class="test-method"><p id="_7127f7d9-baaf-6a6d-28f0-4c43a8433bb2">Present artifacts with major version exceeding the verifier’s maximum. Verify rejection. Present artifacts with minor version containing unknown fields. Verify acceptance with unknown fields ignored.</p>
</component>

</requirement>

<requirement id="_705e38b7-7328-348f-62ef-20fa234082ed" anchor="ct-artifact-format-1-9" model="ogc" type="verification">
<title>Co-signature block contents validation</title><identifier>/conf/artifact-format/cosignature-block</identifier><classification><tag>target</tag><value>/req/artifact-format/cosignature-block</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_1e75a6f3-312b-5477-062c-62094d61fb5f" class="test-purpose"><p id="_b96b0676-1995-54d3-789a-f31ee726720c">Verify co-signature blocks carry the required fields.</p>
</component><component id="_cfda7cc3-cfeb-5ea6-fcdb-6625583da212" class="test-method"><p id="_b85cc761-d82d-2ba5-b497-0df21f904da3">Inspect co-signature blocks and verify each contains signer identity, chain reference, algorithm and parameters, dimension tag, and signature.</p>
</component>

</requirement>

<requirement id="_6aee384d-7d4f-ca1f-53ff-aa3fe6a398b9" anchor="ct-artifact-format-1-10" model="ogc" type="verification">
<title>Co-signature independent verification test</title><identifier>/conf/artifact-format/cosignature-independent-verification</identifier><classification><tag>target</tag><value>/req/artifact-format/cosignature-independent-verification</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_0f8da523-7650-7430-f870-313268817fb3" class="test-purpose"><p id="_3075b387-d48a-4dbe-a9d0-aba8425b2050">Verify co-signatures are independently verifiable.</p>
</component><component id="_52fc21a2-f455-d97c-e643-588842173712" class="test-method"><p id="_c4a8effb-d917-6f81-e27f-011e70505dc6">Construct an artifact with multiple co-signatures from different chains. Verify each co-signature validates independently against its own root. Verify removing one co-signature does not affect the cryptographic validity of others.</p>
</component>

</requirement>

<requirement id="_0ce296be-36a6-7d64-675f-23e032402ff9" anchor="ct-artifact-format-1-11" model="ogc" type="verification">
<title>Co-signature canonical binding test</title><identifier>/conf/artifact-format/cosignature-canonical-binding</identifier><classification><tag>target</tag><value>/req/artifact-format/cosignature-canonical-binding</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_2251a8a8-c718-0174-b175-20735149de85" class="test-purpose"><p id="_c69e37f6-f82e-0fdb-7951-9d729dfa5314">Verify all co-signatures attest the same canonical payload.</p>
</component><component id="_89a11f2e-c3c4-b14d-4df4-43479875ac18" class="test-method"><p id="_12192424-cc8f-797e-4e16-b8f4d80956f2">Construct an artifact with co-signatures. Verify each co-signature validates against the same canonical payload hash. Verify partial attestation is rejected.</p>
</component>

</requirement>

<requirement id="_5ab88f68-864b-be42-7394-1c7322bec505" anchor="ct-artifact-format-1-12" model="ogc" type="verification">
<title>Format profile co-signature encoding test</title><identifier>/conf/artifact-format/format-profile-cosignature-encoding</identifier><classification><tag>target</tag><value>/req/artifact-format/format-profile-cosignature-encoding</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_28124cbd-8b80-4279-59b6-42bedb73fac7" class="test-purpose"><p id="_23f5884a-906a-ea13-c667-c46c2b965151">Verify format profiles define co-signature block encoding.</p>
</component><component id="_4a649d29-8278-9a3f-f140-f6ef6e7e9054" class="test-method"><p id="_561ec79f-d6b5-41ff-14a7-c1cbf0d5223f">For each registered format profile, inspect the profile specification. Verify it defines encoding of co-signature blocks, dimension tags, and chain references. Verify that a profile without co-signature encoding does not claim multi-dimensional conformance.</p>
</component>

</requirement>

<requirement id="_3fe54ed6-49bf-2ba3-d2db-dc3f9c906e30" anchor="ct-artifact-format-1-13" model="ogc" type="verification">
<title>Cross-domain no cross-recognition test</title><identifier>/conf/artifact-format/cross-domain-no-cross-recognition</identifier><classification><tag>target</tag><value>/req/artifact-format/cross-domain-no-cross-recognition</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_9a9693bf-f60d-3f73-c8ea-051e2dc11de9" class="test-purpose"><p id="_2ee474b6-8e72-a243-7e4b-d95b7d8042f8">Verify cross-domain co-signatures work without root cross-certification.</p>
</component><component id="_e18f3994-7d2e-af7c-7891-fe06a124d64c" class="test-method"><p id="_bcbdf7d0-f50d-1b26-53a4-ca033d4c8362">Construct an artifact with co-signatures from two independent roots that have not cross-certified. Verify the verifier validates both co-signatures using anchors from both roots in the trust anchor bundle.</p>
</component>

</requirement>

<requirement id="_fd6c68ea-5568-57e9-d191-436c45d2d611" anchor="ct-artifact-format-1-14" model="ogc" type="verification">
<title>Trust cement property test</title><identifier>/conf/artifact-format/trust-cement</identifier><classification><tag>target</tag><value>/req/artifact-format/trust-cement</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_b74b2796-7ad1-4517-9d01-ef62e1731e18" class="test-purpose"><p id="_bfe147cb-5c8a-769c-388a-77ace00ad81f">Verify co-signatures cannot be stripped and commitments are undeniable.</p>
</component><component id="_843d9f02-41f4-0fba-4e04-d9d2f40ed6f1" class="test-method"><p id="_f4222b0b-ac9f-e9ea-13dc-816a43040c31">Attempt to remove a co-signature from an artifact and verify the artifact’s self-description is broken. Verify the transparency log entry includes all co-signatures and cannot be rewritten.</p>
</component>

</requirement>

<requirement id="_3a5083de-d703-7f55-5689-accbd289bdd5" anchor="ct-artifact-format-1-15" model="ogc" type="verification">
<title>Dimensional convergence test</title><identifier>/conf/artifact-format/dimensional-convergence</identifier><classification><tag>target</tag><value>/req/artifact-format/dimensional-convergence</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_5ae0f3f8-494a-17eb-ad46-2a2af566849e" class="test-purpose"><p id="_553872b4-1b86-12ca-bb0c-db1879c6192b">Verify all dimension attestations sign the same canonical payload.</p>
</component><component id="_7f63da37-365f-abac-06c8-63b009f9c76a" class="test-method"><p id="_1b5d4bcf-177f-2cf6-88d4-fc641ec7ced2">Construct an artifact with dimension attestations from data, person, time, location, and environment dimensions. Verify each attestation validates against the same canonical payload hash.</p>
</component>

</requirement>

<requirement id="_5bd3ef8d-d89b-59b9-d916-9df2d0bc78d4" anchor="ct-artifact-format-1-16" model="ogc" type="verification">
<title>Time dimension validation</title><identifier>/conf/artifact-format/time-dimension</identifier><classification><tag>target</tag><value>/req/artifact-format/time-dimension</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_fd4f30ef-f6d9-7733-146f-b009ab35201f" class="test-purpose"><p id="_154c0a93-d435-c4c1-3948-d6c0c9b75c02">Verify the time dimension is attested by a time key with external anchoring.</p>
</component><component id="_2132e1d7-4931-52cb-af54-240785aee5af" class="test-method"><p id="_d66c3212-83f0-5b6b-1e22-06a55c344a22">Produce a time dimension attestation. Verify it is a co-signature tagged dimension time. Verify it records the artifact hash existence at a stated time. Verify the external time anchor is present and verifiable.</p>
</component>

</requirement>

<requirement id="_53a7dc1b-8a2f-472e-9e03-0907c7a9375f" anchor="ct-artifact-format-1-17" model="ogc" type="verification">
<title>Living artifact accumulation test</title><identifier>/conf/artifact-format/living-artifact</identifier><classification><tag>target</tag><value>/req/artifact-format/living-artifact</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_7a43c269-fb5a-565d-98cd-4f8eec5296b5" class="test-purpose"><p id="_f3a9ce25-ea24-c6d1-d5dd-9d65b150a912">Verify dimension attestations can accumulate over time.</p>
</component><component id="_0b9a40a2-ca6d-31b0-0884-f851f3edfa91" class="test-method"><p id="_fab98c6e-7712-ad5f-7f31-211b2fd73acb">Produce an artifact with one dimension attestation. Add additional dimension attestations at successive times. Verify each added attestation signs the original canonical payload. Verify the coverage report gains fields with each addition.</p>
</component>

</requirement>

<requirement id="_4845abef-e7d5-9c8d-d457-4ad27266fa09" anchor="ct-artifact-format-1-18" model="ogc" type="verification">
<title>Signature wrapping prevention test</title><identifier>/conf/artifact-format/wrapping-prevention</identifier><classification><tag>target</tag><value>/req/artifact-format/wrapping-prevention</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_ce61b98f-832b-d2c0-6de4-31d7f4944e6b" class="test-purpose"><p id="_d3ede78f-e73c-fdc7-8b48-62c149b6968a">Verify the signature wrapper prevents wrapping attacks.</p>
</component><component id="_da80544f-3581-9c30-abd6-a80a89f06d33" class="test-method"><p id="_a19b546f-da91-90e5-2197-e3986cfa04ea">Construct an artifact with unsigned fields that could influence downstream processing. Verify the verifier rejects the artifact because signed and processed content are not identical.</p>
</component>

</requirement>

<requirement id="_010b5b0b-98ff-6bad-8fa5-998f4e0e1d23" anchor="ct-artifact-format-1-19" model="ogc" type="verification">
<title>Co-signature replay protection test</title><identifier>/conf/artifact-format/replay-protection</identifier><classification><tag>target</tag><value>/req/artifact-format/replay-protection</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_c66b3ff4-f221-3125-540f-3e02744a0de5" class="test-purpose"><p id="_c1e98888-f97b-d394-0ec5-3a47bde5a4cd">Verify co-signatures bind to unique artifact identifiers.</p>
</component><component id="_541c35ed-1077-d105-2b6b-ce5e9d548de6" class="test-method"><p id="_78177b4a-7463-d151-245b-30c8165eeaeb">Construct two artifacts with the same canonical payload hash but different artifact identifiers. Attach a co-signature from artifact A to artifact B. Verify the verifier rejects the replayed co-signature.</p>
</component>

</requirement>
</clause>

<clause id="_a08ac3df-da3c-3d9c-4b43-c8424304e147" inline-header="false" obligation="normative">
<title id="_f402a900-aa2e-9224-52b3-7ede38110a68">Cryptographic algorithms</title>
<p id="_c7af6e0b-19ed-d238-43bd-2ac54f3e35b4">Cryptographic algorithms conformance has its formalized conformance class described in <xref target="cc-algorithms-1"/>, with its conformance tests listed from <xref target="ct-algorithms-1-1"/> to <xref target="ct-algorithms-1-7"/>.</p>

<requirement id="_39f66c20-3d57-6d10-78ae-cf896be6c14c" anchor="cc-algorithms-1" model="ogc" type="conformanceclass">
<title>Cryptographic algorithms conformance</title><identifier>/conf/algorithms</identifier><inherit>/conf/artifact-format</inherit><classification><tag>target</tag><value>/req/algorithms</value></classification><description id="_510526b6-abb2-4684-bfc9-d344550b4600"><p id="_719b34d1-7444-24f9-6310-7b8f4759f49b">Conformance tests for cryptographic algorithm requirements.</p>
</description><requirement id="_a85f3ef0-aac1-64d6-597b-74375c8f077d" model="ogc" type="verification"> <identifier>/conf/algorithms/classical-algorithms</identifier></requirement><requirement id="_323d6b8a-e70b-3ed7-48d3-4ccf25f46cfe" model="ogc" type="verification"> <identifier>/conf/algorithms/post-quantum-algorithms</identifier></requirement><requirement id="_e1bc4793-1211-7d0b-4f48-5c85aba4a612" model="ogc" type="verification"> <identifier>/conf/algorithms/composite-and-semantics</identifier></requirement><requirement id="_7a55b73e-c260-609d-6186-75b3e7fcc8f2" model="ogc" type="verification"> <identifier>/conf/algorithms/migration-phases</identifier></requirement><requirement id="_2f4f695e-30a3-a59a-6311-cfb618689434" model="ogc" type="verification"> <identifier>/conf/algorithms/algorithm-agility-identifiers</identifier></requirement><requirement id="_973af558-e0ed-3bcb-78b3-d7a29525ee30" model="ogc" type="verification"> <identifier>/conf/algorithms/encryption-at-rest</identifier></requirement><requirement id="_f3a3ca7a-25bb-66ed-fe3b-ab226efb1222" model="ogc" type="verification"> <identifier>/conf/algorithms/minimum-security-parameters</identifier></requirement>

</requirement>

<requirement id="_e9c5e24c-0212-4868-133a-c4f016be7318" anchor="ct-algorithms-1-1" model="ogc" type="verification">
<title>Classical algorithm validation</title><identifier>/conf/algorithms/classical-algorithms</identifier><classification><tag>target</tag><value>/req/algorithms/classical-algorithms</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_fd4704a5-8396-8e7a-85a7-141119a4578c" class="test-purpose"><p id="_d85d05d9-939b-110e-f1ee-21ca07bab0cf">Verify classical algorithms are recognized with explicit identifiers.</p>
</component><component id="_ad8f9529-3100-65bf-2ea5-7a59a3a32215" class="test-method"><p id="_8186ede6-d294-a620-f016-184c14407e58">Produce signatures using at least one classical algorithm from the scheme’s registry. Verify the signature wrappers carry explicit algorithm identifiers. Verify the signatures validate correctly.</p>
</component>

</requirement>

<requirement id="_d6a9b87a-1b60-e414-f3d5-4df31752dfae" anchor="ct-algorithms-1-2" model="ogc" type="verification">
<title>Post-quantum algorithm validation</title><identifier>/conf/algorithms/post-quantum-algorithms</identifier><classification><tag>target</tag><value>/req/algorithms/post-quantum-algorithms</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_d8412b9a-fbc6-78a1-757c-559ee87dea5e" class="test-purpose"><p id="_7cff2179-6afa-2d5a-bfc5-ea6e24ad9de1">Verify post-quantum algorithms are recognized.</p>
</component><component id="_1c029fc7-d716-a016-9cc7-3ed82bef4a53" class="test-method"><p id="_337fa293-312e-d883-7a82-b2b683115dd4">Produce signatures using at least one post-quantum algorithm from the scheme’s registry. Verify the signatures validate correctly against the specified parameter sets.</p>
</component>

</requirement>

<requirement id="_f0c1b769-be9f-3b64-0e67-77a8ae98454a" anchor="ct-algorithms-1-3" model="ogc" type="verification">
<title>Composite AND semantics test</title><identifier>/conf/algorithms/composite-and-semantics</identifier><classification><tag>target</tag><value>/req/algorithms/composite-and-semantics</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_5014bf7e-0a51-d076-1483-3b240d610bac" class="test-purpose"><p id="_b83e0a78-cd8c-a20a-e857-4db9df16ba55">Verify composite signatures require both components to validate.</p>
</component><component id="_01bd0f12-c69c-5ee1-941c-317885544701" class="test-method"><p id="_43f826c1-1a75-2965-58cc-db5539e0b61d">Produce a composite signature (classical + post-quantum). Verify it validates when both components are valid. Tamper with one component and verify the composite fails.</p>
</component>

</requirement>

<requirement id="_af7c1e5a-8807-37db-551c-f9f4ea52d7bf" anchor="ct-algorithms-1-4" model="ogc" type="verification">
<title>Migration phases test</title><identifier>/conf/algorithms/migration-phases</identifier><classification><tag>target</tag><value>/req/algorithms/migration-phases</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_d707cacd-dd96-c761-90ca-d9f933f8a197" class="test-purpose"><p id="_6d436497-69f8-3492-3e01-31e064883c3d">Verify the framework supports all three migration phases.</p>
</component><component id="_580b6078-5011-9ee1-288f-2213ec021e33" class="test-method"><p id="_d5b0d194-c142-6114-6bbd-dc5af7024b27">Configure a deployment for classical-only, composite, and post-quantum-only phases. Verify artifacts are produced and verified in each phase.</p>
</component>

</requirement>

<requirement id="_c6297e31-856a-8951-776f-2016c8e33d9c" anchor="ct-algorithms-1-5" model="ogc" type="verification">
<title>Algorithm agility identifiers test</title><identifier>/conf/algorithms/algorithm-agility-identifiers</identifier><classification><tag>target</tag><value>/req/algorithms/algorithm-agility-identifiers</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_03e69fe9-c7d8-3894-63ee-1162a624f37e" class="test-purpose"><p id="_f8dcab24-c1ed-94c2-5b2d-63e301a11965">Verify algorithm identifiers enable correct validation method selection.</p>
</component><component id="_533ddd5c-bcad-17f8-f5ef-62c3a7059767" class="test-method"><p id="_4c3dc34c-b200-81cd-fa64-8aa2172de6b9">Produce artifacts with different algorithm identifiers. Verify the verifier selects the correct validation method for each. Verify unknown identifiers are handled gracefully.</p>
</component>

</requirement>

<requirement id="_ed3e5d9c-7e4b-47ff-9156-21aa751efb42" anchor="ct-algorithms-1-6" model="ogc" type="verification">
<title>Encryption at rest validation</title><identifier>/conf/algorithms/encryption-at-rest</identifier><classification><tag>target</tag><value>/req/algorithms/encryption-at-rest</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_aa2fbb25-8213-2f95-c34e-fcab91fa81d3" class="test-purpose"><p id="_5a8a0c41-f80c-2d90-5eff-fd8154c0a8d4">Verify keys at rest are encrypted with an authenticated encryption algorithm and a password-based key derivation function.</p>
</component><component id="_d8963f70-7fc1-1233-dd95-d34e8382ce76" class="test-method"><p id="_d4ca7cff-1bec-774d-f31a-50327d004904">Inspect the key storage implementation. Verify an authenticated encryption algorithm meeting the minimum security parameters in <xref target="tab-security-parameters"/> is used. Verify the encryption key is derived using a password-based key derivation function resistant to brute-force attacks. Attempt to read stored keys and verify they are not in plaintext.</p>
</component>

</requirement>

<requirement id="_5f26eeb2-1664-bd73-720f-4ea829fb9b77" anchor="ct-algorithms-1-7" model="ogc" type="verification">
<title>Minimum security parameters test</title><identifier>/conf/algorithms/minimum-security-parameters</identifier><classification><tag>target</tag><value>/req/algorithms/minimum-security-parameters</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_f81a0074-dde0-6858-b1c4-961cb2541d84" class="test-purpose"><p id="_514a1654-dbc3-6e7d-97d9-2a45ba5b4ce6">Verify implementations use algorithms meeting minimum security strength.</p>
</component><component id="_c7de3539-cd30-3ee7-e248-ecfc26c6905f" class="test-method"><p id="_5a76d4fd-f0a3-cac7-87bd-d4a1098137ab">Attempt to generate or accept keys, signatures, or hashes below 128-bit security strength. Verify all such attempts are rejected. Verify SHA-1 and MD5 are rejected.</p>
</component>

</requirement>
</clause>

<clause id="_b9d28645-b984-85ee-a4d2-502b872fe147" inline-header="false" obligation="normative">
<title id="_497283eb-5e95-b11e-4956-93cfa434373e">Threshold signing</title>
<p id="_d55bf04f-ee31-f64d-576e-e0d8214021c0">Threshold signing conformance has its formalized conformance class described in <xref target="cc-threshold-signing-1"/>, with its conformance tests listed from <xref target="ct-threshold-signing-1-1"/> to <xref target="ct-threshold-signing-1-12"/>.</p>

<requirement id="_a22c60ba-1408-b49a-dca4-1cc4bcfaea3e" anchor="cc-threshold-signing-1" model="ogc" type="conformanceclass">
<title>Threshold signing conformance</title><identifier>/conf/threshold-signing</identifier><inherit>/conf/architecture</inherit><classification><tag>target</tag><value>/req/threshold-signing</value></classification><description id="_f4248029-7a5a-92eb-c6a8-a26369b02f16"><p id="_4c290ec6-d16c-2997-9762-149230a708c4">Conformance tests for threshold signing and federated trust authority requirements.</p>
</description><requirement id="_a2a27d68-259f-8a42-fbc3-315b5e32f400" model="ogc" type="verification"> <identifier>/conf/threshold-signing/threshold-every-level</identifier></requirement><requirement id="_48d9f019-1657-f3a7-16f5-70dc91097694" model="ogc" type="verification"> <identifier>/conf/threshold-signing/quorum-in-delegation</identifier></requirement><requirement id="_d57fd0d3-b06d-c706-db99-5b0507c43edf" model="ogc" type="verification"> <identifier>/conf/threshold-signing/aggregate-key-continuity</identifier></requirement><requirement id="_5a8ef253-cecc-32cf-19f6-4679ebabb13f" model="ogc" type="verification"> <identifier>/conf/threshold-signing/nested-threshold</identifier></requirement><requirement id="_06d6f3f5-4058-c24f-f083-89e7776025cc" model="ogc" type="verification"> <identifier>/conf/threshold-signing/fta-formation</identifier></requirement><requirement id="_d230bcd9-c621-df3c-631c-be3fb2a2be42" model="ogc" type="verification"> <identifier>/conf/threshold-signing/fta-recursive-composition</identifier></requirement><requirement id="_b446967b-64b9-34d4-970c-8ffa020fa235" model="ogc" type="verification"> <identifier>/conf/threshold-signing/fta-hierarchy-spanning</identifier></requirement><requirement id="_52d712a1-f00d-e50d-553e-37f02ca7b5e7" model="ogc" type="verification"> <identifier>/conf/threshold-signing/fta-reshare</identifier></requirement><requirement id="_b35aba86-e779-ea55-8ee9-dd7c36bb42d3" model="ogc" type="verification"> <identifier>/conf/threshold-signing/ceremony-threshold-property</identifier></requirement><requirement id="_b44b5135-effd-c714-391b-34cb1001e8c2" model="ogc" type="verification"> <identifier>/conf/threshold-signing/rogue-key-prevention</identifier></requirement><requirement id="_2d348043-2233-586c-7801-04b6bf049138" model="ogc" type="verification"> <identifier>/conf/threshold-signing/ceremony-robustness</identifier></requirement><requirement id="_ec2d22af-cafa-a8b2-eaa3-e84667936a2b" model="ogc" type="verification"> <identifier>/conf/threshold-signing/ceremony-record-production</identifier></requirement>

</requirement>

<requirement id="_4b9fcaa4-e9e0-7898-2535-1636adefa013" anchor="ct-threshold-signing-1-1" model="ogc" type="verification">
<title>Threshold at every level test</title><identifier>/conf/threshold-signing/threshold-every-level</identifier><classification><tag>target</tag><value>/req/threshold-signing/threshold-every-level</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_9e2a33b5-e779-3446-df63-e8dc6f165255" class="test-purpose"><p id="_f93a434d-1e88-829c-1010-155ccc059f8b">Verify that threshold signing is supported at every trust authority level.</p>
</component><component id="_79cbb2de-e508-81cc-fc3e-cfeec368145b" class="test-method"><p id="_5021bba4-2c01-86ad-c48d-ab8c7b6e467a">Construct a delegation hierarchy with threshold at root, intermediate DTA, and end-issuing levels. Verify that signatures from each level require the specified quorum and cannot be produced by fewer than T members.</p>
</component>

</requirement>

<requirement id="_24788fe2-ec7f-450c-22b9-87f927da9bc1" anchor="ct-threshold-signing-1-2" model="ogc" type="verification">
<title>Quorum parameters in delegation validation</title><identifier>/conf/threshold-signing/quorum-in-delegation</identifier><classification><tag>target</tag><value>/req/threshold-signing/quorum-in-delegation</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_6b40a9ce-dc47-2c5a-aad3-d89674b65c23" class="test-purpose"><p id="_3a03d5b4-79a1-443c-269a-651f4bd983df">Verify delegation certificates for threshold children carry the required quorum parameters.</p>
</component><component id="_1686a7ba-012d-8875-f1c2-2f37f2dd3811" class="test-method"><p id="_9fd816e5-3707-8de1-ce42-c73051be6e5d">Inspect delegation certificates for threshold authorities and verify they carry the aggregate public key, quorum (T, N), and member identity references.</p>
</component>

</requirement>

<requirement id="_5ece6100-21b7-912b-4e51-5802b5e252d7" anchor="ct-threshold-signing-1-3" model="ogc" type="verification">
<title>Aggregate key continuity test</title><identifier>/conf/threshold-signing/aggregate-key-continuity</identifier><classification><tag>target</tag><value>/req/threshold-signing/aggregate-key-continuity</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_a07c9ef0-794c-ef51-cc1d-adf654db2ae9" class="test-purpose"><p id="_46e14950-a43f-cc83-18d9-e3a1b2423eca">Verify member rotation preserves the aggregate key and existing delegations.</p>
</component><component id="_72af40c7-ed90-bd56-6c51-d0c23638d9b9" class="test-method"><p id="_568c5269-76f8-81a3-e9f7-154ba09ffacf">Perform a member rotation (add, remove, replace) on a threshold authority. Verify the aggregate public key is unchanged. Verify existing parent delegations remain valid. Verify artifacts signed before and after rotation verify against the same aggregate key.</p>
</component>

</requirement>

<requirement id="_4fe0edcd-57d5-539a-1059-56c49ca3a7d5" anchor="ct-threshold-signing-1-4" model="ogc" type="verification">
<title>Nested threshold test</title><identifier>/conf/threshold-signing/nested-threshold</identifier><classification><tag>target</tag><value>/req/threshold-signing/nested-threshold</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_4aeb7042-8039-9615-8195-ff85add96b10" class="test-purpose"><p id="_a41fe702-7dcb-e660-c100-f4cf02c8da64">Verify nested threshold structures are supported.</p>
</component><component id="_7382944f-f8b4-6336-146b-147e8b6b4efc" class="test-method"><p id="_1586d561-6a71-e630-3d9c-71017e514d4b">Construct a threshold DTA whose members are themselves threshold DTAs. Verify signing requires inner authorities to reach their quorum before contributing shares to the outer threshold.</p>
</component>

</requirement>

<requirement id="_da6ca394-5294-4ef3-54ff-17fec72b3b7e" anchor="ct-threshold-signing-1-5" model="ogc" type="verification">
<title>FTA formation validation</title><identifier>/conf/threshold-signing/fta-formation</identifier><classification><tag>target</tag><value>/req/threshold-signing/fta-formation</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_6accda2f-21c5-70fd-9b1c-9a5573b96f06" class="test-purpose"><p id="_3c127ac8-4dcf-86b0-8243-3905a2971626">Verify FTA formation produces a single aggregate key from independent members.</p>
</component><component id="_bb47ecc7-a76e-d574-b025-11ee98f37263" class="test-method"><p id="_fc06976a-f614-0b78-a3a3-22e76fa36145">Form an FTA with multiple independent member organizations contributing shares. Verify the resulting aggregate key is a single key. Verify no single member can produce a valid signature.</p>
</component>

</requirement>

<requirement id="_6b9b196f-6e29-c8e3-13bb-e883f183b39a" anchor="ct-threshold-signing-1-6" model="ogc" type="verification">
<title>FTA recursive composition test</title><identifier>/conf/threshold-signing/fta-recursive-composition</identifier><classification><tag>target</tag><value>/req/threshold-signing/fta-recursive-composition</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_a01d09e0-ccec-bb3a-d0dc-3ceb26c40cac" class="test-purpose"><p id="_86218acb-271c-bf7a-db77-523d68190e4e">Verify recursively composed FTAs are supported.</p>
</component><component id="_f339cb7a-8af7-b43c-40ca-5217ecf03fe4" class="test-method"><p id="_39c2c7e7-fe0b-c94e-1c71-7e82cf4caa60">Construct an FTA that is a member of another FTA. Verify signing by the outer FTA requires the inner FTA to reach its own quorum first.</p>
</component>

</requirement>

<requirement id="_b3fa30c9-a4cb-3124-f67d-9fedc9304318" anchor="ct-threshold-signing-1-7" model="ogc" type="verification">
<title>FTA hierarchy-spanning test</title><identifier>/conf/threshold-signing/fta-hierarchy-spanning</identifier><classification><tag>target</tag><value>/req/threshold-signing/fta-hierarchy-spanning</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_bca6b0f4-4cdb-54f3-41a8-bffc47c3696c" class="test-purpose"><p id="_01a93cc1-5c2f-af0e-6858-66bb6c650b35">Verify FTAs can span independent root hierarchies.</p>
</component><component id="_aa778336-b183-ba3a-54d0-a32634492da6" class="test-method"><p id="_981c811f-c38c-714a-35ff-80013478dff0">Construct an FTA with members from two independent roots. Verify artifacts signed by the FTA are verifiable and recognized by both hierarchies.</p>
</component>

</requirement>

<requirement id="_0103f6ea-dd13-371c-6624-4d1c49b27bc0" anchor="ct-threshold-signing-1-8" model="ogc" type="verification">
<title>FTA re-share test</title><identifier>/conf/threshold-signing/fta-reshare</identifier><classification><tag>target</tag><value>/req/threshold-signing/fta-reshare</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_e2d60d29-71d1-26ad-4ccd-e661bf8538ac" class="test-purpose"><p id="_cfee356a-7fc5-f016-b536-1e9014b06950">Verify FTA member join/leave preserves the aggregate key and historical validity.</p>
</component><component id="_2c70aef1-6751-8928-37c7-8903f1d2b4d6" class="test-method"><p id="_4aef5089-3cb3-45b4-2f3f-cf2255b95e75">Add and remove members from an FTA. Verify the aggregate key is unchanged. Verify artifacts signed before the operation remain valid.</p>
</component>

</requirement>

<requirement id="_838c95bf-8729-9257-d9d1-9bc1399b59b8" anchor="ct-threshold-signing-1-9" model="ogc" type="verification">
<title>Ceremony threshold property test</title><identifier>/conf/threshold-signing/ceremony-threshold-property</identifier><classification><tag>target</tag><value>/req/threshold-signing/ceremony-threshold-property</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_e350637a-155c-0569-6dfd-90d805ee0462" class="test-purpose"><p id="_26415fd5-199c-d158-b268-1afda5ccfa62">Verify the ceremony protocol enforces the threshold property.</p>
</component><component id="_b2e2f506-566c-4a54-51ac-981f7174b3a0" class="test-method"><p id="_eedad67d-4aab-01c8-dfba-32cce55f55d4">Attempt to produce a signature with fewer than T members. Verify the attempt fails. Produce a signature with T or more members and verify it validates against the aggregate key.</p>
</component>

</requirement>

<requirement id="_8fcfa057-56f6-86ac-9cc6-b0b3d52323e3" anchor="ct-threshold-signing-1-10" model="ogc" type="verification">
<title>Rogue-key attack prevention test</title><identifier>/conf/threshold-signing/rogue-key-prevention</identifier><classification><tag>target</tag><value>/req/threshold-signing/rogue-key-prevention</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_07ddca7c-1da3-78b3-04b5-972731d3960e" class="test-purpose"><p id="_60233700-8d80-5a59-5fa3-02066ca552be">Verify proof-of-possession prevents rogue-key attacks.</p>
</component><component id="_74c6c05c-66da-5f69-16e2-fa9fa0031a4d" class="test-method"><p id="_6fb075c5-ad6d-e45f-7b03-d9949d122fac">Attempt to register a threshold member without proof-of-possession. Verify rejection. Attempt to register a crafted rogue key. Verify the aggregate key computation does not collapse to the attacker’s solo key.</p>
</component>

</requirement>

<requirement id="_68eea620-e043-f1ff-3265-d2d70c69f9a5" anchor="ct-threshold-signing-1-11" model="ogc" type="verification">
<title>Ceremony robustness test</title><identifier>/conf/threshold-signing/ceremony-robustness</identifier><classification><tag>target</tag><value>/req/threshold-signing/ceremony-robustness</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_91117907-2909-1263-b419-f0f9c7c381a3" class="test-purpose"><p id="_bfbe497b-11be-f71a-e349-4f5bd9c51e94">Verify ceremony protocol provides identifiable abort and nonce commitment.</p>
</component><component id="_fcc04ca7-32e7-d8eb-4815-3eb0a7a0653b" class="test-method"><p id="_03067e39-5e1b-4f3b-c062-f2c3798157dd">Execute a ceremony with a malicious member sending malformed contributions. Verify the abort is attributable. Verify nonce commitment prevents nonce bias.</p>
</component>

</requirement>

<requirement id="_0eea5625-d5e1-75fb-85f5-9e328f943771" anchor="ct-threshold-signing-1-12" model="ogc" type="verification">
<title>Ceremony record production validation</title><identifier>/conf/threshold-signing/ceremony-record-production</identifier><classification><tag>target</tag><value>/req/threshold-signing/ceremony-record-production</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_312f80f3-06d3-6a27-95a7-3dc47db4f0a9" class="test-purpose"><p id="_1dd945b9-eeaa-9b55-02fc-d9f5db911e91">Verify ceremonies produce verifiable ceremony records.</p>
</component><component id="_56d89a79-cdeb-b061-134e-33505319a09c" class="test-method"><p id="_d2a73482-45c5-f268-b81c-0336607af66b">Execute a signing ceremony and inspect the resulting ceremony record. Verify it documents participating members, threshold parameters, and the signature produced. Verify the record is independently verifiable.</p>
</component>

</requirement>
</clause>

<clause id="_47241cdd-3392-b9da-8b22-808204c7e305" inline-header="false" obligation="normative">
<title id="_a3010bd2-d859-4954-9954-dfce4a26a723">Trust chain and authorization scope governance</title>
<p id="_63289967-7b4b-80ca-20f2-fd28724d9dcf">Scope governance conformance has its formalized conformance class described in <xref target="cc-scope-1"/>, with its conformance tests listed from <xref target="ct-scope-1-1"/> to <xref target="ct-scope-1-8"/>.</p>

<requirement id="_bb55160d-6286-c485-acf7-1f1b7e972a05" anchor="cc-scope-1" model="ogc" type="conformanceclass">
<title>Scope governance conformance</title><identifier>/conf/scope</identifier><inherit>/conf/architecture</inherit><classification><tag>target</tag><value>/req/scope</value></classification><description id="_16e41954-e4f5-58ee-410f-679514c4d9c7"><p id="_4300de84-3229-6c3b-b8d6-6da92e1486ed">Conformance tests for scope governance requirements.</p>
</description><requirement id="_a50ea747-cea6-429f-d94f-c24a96169e7a" model="ogc" type="verification"> <identifier>/conf/scope/scope-structure</identifier></requirement><requirement id="_5fefa03b-4641-15c7-4ba6-a7a8d1568c10" model="ogc" type="verification"> <identifier>/conf/scope/monotonic-narrowing</identifier></requirement><requirement id="_7c2cae72-82bb-1cc9-e83b-09b908504e8c" model="ogc" type="verification"> <identifier>/conf/scope/widening-rejection</identifier></requirement><requirement id="_b8af5427-6c56-15eb-3956-97ab8cb02d5f" model="ogc" type="verification"> <identifier>/conf/scope/scope-conditions</identifier></requirement><requirement id="_0ae9adcc-b34d-89bd-4bef-a4e3b8ad4fb4" model="ogc" type="verification"> <identifier>/conf/scope/condition-determinism</identifier></requirement><requirement id="_7ad623cb-048c-cd6c-5201-cc97a2fa7ff4" model="ogc" type="verification"> <identifier>/conf/scope/scope-encoding</identifier></requirement><requirement id="_43d749fd-e0c5-277d-4bee-b66dc3269b3d" model="ogc" type="verification"> <identifier>/conf/scope/four-layer-enforcement</identifier></requirement><requirement id="_ec40f701-d759-3a4d-feed-45e03cfcd5fc" model="ogc" type="verification"> <identifier>/conf/scope/scope-in-transparency</identifier></requirement>

</requirement>

<requirement id="_13dba69f-6f0e-7534-bcad-415ea4f7b1b5" anchor="ct-scope-1-1" model="ogc" type="verification">
<title>Scope structure validation</title><identifier>/conf/scope/scope-structure</identifier><classification><tag>target</tag><value>/req/scope/scope-structure</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_2885f348-b211-9858-decf-f66fa601779e" class="test-purpose"><p id="_f16c7f23-10f7-5e0b-bc6c-08c214bdad9f">Verify scopes are expressed as multi-dimensional constraint sets.</p>
</component><component id="_c7b91b9f-fe86-9df8-3814-24d71c85c7f7" class="test-method"><p id="_45c0e4ef-ac7b-4582-8b4f-c3d95c7f4ec3">Inspect scope encoding in delegation and end certificates. Verify each scope carries multiple independently constraining dimensions. Verify each dimension accepts wildcard, set, or single values.</p>
</component>

</requirement>

<requirement id="_f4bf3cd4-bd98-c899-4d80-3bc0db556453" anchor="ct-scope-1-2" model="ogc" type="verification">
<title>Monotonic narrowing test</title><identifier>/conf/scope/monotonic-narrowing</identifier><classification><tag>target</tag><value>/req/scope/monotonic-narrowing</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_36dafaf1-8aef-ea34-74c0-d9cc1a27e565" class="guidance"><ul id="_33beb0b6-f2a8-eaa4-a51a-bd44041ff9bc"><li><p id="_1191dbf6-ec2e-6eb6-2ab4-b715530f5a0c">Test each scope dimension independently and in combination.</p>
</li>
</ul>
</component><component id="_679ead1e-8963-b3de-6ae3-b4a3a355a8ae" class="test-purpose"><p id="_0e167747-3107-3bc6-97a8-87b912246645">Verify the monotonic narrowing invariant is enforced at every delegation link.</p>
</component><component id="_94ddc2cc-df14-1f0b-5bc4-101ed3c1e7f9" class="test-method"><p id="_ece55aa0-d93e-bbd1-a115-96c3e6ce9c40">Construct delegations with valid narrowing (wildcard to set, set to subset, set to single) and invalid widening (single to set, set to wildcard, single to different single). Verify the verifier accepts narrowing and rejects widening on every dimension.</p>
</component>

</requirement>

<requirement id="_c76b1914-022f-5398-cf53-7d13f1811253" anchor="ct-scope-1-3" model="ogc" type="verification">
<title>Scope widening rejection test</title><identifier>/conf/scope/widening-rejection</identifier><classification><tag>target</tag><value>/req/scope/widening-rejection</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_061d2220-436a-5181-9888-900faa8683cc" class="test-purpose"><p id="_ff7015b1-bf3b-194e-e3da-734c6061e435">Verify widening causes hard rejection, not downgrade.</p>
</component><component id="_53506d8e-b5c3-ea45-4f21-eab6e6804047" class="test-method"><p id="_9be5535f-63f7-3097-2cfc-02e8c47717c0">Construct a chain with scope widening on one dimension. Verify the verifier rejects the path outright, not downgrades the classification label.</p>
</component>

</requirement>

<requirement id="_df08fe01-4e66-10cb-7514-227b513c83c1" anchor="ct-scope-1-4" model="ogc" type="verification">
<title>Scope conditions evaluation test</title><identifier>/conf/scope/scope-conditions</identifier><classification><tag>target</tag><value>/req/scope/scope-conditions</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_4a255134-5135-dc86-735f-69c745e010c2" class="test-purpose"><p id="_b79b1bcc-fd70-30d6-a069-36f02098d7f5">Verify scope conditions are evaluated at verification time and cause failure when not met.</p>
</component><component id="_c9e4aabc-c4bb-089e-7ed0-0f1fb4404ac6" class="test-method"><p id="_1c2e8584-df96-aa8d-3211-fcfce550be26">Construct artifacts with scope conditions (e.g., value within tolerance, calibration valid at time). Verify the verifier evaluates conditions against artifact content. Verify artifacts failing a condition are rejected even with valid signatures.</p>
</component>

</requirement>

<requirement id="_59560486-0261-e5fb-b05c-b4e0791d0f44" anchor="ct-scope-1-5" model="ogc" type="verification">
<title>Scope condition determinism test</title><identifier>/conf/scope/condition-determinism</identifier><classification><tag>target</tag><value>/req/scope/condition-determinism</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_77c12090-1120-2431-5b48-d70593218dd4" class="test-purpose"><p id="_ac5ab5b0-f1d4-2b81-688a-9d52a426ccd4">Verify condition evaluation is deterministic across independent verifiers.</p>
</component><component id="_ef6a8d05-a209-7f14-87f6-4db4865f0421" class="test-method"><p id="_c9499099-0742-fe26-2241-d4cb32dd74fa">Evaluate the same scope condition against the same artifact using two independent verifier implementations. Verify both reach the same result.</p>
</component>

</requirement>

<requirement id="_73606e58-8279-0690-e820-b6b0e74e47f9" anchor="ct-scope-1-6" model="ogc" type="verification">
<title>Scope encoding validation</title><identifier>/conf/scope/scope-encoding</identifier><classification><tag>target</tag><value>/req/scope/scope-encoding</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_85ce05a7-baa3-9629-896f-d9602732568c" class="test-purpose"><p id="_032d4e7b-df1d-bb39-15bb-71100db8bbb4">Verify the scope encoding is machine-checkable, compact, and extensible.</p>
</component><component id="_092e0dd8-7c77-f04f-0db0-6f1ac4d696ae" class="test-method"><p id="_aad16a67-1042-954b-6136-1509b44420b5">Inspect the scope encoding format. Verify it is parseable without human interpretation. Verify the encoding size is proportional to constraint complexity, not inflated. Verify unknown dimension types or condition types do not cause parsing failure in verifiers that do not recognize them.</p>
</component>

</requirement>

<requirement id="_50cc52cc-3661-79bd-e148-6308ff9f1b79" anchor="ct-scope-1-7" model="ogc" type="verification">
<title>Four-layer enforcement test</title><identifier>/conf/scope/four-layer-enforcement</identifier><classification><tag>target</tag><value>/req/scope/four-layer-enforcement</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_678864d5-09ae-6be7-e817-1b66012a9297" class="test-purpose"><p id="_0779bf33-a42d-22e8-6d0e-2ef10bb662ba">Verify scope is enforced at all four layers.</p>
</component><component id="_b4f941a0-e7b6-e2a5-710c-15943fd0de99" class="test-method"><p id="_a6e73e4f-e8b9-cbda-4294-8878e53c8790">Test scope tampering in the certificate (layer 1). Test widening at a chain link (layer 2). Test condition failure in the pipeline (layer 3). Verify scope is present in transparency log entries (layer 4). Verify each layer independently detects the violation.</p>
</component>

</requirement>

<requirement id="_b9d1567b-21bf-b8ac-b24b-42778802a2ce" anchor="ct-scope-1-8" model="ogc" type="verification">
<title>Scope in transparency log validation</title><identifier>/conf/scope/scope-in-transparency</identifier><classification><tag>target</tag><value>/req/scope/scope-in-transparency</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_27e32902-aaf6-81fe-d6c1-4b5f90d645fb" class="test-purpose"><p id="_293af846-4d4d-faa9-7c10-1a0efeb38874">Verify scope is recorded in the transparency log for every certificate.</p>
</component><component id="_9cdf720b-83f8-345a-0323-31f24d15f7b8" class="test-method"><p id="_759f1b4e-1748-9f72-5ac2-8fee64f21505">Inspect transparency log entries for delegation and end certificates. Verify each entry includes the full scope. Verify third parties can audit scope assignments from log entries alone.</p>
</component>

</requirement>
</clause>

<clause id="_b6d2cc13-9dec-44e9-a18a-b485756f90ea" inline-header="false" obligation="normative">
<title id="_fe8c2e4a-cef1-562a-3a21-2795fabd9a78">Revocation and artifact binding</title>
<p id="_f99622d9-31c9-1480-0443-55cbf451af20">Revocation conformance has its formalized conformance class described in <xref target="cc-revocation-1"/>, with its conformance tests listed from <xref target="ct-revocation-1-1"/> to <xref target="ct-revocation-1-7"/>.</p>

<requirement id="_ae72e6e8-45e5-ac56-2f57-d8cc9014cac1" anchor="cc-revocation-1" model="ogc" type="conformanceclass">
<title>Revocation conformance</title><identifier>/conf/revocation</identifier><inherit>/conf/architecture</inherit><inherit>/conf/artifact-format</inherit><classification><tag>target</tag><value>/req/revocation</value></classification><description id="_bdd0b7bd-4120-5a3e-b307-7e896066c069"><p id="_fee8afb8-411a-2312-326e-3e782e9e9d0c">Conformance tests for revocation and artifact binding requirements.</p>
</description><requirement id="_88f67457-0bb5-398d-567e-5dc27ddc4690" model="ogc" type="verification"> <identifier>/conf/revocation/crl-profile</identifier></requirement><requirement id="_17ff7c7d-be6b-600f-6cef-1675b50842be" model="ogc" type="verification"> <identifier>/conf/revocation/hash-binding</identifier></requirement><requirement id="_2c77f8fc-1569-20d0-1ee1-9b48bfb4e2ac" model="ogc" type="verification"> <identifier>/conf/revocation/propagation</identifier></requirement><requirement id="_1f203988-6482-e4d1-06f5-8a688cc7c2d0" model="ogc" type="verification"> <identifier>/conf/revocation/flag-semantics</identifier></requirement><requirement id="_1b7084a3-dd99-c3c6-51e5-227ede95ee69" model="ogc" type="verification"> <identifier>/conf/revocation/query-interface</identifier></requirement><requirement id="_3a75a796-9023-0bf4-48de-6078f490c0b5" model="ogc" type="verification"> <identifier>/conf/revocation/offline-grace-period</identifier></requirement><requirement id="_8e877a2b-9f5d-2ab2-13e3-d8c5c3758e47" model="ogc" type="verification"> <identifier>/conf/revocation/scope-condition-withdrawal</identifier></requirement>

</requirement>

<requirement id="_06a236df-62a1-72be-4d7e-f787ab871c62" anchor="ct-revocation-1-1" model="ogc" type="verification">
<title>CRL profile validation</title><identifier>/conf/revocation/crl-profile</identifier><classification><tag>target</tag><value>/req/revocation/crl-profile</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_7acb2a6a-e2ac-d94b-f0f3-933e2018c2e3" class="test-purpose"><p id="_a0a64bfd-5934-6c3f-e239-85b41a3e8570">Verify CRLs contain the required fields and are recorded in a transparency log.</p>
</component><component id="_a140ca71-1f8a-cad9-5b65-52040bddd4ce" class="test-method"><p id="_c0f63787-66b4-c708-a299-dc08152b9fbb">Inspect CRL format and verify it identifies the issuing authority, carries revoked credential fingerprints with time and reason, carries a validity period, and is recorded in a transparency log.</p>
</component>

</requirement>

<requirement id="_d12e9a7c-1547-231f-bab6-418b4292ec49" anchor="ct-revocation-1-2" model="ogc" type="verification">
<title>Hash-binding validation</title><identifier>/conf/revocation/hash-binding</identifier><classification><tag>target</tag><value>/req/revocation/hash-binding</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_bbdd438d-1c04-fcd6-d126-bd0401a29d9d" class="test-purpose"><p id="_5a49488b-ccf9-e227-c7ad-6ccc2ec4e859">Verify artifacts carry hash-bindings to authority states.</p>
</component><component id="_4135418a-2fa7-20a7-564b-855329895ddd" class="test-method"><p id="_817989d4-da41-1d88-3cf0-a6918ad849f4">Inspect artifacts and verify each carries a cryptographic hash-binding to the authority states under which it was produced. Verify the binding is part of the canonical payload or referenced via the transparency log.</p>
</component>

</requirement>

<requirement id="_d517ffa0-7401-bee0-64b5-3d0793a8a07b" anchor="ct-revocation-1-3" model="ogc" type="verification">
<title>Propagation to bound artifacts test</title><identifier>/conf/revocation/propagation</identifier><classification><tag>target</tag><value>/req/revocation/propagation</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_59129a62-7b39-5773-4216-e4d7a8dac805" class="test-purpose"><p id="_8fdb59d9-35d3-d575-bb0a-c00b09e62c9d">Verify revocation propagates to all transitively bound artifacts.</p>
</component><component id="_e7c925a6-b952-e66f-95f1-c38027e580e1" class="test-method"><p id="_8819aaa4-cca4-8f17-e4c9-fa09f87eb3be">Revoke an authority state. Query the set of artifacts bound to that state. Verify each bound artifact is flagged. Verify flagged artifacts receive the scheme’s rejected label. Verify propagation crosses trust dimensions and trust chains.</p>
</component>

</requirement>

<requirement id="_b96f59ec-8440-2fce-2ca3-f580ab025f26" anchor="ct-revocation-1-4" model="ogc" type="verification">
<title>Flag semantics test</title><identifier>/conf/revocation/flag-semantics</identifier><classification><tag>target</tag><value>/req/revocation/flag-semantics</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_24092461-a975-4f21-0e0c-76a8f2c42406" class="test-purpose"><p id="_90ffa159-2acf-8eae-a7e9-6262e8eed482">Verify revocation uses mark semantics, not deletion.</p>
</component><component id="_b0671c0e-bd3b-2e00-cfa5-c95060a7b2c2" class="test-method"><p id="_89730ba8-b005-a5ce-cb2d-dfd98e78d528">Revoke a state and verify affected artifacts are marked, not deleted. Verify the marking is queryable. Correct the revocation and verify the marking is reversed.</p>
</component>

</requirement>

<requirement id="_36d2f483-546b-73bc-53ac-3801a09e1952" anchor="ct-revocation-1-5" model="ogc" type="verification">
<title>Query interface test</title><identifier>/conf/revocation/query-interface</identifier><classification><tag>target</tag><value>/req/revocation/query-interface</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_62582f6c-a8a7-035a-7264-2b9d552943ae" class="test-purpose"><p id="_2dd99d4c-3add-f7ed-40db-9a70bcb4bcf6">Verify the revocation query interface works offline.</p>
</component><component id="_c7ab29ea-8367-2a77-a2fa-b485ca371b51" class="test-method"><p id="_c8ec5129-c54c-bcc1-238b-6f5230ec6b08">Query an artifact’s bound states and their revocation status. Query artifacts bound to a revoked state. Perform both queries offline using cached CRLs and log indices.</p>
</component>

</requirement>

<requirement id="_c70d3cb7-421d-29d7-e231-15d9851c5bb1" anchor="ct-revocation-1-6" model="ogc" type="verification">
<title>Offline grace period test</title><identifier>/conf/revocation/offline-grace-period</identifier><classification><tag>target</tag><value>/req/revocation/offline-grace-period</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_b31f29ba-46a4-1843-7b95-526b635206fd" class="test-purpose"><p id="_9300a771-9cd1-a13a-2309-d9512f0a6573">Verify the CRL grace period policy is applied correctly.</p>
</component><component id="_8c8485c0-67a3-baff-34db-0631bbc342d7" class="test-method"><p id="_f0e4b2b0-ccb1-629d-6c62-e923d318d949">Present an artifact with a CRL within validity, a stale CRL within grace period, and a CRL expired beyond grace period. Verify direct acceptance, acceptance with downgrade, and rejection respectively.</p>
</component>

</requirement>

<requirement id="_bbc644ce-1395-81e0-0424-00834248fadf" anchor="ct-revocation-1-7" model="ogc" type="verification">
<title>Scope condition withdrawal propagation test</title><identifier>/conf/revocation/scope-condition-withdrawal</identifier><classification><tag>target</tag><value>/req/revocation/scope-condition-withdrawal</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_4c62b8d0-2bf4-0ddf-74d0-7a3152088ce5" class="test-purpose"><p id="_fd4ed69f-327c-9e94-afdc-19858163e767">Verify scope condition withdrawal propagates to affected artifacts.</p>
</component><component id="_a909b93c-dc9a-7d22-5bde-6655d8da82f5" class="test-method"><p id="_b0a297a6-664c-b3af-ca10-c829219233b3">Create an artifact with a scope condition referencing an external state. Revoke the external state. Verify the artifact is flagged and receives the scheme’s rejected label. Verify artifacts without the condition are unaffected.</p>
</component>

</requirement>
</clause>

<clause id="_4e56ce7d-7159-db8d-13f2-2e8c42a21047" inline-header="false" obligation="normative">
<title id="_582e1bc4-4fa4-e84a-e735-19238cc3f13d">Transparency and multi-log attestation</title>
<p id="_403bd9f7-0484-7174-d144-ac0330d471f0">Transparency conformance has its formalized conformance class described in <xref target="cc-transparency-1"/>, with its conformance tests listed from <xref target="ct-transparency-1-1"/> to <xref target="ct-transparency-1-8"/>.</p>

<requirement id="_48277590-88d2-4d6d-585c-48e949d98614" anchor="cc-transparency-1" model="ogc" type="conformanceclass">
<title>Transparency conformance</title><identifier>/conf/transparency</identifier><inherit>/conf/architecture</inherit><classification><tag>target</tag><value>/req/transparency</value></classification><description id="_b484b898-e479-172f-31aa-e7c549a6e019"><p id="_51f9f547-d4b3-3b88-48b2-9636609ec64e">Conformance tests for transparency and multi-log attestation requirements.</p>
</description><requirement id="_0289793a-d727-49a2-43d6-84528d759a37" model="ogc" type="verification"> <identifier>/conf/transparency/merkle-append-only</identifier></requirement><requirement id="_f3d01e54-a819-97f8-dcbf-efa1b24cc035" model="ogc" type="verification"> <identifier>/conf/transparency/inclusion-proof</identifier></requirement><requirement id="_bcc8464c-5e65-a9fb-5df6-21e6a218aa4a" model="ogc" type="verification"> <identifier>/conf/transparency/tree-head-anchoring</identifier></requirement><requirement id="_658d5071-ceef-e75c-81a0-40f1b024491a" model="ogc" type="verification"> <identifier>/conf/transparency/mirror-integrity</identifier></requirement><requirement id="_b75462c1-f357-7726-8e9c-2446cdb5fd8e" model="ogc" type="verification"> <identifier>/conf/transparency/gossip-quorum</identifier></requirement><requirement id="_803fe589-deb5-d8b1-0032-ff8c7857ac1b" model="ogc" type="verification"> <identifier>/conf/transparency/mandatory-inclusion</identifier></requirement><requirement id="_f8aec7f2-f422-bf04-abe2-4495e37da02c" model="ogc" type="verification"> <identifier>/conf/transparency/multi-log-quorum</identifier></requirement><requirement id="_846d1cd8-a8f1-3642-4fe9-1d56ff974569" model="ogc" type="verification"> <identifier>/conf/transparency/consistency-proofs</identifier></requirement>

</requirement>

<requirement id="_fe1fe3ee-7e64-954b-87f1-7dc3be7e7695" anchor="ct-transparency-1-1" model="ogc" type="verification">
<title>Merkle append-only validation</title><identifier>/conf/transparency/merkle-append-only</identifier><classification><tag>target</tag><value>/req/transparency/merkle-append-only</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_9b8ad8c5-5e39-e571-f5c7-29f0729467ae" class="test-purpose"><p id="_c167ae5e-f84d-ebe6-1976-7d39be665116">Verify the transparency log is an append-only Merkle tree with domain separation.</p>
</component><component id="_9d08ded1-87e8-3584-76ad-9a351e9481d8" class="test-method"><p id="_9ceae135-868c-56e4-5989-bac6d066f7a8">Inspect the log structure. Verify domain-separated hashing for leaves and internal nodes. Verify entries cannot be modified or removed. Verify each tree head is signed by the log operator.</p>
</component>

</requirement>

<requirement id="_771a0c8b-4b40-81df-22e3-c16ca3257f8b" anchor="ct-transparency-1-2" model="ogc" type="verification">
<title>Inclusion proof validation</title><identifier>/conf/transparency/inclusion-proof</identifier><classification><tag>target</tag><value>/req/transparency/inclusion-proof</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_2c725e1b-873a-fccd-b687-05532600d4e4" class="test-purpose"><p id="_f689165f-400a-9876-88d0-0ffb41e6f56c">Verify inclusion proofs contain the required components and validate correctly.</p>
</component><component id="_786b2315-e961-7a90-bece-5a9008c21978" class="test-method"><p id="_74640c8e-3053-dd00-76a6-aab518d3c63a">Produce inclusion proofs for log entries. Verify each proof contains leaf hash, audit path, tree head, and operator signature. Verify the proof validates by recomputing the root and checking the signature.</p>
</component>

</requirement>

<requirement id="_d8a74f20-e2ce-2a11-a4cc-32d88dabe10b" anchor="ct-transparency-1-3" model="ogc" type="verification">
<title>Tree head anchoring validation</title><identifier>/conf/transparency/tree-head-anchoring</identifier><classification><tag>target</tag><value>/req/transparency/tree-head-anchoring</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_a1bf2e44-dede-c789-035e-d52d02a3fd4a" class="test-purpose"><p id="_cd857144-2e5b-69ac-f128-705ba9662e08">Verify tree heads are anchored to an external time source.</p>
</component><component id="_a9fb4d37-2455-a8a3-2b4d-2d748986ef9f" class="test-method"><p id="_7b30b035-f365-770f-0a07-34f0d3295437">Inspect tree head anchors and verify each produces a verifiable proof of commitment to an external irrefutable time source. Verify the anchor timestamp is at or near the tree head timestamp.</p>
</component>

</requirement>

<requirement id="_8d48e743-c967-d971-79ff-bf978e3f69c8" anchor="ct-transparency-1-4" model="ogc" type="verification">
<title>Mirror integrity test</title><identifier>/conf/transparency/mirror-integrity</identifier><classification><tag>target</tag><value>/req/transparency/mirror-integrity</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_c194d2b0-5db2-9a6a-7978-0e822c59dd30" class="test-purpose"><p id="_b21e2a6a-4c5a-11f4-338d-6fa6677e22d4">Verify mirrors independently verify log append-only property and serve proofs.</p>
</component><component id="_91032606-26c0-ee2c-4503-76480de066dd" class="test-method"><p id="_329b22ad-2ff8-f602-d612-f8dc9064df03">Operate a mirror and verify it checks that each new tree head extends the previous one. Verify the mirror serves inclusion proofs and log entries. Simulate a split view and verify the mirror detects it.</p>
</component>

</requirement>

<requirement id="_550b39f1-fd92-1789-5f65-b962a0e098a8" anchor="ct-transparency-1-5" model="ogc" type="verification">
<title>Gossip quorum test</title><identifier>/conf/transparency/gossip-quorum</identifier><classification><tag>target</tag><value>/req/transparency/gossip-quorum</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_2faeba6b-355b-79bf-b5b0-d950fa74d372" class="test-purpose"><p id="_f9dc32ea-dad8-645e-8640-51bcf1f5d5f3">Verify the verifier confirms gossip quorum before accepting tree heads.</p>
</component><component id="_547311a6-4258-2e38-d910-b418befb45af" class="test-method"><p id="_64902b77-e56d-487e-0d47-20f134a59fa2">Present a tree head observed by fewer than the quorum of independent sources. Verify rejection. Present a tree head observed by the quorum. Verify acceptance.</p>
</component>

</requirement>

<requirement id="_3a56694d-80f4-09c4-6f51-dab860d913fd" anchor="ct-transparency-1-6" model="ogc" type="verification">
<title>Mandatory transparency inclusion test</title><identifier>/conf/transparency/mandatory-inclusion</identifier><classification><tag>target</tag><value>/req/transparency/mandatory-inclusion</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_8b1286d5-16a2-c990-0973-54bd0cb5b057" class="test-purpose"><p id="_3af5bbcb-2829-81e7-218b-ee5750dfe9a4">Verify un-logged artifacts are downgraded or rejected.</p>
</component><component id="_71e3f901-3d76-7154-81a4-fafeb37db903" class="test-method"><p id="_c70fb3b2-87d5-0d58-66b3-bce7bcf5747c">Present artifacts with and without transparency log inclusion proofs. Verify artifacts with proofs are accepted (subject to classification label). Verify artifacts without proofs are downgraded or rejected.</p>
</component>

</requirement>

<requirement id="_3ca07ff1-65a2-95ae-9d34-4bdd13cf0996" anchor="ct-transparency-1-7" model="ogc" type="verification">
<title>Multi-log quorum test</title><identifier>/conf/transparency/multi-log-quorum</identifier><classification><tag>target</tag><value>/req/transparency/multi-log-quorum</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_2eaeffee-6ab6-e806-2c0a-19459deec060" class="test-purpose"><p id="_3e3096ba-dbc0-005f-5a6c-071e780d0b7c">Verify multi-log attestation quorum is enforced.</p>
</component><component id="_12756b9c-1d51-58a9-93a3-fa4492db3bb9" class="test-method"><p id="_d7ad6f1b-1690-f2bc-1937-ee8379f8ad63">Construct an FTA artifact with inclusion proofs from fewer than M logs. Verify rejection. Construct with M or more log proofs. Verify acceptance. Verify each proof is validated independently.</p>
</component>

</requirement>

<requirement id="_f1bd2993-802b-961e-28bd-d625b09ffba6" anchor="ct-transparency-1-8" model="ogc" type="verification">
<title>Consistency proof validation</title><identifier>/conf/transparency/consistency-proofs</identifier><classification><tag>target</tag><value>/req/transparency/consistency-proofs</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_82a78b0a-11b6-3b50-9249-6c00fc37229f" class="test-purpose"><p id="_c891b3cc-86b7-d276-0e9c-5325c0e259f4">Verify the transparency log supports consistency proofs between tree heads.</p>
</component><component id="_9df044e7-98ea-2ad5-63d8-5d7835c6651b" class="test-method"><p id="_4d6c03ab-bd28-1190-d2ca-f3fe8ae8abbf">Request a consistency proof between two consecutive tree heads. Verify the proof confirms the earlier tree is a prefix of the later tree. Request a consistency proof between non-consecutive tree heads. Verify the proof validates.</p>
</component>

</requirement>
</clause>

<clause id="_15729e7c-af4e-a786-7e84-d6be9d6aae2d" inline-header="false" obligation="normative">
<title id="_bfac0f30-f8e2-4276-e123-e6d29fee580e">Verification pipeline</title>
<p id="_c18bbd49-ed2e-3ebd-39b2-65e858aa562b">Verification pipeline conformance has its formalized conformance class described in <xref target="cc-verification-1"/>, with its conformance tests listed from <xref target="ct-verification-1-1"/> to <xref target="ct-verification-1-8"/>.</p>

<requirement id="_0242f041-e766-e633-0850-c4bd890f5379" anchor="cc-verification-1" model="ogc" type="conformanceclass">
<title>Verification pipeline conformance</title><identifier>/conf/verification</identifier><inherit>/conf/architecture</inherit><inherit>/conf/artifact-format</inherit><inherit>/conf/scope</inherit><inherit>/conf/revocation</inherit><inherit>/conf/transparency</inherit><classification><tag>target</tag><value>/req/verification</value></classification><description id="_1915f5cb-16c3-d5b7-b810-66ff0506345d"><p id="_9731be3d-be91-81f8-198c-b23269eaa6a2">Conformance tests for the verification pipeline requirements.</p>
</description><requirement id="_b069babc-68c5-4737-685d-69d3c8d5c3fa" model="ogc" type="verification"> <identifier>/conf/verification/pipeline-architecture</identifier></requirement><requirement id="_26c55d53-42f6-fc26-dcc2-2ce9b3d58357" model="ogc" type="verification"> <identifier>/conf/verification/hard-checks</identifier></requirement><requirement id="_8526583a-0a4a-af73-62b5-037ecdf5c39f" model="ogc" type="verification"> <identifier>/conf/verification/pathfinding</identifier></requirement><requirement id="_ea439f57-69f2-c9db-7ff9-d81ebfe1ef88" model="ogc" type="verification"> <identifier>/conf/verification/coverage-report</identifier></requirement><requirement id="_014e8c8e-ddb3-1da6-3d8f-4ee070742865" model="ogc" type="verification"> <identifier>/conf/verification/classification-policy</identifier></requirement><requirement id="_a9d4a544-abc2-fd12-5531-ebefeff82dec" model="ogc" type="verification"> <identifier>/conf/verification/acceptance-policy</identifier></requirement><requirement id="_58513dfa-8306-5f38-0f67-bc3389de569f" model="ogc" type="verification"> <identifier>/conf/verification/time-freshness-window</identifier></requirement><requirement id="_bd7ceb04-7542-aa6a-44f6-5dfa1f3f1b1d" model="ogc" type="verification"> <identifier>/conf/verification/offline-verification</identifier></requirement>

</requirement>

<requirement id="_8c4b25c7-7433-53f6-473c-648be0e90c6a" anchor="ct-verification-1-1" model="ogc" type="verification">
<title>Pipeline architecture test</title><identifier>/conf/verification/pipeline-architecture</identifier><classification><tag>target</tag><value>/req/verification/pipeline-architecture</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_7ce74261-2ead-3c1c-e943-dc19e904c8f0" class="test-purpose"><p id="_bfd3da75-0232-377f-b91f-d2dd6f23ffc2">Verify the pipeline applies ordered hard and soft checks correctly.</p>
</component><component id="_87002a49-066c-c667-133e-54badf059129" class="test-method"><p id="_205e500d-204d-a4c7-461c-e4284b3386ec">Construct artifacts that fail each hard check and verify the pipeline short-circuits to the scheme’s rejected label. Construct artifacts with varying soft check coverage and verify the classification label accumulates correctly.</p>
</component>

</requirement>

<requirement id="_1e5c2834-7f80-dd39-36bf-b11465b66404" anchor="ct-verification-1-2" model="ogc" type="verification">
<title>Hard check classification test</title><identifier>/conf/verification/hard-checks</identifier><classification><tag>target</tag><value>/req/verification/hard-checks</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_ca5aa119-9cca-22af-6cdc-a4c9c5eaa5f2" class="test-purpose"><p id="_b88691d5-e2de-c721-f848-318a11260719">Verify each hard check causes short-circuit to the scheme’s rejected label on failure.</p>
</component><component id="_e338fa52-6484-ee36-abb1-8926db2cf119" class="test-method"><p id="_5fd34983-7a6b-073f-90b8-9ca316d61332">For each hard check (format, signature, chain, scope narrowing, scope conditions, revocation), construct an artifact that fails only that check. Verify the pipeline returns the scheme’s rejected label in each case.</p>
</component>

</requirement>

<requirement id="_30cda70c-ce26-e5cb-1897-ed06e5b8fada" anchor="ct-verification-1-3" model="ogc" type="verification">
<title>Trust graph path-finding test</title><identifier>/conf/verification/pathfinding</identifier><classification><tag>target</tag><value>/req/verification/pathfinding</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_0c6207bd-0c88-2e93-891f-32b95f48532e" class="test-purpose"><p id="_f3151097-1c28-c65b-a69c-dd1734df76fd">Verify the verifier finds paths in the trust graph and collects distinct roots.</p>
</component><component id="_e170a9da-631b-6994-eefd-07b63f158c7d" class="test-method"><p id="_c59bb4b7-4875-fc6f-9f9f-4975807cfc1e">Construct an artifact with co-signatures from multiple independent roots. Verify the verifier finds valid paths to each root. Verify distinct roots are counted for cross-domain diversity scoring.</p>
</component>

</requirement>

<requirement id="_f2b981bd-1f77-955a-7052-ecb1c6bb88df" anchor="ct-verification-1-4" model="ogc" type="verification">
<title>Coverage report production test</title><identifier>/conf/verification/coverage-report</identifier><classification><tag>target</tag><value>/req/verification/coverage-report</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_036776c5-c4e5-ad39-6f02-5bf39e5f8c14" class="test-purpose"><p id="_9d35e479-3694-73e6-7cfc-0dd79d4cb81d">Verify the pipeline produces a complete coverage report.</p>
</component><component id="_78851e5e-f64d-2ae1-ab1b-e7815998cf69" class="test-method"><p id="_027de851-1d6e-5af3-93e8-47e4b9e3ba32">Construct artifacts with varying dimensional coverage. Verify the coverage report contains all required fields with correct values for hard checks, transparency, time anchor, dimensions, independent roots, and multi-log status.</p>
</component>

</requirement>

<requirement id="_22228044-605b-9e6b-2ccc-b76f0b776f6d" anchor="ct-verification-1-5" model="ogc" type="verification">
<title>Classification policy test</title><identifier>/conf/verification/classification-policy</identifier><classification><tag>target</tag><value>/req/verification/classification-policy</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_7a48c2a6-954d-7669-ed3f-775586c118bc" class="test-purpose"><p id="_2c66a3a0-997f-1bd4-4984-185b90cfb24e">Verify the scheme’s classification policy deterministically maps coverage reports to grade labels.</p>
</component><component id="_cada6320-9cbf-9f9d-77e2-7c99507cbf6e" class="test-method"><p id="_d1058cc6-7dc3-8c28-b8c0-ce34332bd49e">Apply the scheme’s classification policy to multiple coverage reports. Verify identical coverage reports produce identical grade labels. Verify the classification is a pure function with no side effects.</p>
</component>

</requirement>

<requirement id="_aa229a44-045b-93a0-e656-feea53ebf32d" anchor="ct-verification-1-6" model="ogc" type="verification">
<title>Acceptance policy test</title><identifier>/conf/verification/acceptance-policy</identifier><classification><tag>target</tag><value>/req/verification/acceptance-policy</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_3d5a8d6d-1d9f-09d0-4937-f44eb1fe7487" class="test-purpose"><p id="_edff34a7-4e53-7574-cc5d-b964ac4744b5">Verify the verifier’s acceptance policy maps classification labels to accept/reject decisions.</p>
</component><component id="_eb3c27cd-f7f8-a219-6541-991e26149abe" class="test-method"><p id="_a3ffec8e-85e9-8b7e-4be9-11f2455f7340">Configure acceptance policies for different decision contexts. Verify artifacts are accepted or rejected correctly based on their classification label and the context.</p>
</component>

</requirement>

<requirement id="_5af2518b-1303-d244-bd4b-fe7a8dd73bba" anchor="ct-verification-1-7" model="ogc" type="verification">
<title>Time freshness window test</title><identifier>/conf/verification/time-freshness-window</identifier><classification><tag>target</tag><value>/req/verification/time-freshness-window</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_85d87aa1-330d-61d7-71db-fe5b4b5c2ded" class="test-purpose"><p id="_4ca6140e-9e83-d133-2ad8-d3f0cf623b5e">Verify the time freshness window rejects stale time attestations.</p>
</component><component id="_32523094-b03a-0d35-77bd-12791097e1c1" class="test-method"><p id="_59dd3d9e-ce49-5a34-cf51-854e0fb59f4e">Construct artifacts with time attestations of varying ages. Verify that attestations within the freshness window are accepted, those outside are rejected, and those in the grace period are accepted at a downgraded classification label.</p>
</component>

</requirement>

<requirement id="_03adbcad-ba1a-c4d7-21e0-06aafbd94d2f" anchor="ct-verification-1-8" model="ogc" type="verification">
<title>Offline verification test</title><identifier>/conf/verification/offline-verification</identifier><classification><tag>target</tag><value>/req/verification/offline-verification</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_408d166f-e4dd-37ec-1a35-2010ee9522d3" class="test-purpose"><p id="_18d027ff-a9fa-141a-ca77-5996c28bca86">Verify offline verification produces correct results.</p>
</component><component id="_47e67b89-16a4-57c7-1fe3-f500c04b1f8c" class="test-method"><p id="_684d7fe4-67e7-597e-dc75-d15d438d428e">Verify artifacts using only the trust anchor bundle, cached CRLs, cached tree heads, and embedded chains. Verify the coverage report matches online verification except for freshness-dependent checks.</p>
</component>

</requirement>
</clause>

<clause id="_a392d46c-013f-ca91-5d54-963cf0e91c3c" inline-header="false" obligation="normative">
<title id="_b905d530-05ec-2a2a-3c3c-d4c79a39317a">Key lifecycle</title>
<p id="_cb1171a8-7ca0-0869-2cb5-815f7ad8cfa8">Key lifecycle conformance has its formalized conformance class described in <xref target="cc-key-lifecycle-1"/>, with its conformance tests listed from <xref target="ct-key-lifecycle-1-1"/> to <xref target="ct-key-lifecycle-1-6"/>.</p>

<requirement id="_1cb09112-3163-0fa8-8b6c-61a5501ca86e" anchor="cc-key-lifecycle-1" model="ogc" type="conformanceclass">
<title>Key lifecycle conformance</title><identifier>/conf/key-lifecycle</identifier><inherit>/conf/algorithms</inherit><inherit>/conf/threshold-signing</inherit><classification><tag>target</tag><value>/req/key-lifecycle</value></classification><description id="_2d0177b6-6c71-c82b-dcce-d0c6591896db"><p id="_1bebc3d0-ca9c-f5ad-d273-44c2112456d8">Conformance tests for key lifecycle requirements.</p>
</description><requirement id="_b2df0cf0-4258-c8e9-f551-982b4ab667b4" model="ogc" type="verification"> <identifier>/conf/key-lifecycle/key-generation</identifier></requirement><requirement id="_de0975be-8d73-c2f0-814b-795605255e62" model="ogc" type="verification"> <identifier>/conf/key-lifecycle/encrypted-storage</identifier></requirement><requirement id="_739237e6-472c-6048-25d8-a06b3101b827" model="ogc" type="verification"> <identifier>/conf/key-lifecycle/import-export</identifier></requirement><requirement id="_107d49cb-2286-fde3-4058-536fd8e6f163" model="ogc" type="verification"> <identifier>/conf/key-lifecycle/hsm-interface</identifier></requirement><requirement id="_af4a659e-f21b-3012-aaf2-20b7424ceca7" model="ogc" type="verification"> <identifier>/conf/key-lifecycle/csr-pop</identifier></requirement><requirement id="_9ade6aff-823a-4fa6-97ea-7debd0b7946a" model="ogc" type="verification"> <identifier>/conf/key-lifecycle/key-rotation</identifier></requirement>

</requirement>

<requirement id="_9c5b3fa0-b54c-5726-4abf-ed87dc2ec9c9" anchor="ct-key-lifecycle-1-1" model="ogc" type="verification">
<title>Secure key generation test</title><identifier>/conf/key-lifecycle/key-generation</identifier><classification><tag>target</tag><value>/req/key-lifecycle/key-generation</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_985e70df-0ab5-81bc-4ff7-ea8a227d906c" class="test-purpose"><p id="_dcb8ead7-13aa-787c-1d57-a4a108468676">Verify keys are generated with secure randomness and correct parameters.</p>
</component><component id="_4b9d6893-db83-f405-f91c-059ea30524dd" class="test-method"><p id="_8f3d7949-7122-4a36-290d-17816a22d3f3">Generate keys for each supported algorithm. Verify the random source is cryptographically secure. Verify parameters conform to specifications. For threshold keys, verify no individual member possesses the full key.</p>
</component>

</requirement>

<requirement id="_4116f4b6-3632-48ec-e085-a9e3e306af8d" anchor="ct-key-lifecycle-1-2" model="ogc" type="verification">
<title>Encrypted key storage validation</title><identifier>/conf/key-lifecycle/encrypted-storage</identifier><classification><tag>target</tag><value>/req/key-lifecycle/encrypted-storage</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_af3df5c4-666d-0d08-fd80-7122c3d72fec" class="test-purpose"><p id="_c316825b-4edd-8d29-2dbe-6fe57f7aba2f">Verify private keys are encrypted at rest.</p>
</component><component id="_0342a6a1-5cea-fce5-ce84-039648a7a8f6" class="test-method"><p id="_6092bd3c-7a33-ae5a-61a1-a6991a3b0706">Inspect stored keys and verify they are encrypted with an authenticated encryption algorithm meeting the minimum security parameters in <xref target="tab-security-parameters"/>. Verify the encryption key is derived using a password-based key derivation function resistant to brute-force attacks. Attempt plaintext extraction and verify failure.</p>
</component>

</requirement>

<requirement id="_5ba8393e-58dd-7da0-f93d-0a846539291c" anchor="ct-key-lifecycle-1-3" model="ogc" type="verification">
<title>Key import and export test</title><identifier>/conf/key-lifecycle/import-export</identifier><classification><tag>target</tag><value>/req/key-lifecycle/import-export</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_9aa63c6c-bf71-e106-996d-8d453b1e87b9" class="test-purpose"><p id="_ac17ed14-601c-0300-083d-ed5c75014fd0">Verify key import and export use standard encodings.</p>
</component><component id="_b02ae8cf-9cd7-0634-a1ba-acb4d18026d7" class="test-method"><p id="_7b77d3ac-5dec-d42b-7202-6550b2ef5d27">Export keys in at least one recognized encoding format. Re-import and verify round-trip correctness. Verify imported keys are validated for format and algorithm consistency.</p>
</component>

</requirement>

<requirement id="_c69ba5bc-b206-a04f-4464-0dbc7e30ecf5" anchor="ct-key-lifecycle-1-4" model="ogc" type="verification">
<title>HSM interface test</title><identifier>/conf/key-lifecycle/hsm-interface</identifier><classification><tag>target</tag><value>/req/key-lifecycle/hsm-interface</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_32aab637-31fa-f12f-29f9-a6895087a020" class="test-purpose"><p id="_70012082-bee4-b6f5-c853-1dca7a401e22">Verify HSM usage keeps private keys inside the HSM.</p>
</component><component id="_94972772-8ac6-d1aa-10e0-ac8a99ed4f5a" class="test-method"><p id="_57622b82-b10e-007a-e1ce-f1409ba648c1">Configure an HSM-backed key. Verify signing occurs within the HSM. Verify the private key never leaves the HSM. Verify session authentication is enforced.</p>
</component>

</requirement>

<requirement id="_91a0413b-e344-49e1-40ad-b7b17b6ff26e" anchor="ct-key-lifecycle-1-5" model="ogc" type="verification">
<title>CSR proof of possession test</title><identifier>/conf/key-lifecycle/csr-pop</identifier><classification><tag>target</tag><value>/req/key-lifecycle/csr-pop</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_46a8b486-c172-9539-c025-b1ef1dc470b1" class="test-purpose"><p id="_c19783bf-54f1-20ac-8f3a-f34435a87207">Verify CSRs include valid proof of possession.</p>
</component><component id="_f3c9f654-bcb3-6709-c2bb-0f0f23332b80" class="test-method"><p id="_c1e47f53-1471-2108-abd6-f3b7eace5d90">Generate a CSR with PoP. Verify the PoP signature validates against the request’s public key. Submit a CSR without PoP and verify rejection.</p>
</component>

</requirement>

<requirement id="_fe64f4db-de9d-4593-6107-9b6a84ce5dc8" anchor="ct-key-lifecycle-1-6" model="ogc" type="verification">
<title>Key rotation test</title><identifier>/conf/key-lifecycle/key-rotation</identifier><classification><tag>target</tag><value>/req/key-lifecycle/key-rotation</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_76572143-2796-ff87-ac29-a54c40f5472f" class="test-purpose"><p id="_8762a8aa-38cd-7380-c2c2-59053e607397">Verify key rotation works correctly.</p>
</component><component id="_de8620eb-00e7-14c1-8cf2-714532dbbb9d" class="test-method"><p id="_99d74f8b-0731-fb78-8787-9cb7c51513e1">Rotate a threshold member and verify the aggregate key is unchanged. Rotate an end certificate key and verify the new certificate is under the same or narrower scope.</p>
</component>

</requirement>
</clause>

<clause id="_83e8869f-aea7-5d78-692c-ddc6b70f0f8b" inline-header="false" obligation="normative">
<title id="_c22659fe-1bb4-2439-e6f6-8fdbda92e4d0">Delivery and discovery</title>
<p id="_1b152f05-b113-b13b-9dab-71085b1728ae">Delivery and discovery conformance has its formalized conformance class described in <xref target="cc-delivery-1"/>, with its conformance tests listed from <xref target="ct-delivery-1-1"/> to <xref target="ct-delivery-1-6"/>.</p>

<requirement id="_c6f8b625-c522-6bfa-a629-c41b9bcf0b73" anchor="cc-delivery-1" model="ogc" type="conformanceclass">
<title>Delivery and discovery conformance</title><identifier>/conf/delivery</identifier><inherit>/conf/architecture</inherit><inherit>/conf/artifact-format</inherit><classification><tag>target</tag><value>/req/delivery</value></classification><description id="_774479c7-187b-a87d-75bf-c0ff83cdb80e"><p id="_fbe80df5-e444-38cb-f350-27cafcf31df7">Conformance tests for delivery and discovery requirements.</p>
</description><requirement id="_c111a499-befb-b722-7074-1faaeca4fb25" model="ogc" type="verification"> <identifier>/conf/delivery/barcode-encoding</identifier></requirement><requirement id="_f127890e-1ab1-dec2-5a21-a7a9f8be3a1b" model="ogc" type="verification"> <identifier>/conf/delivery/passport-format</identifier></requirement><requirement id="_94a7d75c-3369-f83f-8b1f-7a1c351112eb" model="ogc" type="verification"> <identifier>/conf/delivery/embedded-delivery</identifier></requirement><requirement id="_9648b796-82a7-4cc3-99dd-38ddce083a18" model="ogc" type="verification"> <identifier>/conf/delivery/log-reference-delivery</identifier></requirement><requirement id="_1d2f3b25-5f58-9887-cfc0-6a8f4814a70f" model="ogc" type="verification"> <identifier>/conf/delivery/connected-delivery</identifier></requirement><requirement id="_9f51d35b-5a4f-bbeb-8751-0d120bc61712" model="ogc" type="verification"> <identifier>/conf/delivery/challenge-response</identifier></requirement>

</requirement>

<requirement id="_2c8f8141-234f-3293-c4f4-b6e8c174395d" anchor="ct-delivery-1-1" model="ogc" type="verification">
<title>Compact barcode encoding test</title><identifier>/conf/delivery/barcode-encoding</identifier><classification><tag>target</tag><value>/req/delivery/barcode-encoding</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_8d7cc59e-d123-5f70-0716-5b013a4778ba" class="test-purpose"><p id="_5cfe8138-e05f-392c-2cb7-34f385936513">Verify barcode encoding is self-contained with error correction.</p>
</component><component id="_7428734d-e15a-c1f8-e311-add6873ea14a" class="test-method"><p id="_a0bec52a-69c2-adaf-9c2f-bb00fbd5c810">Encode an artifact or passport as a two-dimensional barcode. Verify the encoding is self-contained, carries a version identifier, and includes error correction. Decode and verify fidelity.</p>
</component>

</requirement>

<requirement id="_3fcf0e23-6ea5-b489-1944-697b92a1f133" anchor="ct-delivery-1-2" model="ogc" type="verification">
<title>Passport format validation</title><identifier>/conf/delivery/passport-format</identifier><classification><tag>target</tag><value>/req/delivery/passport-format</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_0e2cf392-5e41-69f5-b0f5-1a23ba5c4fb0" class="test-purpose"><p id="_b3c32729-b74b-012d-3646-d3213c0bec09">Verify passports carry required fields and are verifiable.</p>
</component><component id="_bfea57ed-476d-99b6-8d73-61725ebc6425" class="test-method"><p id="_ce54510d-9d1a-02c6-628c-45bdfd45b6fe">Produce a passport from a certificate. Verify it carries identifier, key fingerprint, scope summary, and validity period. Verify it is deterministic and verifiable against the trust anchor bundle and transparency log.</p>
</component>

</requirement>

<requirement id="_1a0d2a09-e164-3ae9-938f-99d6e5982bf2" anchor="ct-delivery-1-3" model="ogc" type="verification">
<title>Embedded chain delivery test</title><identifier>/conf/delivery/embedded-delivery</identifier><classification><tag>target</tag><value>/req/delivery/embedded-delivery</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_012419d6-aced-3b83-9af8-f83b1a4c9a14" class="test-purpose"><p id="_be6d0997-2d8e-3644-600a-4b47a4b956e3">Verify embedded chain delivery requires no network access.</p>
</component><component id="_f5f49654-4344-53e2-4432-315cb8c83fe8" class="test-method"><p id="_371c2dcd-c2cb-3199-4e27-551e19493b58">Deliver an artifact with embedded chain. Verify the verifier can complete chain discovery with no network access.</p>
</component>

</requirement>

<requirement id="_fc34381a-bee5-5f8a-c070-040c2c2401e2" anchor="ct-delivery-1-4" model="ogc" type="verification">
<title>Transparency-log reference delivery test</title><identifier>/conf/delivery/log-reference-delivery</identifier><classification><tag>target</tag><value>/req/delivery/log-reference-delivery</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_442f904f-f1b9-0755-ab39-18cb2ff143a6" class="test-purpose"><p id="_40f783cd-d581-c013-bf97-cf44e8b7365f">Verify log-reference delivery enables chain reconstruction.</p>
</component><component id="_d7162622-21ef-f6af-63af-521ada12c198" class="test-method"><p id="_6ff19c25-7a7e-1f61-1fa9-26920e9ec890">Deliver an artifact with transparency-log sequence references. Verify the verifier can fetch and cache referenced certificates from a log or mirror.</p>
</component>

</requirement>

<requirement id="_46e4532d-8f1f-7e76-9c31-cb77b939e211" anchor="ct-delivery-1-5" model="ogc" type="verification">
<title>Connected delivery integrity test</title><identifier>/conf/delivery/connected-delivery</identifier><classification><tag>target</tag><value>/req/delivery/connected-delivery</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_70451aed-29ac-adf4-e49c-ecd9a969278e" class="test-purpose"><p id="_92cad94e-1bcc-bd27-39a6-ee6ea941eede">Verify connected delivery authenticates source and provides integrity.</p>
</component><component id="_5bc5460e-e29f-b661-f5f5-7a841fe8a3ff" class="test-method"><p id="_f3fe61f0-1019-5849-ae3a-e97199e7a62a">Deliver artifacts via a network protocol. Verify source authentication, integrity protection, and caching support.</p>
</component>

</requirement>

<requirement id="_3f6fe7f9-e476-aa16-10a0-939cad92dea8" anchor="ct-delivery-1-6" model="ogc" type="verification">
<title>Challenge-response protocol test</title><identifier>/conf/delivery/challenge-response</identifier><classification><tag>target</tag><value>/req/delivery/challenge-response</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_7cb86e0e-45eb-6141-0015-737282f03327" class="test-purpose"><p id="_27789da9-edf0-dd81-fdff-8dcca3fb7f93">Verify challenge-response protocol produces fresh, nonce-bound artifacts.</p>
</component><component id="_5dca68f8-f48b-54ec-a808-3c2f71de7f5c" class="test-method"><p id="_9a73b1d6-47f5-034d-fa0d-4d05f45ea27a">Issue a challenge with a 128-bit nonce. Verify the device binds the nonce into the canonical payload. Verify the verifier rejects mismatched nonces, stale responses, and replayed nonce reuse.</p>
</component>

</requirement>
</clause>

<clause id="_4454b130-54e4-718d-5bc9-19f44315d825" inline-header="false" obligation="normative">
<title id="_f601fa2c-8d8d-98b7-8ac5-a64b29b6d20a">Ceremony records</title>
<p id="_37d1602b-475a-9679-56a1-9ed2de3c5fba">Ceremony records conformance has its formalized conformance class described in <xref target="cc-ceremony-1"/>, with its conformance tests listed from <xref target="ct-ceremony-1-1"/> to <xref target="ct-ceremony-1-5"/>.</p>

<requirement id="_4990d3d2-a875-e585-8b9a-7a6096377221" anchor="cc-ceremony-1" model="ogc" type="conformanceclass">
<title>Ceremony records conformance</title><identifier>/conf/ceremony</identifier><inherit>/conf/threshold-signing</inherit><classification><tag>target</tag><value>/req/ceremony</value></classification><description id="_c5d5a41e-1dbe-f486-4303-18b86009a427"><p id="_8c7065a2-9ab9-7d14-70f3-5055767e8d33">Conformance tests for ceremony record requirements.</p>
</description><requirement id="_7d8ae8ea-d287-d766-ffdf-518dbf2f94ab" model="ogc" type="verification"> <identifier>/conf/ceremony/transcript-contents</identifier></requirement><requirement id="_d428013d-ff18-fbb7-643a-0a2d120d28c0" model="ogc" type="verification"> <identifier>/conf/ceremony/transcript-signing</identifier></requirement><requirement id="_e4bcfa08-632c-b828-e2cb-eb018cc07400" model="ogc" type="verification"> <identifier>/conf/ceremony/transcript-persistence</identifier></requirement><requirement id="_599dc669-58b6-d107-1806-f0e0bf40f407" model="ogc" type="verification"> <identifier>/conf/ceremony/transcript-log-cross-reference</identifier></requirement><requirement id="_b3c63d2f-effb-d2d8-8ce2-fe63066b7774" model="ogc" type="verification"> <identifier>/conf/ceremony/audit-algorithm</identifier></requirement>

</requirement>

<requirement id="_209872fd-f6d3-17ee-08fa-0d8c47f5f67c" anchor="ct-ceremony-1-1" model="ogc" type="verification">
<title>Transcript contents validation</title><identifier>/conf/ceremony/transcript-contents</identifier><classification><tag>target</tag><value>/req/ceremony/transcript-contents</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_8172e922-25de-ce9e-1be3-54320873de4e" class="test-purpose"><p id="_7d984545-df0d-dd99-df12-0cf6759b3418">Verify transcripts contain all required fields.</p>
</component><component id="_6edd9ab1-21d7-051d-f8f7-60cb2119bdc8" class="test-method"><p id="_1099ea8a-d8d3-5737-944c-b790f8a3fccd">Execute a signing ceremony and inspect the transcript. Verify it contains ceremony type, participant identities with contribution proofs, quorum parameters, payload hash, aggregate signature, and timestamp.</p>
</component>

</requirement>

<requirement id="_df9f5606-67ce-bce7-015a-0838f8de1587" anchor="ct-ceremony-1-2" model="ogc" type="verification">
<title>Transcript signing test</title><identifier>/conf/ceremony/transcript-signing</identifier><classification><tag>target</tag><value>/req/ceremony/transcript-signing</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_6a1280b8-dd86-91e4-7d4f-6b023ba77741" class="test-purpose"><p id="_6cabc8c1-7650-0ddc-43c3-a9d0771bef57">Verify transcripts are signed by all participants and carry the aggregate signature.</p>
</component><component id="_9d2ceee5-aaa8-739d-716c-88f167960711" class="test-method"><p id="_428f3603-dbb4-12a4-8182-a2aa225d86ec">Execute a ceremony and verify each participant signed the transcript. Verify the aggregate threshold signature is present. Present an incomplete transcript and verify rejection.</p>
</component>

</requirement>

<requirement id="_e077363c-1508-c854-4c80-a22cbe23b250" anchor="ct-ceremony-1-3" model="ogc" type="verification">
<title>Transcript persistence validation</title><identifier>/conf/ceremony/transcript-persistence</identifier><classification><tag>target</tag><value>/req/ceremony/transcript-persistence</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_c9f2cc6e-955e-1a98-0f9d-00e967d52946" class="test-purpose"><p id="_1b882126-5835-b1a0-d333-a8c78849c489">Verify transcripts are persisted with sufficient retention.</p>
</component><component id="_002c4a7b-266a-3347-6d1d-9508c9894ede" class="test-method"><p id="_d1fec2a2-4ead-cdc3-d084-3e98839f8084">Execute a ceremony and verify the transcript is persisted to durable storage. Verify the retention period exceeds the maximum artifact lifetime including grace periods.</p>
</component>

</requirement>

<requirement id="_e60fdb8f-db09-f6bf-fba9-01155617a863" anchor="ct-ceremony-1-4" model="ogc" type="verification">
<title>Transcript log cross-reference test</title><identifier>/conf/ceremony/transcript-log-cross-reference</identifier><classification><tag>target</tag><value>/req/ceremony/transcript-log-cross-reference</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_612d0eeb-40ce-0f83-7f97-372491945976" class="test-purpose"><p id="_e197e10a-310a-3710-b970-d9179a253ed0">Verify transcripts are cross-referenced with transparency log entries.</p>
</component><component id="_21af9a4e-1c75-fe12-7334-2be885311fea" class="test-method"><p id="_bda9f6e2-6f75-99ae-8a9c-a7ac4c69bd93">Execute a ceremony and verify the produced artifact appears in the transparency log. Verify the transcript references the log entry.</p>
</component>

</requirement>

<requirement id="_97173c26-fd93-9db7-8037-ac75446e8642" anchor="ct-ceremony-1-5" model="ogc" type="verification">
<title>Audit algorithm test</title><identifier>/conf/ceremony/audit-algorithm</identifier><classification><tag>target</tag><value>/req/ceremony/audit-algorithm</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_f1ffb47b-7b27-5562-d0e3-ba257d3c9ad7" class="test-purpose"><p id="_a850c135-9746-fe2e-04de-b87da3e669ea">Verify the audit algorithm correctly validates ceremony transcripts.</p>
</component><component id="_b805b804-c893-d63b-03cb-a25fba51ab76" class="test-method"><p id="_1e4e7b78-41b7-41a9-a3c4-e7cabeda437a">Execute the audit algorithm on valid and invalid transcripts. Verify it accepts valid transcripts (correct member signatures, aggregate signature, quorum, log cross-reference, timestamp) and rejects invalid ones.</p>
</component>

</requirement>
</clause>

<clause id="_38ca8362-9f11-5c74-5f8e-8841486ed5ba" inline-header="false" obligation="normative">
<title id="_3425e0d4-c696-6612-0f32-49b144cfd9da">Deployment manifest</title>
<p id="_900765a8-145c-f1bd-a89e-e720838525ca">Deployment manifest conformance has its formalized conformance class described in <xref target="cc-manifest-1"/>, with its conformance tests listed from <xref target="ct-manifest-1-1"/> to <xref target="ct-manifest-1-7"/>.</p>

<requirement id="_bd670596-564b-c722-441c-5276739bb00c" anchor="cc-manifest-1" model="ogc" type="conformanceclass">
<title>Deployment manifest conformance</title><identifier>/conf/manifest</identifier><inherit>/conf/architecture</inherit><inherit>/conf/threshold-signing</inherit><inherit>/conf/scope</inherit><inherit>/conf/algorithms</inherit><inherit>/conf/transparency</inherit><classification><tag>target</tag><value>/req/manifest</value></classification><description id="_29051f0f-a37c-68ec-33ac-bda3c94ff6da"><p id="_7a7c7ef6-221d-2d23-94fb-f4bb41229844">Conformance tests for deployment manifest requirements.</p>
</description><requirement id="_777cbcf4-5958-2ba9-1706-679b9afa7a1c" model="ogc" type="verification"> <identifier>/conf/manifest/manifest-format</identifier></requirement><requirement id="_89d0223a-41bf-de27-b3a3-62c9daf91607" model="ogc" type="verification"> <identifier>/conf/manifest/manifest-topology</identifier></requirement><requirement id="_05ec5e32-c377-1a9c-d23a-71456c584061" model="ogc" type="verification"> <identifier>/conf/manifest/manifest-algorithms</identifier></requirement><requirement id="_df17e4fa-1905-84e1-fddb-44b8ee618042" model="ogc" type="verification"> <identifier>/conf/manifest/manifest-transparency</identifier></requirement><requirement id="_34dc3553-4979-3809-cab5-e793c10286c1" model="ogc" type="verification"> <identifier>/conf/manifest/manifest-validation-acyclic</identifier></requirement><requirement id="_e7ef58f5-4d4f-48ef-9199-9053b185e0e7" model="ogc" type="verification"> <identifier>/conf/manifest/manifest-validation-quorum</identifier></requirement><requirement id="_42351f21-bd9a-a606-706f-59034b17cb7a" model="ogc" type="verification"> <identifier>/conf/manifest/manifest-versioning</identifier></requirement>

</requirement>

<requirement id="_353e5865-52ad-562f-1f8c-6d688ab37fbc" anchor="ct-manifest-1-1" model="ogc" type="verification">
<title>Manifest format and signing validation</title><identifier>/conf/manifest/manifest-format</identifier><classification><tag>target</tag><value>/req/manifest/manifest-format</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_6faaee84-6155-f500-ace5-308a51d4a4c3" class="test-purpose"><p id="_01c5668a-a42d-5cc4-1b8c-89279002bdbd">Verify the manifest is in a declarative format, versioned, and signed.</p>
</component><component id="_1700a30b-c5fb-0808-7ff6-1f354ab2dddd" class="test-method"><p id="_74eeaeee-99d3-a153-2353-68732259db65">Inspect the manifest format and verify it is declarative (TOML, YAML, or JSON). Verify it carries a version identifier. Verify it is signed by the root trust authority.</p>
</component>

</requirement>

<requirement id="_89d7bb1f-0ca2-3e4c-728c-e2e06d0a9b3e" anchor="ct-manifest-1-2" model="ogc" type="verification">
<title>Manifest topology declaration validation</title><identifier>/conf/manifest/manifest-topology</identifier><classification><tag>target</tag><value>/req/manifest/manifest-topology</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_5366afc6-587f-7943-4c9c-5454782eaf5f" class="test-purpose"><p id="_e0e6cc99-9776-4824-37e1-cb6b5cba81f2">Verify the manifest declares topology and authorities correctly.</p>
</component><component id="_c47806ff-4df9-9e81-6d2b-76e737b3d169" class="test-method"><p id="_1b496220-b4ee-aa6a-1eee-39b6eceb950e">Inspect the manifest and verify it declares the topology profile, all trust authorities with identifiers, aggregate keys, quorum parameters, and parent references.</p>
</component>

</requirement>

<requirement id="_4849ea62-d46f-059b-f129-25115749ad4c" anchor="ct-manifest-1-3" model="ogc" type="verification">
<title>Manifest algorithm declaration validation</title><identifier>/conf/manifest/manifest-algorithms</identifier><classification><tag>target</tag><value>/req/manifest/manifest-algorithms</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_11566d1b-3661-15ea-5b0b-f2ab3e29f4f4" class="test-purpose"><p id="_c8b441ac-1dff-4514-c5cf-08012dba6256">Verify the manifest declares recognized algorithms.</p>
</component><component id="_66779363-bbfe-0563-ad33-195796cb8733" class="test-method"><p id="_c79071b4-00f7-6b1f-2f63-1acc03223f49">Inspect the manifest and verify declared algorithms are from the framework’s registry.</p>
</component>

</requirement>

<requirement id="_148d2c85-fdca-eff2-ffd7-66c5b75fe772" anchor="ct-manifest-1-4" model="ogc" type="verification">
<title>Manifest transparency declaration validation</title><identifier>/conf/manifest/manifest-transparency</identifier><classification><tag>target</tag><value>/req/manifest/manifest-transparency</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_02f8b99f-8416-e4f4-820e-7116e1ef4a5e" class="test-purpose"><p id="_db31d851-00a9-ec89-f447-70e234b254ed">Verify the manifest declares transparency logs, mirrors, and multi-log policy.</p>
</component><component id="_ac43403b-98d0-8d2e-2523-385736f9a6ac" class="test-method"><p id="_8a1d423b-9b42-3ec7-d198-58246cfcf402">Inspect the manifest and verify it declares recognized transparency logs and mirrors with endpoints and public keys. Verify multi-log parameters are present if applicable.</p>
</component>

</requirement>

<requirement id="_ca021d1a-a123-e3c5-cfd9-b99289c8386f" anchor="ct-manifest-1-5" model="ogc" type="verification">
<title>Manifest acyclic graph validation test</title><identifier>/conf/manifest/manifest-validation-acyclic</identifier><classification><tag>target</tag><value>/req/manifest/manifest-validation-acyclic</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_566870a3-82c6-bf37-9cbf-e17717578dd1" class="test-purpose"><p id="_a3f402e6-5c6c-27d2-befe-6a558d1ba395">Verify the manifest validates as an acyclic trust graph with scope narrowing.</p>
</component><component id="_d2e04bb7-7545-ef99-bead-6b01d87fd4f7" class="test-method"><p id="_550d7d8c-30c5-cf19-e319-fd9d7fa89da6">Submit manifests with valid and cyclic authority graphs. Verify acyclic manifests pass validation and cyclic ones fail. Verify scope narrowing is checked at every delegation link.</p>
</component>

</requirement>

<requirement id="_9785c953-b6c9-9762-d153-1874f8af666a" anchor="ct-manifest-1-6" model="ogc" type="verification">
<title>Manifest quorum consistency test</title><identifier>/conf/manifest/manifest-validation-quorum</identifier><classification><tag>target</tag><value>/req/manifest/manifest-validation-quorum</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_2735c02a-2764-091f-a004-f05652d9aae2" class="test-purpose"><p id="_ab9893b6-07f3-c045-f82d-f01dd0ad8e99">Verify quorum parameters are validated for consistency.</p>
</component><component id="_8b074b8b-c1ea-0176-4ea6-52f7ea348751" class="test-method"><p id="_6c1d83e5-bf05-22f0-8f7f-f05cea8e09f8">Submit manifests with valid (T ⇐ N) and invalid (T &gt; N) quorum parameters. Verify valid manifests pass and invalid ones fail validation.</p>
</component>

</requirement>

<requirement id="_217046db-da81-4ec6-1cb1-43ffe3e01c88" anchor="ct-manifest-1-7" model="ogc" type="verification">
<title>Manifest versioning test</title><identifier>/conf/manifest/manifest-versioning</identifier><classification><tag>target</tag><value>/req/manifest/manifest-versioning</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_c6635dfa-c3f3-21fc-c677-762475220bc8" class="test-purpose"><p id="_3f0273b2-fc03-9ca7-be58-99f909a71684">Verify manifest versioning follows semantic rules.</p>
</component><component id="_282de62e-eead-9c1f-f594-013dd4159b7f" class="test-method"><p id="_52587384-6654-080b-4dce-d25baf6caa33">Submit manifests with major and minor version changes. Verify major changes are handled as breaking and minor changes as compatible. Verify the most recent signed manifest is authoritative.</p>
</component>

</requirement>
</clause>

<clause id="_8dc5a2d3-e763-59b8-0dd9-9b3d7409ceb9" inline-header="false" obligation="normative">
<title id="_00301be4-da6d-80fa-b93a-528314de99c3">Governance and mutual recognition</title>
<p id="_8cca460f-140c-994c-4935-edff29a45be7">Governance conformance has its formalized conformance class described in <xref target="cc-governance-1"/>, with its conformance tests listed from <xref target="ct-governance-1-1"/> to <xref target="ct-governance-1-5"/>.</p>

<requirement id="_45070c45-8b83-5049-df4b-16afbe3a5e7f" anchor="cc-governance-1" model="ogc" type="conformanceclass">
<title>Governance conformance</title><identifier>/conf/governance</identifier><inherit>/conf/architecture</inherit><inherit>/conf/threshold-signing</inherit><classification><tag>target</tag><value>/req/governance</value></classification><description id="_836133b9-84eb-5fca-d3a9-ca99f9d8b17a"><p id="_4d0aef8f-9cd5-eebf-2de7-6690b3551139">Conformance tests for governance and mutual recognition requirements.</p>
</description><requirement id="_b8b4a3df-3920-d2b8-d626-70a23e2cdd04" model="ogc" type="verification"> <identifier>/conf/governance/topology-declaration</identifier></requirement><requirement id="_5509d983-1390-9c9a-d287-8d68995b60f4" model="ogc" type="verification"> <identifier>/conf/governance/root-governance</identifier></requirement><requirement id="_8639a2cb-684f-0d99-16da-c596e12d09d7" model="ogc" type="verification"> <identifier>/conf/governance/issuing-authority-assurance</identifier></requirement><requirement id="_9c004293-87a1-bd4d-3026-4eac1f50343c" model="ogc" type="verification"> <identifier>/conf/governance/mutual-recognition</identifier></requirement><requirement id="_31ea3519-696c-0b11-9fb7-949e347aab5b" model="ogc" type="verification"> <identifier>/conf/governance/topology-conformance</identifier></requirement>

</requirement>

<requirement id="_18aa09ad-d3be-4581-9381-164d9b1acbe5" anchor="ct-governance-1-1" model="ogc" type="verification">
<title>Topology declaration validation</title><identifier>/conf/governance/topology-declaration</identifier><classification><tag>target</tag><value>/req/governance/topology-declaration</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_d45fb55a-3116-d4d6-b1bf-47ae31f88ead" class="test-purpose"><p id="_e7c7a25a-51ba-1619-d50b-739d66e515ac">Verify the deployment declares its topology in the manifest.</p>
</component><component id="_5720a79a-de49-734e-0b10-0b2c1ed322ce" class="test-method"><p id="_70492c9c-e20c-fac6-5d30-668a5a5e5e31">Inspect the deployment manifest and verify it declares one of the four topology profiles. Verify the declared topology matches the actual trust graph structure.</p>
</component>

</requirement>

<requirement id="_b01132d4-7841-5252-d531-2b3031536ca1" anchor="ct-governance-1-2" model="ogc" type="verification">
<title>Root governance requirements test</title><identifier>/conf/governance/root-governance</identifier><classification><tag>target</tag><value>/req/governance/root-governance</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_47d9350a-b543-6bad-1848-435a797acc7e" class="test-purpose"><p id="_55952086-d914-cd58-e26a-b7712c9d1ad3">Verify the root trust authority satisfies all governance requirements.</p>
</component><component id="_b34b20a2-c9bb-b733-96e1-86e3a90ceb69" class="test-method"><p id="_5d38d6f1-2627-471f-b98c-f48f2aff5cd1">Inspect a root trust authority and verify it publishes scope and delegation policy, records operations in a transparency log, operates under threshold or federation, maintains governance records, publishes a versioned anchor bundle, and maintains an ISMS with published audit attestations.</p>
</component>

</requirement>

<requirement id="_c67f9086-94c7-356a-ccaf-60aa2253aa4c" anchor="ct-governance-1-3" model="ogc" type="verification">
<title>Issuing authority ISMS test</title><identifier>/conf/governance/issuing-authority-assurance</identifier><classification><tag>target</tag><value>/req/governance/issuing-authority-assurance</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_fe9e6c48-f2a3-f3b4-edaa-49dbbf0e7c1b" class="test-purpose"><p id="_a590e563-bd4c-83ab-11e4-887faa4eaa4e">Verify issuing authorities maintain organizational assurance.</p>
</component><component id="_ee66e5f9-bc5e-102f-0abc-b7a8ffe1a6ae" class="test-method"><p id="_659e0b84-d85d-3f5c-a12d-291cb7c3254f">Inspect a delegated trust authority that issues end certificates. Verify it maintains an ISMS or equivalent framework and undergoes periodic security audits.</p>
</component>

</requirement>

<requirement id="_6f889e6e-cf80-3328-a4bb-10b17be855eb" anchor="ct-governance-1-4" model="ogc" type="verification">
<title>Mutual recognition test</title><identifier>/conf/governance/mutual-recognition</identifier><classification><tag>target</tag><value>/req/governance/mutual-recognition</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_096e69a8-2b16-5456-d0a1-c5deec033d3e" class="test-purpose"><p id="_f5f603e1-38ad-5792-f6ec-9087a877df32">Verify mutual recognition is expressed via signed cross-recognition credentials.</p>
</component><component id="_e10c80b2-66ad-a04b-4073-345263100f93" class="test-method"><p id="_d784e5ae-d276-ff8b-f4b8-60c20dc6bd8b">Establish mutual recognition between two roots. Verify cross-recognition credentials are signed by both roots. Verify the credentials are recorded in both transparency logs. Verify verifiers with both anchors can accept artifacts from either hierarchy.</p>
</component>

</requirement>

<requirement id="_698c473c-2c57-e9b0-eb1f-51d09c0f78dc" anchor="ct-governance-1-5" model="ogc" type="verification">
<title>Topology conformance test</title><identifier>/conf/governance/topology-conformance</identifier><classification><tag>target</tag><value>/req/governance/topology-conformance</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_34c30a89-8345-2948-fd17-62b5bb74a7ef" class="test-purpose"><p id="_82be9094-6a26-847e-0de5-3a8625409cd6">Verify each topology profile’s structural requirements are satisfied.</p>
</component><component id="_4bb1754f-c801-6dec-a564-e91642475f2e" class="test-method"><p id="_76256f56-ced9-9f3d-3aa8-e9c94aca2174">For each topology profile (hierarchical, federated, cross-recognized, mesh), construct a conforming deployment and verify it satisfies the structural requirements. Construct a non-conforming deployment and verify rejection.</p>
</component>

</requirement>
</clause>

<clause id="_4ff82549-9236-99a8-0da4-ee0df644d7bf" inline-header="false" obligation="normative">
<title id="_2f384612-d69c-5bc1-787f-83a6d73ea82f">Algorithm agility</title>
<p id="_85164f2e-034e-59be-78ca-dee1fa4c71db">Algorithm agility conformance has its formalized conformance class described in <xref target="cc-algorithm-agility-1"/>, with its conformance tests listed from <xref target="ct-algorithm-agility-1-1"/> to <xref target="ct-algorithm-agility-1-4"/>.</p>

<requirement id="_a4a5ee18-b011-7c95-f5ca-fea73189c550" anchor="cc-algorithm-agility-1" model="ogc" type="conformanceclass">
<title>Algorithm agility conformance</title><identifier>/conf/algorithm-agility</identifier><inherit>/conf/algorithms</inherit><classification><tag>target</tag><value>/req/algorithm-agility</value></classification><description id="_a0fc69e9-f9df-3702-8967-b0546dbda2a4"><p id="_5a332151-7793-66ff-e73a-09982634e9c0">Conformance tests for algorithm agility requirements.</p>
</description><requirement id="_ad2a531c-84de-2d8c-b025-862feb2a919a" model="ogc" type="verification"> <identifier>/conf/algorithm-agility/algorithm-registry</identifier></requirement><requirement id="_19e9a4cf-69e6-0377-dd98-701e0fb12e6e" model="ogc" type="verification"> <identifier>/conf/algorithm-agility/deprecation-process</identifier></requirement><requirement id="_8817c5a9-b778-5245-e720-70ffd059236b" model="ogc" type="verification"> <identifier>/conf/algorithm-agility/migration-declaration</identifier></requirement><requirement id="_5f1fa5e5-6f18-7fea-9da1-4735a29eafdf" model="ogc" type="verification"> <identifier>/conf/algorithm-agility/composite-backward-compatibility</identifier></requirement>

</requirement>

<requirement id="_5fc8a8f5-ff5e-4ab9-ef8c-4035bf8218db" anchor="ct-algorithm-agility-1-1" model="ogc" type="verification">
<title>Algorithm registry validation</title><identifier>/conf/algorithm-agility/algorithm-registry</identifier><classification><tag>target</tag><value>/req/algorithm-agility/algorithm-registry</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_f6d385b4-850b-7d4b-689b-d4fab35bf60c" class="test-purpose"><p id="_4e32963c-4549-d333-5590-62ff5d64a999">Verify the algorithm registry is maintained and used.</p>
</component><component id="_07af8ded-6178-6b3f-84cd-258bacc05406" class="test-method"><p id="_f98b367a-515f-e096-1cad-6a3f0aa9f6f1">Inspect the registry and verify it lists recognized algorithms with names, references, parameters, and status. Verify conforming verifiers accept registered identifiers and reject unregistered ones.</p>
</component>

</requirement>

<requirement id="_3dd0db02-b540-3e27-2399-141aea3f3eb4" anchor="ct-algorithm-agility-1-2" model="ogc" type="verification">
<title>Deprecation process test</title><identifier>/conf/algorithm-agility/deprecation-process</identifier><classification><tag>target</tag><value>/req/algorithm-agility/deprecation-process</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_5226bcec-a11a-e4cc-0f74-0603c8b435ae" class="test-purpose"><p id="_6d1a69f1-fe0c-9e98-25fd-379c99009cf8">Verify the deprecation process is followed correctly.</p>
</component><component id="_2f1aebc6-b969-6d05-9222-48690acd9b3b" class="test-method"><p id="_3740f8df-a729-5f53-b84a-e3004942d926">Deprecate an algorithm following the published process. Verify artifacts using the deprecated algorithm are downgraded during the deprecation period. Verify they are rejected after retirement.</p>
</component>

</requirement>

<requirement id="_00918219-d23d-7c1f-f7a8-239eed2e3c7f" anchor="ct-algorithm-agility-1-3" model="ogc" type="verification">
<title>Migration phase declaration validation</title><identifier>/conf/algorithm-agility/migration-declaration</identifier><classification><tag>target</tag><value>/req/algorithm-agility/migration-declaration</value></classification><classification><tag>Test type</tag><value>Validation</value></classification>
<component id="_25de467f-fa40-3f7a-df3e-f167b52f4fb4" class="test-purpose"><p id="_b6a03fa7-597b-cc0d-6a50-2e48d0e0f606">Verify deployments declare their migration phase.</p>
</component><component id="_a48d3f48-ac2a-4a5d-0f68-f33a79b48e6a" class="test-method"><p id="_2e3e2a69-b335-839d-00e1-04d230acf5ae">Inspect deployment manifests and verify they declare active algorithms and migration phase (classical-only, composite, or post-quantum-only).</p>
</component>

</requirement>

<requirement id="_42b7677c-f885-81b9-48f1-27312d289f24" anchor="ct-algorithm-agility-1-4" model="ogc" type="verification">
<title>Composite backward compatibility test</title><identifier>/conf/algorithm-agility/composite-backward-compatibility</identifier><classification><tag>target</tag><value>/req/algorithm-agility/composite-backward-compatibility</value></classification><classification><tag>Test type</tag><value>Conformance</value></classification>
<component id="_aba54b0b-65be-30b1-bf5d-d2d54b75b9e7" class="test-purpose"><p id="_548b11d3-efc3-da29-1c29-b975ac0591fa">Verify composite phase maintains backward compatibility.</p>
</component><component id="_63711fe3-fdd6-cefd-0cec-880790b7d701" class="test-method"><p id="_cfc24832-b195-dc99-400a-cdbb574204f6">Configure a deployment in composite phase. Verify new artifacts use composite signatures. Verify existing classical-only artifacts remain verifiable. Configure post-quantum-only phase and verify classical-only signatures are rejected.</p>
</component>

</requirement>
</clause>
</annex><annex id="_13d7c26b-992a-7338-0637-283be7f589c4" anchor="annex-b" inline-header="false" obligation="informative">
<title id="_b4e23b5a-f88d-5ad8-7d69-90864f51ce8f">Comparison with traditional public key infrastructure</title>
<clause id="_f9e3370f-8adf-2edf-57fe-20237dd3f39f" inline-header="false" obligation="informative">
<title id="_d9eae85b-8aa2-6018-de0c-0275f7888792">General</title>
<p id="_f0b59dcb-5669-86bd-f6ae-9afcde198c6f">This annex describes how the trust infrastructure specified in this document differs from traditional public key infrastructure (PKI) as specified in ISO/IEC 9594-8 (X.509)  <eref type="inline" bibitemid="iso9594-8" citeas="ISO/IEC 9594-8:2020"/> and the IETF PKI certificate profile <eref type="inline" bibitemid="rfc5280" citeas="IETF RFC 5280"/>. It identifies the use cases for which each technology is appropriate and distinguishes decisions driven by hard technical requirements from those driven by deployment preference.</p>

<p id="_b83e1f05-5675-0ff1-1758-5436cdcf3f33">This annex is informative. It does not specify requirements.</p>
</clause>

<clause id="_8754f2f0-5b9f-b43c-b614-fe6f7f6fa3b1" inline-header="false" obligation="informative">
<title id="_c6307060-9474-88c7-027e-62d05fd6ba95">Applicable standards</title>
<p id="_e440dbfd-b256-ee68-a48c-358ccbe3c638">The following standards define traditional PKI:</p>

<ul id="_bbd020c5-b8b8-fd7d-9e98-81606cc7324b"><li><p id="_7834238c-bed6-b203-362b-167933f6dc37"><eref type="inline" bibitemid="iso9594-8" citeas="ISO/IEC 9594-8:2020"/> (X.509) specifies the public-key and attribute certificate framework, including certificate formats, certification path validation, and attribute certificates.</p>
</li>
<li><p id="_ed533c70-6874-6b17-57ef-dfac2b8c116d"><eref type="inline" bibitemid="rfc5280" citeas="IETF RFC 5280"/> profiles X.509 certificates and certificate revocation lists for use in the Internet PKI.</p>
</li>
<li><p id="_9eff230a-ea01-6d75-069c-c44768b76d0a"><eref type="inline" bibitemid="rfc8446" citeas="IETF RFC 8446"/> (TLS 1.3) specifies the Transport Layer Security protocol, which uses X.509 certificates for server and client authentication.</p>
</li>
<li><p id="_3712a4ce-f457-37fe-915c-1cfefe337371"><eref type="inline" bibitemid="rfc6962" citeas="IETF RFC 6962"/> specifies Certificate Transparency, an optional overlay for monitoring certificate issuance in the web PKI.</p>
</li>
</ul>

<p id="_65ec2b11-d5d0-a0d9-aa19-a3a36b9cf113">This document specifies SIGNATIF, which addresses a different problem space: establishing the trustworthiness of persistent artifacts through multi-party, multi-dimensional attestation.</p>
</clause>

<clause id="_6a8d643b-2a19-e903-6f7d-0250fbe6e97d" inline-header="false" obligation="informative">
<title id="_a04e8803-63f1-c611-75a8-3c072586fff4">Structural differences</title>
<p id="_3c6b3568-8461-3256-c419-6beb52a80a3b"><xref target="tab-pki-structural"/> summarizes the structural differences.</p>

<table id="_cc49a3a8-8410-7fed-4591-b3149fc789aa" anchor="tab-pki-structural"><colgroup><col width="25%"/><col width="37.5%"/><col width="37.5%"/></colgroup>
<name id="_87ab2f61-6d40-6869-5409-d7b754a88dca">Structural differences between traditional PKI and SIGNATIF</name>
<thead><tr id="_998df576-707a-ec0e-b231-82a42a41a3ea"><th id="_201d33fc-9a03-6b9e-a4a2-35c5ab78a307" valign="top" align="left">Property</th>
<th id="_9b40fec7-86be-c2a2-fe32-48602a60a465" valign="top" align="left">Traditional PKI</th>
<th id="_aa60c714-3018-eed5-865b-e6acdecf443e" valign="top" align="left">SIGNATIF (this document)</th>
</tr></thead>
<tbody><tr id="_545f7890-bb1c-395c-ecde-4e873d612312"><td id="_9aa6f37a-25dc-7fcd-e4c7-93a66099c438" valign="top" align="left">Authorization boundary</td>
<td id="_bad40580-3019-2f28-ee48-c2d62f6975ca" valign="top" align="left">Policy-defined (Baseline Requirements); not verifiable from the certificate</td>
<td id="_b95e8547-9edd-99e0-5095-1c08eea8a106" valign="top" align="left">Cryptographic scope enforced at every chain link (<xref target="trust-chain-scope"/>)</td>
</tr><tr id="_37d0c520-07f9-f41f-caab-48270094b746"><td id="_9406f9ed-0835-c893-fb7c-2893215edb0d" valign="top" align="left">Signers per object</td>
<td id="_557d6d86-2627-03de-7406-49f709877032" valign="top" align="left">One signature per certificate</td>
<td id="_70a2fe0e-fa88-f3d0-8685-9a70f8f5fcdb" valign="top" align="left">N co-signatures per artifact, each from an independent trust dimension   (<xref target="artifact-cosignatures"/>)</td>
</tr><tr id="_8cecc037-0f9c-d101-1d62-8b67e6aab980"><td id="_9d8ac413-6a16-a50c-7ced-d6ffe17e4473" valign="top" align="left">Key compromise resilience</td>
<td id="_3456bd1b-1e5f-1f03-94bf-9356a7b5f587" valign="top" align="left">Single key per CA; single point of compromise</td>
<td id="_76b850a2-a71a-2259-6fb7-7843a2f2cf18" valign="top" align="left">Threshold at every authority level (<xref target="threshold-signing"/>)</td>
</tr><tr id="_aed0a991-32dc-813f-5adb-b5a49a502496"><td id="_51f6726e-6202-c757-0463-65638419017e" valign="top" align="left">Federation model</td>
<td id="_0662726d-ae71-4ab8-3897-a1631beb03ae" valign="top" align="left">Bridge CAs are single entities</td>
<td id="_a1fbe632-75c3-43f5-fca8-c3cb8286d9e5" valign="top" align="left">Federated trust authorities are threshold groups of independent organizations   (<xref target="threshold-federated"/>)</td>
</tr><tr id="_9e7c8408-9880-002a-01a3-ed087ed16f21"><td id="_f3463d86-9013-b753-a7a4-7568df575a1d" valign="top" align="left">Transparency</td>
<td id="_f757b69c-a759-babe-0d83-c32fe24e2d6c" valign="top" align="left">Certificate Transparency is an optional monitoring overlay</td>
<td id="_e845389b-8cac-544e-9409-05f251a982f0" valign="top" align="left">Transparency log inclusion is a verification requirement   (<xref target="transparency"/>)</td>
</tr><tr id="_c0127ee8-cd7c-8659-5603-b352271dc169"><td id="_d97991ac-d8ff-c9a5-8cce-ed693e9af738" valign="top" align="left">Trust assessment</td>
<td id="_9dde0f83-457e-3aa2-fea8-db225cc01d10" valign="top" align="left">Binary: valid or revoked</td>
<td id="_03b746e1-f89e-d2d5-43ab-7a8eeb85f317" valign="top" align="left">Graduated: graduated trust classification reflecting coverage report (<xref target="verification-classification"/>)</td>
</tr><tr id="_082932b4-75f3-5854-09de-6995c4a5f4e3"><td id="_c8bf7250-4a75-94b4-bd53-5df4ed8c8f85" valign="top" align="left">Revocation scope</td>
<td id="_2696c43b-6c74-47be-6af4-88930a83961f" valign="top" align="left">Invalidates the certificate; prior signatures remain valid</td>
<td id="_625a698a-e2ea-2bc0-6747-da227854ea90" valign="top" align="left">Propagates to all artifacts transitively bound to the revoked state   (<xref target="revocation-propagation"/>)</td>
</tr><tr id="_0f0a0403-2673-b02a-ed0e-c55b9050ee1f"><td id="_fcfa33c7-31f2-2829-9303-eaa8f110cc63" valign="top" align="left">Time evidence</td>
<td id="_5a93762c-d911-6276-42c7-fe4e95fcba40" valign="top" align="left">notBefore/notAfter are self-asserted by the issuer</td>
<td id="_b10f963d-06a1-e1e1-8ef4-dfdba480e1bd" valign="top" align="left">External time anchoring via independent time authority   (<xref target="time-dimension"/>)</td>
</tr><tr id="_0d10686b-3d0d-f6b5-e0b5-283dc913785f"><td id="_e46dac17-2bc4-c514-2dbe-8e1eb70be6ba" valign="top" align="left">Topology</td>
<td id="_97b9e1d3-0968-a60d-dee5-cd2de41944f3" valign="top" align="left">Strict hierarchy (with awkward cross-certification)</td>
<td id="_4aaa64f3-29ef-9624-48cf-b4cfcc102c6d" valign="top" align="left">Hierarchical, federated, cross-recognized, and mesh as first-class profiles   (<xref target="governance-topologies"/>)</td>
</tr><tr id="_eba67019-a1c7-c361-bb12-902ae75de856"><td id="_65626e3f-10cb-7f58-6931-8366ccd6b294" valign="top" align="left">Authorization model</td>
<td id="_ae1e319d-e03a-a332-025a-c5e340531aa2" valign="top" align="left">Static: “this key is authorized”</td>
<td id="_b1ca4b69-5fe0-ae8a-fcc9-a5d9d7c41449" valign="top" align="left">Dynamic: scope includes executable conditions evaluated at verification time   (<xref target="scope-conditions"/>)</td>
</tr><tr id="_af6c4638-0c7b-6a81-882b-e4a42278bc68"><td id="_061e7252-8d64-2fd1-11c2-84e984061ff9" valign="top" align="left">Authenticity proof</td>
<td id="_036f1c5b-317e-5e1b-f381-6eaaf5888c13" valign="top" align="left">Static certificate; authenticity proven by possession</td>
<td id="_025a42a3-7d23-1bba-5dda-3799f11f4c74" valign="top" align="left">Challenge-response: verifier challenges for fresh nonce-bound artifact</td>
</tr><tr id="_3ef619c8-3187-e933-e324-b7097e7595b0"><td id="_e45c44fe-2223-d75a-da6b-78bb4218f799" valign="top" align="left">Log redundancy</td>
<td id="_3e266d7f-ab2a-2a71-99b3-329a6cd287b4" valign="top" align="left">Single CT log suffices for monitoring</td>
<td id="_60dce9c2-481d-8dda-eb5d-352844116567" valign="top" align="left">Multi-log attestation quorum (M-of-K) for federated artifacts   (<xref target="transparency-multi-log"/>)</td>
</tr><tr id="_77c8172b-bf65-f6ec-f220-0166f2f7eaef"><td id="_caf614fc-022a-2175-650f-098b32d56f50" valign="top" align="left">Cross-domain trust</td>
<td id="_6eea0a19-281d-30bf-cbd8-c21ea73c15e8" valign="top" align="left">CA-to-CA cross-certification</td>
<td id="_de6342f0-adec-a6db-bcf2-dd667e18777c" valign="top" align="left">Artifact-level co-signatures from independent hierarchies   (<xref target="artifact-cross-domain"/>)</td>
</tr><tr id="_563b20c4-c71b-db6a-6bb4-77dca9055999"><td id="_22e0a3b2-6f9f-aca9-a45c-f7e5aee7fd1f" valign="top" align="left">Dimensional coverage</td>
<td id="_2179fce1-1310-a4ea-c598-27fe49f9e848" valign="top" align="left">One dimension: authority/identity</td>
<td id="_3acd8773-6f2e-dd66-0fb5-96c74558fc3e" valign="top" align="left">Multi-dimensional: time, location, environment as cryptographic   co-signature dimensions (<xref target="artifact-multi-dimensional"/>)</td>
</tr></tbody>
</table>
</clause>

<clause id="_772fdb8d-8387-0556-955d-dd1e9700ccfa" inline-header="false" obligation="informative">
<title id="_882e7075-2494-3c11-da91-e9ce6d0c4d9f">Use case suitability</title>
<clause id="_d2b3c47f-50bc-675f-fed8-862a18ce650d" inline-header="false" obligation="informative">
<title id="_90483f60-edac-f191-982c-88b93d0662fa">Use cases for which SIGNATIF is the appropriate technology</title>
<p id="_1010ed06-395b-8a25-db70-847a3a6b9a11">SIGNATIF is appropriate when one or more of the following properties are required:</p>

<ul id="_3ca7b6f2-c319-31b7-d26c-aed46c130a3e"><li><p id="_a4ae381c-9454-99a6-0868-45e90f03dcc8">Multi-party attestation. The artifact’s trustworthiness depends on independent attestations from multiple parties (e.g., operator, laboratory, regulator). PKI binds one signer per object and cannot express convergence.</p>
</li>
<li><p id="_739b002b-c007-d35f-479d-ff76c98f7ce4">Cryptographic scope enforcement. The signing key’s authority must be verifiable from the certificate itself, not from external policy. PKI defines scope externally; it cannot detect scope violations at verification time.</p>
</li>
<li><p id="_b65c35aa-90eb-e1f3-532e-c9e6d6c62bbf">Threshold at every level. No single key compromise compromises any authority. PKI uses single-key CAs; threshold is typically root-only if at all.</p>
</li>
<li><p id="_22b2d593-9268-7d09-9510-976e96541002">Mandatory transparency. The artifact’s existence is publicly auditable, and un-logged artifacts are rejected. PKI treats transparency as optional.</p>
</li>
<li><p id="_12dab852-77b8-8576-9a28-46c1fa29a820">Revocation propagation to artifacts. Revoking an authority state flags all artifacts bound to that state. PKI revokes certificates only; prior signatures remain valid.</p>
</li>
<li><p id="_0ee9b1a7-c608-1226-c47b-5251c211a96d">Multi-dimensional reality attestation. Time, location, or environmental conditions are cryptographically attested, not carried as metadata. PKI has one dimension: authority.</p>
</li>
<li><p id="_aceccec6-0955-043d-edcc-70aa8a1f8405">Graduated trust assessment. The verifier needs to distinguish between levels of assurance for risk-based policy. PKI is binary.</p>
</li>
</ul>

<example id="_c4977123-a442-37fc-1aef-073af6c98df3"><p id="_11c19d03-20e8-e495-1407-936c3c5b9671">A regulatory compliance regime that requires a signed data record to be attested by the issuing device (data dimension), a certified operator (person dimension), an accredited time authority (time dimension), and an environmental sensor (environment dimension) cannot be satisfied by PKI. The multi-dimensional convergence model of SIGNATIF is a hard requirement.</p>
</example>
</clause>

<clause id="_12274d51-f580-fc70-8fa6-98abef91e153" inline-header="false" obligation="informative">
<title id="_31751b3a-55da-a6b3-135a-91b9d62316eb">Use cases for which traditional PKI is appropriate</title>
<p id="_61f2d188-8bc1-8b54-d3f8-f1b96878d638">Traditional PKI is appropriate when the following conditions hold:</p>

<ul id="_7fb79f91-bfa8-5814-e52a-7854cbbb4309"><li><p id="_44e37cdd-55f4-a262-e385-126e85bc7e03">Server identity authentication. The use case is authenticating a server to a client in a transport-layer session. TLS  <eref type="inline" bibitemid="rfc8446" citeas="IETF RFC 8446"/> with X.509 certificates is the mature, interoperable solution.</p>
</li>
<li><p id="_4740cd2c-7f31-2b18-29e3-fa2517bf9f86">Simple key-to-identity binding. The requirement is to bind a public key to an identity (person, organization, or device) for signature or encryption. X.509 certificates provide this directly.</p>
</li>
<li><p id="_aec8f923-2cde-db58-d92d-716c53349399">Web PKI ecosystem. The use case requires interoperability with existing web browsers, operating systems, and trust stores. The web PKI ecosystem (CA/Browser Forum Baseline Requirements, CT monitoring) is specific to this domain.</p>
</li>
<li><p id="_99ebff60-0bb2-f186-1456-9a60dfa74d9a">Email security. S/MIME uses X.509 for email signing and encryption. The interoperability ecosystem is mature.</p>
</li>
</ul>
</clause>

<clause id="_3b31e3e9-22e7-ea36-a036-b678d3bf2bae" inline-header="false" obligation="informative">
<title id="_3aeb6084-7f6a-35fa-eec8-2e864eab0059">Use cases where either technology is viable</title>
<p id="_9f38b398-8b38-32b5-aa07-1c021d8f0e69">For the following use cases, both PKI and SIGNATIF are technically viable; the choice is a preference decision based on deployment constraints:</p>

<ul id="_d74cbe49-3394-90b8-d829-96b41f6e8758"><li><p id="_51e5acf6-4ba3-524c-9a12-5bc2f59104b8">Code signing. Both can bind a signing key to a publisher. SIGNATIF adds multi-party attestation and graduated trust; PKI is simpler and more widely deployed.</p>
</li>
<li><p id="_b255579c-25d3-a2c2-b80e-dc71620d51f6">Document signing. Both can sign documents. SIGNATIF adds scope enforcement and revocation propagation; PKI is interoperable with existing document formats.</p>
</li>
<li><p id="_5daaf5af-5661-4bdb-5c1f-7b4645eaf71c">Device identity. Both can issue device certificates. SIGNATIF adds threshold signing and challenge-response authenticity; PKI is simpler.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_71d1b65d-3158-0d48-dbec-d8c62dd3327a" inline-header="false" obligation="informative">
<title id="_44fb1cb9-72a0-0b0e-c108-89a63b042e46">Hard requirements and preference decisions</title>
<p id="_c9ca47a6-b975-146c-d0a6-274b0aaf6011">The choice between SIGNATIF and PKI can be decomposed into hard requirements (structural properties that one technology provides and the other does not) and preference decisions (properties that both provide or that depend on deployment context).</p>

<clause id="_4d1c1e84-308e-ceae-d9f4-31ecb4dffd14" inline-header="false" obligation="informative">
<title id="_cb5708e0-bda6-7d8d-7888-28978ca551b6">Decisions driven by hard requirements</title>
<p id="_09a28b5d-ef61-9564-2a7e-e5713dddc83a">The following properties are hard requirements that determine technology choice. If any of these is required, the technology that does not provide it structurally cannot be used.  <xref target="tab-pki-hard-requirements"/> lists the hard requirements.</p>

<table id="_21f387eb-16fa-7ff2-4e52-7161fdcf0b55" anchor="tab-pki-hard-requirements"><colgroup><col width="33.3333%"/><col width="22.2222%"/><col width="22.2222%"/><col width="22.2223%"/></colgroup>
<name id="_33ef35f3-a589-c80f-75bc-5c2175ccda7f">Hard requirements determining technology choice</name>
<thead><tr id="_04daf546-3420-4d5a-33cf-bf458d6f63ca"><th id="_f9738885-3f30-a65e-1d68-f0005cb6c712" valign="top" align="left">Required property</th>
<th id="_d4364b36-034d-9730-0368-4bd650fa3216" valign="top" align="left">SIGNATIF</th>
<th id="_71c4acd0-e98c-c835-c265-c42b981afa94" valign="top" align="left">PKI</th>
<th id="_41de2f4c-f381-18ff-c67d-b1e9c4c26b11" valign="top" align="left">Decision driver</th>
</tr></thead>
<tbody><tr id="_4666d3f8-21db-def1-1f59-ed0c20201fe8"><td id="_84a892a2-9063-335b-9aec-bf8a9739deb1" valign="top" align="left">Multi-party co-signed artifacts</td>
<td id="_cc91f45b-dba2-eeaa-67b1-7df99d1c3323" valign="top" align="left">Provides</td>
<td id="_347d5b47-4fec-ed75-1185-04ef166eeaa6" valign="top" align="left">Does not provide</td>
<td id="_22279511-4b00-0fd3-1bef-5d61c862d49e" valign="top" align="left">Hard requirement for SIGNATIF</td>
</tr><tr id="_51684478-fbd5-6adc-2a7d-eaa4f1f3f2bb"><td id="_f111229e-d472-86b5-e4c9-42b7e919a451" valign="top" align="left">Cryptographic scope enforcement</td>
<td id="_afd5a967-5e08-4faa-0d6b-aab3325e0979" valign="top" align="left">Provides</td>
<td id="_7da202df-ac0a-d846-2c11-7f44ed876fda" valign="top" align="left">Does not provide</td>
<td id="_739397fc-d05e-f7c7-9564-d99279d2f777" valign="top" align="left">Hard requirement for SIGNATIF</td>
</tr><tr id="_6310e413-94c0-e3fc-0009-832438a9ff1a"><td id="_9d1f749b-8169-cde5-b13b-7caa48d85597" valign="top" align="left">Threshold at every authority level</td>
<td id="_147241e0-89ca-9ada-6354-afeeea7e4328" valign="top" align="left">Provides</td>
<td id="_b8b3c0c0-93e5-4b33-f51f-a36654da03e8" valign="top" align="left">Does not provide</td>
<td id="_90ef7ea8-6364-3553-10b2-67dbbb793014" valign="top" align="left">Hard requirement for SIGNATIF</td>
</tr><tr id="_d2a9177a-0605-4cd5-55c8-bd09e5f917e5"><td id="_9f145c7b-33d5-93b8-84d9-4df587ffda76" valign="top" align="left">Transparency as verification requirement</td>
<td id="_1846f07c-8adc-7b91-5d61-10767335e130" valign="top" align="left">Provides</td>
<td id="_343d8384-f693-5b51-bfd1-71f24f664cde" valign="top" align="left">Does not provide (CT is optional)</td>
<td id="_5d7a9b29-86b3-af1e-76ab-beb9a0d8c24f" valign="top" align="left">Hard requirement for SIGNATIF</td>
</tr><tr id="_1b39fc28-d571-c12d-d85a-6f36d648a0e8"><td id="_2bf7aa02-8972-a4d9-4c9d-92d703aab81c" valign="top" align="left">Revocation propagation to artifacts</td>
<td id="_5265c81e-eac6-9694-a61b-7439ae868e87" valign="top" align="left">Provides</td>
<td id="_dcfa5a79-3aed-5595-c370-cfa3cc85b885" valign="top" align="left">Does not provide</td>
<td id="_3ff74c2b-70ac-fc3b-2bba-e734efed2074" valign="top" align="left">Hard requirement for SIGNATIF</td>
</tr><tr id="_6fe9a754-ef2a-e5b8-59d1-3dd28a4ff4f5"><td id="_f3a4725c-ea3f-b629-2b30-16a004632f29" valign="top" align="left">Multi-dimensional attestation</td>
<td id="_9e3f39b8-8bd7-4f5e-81a7-8f00c11878b2" valign="top" align="left">Provides</td>
<td id="_72a358ff-885f-13a1-9284-46ae66b95522" valign="top" align="left">Does not provide</td>
<td id="_c2c66c99-f63d-036f-018b-cc8eaa5946f2" valign="top" align="left">Hard requirement for SIGNATIF</td>
</tr><tr id="_8dc6db16-6e5f-374c-1eaa-541981a016a8"><td id="_fdfdc6a9-664b-39d2-1bcd-281756090ae3" valign="top" align="left">Graduated classification labels</td>
<td id="_8a01e8cc-dfea-8978-182b-c41bb2b8e8f1" valign="top" align="left">Provides</td>
<td id="_55730729-552f-e3f4-e2ec-fa6f52c9d846" valign="top" align="left">Does not provide</td>
<td id="_c17b7a3f-8fb9-b8c4-e1ab-d8a5b549112a" valign="top" align="left">Hard requirement for SIGNATIF</td>
</tr><tr id="_cec5298a-07f3-4c3b-4c07-fed1ca17a623"><td id="_84ee9a35-f00a-9314-6bcb-d57634397866" valign="top" align="left">Web browser interoperability</td>
<td id="_59b3d642-f788-671d-322e-660d0995213d" valign="top" align="left">Does not provide</td>
<td id="_863ba625-ed77-bdde-cc14-165e072a27dd" valign="top" align="left">Provides</td>
<td id="_e5b2eec1-2d8a-c101-c5c4-409220370a08" valign="top" align="left">Hard requirement for PKI</td>
</tr><tr id="_be3bd655-ef0f-a33a-e1e0-450583127c28"><td id="_200c229a-baf4-63cf-5c9a-428f18c80d45" valign="top" align="left">TLS session authentication</td>
<td id="_4671d128-49e5-0a07-c7b3-4af9670933b7" valign="top" align="left">Does not provide</td>
<td id="_9c2cfc6b-75f6-f5de-fe43-0b257fe61068" valign="top" align="left">Provides</td>
<td id="_72790678-7333-ef4f-007b-e64d5f6b4785" valign="top" align="left">Hard requirement for PKI</td>
</tr></tbody>
</table>
</clause>

<clause id="_990732b0-ae68-518e-51d6-88d1427dc4c8" inline-header="false" obligation="informative">
<title id="_f97a91f4-5699-abb2-1bfd-117855c617c3">Decisions driven by preference</title>
<p id="_49cd7835-5257-df3e-d13d-252e4842f330">The following properties do not constitute hard requirements; the choice depends on deployment context, ecosystem maturity, or operational preference.  <xref target="tab-pki-preference"/> lists these properties.</p>

<table id="_ad74cb28-998f-f844-5ecd-511014a80e2a" anchor="tab-pki-preference"><colgroup><col width="30%"/><col width="20%"/><col width="20%"/><col width="30%"/></colgroup>
<name id="_7f84eb48-640b-db06-5a06-8535c9c275de">Properties decided by deployment preference</name>
<thead><tr id="_65f741ba-581b-c538-dd20-8f63e5611275"><th id="_12783d80-c409-a17d-0657-3545fb2f6eaf" valign="top" align="left">Property</th>
<th id="_23fb3240-a88b-c08d-956c-de29b625a291" valign="top" align="left">SIGNATIF</th>
<th id="_1eda9061-35d1-05b3-84c8-2fd85cd9d598" valign="top" align="left">PKI</th>
<th id="_5b87fa42-2225-3f24-e046-2bf9d5e2ccad" valign="top" align="left">Consideration</th>
</tr></thead>
<tbody><tr id="_4e33f55a-5ad1-bb99-685b-383f1068b01c"><td id="_e97aca44-c5a8-e7c1-5604-d9f13b2c1604" valign="top" align="left">Single-signer document signing</td>
<td id="_958d3364-db39-97f4-4822-7fc043cd5fd3" valign="top" align="left">Viable</td>
<td id="_4a32bd75-494b-881b-95a9-1a8d67f9d354" valign="top" align="left">Viable</td>
<td id="_999e92a8-5408-0908-3ce6-4246c8f1a8a7" valign="top" align="left">PKI preferred for ecosystem interoperability; SIGNATIF preferred if scope   enforcement or revocation propagation is desired.</td>
</tr><tr id="_b47a7312-f868-0652-1057-d3e6a40885a1"><td id="_cc2141f0-5926-4cce-7724-a5e60a3aa786" valign="top" align="left">Code signing</td>
<td id="_88cbf376-4bc1-3cda-b94b-c5e2cb1c5297" valign="top" align="left">Viable</td>
<td id="_a561d755-cb02-37e0-9428-755e41419cf9" valign="top" align="left">Viable</td>
<td id="_1f2e9ad7-8aba-664d-e83c-57c0b6a4d4fe" valign="top" align="left">PKI preferred for platform compatibility; SIGNATIF preferred for multi-party   attestation or threshold protection.</td>
</tr><tr id="_b70185cc-780f-6e72-4c06-16b2bd33abf5"><td id="_9c35f3d2-6b2d-0fea-0761-4451016d2898" valign="top" align="left">Device identity</td>
<td id="_125475e2-ca77-2c76-0892-6d46023bbf53" valign="top" align="left">Viable</td>
<td id="_17b82041-4a2e-da27-69cd-0c2b9cd88810" valign="top" align="left">Viable</td>
<td id="_0cf97411-d093-9653-0816-a2ba7124fca8" valign="top" align="left">PKI preferred for simplicity; SIGNATIF preferred for challenge-response   authenticity or graduated trust.</td>
</tr><tr id="_f24b906b-d3a0-a080-ccb3-855fe6ceac1f"><td id="_40d1eead-f34d-4612-1aeb-35567d38f673" valign="top" align="left">Internal CA for an organization</td>
<td id="_bc71075c-a881-cbe4-3697-9460a336cd77" valign="top" align="left">Viable</td>
<td id="_e1557810-9897-9798-a725-36d817a4a763" valign="top" align="left">Viable</td>
<td id="_8bb2ba4a-9d20-4b76-7f4c-39e19986b2f6" valign="top" align="left">PKI preferred for existing tooling; SIGNATIF preferred if threshold signing or   mandatory transparency is desired.</td>
</tr></tbody>
</table>
</clause>
</clause>

<clause id="_fbc2bc5b-99ae-9511-416a-734f131d3b70" inline-header="false" obligation="informative">
<title id="_f4a08b4f-202b-1356-0260-0fe651720c28">Coexistence</title>
<p id="_9bc0b43b-9e23-c6a0-1ac6-09ccaaff02f0">SIGNATIF and PKI are not mutually exclusive. A deployment may use both:</p>

<ul id="_d42405dd-105f-5fe7-f266-fa9420104131"><li><p id="_b17b93bc-4323-02ab-831d-e4f128201035">PKI for server authentication and transport-layer security (TLS).</p>
</li>
<li><p id="_11c9949c-3397-5747-029c-dd74abec6140">SIGNATIF for artifact attestation, regulatory compliance records, and multi-party signing.</p>
</li>
</ul>

<p id="_86beea4b-0774-a165-4096-030cecd9f8bf">A SIGNATIF <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> may reference a PKI certificate for the identity dimension, establishing the signer’s organizational identity via PKI while adding SIGNATIF’s scope enforcement and multi-dimensional attestation. This composition is permitted by the format-agnostic binding requirements in <xref target="artifact-binding"/>.</p>
</clause>

<clause id="_bd6eb153-1221-7efb-bc09-417b8f8510cf" inline-header="false" obligation="informative">
<title id="_b4592e2d-51e9-4de3-aaf9-1e82081b20d9">Migration considerations</title>
<p id="_96a4c057-05c0-2848-0f3a-8216705fa549">An organization migrating from PKI to SIGNATIF should consider:</p>

<ul id="_066bead4-9335-b8e9-441a-51eb9cdfae12"><li><p id="_0a601b58-312f-37b4-45d9-055c05ffad03">Key reuse. Existing PKI keys may be reused as SIGNATIF end certificate keys, provided the scope is narrowed appropriately.</p>
</li>
<li><p id="_1a32841e-5b0d-be47-eef9-ada170e745f6">Certificate mapping. Existing X.509 certificates map to SIGNATIF end certificates. The X.509 subject and extensions provide initial scope and identity information.</p>
</li>
<li><p id="_b3d90296-2f6a-fdb3-7eb4-4c062a8d0bff">Transparency log bootstrapping. A new SIGNATIF deployment starts with an empty transparency log. Existing artifacts may be retroactively logged.</p>
</li>
<li><p id="_ba618aa7-e831-b031-ee44-2b5b2e48958f">Graduated adoption. An organization may adopt SIGNATIF incrementally — for example, starting with the data dimension only (PKI-compatible) and adding person, time, location, and environment dimensions over time as the living artifact model permits.</p>
</li>
</ul>
</clause>
</annex><annex id="_1ec30d63-ca1a-d717-aaa6-9adb23f62da5" anchor="annex-c" inline-header="false" obligation="normative">
<title id="_ffaf6332-5417-26e6-79f1-11c417d4a818">Scheme-maintained registries</title>
<clause id="_de510d58-57a4-53e3-8545-581d8ed461e0" inline-header="false" obligation="normative">
<title id="_1f456818-57de-f13a-002c-8e53254c4b12">General</title>
<p id="_55aa01a8-b2e6-8270-b20b-05d97c133b2a">A scheme implementing this document (a “scheme”) shall maintain registries for the extensible value spaces used throughout the framework. This document does not prescribe the content of any registry. Each scheme owns and maintains its own registries, defining the specific values recognized within that scheme’s scope of recognition.</p>

<p id="_885da006-4aac-1c1a-2a67-6df788c5d028">This annex specifies which registries a scheme shall maintain, the characteristics each registry shall have, and the registration policy requirements that apply.</p>
</clause>

<clause id="_400eb25e-1ca4-4d8e-2bd4-3ba4d2b36a9f" inline-header="false" obligation="normative">
<title id="_de916bf9-831e-904e-3f06-857c7830ee92">Required registries</title>
<p id="_ca91c423-0b1c-dd62-793f-5065528213f8">A scheme shall maintain at minimum the following registries. The required registries are listed in <xref target="tab-required-registries"/>.</p>

<table id="_dc9bcb2c-15b4-4fbb-bfe6-9ca61d5c48cb" anchor="tab-required-registries"><colgroup><col width="28.5714%"/><col width="42.8571%"/><col width="28.5715%"/></colgroup>
<name id="_b0dcd2d7-efcf-b789-6235-8df1e8c2b01c">Required scheme-maintained registries</name>
<thead><tr id="_3280cec5-3b73-805b-2fcb-75294246b762"><th id="_bae44ee0-50eb-150c-cdd8-40bd54403a97" valign="top" align="left">Registry</th>
<th id="_7090e25c-641f-e72a-53d7-6638dae79f15" valign="top" align="left">Purpose</th>
<th id="_f9cc806a-9177-e93c-ce9e-1dd90dc8cf85" valign="top" align="left">Referenced by</th>
</tr></thead>
<tbody><tr id="_d99180c9-32e4-26ef-6398-36d7f0e92c77"><td id="_2b65261f-c8ee-bbd9-316e-14f423b80ef1" valign="top" align="left">Trust dimension tag registry</td>
<td id="_6fa44cf8-2599-a7f8-95fd-66f17f716a40" valign="top" align="left">Identifies trust dimension types used in co-signature blocks and verification   results</td>
<td id="_fd0473ff-1405-30c7-9f1a-d6babd95bb38" valign="top" align="left"><xref target="artifact-multi-dimensional"/></td>
</tr><tr id="_38de2bef-a8ea-75af-9d89-b54fe93cf226"><td id="_c5fc3d86-7a14-967a-c3bb-0768d9b236ee" valign="top" align="left">Algorithm identifier registry</td>
<td id="_886956af-2fcd-ed6d-6e0e-0fadc0149921" valign="top" align="left">Identifies signature algorithms recognized by the scheme, with their class   (classical, post-quantum, composite), parameter sets, and status</td>
<td id="_4215de46-1e48-605d-5820-b56563a0c5f3" valign="top" align="left"><xref target="algorithms"/></td>
</tr><tr id="_f0bcf229-0fa7-0da0-8f5e-b6d5046e5c9f"><td id="_146b675f-ced5-6959-ebe6-cae2ffd40b9f" valign="top" align="left">Ceremony type registry</td>
<td id="_cfbf57e7-dfc4-e130-7486-ab4367853741" valign="top" align="left">Identifies ceremony types used in ceremony transcripts and deployment   manifests</td>
<td id="_5f7195bd-1139-4354-b3f6-9e6802efe5d3" valign="top" align="left"><xref target="ceremony-records"/></td>
</tr><tr id="_c94408e6-ebd9-a10a-2c37-e069406f96ea"><td id="_c6298c7e-fc72-a697-21f7-7dced850371f" valign="top" align="left">Format profile registry</td>
<td id="_fe809caf-09cb-2221-c3f8-35a8346d50b1" valign="top" align="left">Identifies signature envelope format profiles recognized by the scheme, with   their canonicalization characteristics</td>
<td id="_34a3ecfa-bac4-b7a5-1a76-51cc8b9a284a" valign="top" align="left"><xref target="artifact-format-profiles"/></td>
</tr><tr id="_aa6d09c1-7cee-6b0c-4541-0ca1702fdf02"><td id="_0396bb1a-c679-a055-57b3-cff35f735370" valign="top" align="left">Scope dimension registry</td>
<td id="_7cd1831a-8d44-27e3-feaf-70bd08a657c9" valign="top" align="left">Identifies scope dimension names used in scope encodings within the scheme</td>
<td id="_30b4362a-1f12-7d9a-902a-188bcdcd2de0" valign="top" align="left"><xref target="scope-structure"/></td>
</tr></tbody>
</table>

<p id="_94ebbb92-d5f6-2f48-0b11-692af84bf749">A scheme may maintain additional registries as needed for its domain.</p>
</clause>

<clause id="_186ff54d-d714-8400-ee3b-58ef1fefc100" inline-header="false" obligation="normative">
<title id="_c78dd937-43d6-b177-7abb-ca2e6b33cd91">Registry characteristics</title>
<p id="_8c8d30cc-d761-dda0-8b15-95a1b6526b77">Each registry maintained by a scheme shall have:</p>

<ul id="_1e781acd-5a46-f0cd-fc07-341b12e675bd"><li><p id="_5bb6bf10-9ac7-ddab-3b67-e1661996828a">Name. A human-readable name identifying the registry.</p>
</li>
<li><p id="_af7b87bb-ccf3-1ca9-6d56-43dd61f84d77">Description. A statement of the registry’s purpose and scope.</p>
</li>
<li><p id="_b82c1f20-6bdc-70b2-cea4-7e2615f35270">Entry schema. The fields that each entry shall contain, including any required fields and optional fields.</p>
</li>
<li><p id="_f925d4c2-0982-c196-f743-5b3b9fb6e28d">Registration policy. The criteria and process for adding, modifying, or retiring entries.</p>
</li>
<li><p id="_eb31f600-bb41-48d4-791d-6653bd4786a3">Maintainer. The organization or body responsible for maintaining the registry and performing registration decisions.</p>
</li>
<li><p id="_2bf5dfd5-8c00-0202-fcc0-a348e4db1346">Publication. A publicly accessible location where the current registry contents are published.</p>
</li>
</ul>
</clause>

<clause id="_2970a758-4c35-9586-35df-6f3448a1a259" inline-header="false" obligation="normative">
<title id="_1a37e61b-28d9-6767-263d-1af23668f92e">Registration policy requirements</title>
<p id="_ee450ea4-ee07-79b0-cd3b-14cd92d20abc">Each registry’s registration policy shall ensure that:</p>

<ul id="_6f831e98-125f-825d-421c-6e8b82d2cb4c"><li><p id="_0bcc6b80-19c3-63ea-0993-cdfdbe73ff49">registrations are technically sound;</p>
</li>
<li><p id="_a18df6ad-883b-94cd-22d0-e9e95817d9fb">proposed entries do not duplicate existing entries;</p>
</li>
<li><p id="_711a5915-faa3-4a59-b002-eb8e8383494c">specifications are sufficiently detailed for independent implementation;</p>
</li>
<li><p id="_ccd96ef7-f27e-35e5-6b4f-2fd889fe9de7">security implications have been assessed;</p>
</li>
<li><p id="_30c84efd-3760-0a34-5337-6e846b225997">registrations, modifications, and retirements are publicly recorded with dates and rationale.</p>
</li>
</ul>

<p id="_8f8d6780-c68b-2695-d1f6-da15d16f483e">The registration policy may designate expert reviewers. The scheme shall document the reviewer qualification criteria.</p>
</clause>

<clause id="_6a1dd6b9-cd8a-2329-eec0-26445541c368" inline-header="false" obligation="normative">
<title id="_f94e141a-2ef2-767e-7bb6-fdbf5b59c315">Inter-scheme recognition</title>
<p id="_70c05fd6-d732-bb78-7d6e-b614ebcb1eb2">Two schemes that wish to interoperate shall publish a mapping between their
respective registry entries, or shall adopt a common registry. The mechanism
for inter-scheme recognition is out of scope of this document; it is a
governance decision of the participating schemes.<note id="_08bbacf0-b413-1864-c1f2-9bc9ef76208c"><p id="_c51ec5aa-796f-fd82-0ca3-061186f9bc26">A scheme may adopt another scheme’s registry by reference, or may establish a joint registry with other schemes. The framework does not mandate a specific inter-scheme recognition mechanism.</p>
</note></p>


</clause>

<clause id="_cfa1f062-5db6-487c-51bd-c95d21eb90db" inline-header="false" obligation="normative">
<title id="_033ef686-f207-8065-8f6e-33d93134badc">No mandatory initial values</title>
<p id="_77294c33-8f16-6f48-716b-5a7531366fde">This document does not prescribe mandatory initial values for any registry. The initial content of each registry is determined by the scheme at establishment time, subject to the scheme’s own governance process. Profiles of this document (see  <xref target="annex-d"/>) may recommend initial values as examples, but such recommendations are informative.</p>
</clause>
</annex><annex id="_08ac6068-ee2b-2521-262b-ea5de9c94272" anchor="annex-d" inline-header="false" obligation="informative">
<title id="_64f209a1-619a-5a60-f47b-de679aa1c3ea">Sample domain profile: supply-chain provenance</title>
<clause id="_d59cf891-5824-8477-3fd3-ecfea91b161f" inline-header="false" obligation="informative">
<title id="_39c5bc06-14d1-068e-ead7-fce70757adf7">General</title>
<p id="_717556de-4fa8-c291-51ac-b2ce79977044">This annex presents a sample profile of the SIGNATIF framework for a supply-chain provenance deployment. It demonstrates how a specific domain configures the SIGNATIF framework into a concrete, implementable system. The profile specifies the algorithm classes, format characteristics, scope dimensions, transparency configuration, threshold parameters, and dimensional attestations used.</p>

<p id="_5843e3f6-4ef1-55ba-ca9f-c8e3f4c394fd">This annex is informative. It does not specify requirements. It illustrates how the normative requirements of this document are instantiated for a real deployment.</p>
</clause>

<clause id="_d208a5af-2283-4a3b-9ee1-b6083c45d6ea" anchor="supply-profile-identifier" inline-header="false" obligation="informative">
<title id="_4574d24f-59f4-30b2-8755-6844cea37030">Profile identifier</title>
<p id="_36c97f5b-5fc5-dd1e-3f0f-652cc9f64d15">This profile is identified as <tt>/profile/supply-chain-provenance</tt>. It claims the following conformance classes:</p>

<ul id="_5dc808c1-1d38-8a87-7c13-6b733e4ce0e6"><li><p id="_f13ac4fa-3bb5-6723-bfc4-6c268a41d495"><tt>/conf/basic-verifier</tt></p>
</li>
<li><p id="_1d00b15a-f4f9-c573-fd94-ac607bed1377"><tt>/conf/full-verifier</tt></p>
</li>
<li><p id="_9f20cf55-3b2c-c795-017d-556ac0ca8397"><tt>/conf/issuing-authority</tt></p>
</li>
<li><p id="_030476c5-488b-837e-e09c-bd7df04b1512"><tt>/conf/root-authority</tt></p>
</li>
<li><p id="_26ad5d86-5ef0-d237-7a54-108cf5350e32"><tt>/conf/transparency-operator</tt></p>
</li>
<li><p id="_53f55543-015e-693c-93f2-9a4adf20a178"><tt>/conf/mirror</tt></p>
</li>
<li><p id="_c82c863c-f54c-8fdb-f910-fa1755aed95b"><tt>/conf/device-signer</tt></p>
</li>
<li><p id="_631ac7c1-87e1-22cc-19d6-d03fd0e6523c"><tt>/conf/hierarchical</tt> (topology)</p>
</li>
<li><p id="_eca638ad-ce2c-bb35-86d0-843cf7066a43">At least one format profile from the scheme’s registry</p>
</li>
<li><p id="_38c2910b-4d02-86ee-f067-1e36d5efed8a"><tt>/conf/dimension-data</tt></p>
</li>
<li><p id="_8e712c36-dbe2-04e2-ca10-023c25ac683c"><tt>/conf/dimension-person</tt></p>
</li>
<li><p id="_3285e8ac-7073-f932-2aa1-656592deffe7"><tt>/conf/dimension-time</tt></p>
</li>
<li><p id="_ca3bdf21-fb06-6309-8c9c-a4d70cdc83fa"><tt>/conf/dimension-location</tt></p>
</li>
<li><p id="_a718e96c-c991-4f2e-295f-f12ba9caa00b"><tt>/conf/multi-dimensional</tt></p>
</li>
</ul>
</clause>

<clause id="_9a6def45-e707-8c03-5528-2e8148dac375" anchor="supply-hierarchy" inline-header="false" obligation="informative">
<title id="_74030bed-ae37-b019-c2cc-e34f790f619b">Hierarchy mapping</title>
<p id="_b3513171-473d-34b9-d8f9-401505fcd20f">A pharmaceutical supply-chain deployment maps its organizational tiers to the SIGNATIF delegation model as follows. The mapping is given in  <xref target="tab-pharma-hierarchy"/>.</p>

<table id="_7f269477-3502-c191-b9c4-7c9036105274" anchor="tab-pharma-hierarchy"><colgroup><col width="25%"/><col width="25%"/><col width="37.5%"/><col width="12.5%"/></colgroup>
<name id="_e14209df-a919-a607-8699-b60640ccc691">Pharmaceutical supply-chain hierarchy mapping</name>
<thead><tr id="_14342c04-178a-257b-f1ff-e3dea76ef36c"><th id="_a2e4ae3c-bd6e-e143-1f3f-86ba54f94e74" valign="top" align="left">Supply-chain tier</th>
<th id="_58f37fb1-d5f9-153a-7390-03787e621680" valign="top" align="left">SIGNATIF level</th>
<th id="_fb9bcae2-af8c-cde8-8486-b7e6292fe19d" valign="top" align="left">Role</th>
<th id="_60f30d25-1814-9c21-1a7e-483d827faae8" valign="top" align="left">Threshold</th>
</tr></thead>
<tbody><tr id="_4e5bdfb5-7fd5-eef4-666b-5bb2216d03ea"><td id="_ceeb7690-1a4b-6771-f75e-951f9cd4035e" valign="top" align="left">Global regulatory body</td>
<td id="_b13d2dd6-8908-2b53-e3b3-44ac5d916116" valign="top" align="left">Root trust authority</td>
<td id="_8b0c7517-4bd9-8124-e125-48515eb9d8b2" valign="top" align="left">Defines the global supply-chain scope; delegates to national authorities</td>
<td id="_ecd20d7a-9352-78ad-c6c9-8d630beede9e" valign="top" align="left">3-of-5</td>
</tr><tr id="_e07724cc-0159-02d9-ec97-bbe23d3e4ac9"><td id="_23c48524-bc2a-1439-4493-e1cb4669ff06" valign="top" align="left">National drug agency</td>
<td id="_5806f9fb-e1a7-3979-6448-97afd0f74bb6" valign="top" align="left">Delegated trust authority</td>
<td id="_70e68070-a881-bbfd-ed23-c57bc1e7d20c" valign="top" align="left">National regulatory authority; delegates to manufacturers</td>
<td id="_84fcc58a-07a7-ddca-8a66-041ff3d41322" valign="top" align="left">2-of-3</td>
</tr><tr id="_b0bbbe45-3e12-5dc8-001f-2ce9337d0469"><td id="_ffb68c82-5d54-2ccd-ed75-03991cdd50b3" valign="top" align="left">Manufacturer QA authority</td>
<td id="_6084a552-0d6e-23b9-4cd7-9a376ba67abb" valign="top" align="left">Delegated trust authority</td>
<td id="_2fdf50b9-d709-791c-40a6-af56bdc7a2a3" valign="top" align="left">Production facility quality-assurance signing authority</td>
<td id="_e52971f9-889f-47b0-dfb5-a8702e143d60" valign="top" align="left">1-of-1 or 2-of-3</td>
</tr><tr id="_c2dfe8b7-b022-bf99-fb0c-aea69438b55b"><td id="_b4417734-8bf7-ba64-a751-ddfc5a4ff5a0" valign="top" align="left">Batch signing key</td>
<td id="_574a86cd-7d4d-412d-013f-5a5527e032a7" valign="top" align="left">End certificate</td>
<td id="_b9a8772d-6598-3b87-4f43-47245b1c2a5f" valign="top" align="left">Per-production-batch key authorized to sign release records</td>
<td id="_eea854b2-c00b-82e3-feb4-e616ee6c9e98" valign="top" align="left">1-of-1</td>
</tr><tr id="_df6ff8fa-f6f3-2be1-d7a0-ccd7e03ab56c"><td id="_56467e82-f1b2-1ef4-682f-74987f6d8361" valign="top" align="left">Signed batch release record</td>
<td id="_7542c74e-4e3c-651d-4514-014c7659a4ec" valign="top" align="left">Trusted artifact</td>
<td id="_ea9b38d1-fd50-06d1-0ef2-a40df823fc5a" valign="top" align="left">The batch data with co-signatures — the deliverable</td>
<td id="_b2ae93be-b9a8-7874-626e-a396da97b0ff" valign="top" align="left">Primary + co-signatures</td>
</tr></tbody>
</table>
</clause>

<clause id="_598538a1-40e9-67f1-00e4-840ea4404eda" anchor="supply-algorithms" inline-header="false" obligation="informative">
<title id="_abd96598-ce1e-527e-9ece-64684c13d5f1">Algorithms</title>
<p id="_e6f26965-23d6-bbaa-dc51-60e89d2a3f76">The deployment uses algorithms from the scheme’s algorithm registry. The selection is a deployment decision; this profile does not mandate specific algorithms. The deployment may define a post-quantum migration trajectory following the three-phase path specified in  <xref target="algorithms-migration"/>.</p>
</clause>

<clause id="_d77f52a2-84dd-fac0-f392-9a97973b941a" anchor="supply-format" inline-header="false" obligation="informative">
<title id="_219893ca-a38a-dab7-10ed-c20f22ea90ba">Artifact format</title>
<p id="_217b77fb-b5f3-d516-090f-61c254291c16">The deployment selects a format profile from the scheme’s format profile registry. The selected profile satisfies the binding requirements in <xref target="artifact-binding"/> and the canonicalization characteristics in <xref target="artifact-canonical-payload"/>. The payload schema is domain-specific, identified by a URI and versioned per  <xref target="artifact-versioning"/>.</p>
</clause>

<clause id="_a4766378-81b9-0763-af69-c40513b32215" anchor="supply-scope" inline-header="false" obligation="informative">
<title id="_b795269d-e0e6-6a21-d387-12ebde5d03c9">Scope dimensions</title>
<p id="_d71a65b3-0dad-2877-13d4-886591954b52">The deployment uses the following scope dimensions (non-exhaustive; additional dimensions may be defined by the deployment). The scope dimensions used are listed in  <xref target="tab-pharma-scope"/>.</p>

<table id="_5f31108e-416f-a160-72ad-b61606f03cae" anchor="tab-pharma-scope"><colgroup><col width="25%"/><col width="37.5%"/><col width="37.5%"/></colgroup>
<name id="_1d16f0e6-c06d-215a-c8d6-682634dd3cdc">Deployment scope dimensions</name>
<thead><tr id="_2527cb6b-f542-5201-7b70-97a4466d2648"><th id="_6ad104ab-3d78-793b-2f2f-4113aea531b5" valign="top" align="left">Dimension</th>
<th id="_8b107d01-8041-767a-dd93-046252478669" valign="top" align="left">Values</th>
<th id="_b5a48c2d-24b7-1a84-4d42-6226ea0f7dca" valign="top" align="left">Example</th>
</tr></thead>
<tbody><tr id="_d6bc56c3-c9ab-d469-fe5e-073c5e0d1ba3"><td id="_a2a3d0d1-88a7-5f4d-1d05-9ce744dcf926" valign="top" align="left"><tt>domain</tt></td>
<td id="_bd635e5d-3f96-76ca-4ad0-f43ed390eeda" valign="top" align="left"><tt>pharma</tt>, <tt>food</tt>, <tt>electronics</tt></td>
<td id="_e5559c11-83ce-2545-4bed-5fafc61fe3c0" valign="top" align="left">Fixed at root</td>
</tr><tr id="_ca79b641-1245-031a-577b-b10ad986969e"><td id="_db64967a-28d1-1f61-61e4-eeaca2151856" valign="top" align="left"><tt>subdomain</tt></td>
<td id="_84fa2976-3698-b081-f9f1-ee4771dbfda6" valign="top" align="left"><tt>vaccines</tt>, <tt>raw-materials</tt>, <tt>finished-goods</tt></td>
<td id="_3b9c1d23-6cc1-dc9c-8f90-f35d63f7eff6" valign="top" align="left">National authority narrows</td>
</tr><tr id="_d1b8a90c-a3e4-8d5e-f609-bcdc4303ca3e"><td id="_f163416d-500e-023d-840c-47f07369ec2a" valign="top" align="left"><tt>class</tt></td>
<td id="_88ab0ae3-a5ad-bfe8-2e8e-30ec3a391e1e" valign="top" align="left">Product classes (e.g., <tt>{vaccine, tablet, device}</tt>)</td>
<td id="_c477cba3-5c51-8f84-642f-9e21b236a8f1" valign="top" align="left">Manufacturer narrows</td>
</tr><tr id="_92b93303-115d-ad40-53b4-9d7d839e7d1a"><td id="_d731fbdb-c7e0-781a-3478-9aea19f3ad79" valign="top" align="left"><tt>batch</tt></td>
<td id="_25c87c76-ede1-c4b5-f947-c1c86e47b877" valign="top" align="left">Batch identifier (e.g., <tt>LOT-2026-001</tt>)</td>
<td id="_f4239b85-7b09-0747-2da9-70c29012fc88" valign="top" align="left">End certificate narrows to a specific batch</td>
</tr><tr id="_71d26e8b-1de6-9a95-0d28-6231bee6da9d"><td id="_8656764c-60df-ccbf-a3a5-7e60d4f3a4d8" valign="top" align="left"><tt>conditions</tt></td>
<td id="_828fb184-13e2-a465-8e3f-1d16de2ffc6a" valign="top" align="left">Temperature compliance, chain-of-custody validity</td>
<td id="_3f5ee40e-7b7c-d48f-b9e5-41755e54c386" valign="top" align="left">Evaluated at verification time</td>
</tr></tbody>
</table>
</clause>

<clause id="_87bc94e0-b282-02b4-a094-aec3cb47cee1" anchor="supply-transparency" inline-header="false" obligation="informative">
<title id="_0ee6afeb-33ba-f02e-8b38-98b894655e22">Transparency configuration</title>
<p id="_da7d1fbc-9f93-24ec-093c-e88903f3c185">The deployment operates a transparency log with the following characteristics (examples; specific configuration is a deployment decision):</p>

<ul id="_bba272e9-895e-54e0-88d4-b89e950f59f4"><li><p id="_c0b1e71b-b364-e9a1-dbbf-c5479a534d48">append-only Merkle tree with inclusion proofs;</p>
</li>
<li><p id="_eb855f72-9a4f-6180-6a92-282940d9f01a">external time anchoring to an independent time source;</p>
</li>
<li><p id="_2bc3d350-c857-6e52-97f2-8f79997f883d">gossip between independent mirror operators;</p>
</li>
<li><p id="_496eba85-dac5-6718-4490-9af26030e8dc">public mirror endpoints published in the deployment manifest.</p>
</li>
</ul>
</clause>

<clause id="_29773565-0b33-22fb-b64a-472accd1a33d" anchor="supply-threshold" inline-header="false" obligation="informative">
<title id="_6b603df8-60fd-a743-6860-a51dbcc451d8">Threshold configuration</title>
<p id="_ad61697b-39b9-c183-a18d-52178b21a9a3">The deployment uses threshold signing at the regulatory and national levels (examples; specific thresholds are deployment decisions). Example configurations are given in  <xref target="tab-pharma-thresholds"/>.</p>

<table id="_ae1e7e7b-2e7f-a2bb-8e3e-d4f08f207a9a" anchor="tab-pharma-thresholds"><colgroup><col width="33.3333%"/><col width="33.3333%"/><col width="33.3334%"/></colgroup>
<name id="_9bfd9b7a-fcc5-8026-182c-51bb4463ec6d">Threshold signing configuration by authority</name>
<thead><tr id="_1b9d296d-ddce-f475-6004-3ef5640a8505"><th id="_f4e25817-d94f-7fba-33b2-bacef0cc24ff" valign="top" align="left">Authority</th>
<th id="_83c8fef2-87e4-131a-b13d-8d9c2303b12f" valign="top" align="left">Quorum (example)</th>
<th id="_a9b08656-8bd2-c00c-3167-4fd7233f9c83" valign="top" align="left">Ceremony</th>
</tr></thead>
<tbody><tr id="_65cd03df-4c9b-0c05-9616-c7ca9c7591ef"><td id="_a993cda6-9289-542d-70be-44a91b678a2a" valign="top" align="left">Global regulatory body (RTA)</td>
<td id="_950f1405-8e08-414c-bfea-53278f855bbb" valign="top" align="left">3-of-5</td>
<td id="_8b8feee0-ed9e-15f8-115d-65c401b68305" valign="top" align="left">Annual key ceremony; 5 regulatory representatives</td>
</tr><tr id="_81e5c799-5a4c-61b3-fbe2-b851ce2c8bde"><td id="_f06ebf7d-1adf-2aec-5559-2b6a0e3046a0" valign="top" align="left">National drug agency (DTA)</td>
<td id="_249ed1f2-7167-9638-3348-89b06478d069" valign="top" align="left">2-of-3</td>
<td id="_3a8bfa2c-e055-1fbf-6a78-d24dba24b6bb" valign="top" align="left">National ceremony; 3 authorized officers</td>
</tr><tr id="_708a572e-bcfb-3b65-efe0-a328c7bdfdd4"><td id="_6cde2972-a5de-5794-914e-86b632f98d1a" valign="top" align="left">Manufacturer QA (DTA)</td>
<td id="_f52707a3-af7e-05dc-8047-64a86c089efe" valign="top" align="left">1-of-1 or 2-of-3</td>
<td id="_4e5997ae-2047-8928-7eea-88abdf70525d" valign="top" align="left">Facility-dependent</td>
</tr><tr id="_48d7699c-684c-afe7-a3b5-0b228140a5d8"><td id="_424b4018-e08a-cd4f-95ce-b046d993366f" valign="top" align="left">Batch signing key (End Cert)</td>
<td id="_8dced3d1-a3f1-54c0-7fd6-1ed2e185d6d3" valign="top" align="left">1-of-1</td>
<td id="_317a4ce7-a4e9-b7b5-c290-9df937dafc95" valign="top" align="left">Per-batch key generation</td>
</tr></tbody>
</table>
</clause>

<clause id="_7998e202-2058-ce8e-1956-e8afbf64d447" anchor="supply-dimensions" inline-header="false" obligation="informative">
<title id="_c0ec9a52-50f8-6b42-1d2d-9236fd6e607e">Dimensional attestation model</title>
<p id="_fd87d04f-79fc-1eec-9885-749270407837">Artifacts in this deployment carry the following dimensional attestations (examples; the set of dimensions is extensible). The dimensional attestations are listed in  <xref target="tab-pharma-dimensions"/>.</p>

<table id="_c2d199da-741f-998d-2630-530dee18e21e" anchor="tab-pharma-dimensions"><colgroup><col width="40%"/><col width="60%"/></colgroup>
<name id="_76f8d9f7-887a-d1d7-3b6d-295be5519762">Dimensional attestation sources</name>
<thead><tr id="_6fbb1a90-dfa4-e2fe-8ea4-3f3ba2394db0"><th id="_588cca2b-8777-65f1-93be-339c7d2a9862" valign="top" align="left">Dimension</th>
<th id="_35ff7818-7f6d-2dcf-b8e5-b14e9adfb4b7" valign="top" align="left">Attestation source</th>
</tr></thead>
<tbody><tr id="_7a8b16d3-3b43-3f3b-4dfc-7456bc457c80"><td id="_d36b00fc-e5b9-4cd7-b5b0-651a8e0190ce" valign="top" align="left">Data</td>
<td id="_0fdc05c7-132b-016e-b29a-933efcd9a13d" valign="top" align="left">Batch signing key signs the release record</td>
</tr><tr id="_daeb05fa-17e8-da9f-4d1f-bbb781eca7c4"><td id="_feb63658-01a6-f220-d376-fddd2737c4c2" valign="top" align="left">Person</td>
<td id="_503fc957-1de9-6543-7691-44690964417b" valign="top" align="left">QA operator co-signs (“I authorize this batch release”)</td>
</tr><tr id="_34c8564e-b655-8218-d4c0-28d394389845"><td id="_15c3acdc-854b-2283-70fc-2ba2d5f6c656" valign="top" align="left">Time</td>
<td id="_2b818e3a-79dc-000c-cbe6-d7e947186176" valign="top" align="left">Time authority anchors the artifact hash to an external time source</td>
</tr><tr id="_f340f652-dddb-bf54-891c-7d746e1d7a92"><td id="_9f6c8332-5f3f-c873-6a5b-8c5627ec96f9" valign="top" align="left">Location</td>
<td id="_1960d1ef-5dcc-123b-5e91-d8c7cb29460a" valign="top" align="left">Location authority co-signs (“produced at facility F”)</td>
</tr><tr id="_4e46a009-755e-f896-0ef6-01dd4b70bb39"><td id="_54058443-434b-c3fc-1987-c7e1f483519d" valign="top" align="left">Environment</td>
<td id="_d608730f-053f-4fc2-1934-7159bce2fa33" valign="top" align="left">Cold-chain sensor co-signs (“temperature was 2-8 C throughout transit”)</td>
</tr></tbody>
</table>

<p id="_cabaeec8-bcd8-017d-e260-0bb1cd02d93c">A fully-attested batch release record achieves the highest classification label when all policy-required dimensions are present.</p>
</clause>

<clause id="_4d8f3641-dda2-cbfb-af12-c1d3ec371412" anchor="supply-manifest" inline-header="false" obligation="informative">
<title id="_c18e07f7-db6d-1262-597e-c3365398480f">Sample deployment manifest</title>
<p id="_4d1a176c-1434-5170-49a9-be9f87d0f21d">The following excerpt illustrates the deployment manifest per the schema in <xref target="manifest"/>:</p>

<sourcecode id="_31ccb1d9-4a81-d530-7cd8-b245225bc094"><body>[deployment]
name = "PharmaSupplyChain-Global"
operator = "GlobalPharmaRegulator"
manifestVersion = 1

mode = "production"

[[tiers]]
name = "global-regulator"
role = "RTA"
threshold = { t = 3, n = 5 }

[[tiers]]
name = "national-agency"
role = "DTA"
threshold = { t = 2, n = 3 }
delegatedBy = "global-regulator"
delegationScope = "subdomain"

[[tiers]]
name = "manufacturer-qa"
role = "DTA"
threshold = { t = 1, n = 1 }
delegatedBy = "national-agency"
delegationScope = "class"

[[tiers]]
name = "batch-key"
role = "EndCertificate"
delegatedBy = "manufacturer-qa"
delegationScope = "batch"

[transparency]
gossip = true</body></sourcecode>


<note id="_a2499d06-a672-0523-943b-991ee4963f79"><p id="_30fa1c84-b9a8-646a-22b3-b882718eb2ba">The algorithms, format profile, and transparency configuration in this manifest reference values from the scheme’s registries, not values prescribed by this document.</p>
</note>
</clause>

<clause id="_5083d731-c8f9-c1a1-bb2b-e712a3b4601f" anchor="supply-verification" inline-header="false" obligation="informative">
<title id="_3f2e644a-4e2c-e3d1-d75c-db69dd6f27cb">Verification example</title>
<p id="_d37561de-352c-c89d-3471-e1eaa9bd68f0">A customs inspector verifying a pharmaceutical shipment proceeds as follows:</p>

<ol id="_0cae9915-2631-7b66-25ef-7d229dc799e0"><li><p id="_ea9d397f-8f7d-b25d-9bfc-cab2eb6d3115">The shipment carries its provenance artifact (compact encoding per <xref target="delivery-qr"/>).</p>
</li>
<li><p id="_1740694f-cb5e-dc0e-3735-4af79b7f75fb">The inspector’s verifier loads the scheme’s trust anchor bundle (offline).</p>
</li>
<li><p id="_6a5f07eb-1786-83e1-92df-3d20beb4e23b">The pipeline runs hard checks: format validity, signature validity, chain integrity, scope narrowing, scope conditions (temperature compliance, chain-of-custody validity), revocation status.</p>
</li>
<li><p id="_e7e20ef7-b5fa-3a1a-47fc-971dd5cac92e">The pipeline runs soft checks: transparency inclusion, time anchor, cross-domain co-signatures (person from QA operator, location from facility authority, environment from cold-chain sensor).</p>
</li>
<li><p id="_3f78d669-a918-136f-c26a-db19691defbf">The assigned grade reflects the dimensional coverage. If the grade meets the inspector’s policy minimum, the shipment is accepted.</p>
</li>
</ol>
</clause>
</annex><annex id="_6329dbe0-d182-23a4-26e2-2ebe8446d4bf" anchor="annex-e" inline-header="false" obligation="informative">
<title id="_25f68a80-0f1b-8dc3-9d61-798b62202843">Reference technology instantiation</title>
<clause id="_cd919b5b-cdc2-20cf-b695-58b7091942fd" inline-header="false" obligation="informative">
<title id="_57c2fffc-9ab2-bdbd-3696-7c64852b7f72">General</title>
<p id="_4e627ff8-f212-4650-0cbe-ed10dd460769">This annex demonstrates SIGNATIF instantiated with a concrete technology stack. It provides implementation-level detail — artifact structure, computation steps, verification examples, and test scenarios — sufficient for an implementer to build a conforming system against this stack. All technology choices are examples; this annex does not mandate them.</p>

<p id="_4401250f-eb0a-6188-561e-ef57f4304e9d">The reference stack. The mapping is given in <xref target="tab-reference-mapping"/>.</p>

<table id="_17ff52b2-3adc-9efc-7ac3-98e49455559c" anchor="tab-reference-mapping"><colgroup><col width="40%"/><col width="60%"/></colgroup>
<name id="_79a59eb0-e821-74af-6a70-dc1644e5e361">Reference technology mapping</name>
<thead><tr id="_b8c91f7b-a021-4fd5-ebff-fc834e44db72"><th id="_313b01a2-73fb-34da-e648-1cda7a785fdd" valign="top" align="left">SIGNATIF concept</th>
<th id="_1aee96bc-44c3-67e6-b306-028d2406da0f" valign="top" align="left">Reference technology</th>
</tr></thead>
<tbody><tr id="_b4bee4bf-d5d2-8d0d-a870-ec83c7baae12"><td id="_0f59392b-3659-6813-7791-c0e9f5a202aa" valign="top" align="left">Classical signature algorithm</td>
<td id="_99bc9150-1157-0a98-1c9f-fd2f4549eea6" valign="top" align="left">Ed25519 (<eref type="inline" bibitemid="rfc8032" citeas="IETF RFC 8032"/>)</td>
</tr><tr id="_9f298eb3-42a5-df79-0f9e-700f3b3bbfc7"><td id="_0492df8a-c1e9-2813-5717-e6b11a2d06dc" valign="top" align="left">Post-quantum algorithm (migration target)</td>
<td id="_11fffecf-2522-8d46-8123-051db32fc713" valign="top" align="left">ML-DSA-65 (<eref type="inline" bibitemid="fips204" citeas="NIST FIPS 204"/>)</td>
</tr><tr id="_82d3002b-468d-49bc-bf8c-0775a83eac16"><td id="_a96937c2-47f2-68bc-d54c-beeb85221b76" valign="top" align="left">Composite signature (transition)</td>
<td id="_102abc0b-8d11-1388-a2c0-f3e6f6de211f" valign="top" align="left">Ed25519 AND ML-DSA-65 (both components verified)</td>
</tr><tr id="_27889c99-7169-eebc-73fa-d520c317e252"><td id="_975893cc-6af9-a762-aca4-89afccbed35b" valign="top" align="left">Hash function</td>
<td id="_be7215fe-f3d3-4deb-5ef1-863310c0fb69" valign="top" align="left">SHA-256</td>
</tr><tr id="_70068d06-c2cb-1af3-2c41-0eb3dc480aa8"><td id="_40746089-d206-93e1-14fb-137268c88f29" valign="top" align="left">Signature envelope</td>
<td id="_062965ae-1eaa-db73-42f5-46af985a75a8" valign="top" align="left">JSON Web Signature, compact serialization, detached content (<eref type="inline" bibitemid="rfc7515" citeas="IETF RFC 7515"/>)</td>
</tr><tr id="_aa3d53f4-310b-f83a-04aa-e47a163a12a0"><td id="_ba713d4f-0a27-8393-d6e7-68022257560e" valign="top" align="left">Canonicalization</td>
<td id="_4c4717ed-4d3b-6568-acd7-edba55ac0e85" valign="top" align="left">JSON Canonicalization Scheme (<eref type="inline" bibitemid="rfc8785" citeas="IETF RFC 8785"/>)</td>
</tr><tr id="_c3051358-a775-b3fc-97bc-498524f5da1d"><td id="_fc8ad991-1dad-9754-1d10-768884e8e302" valign="top" align="left">Transparency log</td>
<td id="_a1b052c6-82e2-fdf4-36c0-43cdfe944498" valign="top" align="left">Append-only Merkle tree with SHA-256, domain-separated hashing (RFC 6962 convention: 0x00 leaf, 0x01 node)</td>
</tr><tr id="_eefa46f9-388c-ddea-df90-5b5736529f99"><td id="_38f7909c-1724-7ce2-b105-c34b31e3ea06" valign="top" align="left">External time anchoring</td>
<td id="_c8bb3ce0-ddc9-68b1-2e45-5256629c19a1" valign="top" align="left">OpenTimestamps commitment to an external proof-of-work chain</td>
</tr><tr id="_d05a98ad-fed4-6afc-d080-d373b3e47eaf"><td id="_5d5e6a31-2c37-d9a6-c225-4ebed3f99fba" valign="top" align="left">Threshold signing</td>
<td id="_107040d6-da92-5dff-04db-723480af0f93" valign="top" align="left">2-of-3 threshold (reference configuration; specific scheme is a deployment choice)</td>
</tr><tr id="_7637a94e-1a6e-8d87-c769-03c586262c13"><td id="_885d3897-b56b-8901-abd5-fb6b8d536a16" valign="top" align="left">Key encoding</td>
<td id="_b469ea6d-2cc9-1ef5-6828-96e520035fcd" valign="top" align="left">SubjectPublicKeyInfo (SPKI) for public keys</td>
</tr><tr id="_19e6097b-c21e-664f-7b7f-b777293ee1a0"><td id="_4cfddb4a-03aa-4641-5c18-e3c7a7d08795" valign="top" align="left">Scope condition expression</td>
<td id="_68b5b997-929d-514a-c813-818f5a522558" valign="top" align="left">JSON Logic</td>
</tr></tbody>
</table>
</clause>

<clause id="_440abedf-88ba-94f1-31eb-f4ab7d0eb924" inline-header="false" obligation="informative">
<title id="_7eaf587b-2b8a-7812-90d0-2f2cedded75b">Canonical payload hash computation</title>
<p id="_1ab1b7d8-e3b8-8a93-ad1a-d98957896355">All co-signatures attest the same canonical payload hash. For the reference stack, the computation is:</p>

<ol id="_da7a512c-9c62-e684-6a43-99041c559ff8" type="arabic"><li><p id="_b0692697-076e-d21c-d0ed-19742439862a">Take the logical payload as a JSON object.</p>
</li>
<li><p id="_29256923-017d-96e5-a6bb-0636bf6ddda7">Apply JSON Canonicalization Scheme (JCS, <eref type="inline" bibitemid="rfc8785" citeas="IETF RFC 8785"/>) to produce a deterministic byte string. JCS sorts object keys lexicographically by UTF-16 code unit, removes insignificant whitespace, encodes numbers in shortest round-trippable representation, and outputs UTF-8.</p>
</li>
<li><p id="_98574b6a-7a95-924f-89ed-af2adfe4d138">Compute SHA-256 over the JCS output.</p>
</li>
<li><p id="_638d8c24-c0fa-4ec7-28cf-473eab75cb6b">The resulting 32-byte digest is the canonical payload hash.</p>
</li>
</ol>

<p id="_b3de6397-299f-5d49-ee19-4a7837952cd4">All co-signers — regardless of which trust dimension they attest — sign this same 32-byte digest. If the payload changes by even one byte after JCS canonicalization, all existing co-signatures break.</p>
</clause>

<clause id="_60d4e9cd-9134-1c28-54ae-d448d68e84e0" inline-header="false" obligation="informative">
<title id="_813cf143-d800-56e4-27b7-23b4ff8783d5">Artifact structure</title>
<p id="_dc20a940-d545-f138-82e8-4409ea2317e9">The following structure illustrates a fully-attested artifact using the reference stack. Field names are shown for the reference stack; deployments using different format profiles may use different structures.</p>

<sourcecode id="_f7de38ee-9547-74a1-8e13-60e35b78e5f8"><body>{
  "version": "1.0",
  "artifact_id": "art-2026-00001",
  "payload": {
    "batch_id": "LOT-2026-001",
    "product": "vaccine-batch-A",
    "quantity": 50000,
    "release_date": "2026-08-09"
  },
  "scope": {
    "domain": "pharma",
    "subdomain": "vaccines",
    "class": "vaccine",
    "batch": "LOT-2026-001",
    "conditions": [
      { "&gt;=": [ { "var": "payload.quantity" }, 10000 ] }
    ]
  },
  "canonical_payload_hash": "&lt;base64 SHA-256 of JCS(payload)&gt;",
  "co_signatures": [
    {
      "dimension": "data",
      "algorithm": "Ed25519",
      "signer_cert_ref": "&lt;transparency-log-seq:12345&gt;",
      "signer_pubkey": "&lt;base64 SPKI&gt;",
      "signature": "&lt;base64 Ed25519 signature over canonical_payload_hash&gt;"
    },
    {
      "dimension": "person",
      "algorithm": "Ed25519",
      "signer_cert_ref": "&lt;operator-key-fingerprint&gt;",
      "signer_pubkey": "&lt;base64 SPKI&gt;",
      "signature": "&lt;base64 Ed25519 signature&gt;"
    },
    {
      "dimension": "time",
      "algorithm": "Ed25519",
      "signer_cert_ref": "&lt;time-authority-key-fingerprint&gt;",
      "external_anchor": "&lt;OpenTimestamps proof bytes, base64&gt;",
      "signature": "&lt;base64 Ed25519 signature&gt;"
    }
  ],
  "transparency": {
    "log_seq": 67890,
    "inclusion_proof": {
      "leaf_hash": "&lt;base64 SHA-256 of log entry&gt;",
      "audit_path": ["&lt;base64 sibling hashes&gt;"],
      "tree_head": {
        "root_hash": "&lt;base64 Merkle root&gt;",
        "tree_size": 100000,
        "timestamp": "2026-08-09T12:00:00Z",
        "operator_signature": "&lt;base64 Ed25519 signature over tree head&gt;"
      }
    }
  }
}</body></sourcecode>


<p id="_cdd4cd07-3cd0-0d0d-48f3-ad3ddfac35ac">Key fields. The key fields are listed in <xref target="tab-reference-artifact-fields"/>.</p>

<table id="_1e9bf317-5326-fc95-0eaf-fcc08c89834e" anchor="tab-reference-artifact-fields"><colgroup><col width="40%"/><col width="60%"/></colgroup>
<name id="_ee34802e-700a-544c-d917-505dd7c98bd3">Reference artifact key fields</name>
<thead><tr id="_89d1d6b9-fbd8-3802-1f83-6463c0c917f5"><th id="_731565a2-3ec5-c137-995b-7e0424749755" valign="top" align="left">Field</th>
<th id="_834f6cb5-53f1-320a-d411-1ec205722825" valign="top" align="left">Purpose</th>
</tr></thead>
<tbody><tr id="_d86e862a-4cec-ff73-2285-043d26531db7"><td id="_b8bc3d78-3e9d-2b5b-0269-29d861efb6b4" valign="top" align="left"><tt>artifact_id</tt></td>
<td id="_ac9e939f-5489-613b-90e3-c88aad86cf77" valign="top" align="left">Unique identifier binding co-signatures to this artifact (replay protection)</td>
</tr><tr id="_6ed66b00-2a42-4641-e67e-1e0a376a4d30"><td id="_b6458805-4e19-4f88-c8b1-9762c74bcd54" valign="top" align="left"><tt>payload</tt></td>
<td id="_45003738-92e2-de53-3f0b-79ea7143d870" valign="top" align="left">The logical content all co-signers attest</td>
</tr><tr id="_041d149a-8663-8c3c-ab5b-41263f62fac4"><td id="_a74fa3a5-ded6-5b3a-870c-a82e740502da" valign="top" align="left"><tt>scope</tt></td>
<td id="_e8d8a4a1-4e39-e92c-8ca0-9ed4817833a6" valign="top" align="left">Multi-dimensional authorization boundary with executable conditions</td>
</tr><tr id="_94d1bedd-ba07-16b8-cd35-e8735418b7e1"><td id="_32759b5c-ac54-b5f8-adba-ebe631e48d72" valign="top" align="left"><tt>canonical_payload_hash</tt></td>
<td id="_c8243303-3336-2dac-a445-0770fb9d7233" valign="top" align="left">SHA-256 of JCS-canonicalized payload; what all signatures cover</td>
</tr><tr id="_22816e94-6bcc-f6ba-767e-3dc3ab03ab0a"><td id="_a1e2b89a-5e22-d37e-378c-02a5cb83dd8f" valign="top" align="left"><tt>co_signatures[]</tt></td>
<td id="_48f6d0a7-9ab6-ef28-c8fe-31a0e6b3ae32" valign="top" align="left">Array of independent signatures, each tagged with a dimension</td>
</tr><tr id="_5ccc4aa2-fb2f-2aef-6957-79bb31c23229"><td id="_8a0ec1e8-8d98-f298-f115-02fdbcbddfee" valign="top" align="left"><tt>co_signatures[].dimension</tt></td>
<td id="_4d847b0b-a40d-8b85-282a-fd81ac093f86" valign="top" align="left">Trust dimension tag from the scheme’s registry</td>
</tr><tr id="_21ccadd0-96de-ece8-daab-9a2238a68e34"><td id="_6f7ae1ba-b300-6654-80ea-1f1825038d0c" valign="top" align="left"><tt>co_signatures[].signer_cert_ref</tt></td>
<td id="_20255d63-2b34-16f0-389e-cfd9805140be" valign="top" align="left">End certificate reference (transparency-log sequence or key fingerprint)</td>
</tr><tr id="_ece51349-de35-5dd9-29da-99925f5a0930"><td id="_13270a8a-630c-a3f6-21b4-1554c82a519b" valign="top" align="left"><tt>co_signatures[].signature</tt></td>
<td id="_b20812f6-1a38-7b24-57dd-a0e07790779a" valign="top" align="left">Ed25519 signature over the canonical payload hash</td>
</tr><tr id="_201802c8-ff88-efb1-b122-97ac58629eed"><td id="_4d9027ae-628c-3e99-5efa-9eeeb98532b8" valign="top" align="left"><tt>transparency</tt></td>
<td id="_d8060a9c-b13a-2e4d-f6ab-787627173710" valign="top" align="left">Inclusion proof binding the artifact to the transparency log</td>
</tr></tbody>
</table>
</clause>

<clause id="_35db5639-979b-83d4-30e3-ffcafb4a6cbd" inline-header="false" obligation="informative">
<title id="_53a05167-5797-0299-e4fe-a33ec64ddac2">Living artifact evolution</title>
<p id="_0ad324f7-ec23-53bc-3f3d-d6c7aed1d6eb">An artifact may accumulate co-signatures over time. Each revision produces a new transparency log entry:</p>

<sourcecode id="_4296c247-e484-6672-7894-2da00d83d29d"><body>T0: artifact created with data co-signature only
    → transparency log entry #67890

T1: person co-signature added
    → transparency log entry #67891
    (binds: canonical_payload_hash + data + person co-signatures)

T2: time co-signature added
    → transparency log entry #67892
    (binds: canonical_payload_hash + data + person + time co-signatures)</body></sourcecode>


<p id="_a4b361c0-e72b-5eb0-e98a-c053508cf81d">The verifier uses the co-signature set from the most recent transparency log entry. The  <tt>artifact_id</tt> binds all co-signatures to the same artifact, preventing replay across different artifacts.</p>
</clause>

<clause id="_1f3f570b-fc20-af32-817e-35cf74226de2" inline-header="false" obligation="informative">
<title id="_0dcfefae-9f52-d6b0-14e5-b3cb70ba5035">Verification result examples</title>
<p id="_db3d8ce6-3d87-27e6-90c6-30fd655dc745">The verification pipeline produces an objective coverage report, which the scheme’s classification policy maps to a grade label. The reference stack uses these example labels:  <tt>unverified</tt>, <tt>basic</tt>, <tt>verified</tt>, <tt>attested</tt>, <tt>certified</tt>, <tt>rejected</tt>.</p>

<p id="_121c1293-1f4c-e8f3-f8b9-600a1c54e2ea">Minimal valid artifact (data dimension only, no transparency):</p>

<sourcecode id="_b5e25cb7-246b-4d58-2bf4-86245f7c33db"><body>{
  "coverage": {
    "hard_checks": "pass",
    "transparency_included": false,
    "time_anchored": false,
    "dimensions_verified": ["data"],
    "dimension_count": 0,
    "independent_roots": 0,
    "multi_log_quorum": false,
    "paths_found": 1
  },
  "classified_grade": "unverified",
  "downgrades": ["transparency_missing", "time_anchor_absent"]
}</body></sourcecode>


<p id="_e70c0304-c0a9-126a-e4fc-ae91da955d47">With transparency log inclusion:</p>

<sourcecode id="_d2bc9a8f-745b-0803-dbdb-d58b48be4e99"><body>{
  "coverage": {
    "hard_checks": "pass",
    "transparency_included": true,
    "time_anchored": false,
    "dimensions_verified": ["data"],
    "dimension_count": 0,
    "independent_roots": 0,
    "multi_log_quorum": false,
    "paths_found": 1
  },
  "classified_grade": "basic",
  "downgrades": ["time_anchor_absent"]
}</body></sourcecode>


<p id="_97ae1a79-eee1-73ce-b213-2bad9da371e9">With external time anchor:</p>

<sourcecode id="_74524c0f-dd56-6da4-7102-1188ac4ca692"><body>{
  "coverage": {
    "hard_checks": "pass",
    "transparency_included": true,
    "time_anchored": true,
    "dimensions_verified": ["data", "time"],
    "dimension_count": 0,
    "independent_roots": 0,
    "multi_log_quorum": false,
    "paths_found": 2
  },
  "classified_grade": "basic",
  "downgrades": []
}</body></sourcecode>


<p id="_c5860dc2-4621-f4d8-3f53-a4720ecebdbc">With dimensional breadth (person + environment):</p>

<sourcecode id="_c5d622f0-cc17-25db-90c8-f9cce57f6b15"><body>{
  "coverage": {
    "hard_checks": "pass",
    "transparency_included": true,
    "time_anchored": true,
    "dimensions_verified": ["data", "time", "person", "environment"],
    "dimension_count": 2,
    "independent_roots": 0,
    "multi_log_quorum": false,
    "paths_found": 4
  },
  "classified_grade": "verified",
  "downgrades": []
}</body></sourcecode>


<p id="_7d8d2c48-6f02-03c4-b392-0d63bcf147c3">With dimensional breadth + cross-domain diversity:</p>

<sourcecode id="_a539052b-ea02-fa50-6e11-f6127fcfb80d"><body>{
  "coverage": {
    "hard_checks": "pass",
    "transparency_included": true,
    "time_anchored": true,
    "dimensions_verified": ["data", "time", "person", "location", "environment"],
    "dimension_count": 3,
    "independent_roots": 1,
    "multi_log_quorum": false,
    "paths_found": 6
  },
  "classified_grade": "attested",
  "downgrades": []
}</body></sourcecode>


<p id="_b630cea3-2dfa-12f9-9ba1-9135163a8e2f">With multi-log quorum:</p>

<sourcecode id="_6c1637d6-8b4f-cdac-7847-788de064e60f"><body>{
  "coverage": {
    "hard_checks": "pass",
    "transparency_included": true,
    "time_anchored": true,
    "dimensions_verified": ["data", "time", "person", "location", "environment"],
    "dimension_count": 3,
    "independent_roots": 1,
    "multi_log_quorum": true,
    "paths_found": 6
  },
  "classified_grade": "certified",
  "downgrades": []
}</body></sourcecode>


<p id="_af29af68-ca49-7538-21a5-60f89a3c4958">Failed — revoked authority:</p>

<sourcecode id="_366ed9bc-6184-ba8c-5202-582e0af37944"><body>{
  "coverage": {
    "hard_checks": "fail",
    "transparency_included": false,
    "time_anchored": false,
    "dimensions_verified": [],
    "dimension_count": 0,
    "independent_roots": 0,
    "multi_log_quorum": false,
    "paths_found": 0
  },
  "classified_grade": "rejected",
  "failures": [
    {
      "check": "revocation_status",
      "reason": "revoked",
      "detail": "data dimension co-signer authority revoked at 2026-08-08T10:00:00Z"
    }
  ],
  "downgrades": []
}</body></sourcecode>


<p id="_0108b142-df35-3641-51a0-9dad28728697">Failed — scope condition not met:</p>

<sourcecode id="_d4773ab7-0f88-834d-77ca-ef664435aa2e"><body>{
  "coverage": {
    "hard_checks": "fail",
    "transparency_included": false,
    "time_anchored": false,
    "dimensions_verified": [],
    "dimension_count": 0,
    "independent_roots": 0,
    "multi_log_quorum": false,
    "paths_found": 1
  },
  "classified_grade": "rejected",
  "failures": [
    {
      "check": "scope_conditions",
      "reason": "scope_condition_failed",
      "detail": "Condition {&gt;=: [{var: payload.quantity}, 10000]} evaluated false (quantity=5000)"
    }
  ],
  "downgrades": []
}</body></sourcecode>

</clause>

<clause id="_58074bf1-6cae-bed7-f8fa-631d1ebfab40" inline-header="false" obligation="informative">
<title id="_af6f9611-8bca-98a9-cc43-4985ca2ecf4e">Test scenarios</title>
<p id="_8c42be35-c097-ea5d-736e-680bc7c32b0e">The following scenarios provide implementable test cases. Each specifies the artifact configuration, the verification state, and the expected result. Grade labels shown are for the reference stack’s example classification policy; other schemes may use different labels.  <xref target="tab-reference-scenarios"/> lists the scenarios and expected grades.</p>

<table id="_46217573-a810-5618-4375-bcc11972e43e" anchor="tab-reference-scenarios"><colgroup><col width="30%"/><col width="40%"/><col width="20%"/><col width="10%"/></colgroup>
<name id="_be776175-d0e7-100a-2776-ade881fd3cde">Test scenarios and expected grades</name>
<thead><tr id="_e721feea-7ba5-eee6-5f33-39ea8cc0aa8a"><th id="_f998ee53-f474-1689-904e-ace848c49740" valign="top" align="left">Scenario</th>
<th id="_f6895429-8ccf-dacc-139d-7ac5b4fc7c1d" valign="top" align="left">Configuration</th>
<th id="_98f82c3b-7b2c-541e-aa34-fcb268dd843e" valign="top" align="left">Expected grade</th>
<th id="_629750bf-a1e9-fd6f-b4ca-90f8cfbeb1da" valign="top" align="left">Pass/fail</th>
</tr></thead>
<tbody><tr id="_28eb7ddd-a8b9-f2ff-2009-fe95c7deb302"><td id="_3a1d3439-9f48-7af7-3223-27e87fba8c2a" valign="top" align="left">Minimal valid artifact</td>
<td id="_8f82ea35-87fa-db53-a02f-42d566072fc5" valign="top" align="left">Data dimension only, valid chain, valid scope, no transparency, no time</td>
<td id="_1e6c7959-4f8d-62d4-330e-c093a7a63b60" valign="top" align="left">unverified</td>
<td id="_8e7f8486-5475-8edb-d65f-b0f6b2a893b4" valign="top" align="left">Pass</td>
</tr><tr id="_10f1b6f1-4edd-256c-65c1-8f068dcaaa29"><td id="_6ebe2570-da16-8726-8f69-eb7852e364ee" valign="top" align="left">With transparency</td>
<td id="_6333691f-11c4-93ad-7736-b708145ca8a2" valign="top" align="left">Data dimension, valid chain, transparency inclusion verified</td>
<td id="_f2f3cede-b469-b7e1-9a57-860ea056c0a7" valign="top" align="left">basic</td>
<td id="_f63815d5-365f-0bff-10c1-5b607eef6f21" valign="top" align="left">Pass</td>
</tr><tr id="_a1bc126f-9319-89bd-263c-c56029ff5f86"><td id="_e77312ba-52bc-37ef-c3b3-775d48df49e3" valign="top" align="left">With time anchor</td>
<td id="_9c692e7a-26e8-4d30-2455-dc232bc6354f" valign="top" align="left">Data dimension, transparency verified, time dimension anchored</td>
<td id="_35cbd0d0-c7e5-e124-395a-d218070f1bfb" valign="top" align="left">basic</td>
<td id="_44c1eac5-7dc2-f371-aaa7-6745b18c8249" valign="top" align="left">Pass</td>
</tr><tr id="_cd28a499-c246-4f2f-1204-c7ea87ea5843"><td id="_57be83f6-2874-f414-917d-e8c6f624f957" valign="top" align="left">With dimensional breadth</td>
<td id="_e4978812-b1fa-77ae-193f-a6ac744975d6" valign="top" align="left">Data + person + environment, transparency verified, time anchored</td>
<td id="_3cc8e23f-a3f9-f037-f9cd-f2a77342d441" valign="top" align="left">verified</td>
<td id="_86faaf99-0b37-f265-8c6c-63380fb47020" valign="top" align="left">Pass</td>
</tr><tr id="_0ce18079-5210-212b-419f-9f4077985355"><td id="_20276ff2-8aa7-0285-4058-f350044871e4" valign="top" align="left">With cross-domain</td>
<td id="_78ed1ab0-60ab-70b6-30de-e5f874a3c76a" valign="top" align="left">Data + time + one co-signature from independent root</td>
<td id="_4a143a40-fa26-8f0e-1911-86504efe736b" valign="top" align="left">verified</td>
<td id="_62431f83-2ff2-2ba7-366c-519b53e7c881" valign="top" align="left">Pass</td>
</tr><tr id="_e0e2581b-a9e4-7126-b321-7cb9249df7d9"><td id="_5c1b2771-37e6-e2db-d6c1-1a9b4694efae" valign="top" align="left">Broad + cross-domain</td>
<td id="_a68f3690-da82-6a37-efcf-66bd34b7546e" valign="top" align="left">Data + person + location + time + one cross-domain co-signature</td>
<td id="_56ca9416-0c4d-ea0b-f1e2-f6e7c84f22d6" valign="top" align="left">attested</td>
<td id="_ce049d87-ef42-a9db-dd4c-8972fe46d536" valign="top" align="left">Pass</td>
</tr><tr id="_049beb5e-924d-691d-e8fd-aa92da856041"><td id="_ad86af0e-21cf-a893-1b36-e2aa9db8f394" valign="top" align="left">With multi-log</td>
<td id="_197fd62e-97c1-609c-7421-6e2bd6dac5e1" valign="top" align="left">Attested artifact also included in M-of-K independent logs</td>
<td id="_00b12cdd-e938-0019-15e4-9a2625893d7e" valign="top" align="left">certified</td>
<td id="_612a899d-31ed-9562-b443-afc343650404" valign="top" align="left">Pass</td>
</tr><tr id="_f7bdcecb-c52f-9565-a7a0-1a5a72687300"><td id="_8cb53f41-2852-8cb6-275a-85748128c338" valign="top" align="left">Scope widened</td>
<td id="_13dd27e6-5e52-0681-cd88-b4597e00de33" valign="top" align="left">Chain has a delegation link where child scope exceeds parent</td>
<td id="_1d10737a-df3a-ca19-a55e-af545fcf930c" valign="top" align="left">rejected</td>
<td id="_64369bfe-74f3-b960-90ae-2c39c29d38d5" valign="top" align="left">Fail (scope_widened)</td>
</tr><tr id="_a020c394-d40f-cf8c-60e3-fe8b35d19e19"><td id="_75d0c020-2431-0e05-1bed-16e50b36e1f2" valign="top" align="left">Revoked authority</td>
<td id="_a209e655-fc1e-31e6-e92f-ac2d4d687bb1" valign="top" align="left">An authority on the verification path is revoked</td>
<td id="_24b888f8-17ad-3cf5-2d0f-581813477ee8" valign="top" align="left">rejected</td>
<td id="_4849e73a-63a4-84f0-a9e5-7086a6887699" valign="top" align="left">Fail (revoked)</td>
</tr><tr id="_a51f0f6c-85b0-4bed-410d-d3e789ca9844"><td id="_436d0110-f9b7-a20f-e8b1-6ea648df78ac" valign="top" align="left">Scope condition failed</td>
<td id="_81515980-bbb8-7897-5223-a43a3e50d471" valign="top" align="left">A scope condition evaluates to false at verification time</td>
<td id="_f8716569-a740-866a-4adb-e6649b7f5782" valign="top" align="left">rejected</td>
<td id="_3b68ae05-a4a6-0e51-71dd-008acdbf77ed" valign="top" align="left">Fail (scope_condition_failed)</td>
</tr><tr id="_10647239-7417-9af3-4f7b-f116f7ed8314"><td id="_f9ff2260-7650-69ec-0490-4294fa92748c" valign="top" align="left">Invalid signature</td>
<td id="_eebcdedf-b466-1108-6c10-b6a26c7b16a8" valign="top" align="left">A co-signature fails cryptographic validation</td>
<td id="_e60970eb-34f9-724c-c357-992920e31393" valign="top" align="left">rejected</td>
<td id="_c45b991a-7c5d-cbfe-8a25-a37b6a8a01b1" valign="top" align="left">Fail (signature_invalid)</td>
</tr></tbody>
</table>
</clause>

<clause id="_47df024d-3a44-7179-d418-2447f740f9e1" inline-header="false" obligation="informative">
<title id="_a37ee332-7d0e-65f0-4118-670902679a54">Trust anchor bundle format</title>
<p id="_12f8da5e-e2b0-a123-e470-9637a5934afc">The reference trust anchor bundle is a signed JSON document:</p>

<sourcecode id="_65981d1c-21df-ab4e-1389-ffd614119b28"><body>{
  "bundle_version": "2026.08",
  "valid_from": "2026-08-01T00:00:00Z",
  "valid_until": "2026-12-31T23:59:59Z",
  "roots": [
    {
      "name": "PharmaRegulator-Global",
      "aggregate_key": "&lt;base64 Ed25519 public key&gt;",
      "fingerprint": "&lt;hex SHA-256 of SPKI&gt;",
      "quorum": { "t": 3, "n": 5 }
    }
  ],
  "transparency_logs": [
    {
      "name": "PharmaLog-Primary",
      "operator_key": "&lt;base64 Ed25519 public key&gt;",
      "endpoint": "https://log.pharma-regulator.example"
    }
  ],
  "bundle_signature": "&lt;base64 threshold signature over JCS(bundle)&gt;"
}</body></sourcecode>


<p id="_604d28fd-574d-26ad-09c7-24f13835ef38">The verifier confirms the <tt>bundle_signature</tt> against the root aggregate key and checks the  <tt>valid_until</tt> date.</p>
</clause>

<clause id="_6fb89d33-2dfe-7d7a-0d2e-a68bcae66633" inline-header="false" obligation="informative">
<title id="_6558c4bc-aac4-9aae-0b8e-a32b4ab73f04">Scope condition expressions</title>
<p id="_dde2d486-16a2-e44d-8b78-236d0172ea2a">The reference stack uses JSON Logic for scope conditions. JSON Logic is deterministic, Turing-incomplete, and widely implemented.  <xref target="tab-reference-scope-conditions"/> lists the scope condition expressions.</p>

<table id="_792a9e3e-84f9-29ff-21c0-6340cd42de45" anchor="tab-reference-scope-conditions"><colgroup><col width="40%"/><col width="60%"/></colgroup>
<name id="_91fff156-e2cb-74e6-34d9-cf9d49483108">Scope condition expressions</name>
<thead><tr id="_e15c0077-d4e5-5477-e5f5-b2d1e704ea6a"><th id="_47d236e5-bb09-eb9f-e6cb-edfe203fd2e0" valign="top" align="left">Purpose</th>
<th id="_55db2239-41d5-2ace-942c-fd182190f73d" valign="top" align="left">Expression</th>
</tr></thead>
<tbody><tr id="_e5516b64-36ab-ee4b-3531-fa72b9e833e8"><td id="_4d2b9625-124a-90c7-50ef-03c769cec24b" valign="top" align="left">Value within range</td>
<td id="_fb1b24cc-5c38-6aa0-0fb9-c714f8108f84" valign="top" align="left"><tt>{"&gt;=": [{"var": "payload.quantity"}, 10000]}</tt></td>
</tr><tr id="_05e8a5a8-7efe-fe6b-7b5b-d3291f175ec8"><td id="_ae0c8764-06d1-838f-a500-3396e56fcb28" valign="top" align="left">String equality</td>
<td id="_24368f4a-fbc4-9e51-da1a-69019ad5999d" valign="top" align="left"><tt>{"==": [{"var": "payload.product"}, "vaccine-batch-A"]}</tt></td>
</tr><tr id="_8963321a-e06e-d298-6c5f-d0caffeb4e26"><td id="_c15c4451-eb46-40ba-12ab-4c6058df8d1e" valign="top" align="left">Certification valid at time</td>
<td id="_1fba6edd-650c-5cd0-d210-fb8c5125fa26" valign="top" align="left"><tt>{"&gt;=": [{"var": "calibration.expiry"}, {"var": "signature_time"}]}</tt></td>
</tr></tbody>
</table>
</clause>

<clause id="_88081ac1-d45a-4a96-d508-0339834e7978" inline-header="false" obligation="informative">
<title id="_407ff882-c420-b1d7-4b33-e963685d20f1">Challenge-response protocol</title>
<p id="_b1934564-f8fb-213a-6105-f832f2709a66">For device signers, the reference challenge-response protocol:</p>

<ol id="_bd1b6e10-1316-7289-b66c-ff13cebb14dc" type="arabic"><li><p id="_980aa3e1-1c46-0097-a91d-44c7ae9ad449">The verifier generates a random 256-bit nonce and sends it with a freshness window (e.g., 30 seconds).</p>
</li>
<li><p id="_d95a34b8-849f-db5e-3213-84ea53b8f6ce">The device produces a fresh artifact containing the nonce in its payload, signs it under its end certificate key, and returns it.</p>
</li>
<li><p id="_aae18ce6-5b52-7992-002c-15b6847c3dfa">The verifier runs the normal pipeline, additionally checking that the nonce in the payload matches the challenge and the artifact was produced within the freshness window.</p>
</li>
</ol>
</clause>
</annex><annex id="_0657928c-a337-42f3-9ed0-a3beed8566d6" anchor="annex-f" inline-header="false" obligation="informative">
<title id="_10366cfe-da65-fba0-aef4-faa1f6c27c32">Cross-technology interoperability</title>
<clause id="_a453cb31-14e3-a980-d20f-7044779df406" inline-header="false" obligation="informative">
<title id="_cb22f8e5-a0a1-6ec0-c59c-f8402a7c6c59">General</title>
<p id="_4f66ad44-29c0-a88b-1c92-820b6a2d72a8">Different SIGNATIF deployments may use different algorithms, formats, and transparency log implementations. This annex describes the mechanisms by which such heterogeneous deployments can verify each other’s artifacts.</p>

<p id="_4b0b582c-2748-1332-2bd6-b1ffdd55b350">The interoperability model is based on three principles:</p>

<ul id="_0c12f206-04c9-9212-8240-e2c5487f9e4b"><li><p id="_d3ea37ad-5ec5-8fb3-cb4e-4ab439bcfe0d">Canonical payload hash agreement. Co-signatures from different deployments attest the same canonical payload hash, regardless of the serialization format each deployment uses internally.</p>
</li>
<li><p id="_c73b5dce-fca4-d34b-1bae-b194dd9302a5">Registry mapping. Deployments publish mappings between their respective registry entries, enabling cross-deployment interpretation of algorithm identifiers, dimension tags, and ceremony types.</p>
</li>
<li><p id="_f247c6a4-e6c2-21a0-baee-eaf36d26a1d9">Anchor exchange. Deployments exchange trust anchor bundles through bilateral or multilateral governance agreements, enabling cross-deployment chain verification.</p>
</li>
</ul>
</clause>

<clause id="_96360c31-8827-7f4e-4305-4e69c0ffdaa5" inline-header="false" obligation="informative">
<title id="_39413637-9d87-ecde-79ec-7f8bf797b588">Interoperability scenario</title>
<p id="_26425058-5c99-255c-5710-50e93c8b9a31">Deployment A uses SM2 signatures, XMLDSig format, and SM3 hashing. Deployment B uses Ed25519 signatures, JWS format, and SHA-256 hashing. The following describes how Deployment B’s verifier can verify an artifact from Deployment A.</p>
</clause>

<clause id="_9e6d3e45-30c9-54fb-35ff-fdbc2bb2499d" inline-header="false" obligation="informative">
<title id="_5e6361cf-bb67-f4ff-8351-c576958e8f0b">Canonical payload hash bridge</title>
<p id="_eac56cdc-7e49-eab4-09f4-0235992cf5c0">The canonical payload hash is the point of convergence. Although Deployment A canonicalizes using Exclusive C14N (XML) and Deployment B canonicalizes using JCS (JSON), both deployments agree on a common canonical payload hash for the same logical content.</p>

<p id="_b6edfdda-5c11-68eb-d24f-7a708123c9a0">The bridge mechanism:</p>

<ol id="_35f9e414-7c51-e03f-58d5-5a86a46bb60c" type="arabic"><li><p id="_f1244eed-bfea-072e-03ac-fd2eed663d20">The artifact carries a <tt>canonical_payload_hash</tt> field — a hash of the logical content in a deployment-neutral form.</p>
</li>
<li><p id="_9fc2585f-9b94-aab9-dda3-928608200c1e">Each co-signature attests this hash, regardless of the signer’s internal format.</p>
</li>
<li><p id="_da3f6474-dce6-5fe8-8c50-3304a2a0c154">Cross-deployment co-signing requires the participating deployments to agree on the canonical payload hash before signing. This agreement is established out-of-band (e.g., through a shared payload schema and a neutral hash computation).</p>
</li>
<note id="_eb0e0ed0-8b5d-a8bf-88c2-1cee92b78747"><p id="_ed0b5385-b6cc-2292-bc8c-afef1c61293f">In practice, cross-format canonical payload agreement requires the deployments to share a common logical content model (e.g., a shared JSON schema or a shared data dictionary) from which each deployment computes its format-specific canonicalization. The deployments agree on the hash of the logical content model, not on the format-specific canonical bytes.</p>
</note></ol>


</clause>

<clause id="_c25305eb-b69e-ca5b-5ae7-ef05a9657dc5" inline-header="false" obligation="informative">
<title id="_dabd033b-8adb-254d-02d5-c386a430860f">Registry mapping</title>
<p id="_f00cf363-b23e-e9ed-0241-0844978adbd8">Each deployment maintains its own scheme registry (see <xref target="annex-c"/>). To enable cross-deployment verification, deployments publish a registry mapping. The mapping is published as shown in  <xref target="tab-registry-mapping"/>.</p>

<table id="_f3fb2621-6941-ded4-711a-ae40695facc4" anchor="tab-registry-mapping"><colgroup><col width="42.8571%"/><col width="28.5714%"/><col width="28.5715%"/></colgroup>
<name id="_e740a5d8-7bce-af73-b4e8-a693c6c8aeb9">Registry mapping between deployments</name>
<thead><tr id="_29b08bc9-4e3f-09c9-34d3-e632a01ac737"><th id="_fb89b486-9e2f-432d-132a-352ce8972e70" valign="top" align="left">Concept</th>
<th id="_08d188e5-f5d1-f4cd-c96a-b569070248be" valign="top" align="left">Deployment A value</th>
<th id="_1adb9ee0-86a1-ccad-a928-4a60bb9a0c67" valign="top" align="left">Deployment B value</th>
</tr></thead>
<tbody><tr id="_bf4c32bf-a8e7-36a5-e030-76647962bf03"><td id="_7db3ea50-5f80-64ad-e4c3-67fb15527f23" valign="top" align="left">Classical signature algorithm</td>
<td id="_f5335466-bed9-caf7-92fc-a954a03f5251" valign="top" align="left"><tt>SM2</tt> (<eref type="inline" bibitemid="gm-t-0003-2012" citeas="GM/T 0003-2012"/>)</td>
<td id="_cea58c3a-6c70-da1b-3476-0e672ab6f867" valign="top" align="left"><tt>Ed25519</tt> (RFC 8032)</td>
</tr><tr id="_3c4410ea-0e93-8d0d-fa45-e31bc3222cbe"><td id="_d91fc02d-926f-3777-51f8-53afe6b593d5" valign="top" align="left">Hash function</td>
<td id="_6abfb7d7-8885-7819-3028-a74d97913602" valign="top" align="left"><tt>SM3</tt> (<eref type="inline" bibitemid="gm-t-0005-2010" citeas="GM/T 0005-2010"/>)</td>
<td id="_9b9949a1-f607-57fa-f0c2-36fe1b297f77" valign="top" align="left"><tt>SHA-256</tt></td>
</tr><tr id="_dc078724-38be-9eeb-3975-39f71c3a8591"><td id="_88702a6a-b6c9-025d-ced4-98f3f5845750" valign="top" align="left">Format profile</td>
<td id="_20a813c9-2d30-b7e0-fa49-dcea2b38bcea" valign="top" align="left"><tt>/conf/format-xmldsig</tt></td>
<td id="_60651d29-0be3-638c-a3a6-aa02ab3d0498" valign="top" align="left"><tt>/conf/format-jws</tt></td>
</tr><tr id="_54f5f0fe-9f19-b4a8-8698-36f91100c784"><td id="_a4c3327a-8e72-4f0d-08e3-1bc367c2fdb4" valign="top" align="left">Data dimension tag</td>
<td id="_78e46fd8-393c-c728-b7cf-e39a2bf7b9c8" valign="top" align="left"><tt>data</tt></td>
<td id="_132132e6-a5bb-32ae-c13c-e52fe83527be" valign="top" align="left"><tt>data</tt></td>
</tr><tr id="_c51dcf7b-1880-da8e-1f79-57837fcf2dfb"><td id="_61ebffd9-51b8-4f5a-300e-a7e15e47a661" valign="top" align="left">Person dimension tag</td>
<td id="_0078c851-4a1c-88d0-828f-7727cbf279ab" valign="top" align="left"><tt>operator</tt></td>
<td id="_d7cdae9a-06ed-a63d-3280-c261dd5a9cec" valign="top" align="left"><tt>person</tt></td>
</tr><tr id="_96ebfdf5-190a-d35b-1a55-bee088dc20ba"><td id="_46181341-558f-582e-522d-ae23c420eeda" valign="top" align="left">Time dimension tag</td>
<td id="_1732a2f4-f4a6-f407-cfa9-a49fdc028912" valign="top" align="left"><tt>timestamp</tt></td>
<td id="_418f0f27-d8f4-46d4-5b9c-05036033429a" valign="top" align="left"><tt>time</tt></td>
</tr></tbody>
</table>

<p id="_e0332355-abaa-1dd1-2b9f-0bca1e86ad2e">The mapping is a governance document published by both deployments. A verifier from Deployment B encountering an artifact from Deployment A uses the mapping to:</p>

<ul id="_4b9efe40-f32b-f120-b0d6-0cdbf033d792"><li><p id="_453866dc-4864-b83a-2abd-30261b9885c0">translate dimension tags from A’s vocabulary to B’s;</p>
</li>
<li><p id="_a5ef7744-1c08-fd9c-0049-a63c1ab00018">identify which algorithm to use for signature validation;</p>
</li>
<li><p id="_f6fa44e2-bb79-a4f4-78b6-7c18c357a4f7">determine which hash function was used for the canonical payload and transparency log entries.</p>
</li>
</ul>
</clause>

<clause id="_2e12ec34-bc43-87ec-8b2b-1779d45b78a8" inline-header="false" obligation="informative">
<title id="_94ca4775-57ef-10e5-c076-674cf7728e08">Transparency log interoperability</title>
<p id="_36ea1911-2ed2-f9c0-7202-7d68ccf9b6cc">Different deployments may use different transparency log constructions. To enable cross-deployment inclusion proof verification, the following interoperability profile is recommended:</p>

<ol id="_ea5818b4-dbac-de1c-cad8-8113d76a3436" type="arabic"><li><p id="_69c1ff33-76af-c8a6-0b94-061852a6bf1d">Shared hash function. Both deployments’ transparency logs need to use the same hash function for Merkle tree construction (e.g., both use SHA-256). If different hash functions are used, cross-deployment inclusion proof verification is not possible without a hash-function bridge (which does not exist in general).</p>
</li>
<li><p id="_4a590da9-96f5-7865-c2fb-155873984b06">Shared domain separation. Both deployments need to use compatible domain separation (e.g., RFC 6962’s 0x00/0x01 prefix convention or equivalent).</p>
</li>
<li><p id="_af9aa990-4172-a635-649b-5854c19abaf2">Log head format. Both deployments need to publish log heads in a common format containing: root hash, tree size, timestamp, and operator signature. The signature algorithm may differ (verified via registry mapping).</p>
</li>
<li><p id="_a3059d8d-fe63-1506-f7a0-5d89f0a30d43">Mirror access. Each deployment needs to operate at least one publicly accessible mirror that serves inclusion proofs in the common format.</p>
</li>
</ol>
</clause>

<clause id="_6c97ce95-4a63-f071-7606-c7ef723dc51e" inline-header="false" obligation="informative">
<title id="_43c73592-0e71-63a3-24e8-6814bc0e8047">Trust anchor exchange</title>
<p id="_f4c7ab46-a129-e5b4-469b-040451aa0023">Cross-deployment verification requires each deployment’s verifier to hold the other deployment’s root anchor. The exchange mechanism:</p>

<ol id="_c6123777-3262-78ab-0ffb-516dcad1324e" type="arabic"><li><p id="_a39ab803-3fa2-c11a-b1a7-eec968ede66a">Deployment A publishes its trust anchor bundle (see <xref target="annex-e"/> for format example).</p>
</li>
<li><p id="_3310a9b2-2d79-0a9c-fa0b-abbbad75ffd5">Deployment B’s governance body verifies the bundle (confirms root aggregate key, quorum parameters, and transparency log operator key through out-of-band channels).</p>
</li>
<li><p id="_3f4efdfe-8f4a-e0e9-3c85-fa5f31db1fa0">Deployment B adds Deployment A’s root anchor to its verifier’s extended trust anchor bundle, with a cross-recognition annotation.</p>
</li>
<li><p id="_e28cd2d5-372f-e926-9184-585f589b481e">The cross-recognition annotation records: the mapping effective date, the registry mapping reference, and the governance agreement reference.</p>
</li>
</ol>
</clause>

<clause id="_624b7a14-b91c-242a-6bb2-77318096e341" inline-header="false" obligation="informative">
<title id="_8bb6fa88-e227-885c-cb7d-9ee5e6cbde71">Cross-verification procedure</title>
<p id="_818ac853-ba9d-df06-55d6-d01151280d5f">A verifier from Deployment B verifying an artifact from Deployment A:</p>

<ol id="_5a2d0ae0-8c01-99dc-cc02-29256959babd" type="arabic"><li><p id="_2dc2c774-23c1-a1b9-1ebe-f3a782fddf9e">Load mappings. Load the A-to-B registry mapping and the extended trust anchor bundle containing A’s root anchor.</p>
</li>
<li><p id="_7b63b006-a3ce-8a14-124a-d8e883c0c208">Parse artifact. Parse the artifact using A’s format profile (XMLDSig). If the verifier does not support XMLDSig, it may request a format-translated representation from an A-operated gateway, or use the embedded canonical payload hash directly.</p>
</li>
<li><p id="_20c1b523-7cf5-6123-c50a-9547e88e58bc">Verify signatures. For each signature, use the registry mapping to identify the algorithm (SM2). Validate the SM2 signature against the canonical payload hash using the verifier’s SM2 implementation. Validate the signer’s chain to A’s root anchor in the extended bundle.</p>
</li>
<li><p id="_7de0ac24-a46d-9ed2-f29b-4d814dcb905e">Verify transparency. Fetch the inclusion proof from A’s transparency log or mirror. Validate it using the shared hash function and domain separation. Confirm the log head is observed by the gossip quorum.</p>
</li>
<li><p id="_38f69f4c-bbae-7c7e-6c1a-77993c12029b">Translate dimensions. Use the registry mapping to translate A’s dimension tags to B’s vocabulary. Compute dimensional coverage and grade using the translated tags.</p>
</li>
<li><p id="_b516c688-cdde-4d2a-54ce-6185f01f1f72">Compute grade. Apply the scheme’s classification policy from <xref target="verification-classification"/> using the translated dimensional coverage and the cross-domain root count (A’s root is an independent root from B’s perspective).</p>
</li>
</ol>
</clause>

<clause id="_a6f6770b-61cb-b71a-f039-084263133ec8" inline-header="false" obligation="informative">
<title id="_1682ea12-193b-fc94-a521-1d19ab4460db">Minimum interoperability baseline</title>
<p id="_6e32b9fd-18a9-ac2d-965d-ededa269bca1">For cross-deployment verification to be possible, the following minimum conditions need to be met by both deployments:</p>

<ul id="_7d9be9ee-a8d3-b1a4-2c67-72b790136fde"><li><p id="_a82c5625-a865-d736-b5b8-f57bc1b8bbe6">Both deployments need to support at least one common hash function for transparency log construction and canonical payload hashing.</p>
</li>
<li><p id="_87127970-6264-c14c-f6ec-b3f203eeacac">Both deployments need to publish registry mappings for all concepts used in cross-deployment artifacts.</p>
</li>
<li><p id="_d7d46057-78cc-03b9-7bd3-f479e908fce1">Both deployments need to operate publicly accessible transparency log mirrors.</p>
</li>
<li><p id="_3ed46961-381d-6845-92bc-2370c6acc08a">Both deployments need to exchange trust anchor bundles through verified governance channels.</p>
</li>
<li><p id="_c5256b21-8af4-9b4d-eaca-c5ef4ae86062">Both deployments need to use compatible dimension tag vocabularies (via registry mapping) for all dimensions present on cross-deployment artifacts.</p>
</li>
<note id="_6700d5b9-cc9a-8537-acff-98a1d416c50d"><p id="_131c7e4d-1ce6-dbc2-6dd1-79ed5cedba9c">If two deployments cannot agree on a common hash function, a hash-function bridge (computing the same logical content under both hash functions and carrying both hashes) may be used. This is a deployment-level decision, not a requirement of this document.</p>
</note></ul>


</clause>

<clause id="_5110e872-5ddf-e578-39ca-093d3cec2b6c" inline-header="false" obligation="informative">
<title id="_0ae37104-6d1c-b82a-173b-a1d0e524fe35">Limitations</title>
<p id="_91f3b9d9-1ce9-cf47-bb7d-ab77a5eba125">Cross-technology interoperability has inherent limitations:</p>

<ul id="_02335cfd-45cc-112f-1bd7-9f2dcfd5e438"><li><p id="_0e24b749-6cd7-567d-426c-761a9dfe1934">No zero-knowledge cross-verification. The verifier must implement (or have access to) every algorithm used in the artifact’s signatures. A verifier that does not implement SM2 cannot verify SM2 signatures, even with a registry mapping.</p>
</li>
<li><p id="_b9eef59e-0d27-4287-7438-fc765d3d3b91">Format translation is lossy. Translating between XMLDSig and JWS representations may lose format-specific metadata (e.g., XML namespace information). Cross-deployment artifacts should carry format-neutral metadata whenever possible.</p>
</li>
<li><p id="_d566c39f-837e-322b-8930-564c14a3ff00">Different threshold schemes are not interoperable. A threshold signature produced under FROST cannot be verified by an implementation that only supports BLS threshold signatures. Cross-deployment threshold signatures require both deployments to use the same threshold scheme for the cross-domain co-signature.</p>
</li>
</ul>

<p id="_74ae0cae-1a4b-cf54-8e45-015685de47d4">These limitations mean that full cross-technology interoperability typically requires a bilateral or multilateral agreement that specifies the common technology subset both deployments support for cross-deployment artifacts.</p>
</clause>
</annex><annex id="_6c5da4a0-a4b9-56e9-ecaf-8ae7f99a2655" anchor="annex-g" inline-header="false" obligation="informative">
<title id="_7488112f-b5b8-15f4-78c9-31a0c06f3c0f">Composition with W3C Verifiable Credentials</title>
<clause id="_0fc6e38c-5393-95e1-0725-5449a535cb35" inline-header="false" obligation="informative">
<title id="_7ea5536d-9f28-3959-45da-799565be368d">General</title>
<p id="_76347e7b-d74a-300a-c6bb-58047b4e35f9">W3C Verifiable Credentials (VC) <eref type="inline" bibitemid="w3c-vc" citeas="W3C Recommendation: Verifiable Credentials Data Model 1.1"/> provide an internationally trust infrastructure. This annex describes how the two compose. It does not specify requirements. VC documents are JSON-LD documents (<eref type="inline" bibitemid="json-ld" citeas="W3C Recommendation: JSON-LD 1.1"/>).</p>
</clause>

<clause id="_cb5adf9b-ab76-d324-9551-2ae058513b4f" inline-header="false" obligation="informative">
<title id="_621842ad-946c-a52e-da78-f51d9bae1552">Concept mapping</title>
<p id="_09e563e0-1ef6-560c-a2be-fcdc9ac4a9df"><xref target="tab-vc-mapping"/> maps the W3C VC concepts to SIGNATIF mechanisms.</p>

<table id="_87560882-0a82-cd53-1aa4-b39707bda4ec" anchor="tab-vc-mapping"><colgroup><col width="28.5714%"/><col width="28.5714%"/><col width="42.8572%"/></colgroup>
<name id="_83131797-ca9e-78d5-9b32-c41b34e1e9b2">Concept mapping between W3C Verifiable Credentials and SIGNATIF</name>
<thead><tr id="_e43726f9-85a4-baab-6c00-128afe581297"><th id="_075dceb6-21f5-7eb4-56eb-38c0e7b522b3" valign="top" align="left">W3C VC concept</th>
<th id="_7caf19ca-797a-d585-0d2a-41727f3c5cab" valign="top" align="left">SIGNATIF equivalent</th>
<th id="_08075ede-cef9-7298-d444-a7d5b7d435ea" valign="top" align="left">Relationship</th>
</tr></thead>
<tbody><tr id="_4043f539-618b-9f25-3faf-04ecd9b4f9d5"><td id="_3f7fca36-b630-3a3d-e2a3-2b3ce389a047" valign="top" align="left">Verifiable Credential</td>
<td id="_67fa6d42-40bd-4104-f425-855ae6e584d7" valign="top" align="left"><concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept></td>
<td id="_346b0313-6ef1-92e0-61e3-7ea20bf5c992" valign="top" align="left">A VC is a payload; a SIGNATIF artifact wraps and attests it with   multi-dimensional co-signatures.</td>
</tr><tr id="_48e8f23a-4d0b-ffd6-ae98-cc9ad18214d4"><td id="_116a8890-9619-c751-c979-2c3275f9b76d" valign="top" align="left">Issuer</td>
<td id="_0dbcf73e-7eba-674a-260c-d6deb84beea3" valign="top" align="left"><concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> holder</td>
<td id="_d94e8d56-aa5d-e792-6272-64557904e33e" valign="top" align="left">The VC issuer’s signing key is authorized by a SIGNATIF delegation chain.</td>
</tr><tr id="_affad138-b04a-b2ea-ee75-83b7a637781f"><td id="_8756aa9b-d5b9-c7dc-1fae-602f4824eba5" valign="top" align="left"><tt>proof</tt></td>
<td id="_6ae12b37-b44c-d8fc-464a-43e13d9549ce" valign="top" align="left">Co-signature (data dimension)</td>
<td id="_015b3948-2375-0b8d-9f71-41c1758d4b9e" valign="top" align="left">The VC proof is the primary attestation; SIGNATIF co-signatures add   independent dimension attestations on the same content.</td>
</tr><tr id="_325cb2cc-067c-1d8e-4b71-c1f7d01d9e5b"><td id="_d2984062-f009-30a1-f351-48b9c39c2dc5" valign="top" align="left"><tt>credentialSubject</tt></td>
<td id="_3c04cb77-3a48-dc68-7f45-d16ebd12e863" valign="top" align="left">Payload content</td>
<td id="_3ac12247-6da7-233d-5ea0-8341a8a489d2" valign="top" align="left">The claims about the subject that all co-signers attest.</td>
</tr><tr id="_92a2e33b-9551-fe83-e228-e3ab785ed498"><td id="_11c364a7-0625-6653-34b7-e49551e20d07" valign="top" align="left">Verifiable Presentation</td>
<td id="_e35ebe76-b192-9e36-59ee-9d32d9214e9c" valign="top" align="left">(no SIGNATIF equivalent)</td>
<td id="_6160a0c9-1cd1-f445-8d52-06f3ef400428" valign="top" align="left">A VP can wrap a SIGNATIF artifact, adding holder binding.</td>
</tr><tr id="_d4e088dd-7b03-ee8a-1c15-03baaf991383"><td id="_812cec76-d557-a876-014d-e992b0658b96" valign="top" align="left">Credential revocation</td>
<td id="_dd129a26-1292-9aae-d1fa-b0657b226cef" valign="top" align="left">Revocation propagation</td>
<td id="_3a231cf5-3d08-3e6d-bdf0-9db0ecdb9353" valign="top" align="left">VC revocation invalidates the credential; SIGNATIF revocation propagates   to condition-dependent artifacts.</td>
</tr><tr id="_7c95379b-4baf-2487-7f79-085dff5c04af"><td id="_e2e9ade7-f941-3feb-ff5c-0554b76289f3" valign="top" align="left">(no equivalent)</td>
<td id="_2b0d59e1-1385-a658-aa65-64ed606c3857" valign="top" align="left">Cryptographic scope</td>
<td id="_3836ed2a-64b4-6f6c-d2b0-ec204e7f3233" valign="top" align="left">SIGNATIF adds machine-checkable, multi-dimensional scope enforced at every   delegation link.</td>
</tr><tr id="_bf73921e-be4a-4763-6a6b-1ba2444c87f8"><td id="_16e13660-bc68-c225-618d-db0ebcc7e526" valign="top" align="left">(no equivalent)</td>
<td id="_de1fdc4d-e335-7163-3b48-c2148a1e2e4d" valign="top" align="left">Coverage report + classification</td>
<td id="_439eb94d-ff1e-794b-0ce5-66ce728ccfae" valign="top" align="left">SIGNATIF adds objective dimensional coverage assessment and scheme-defined   classification.</td>
</tr><tr id="_0de39d16-c57f-effb-e7fd-812bd9e999fa"><td id="_c9c1ffb3-1b75-0fac-0b74-74eec450f68d" valign="top" align="left">(no equivalent)</td>
<td id="_3122ebcd-a025-1559-f62c-3e4f89c01c9b" valign="top" align="left">Transparency logging</td>
<td id="_46a355a3-4a4f-3dbf-4114-21c54d9dc4da" valign="top" align="left">SIGNATIF requires every artifact in a recognized transparency log; VC has   no mandatory transparency.</td>
</tr></tbody>
</table>
</clause>

<clause id="_5996c4a2-0836-75d8-2126-a8f31a0430b0" inline-header="false" obligation="informative">
<title id="_86f6c9e5-2990-5ad5-ffa7-eb99f8c8c33d">Composition pattern 1: VC as SIGNATIF payload</title>
<p id="_00bc3728-a0d2-723c-5a22-e0c70d7db4da">The VC JSON object is the logical payload. The SIGNATIF artifact wraps it, replacing the VC’s single  <tt>proof</tt> with SIGNATIF multi-dimensional co-signatures:</p>

<sourcecode id="_8bdaa850-008a-2879-919b-2fc6729c2fea"><body>{
  "version": "1.0",
  "artifact_id": "art-2026-00001",
  "payload": {
    "@context": ["https://www.w3.org/2018/credentials/v1"],
    "id": "urn:uuid:batch-2026-001",
    "type": ["VerifiableCredential", "BatchReleaseCredential"],
    "issuer": "did:web:pharmaco.example",
    "issuanceDate": "2026-08-09T12:00:00Z",
    "credentialSubject": {
      "batchId": "LOT-2026-001",
      "product": "vaccine-batch-A",
      "quantity": 50000
    }
  },
  "canonical_payload_hash": "&lt;SHA-256 of JCS(payload)&gt;",
  "co_signatures": [
    {
      "dimension": "data",
      "algorithm": "Ed25519",
      "signer_cert_ref": "&lt;end certificate of the manufacturer key&gt;",
      "signature": "&lt;signature over the canonical payload&gt;"
    },
    {
      "dimension": "person",
      "algorithm": "Ed25519",
      "signer_cert_ref": "&lt;end certificate of the certified operator key&gt;",
      "signature": "&lt;signature over the canonical payload&gt;"
    },
    {
      "dimension": "time",
      "algorithm": "Ed25519",
      "signer_cert_ref": "&lt;end certificate of the time authority key&gt;",
      "signature": "&lt;signature over the canonical payload&gt;"
    }
  ],
  "transparency": {
    "log_seq": 67890,
    "inclusion_proof": {
      "leaf_hash": "&lt;base64 SHA-256 of log entry&gt;",
      "audit_path": ["&lt;base64 sibling hashes&gt;"],
      "tree_head": {
        "root_hash": "&lt;base64 Merkle root&gt;",
        "tree_size": 100000,
        "timestamp": "2026-08-09T12:00:00Z",
        "operator_signature": "&lt;base64 Ed25519 signature over tree head&gt;"
      }
    }
  }
}</body></sourcecode>


<p id="_3d00171f-c52d-2f6e-c867-f9471a960122">In this pattern, the VC <tt>proof</tt> field is omitted — SIGNATIF co-signatures serve as the proof. The VC data model is preserved (<tt>@context</tt>, <tt>type</tt>, <tt>issuer</tt>, <tt>credentialSubject</tt>); only the proof mechanism changes from single-signer to multi-dimensional convergence.</p>
</clause>

<clause id="_dc4d4156-a574-366b-1f80-6eda672fa357" inline-header="false" obligation="informative">
<title id="_51093354-7b4b-a950-9eb9-48193e837006">Composition pattern 2: SIGNATIF co-signatures as VC proofs</title>
<p id="_003bba7f-7b15-076f-f9cb-a3ce4aeb8bab">Each SIGNATIF dimension attestation is expressed as a VC proof entry. The artifact is a standard VC with multiple proofs:</p>

<sourcecode id="_c6dd7c66-359b-1402-db35-54f045533103"><body>{
  "@context": ["https://www.w3.org/2018/credentials/v1",
               "https://signatif.org/contexts/v1"],
  "id": "urn:uuid:batch-2026-001",
  "type": ["VerifiableCredential", "BatchReleaseCredential"],
  "issuer": "did:web:pharmaco.example",
  "issuanceDate": "2026-08-09T12:00:00Z",
  "credentialSubject": {
    "batchId": "LOT-2026-001",
    "product": "vaccine-batch-A",
    "quantity": 50000
  },
  "proof": [
    {
      "type": "SignatifDataSignature",
      "verificationMethod": "did:web:pharmaco.example#device-key",
      "proofPurpose": "assertionMethod",
      "proofValue": "&lt;Ed25519 signature&gt;",
      "signatif_dimension": "data"
    },
    {
      "type": "SignatifPersonSignature",
      "verificationMethod": "did:web:pharmaco.example#operator-key",
      "proofPurpose": "assertionMethod",
      "proofValue": "&lt;Ed25519 signature&gt;",
      "signatif_dimension": "person"
    },
    {
      "type": "SignatifTimeAttestation",
      "verificationMethod": "did:web:time-authority.example#key-1",
      "proofPurpose": "assertionMethod",
      "proofValue": "&lt;Ed25519 signature&gt;",
      "signatif_dimension": "time"
    }
  ]
}</body></sourcecode>


<p id="_aa6ac9ef-7ae3-fe9a-fc62-ee8192c7e785">In this pattern, a standard VC verifier validates each proof independently.
A SIGNATIF-aware verifier additionally computes the coverage report and applies
the scheme’s classification policy. This is the most interoperable pattern —
VC-only systems continue to work; SIGNATIF verifiers get the full convergence
assessment.<note id="_b5ed1e39-e82a-21b9-a0f2-ee17419d22a9"><p id="_6b2abc87-991e-2b16-1271-cf2e99f29e07">The SIGNATIF proof types (<tt>SignatifDataSignature</tt>, etc.) and the <tt>signatif_dimension</tt> field are scheme-defined. The scheme registers them in its format profile registry. The W3C VC proof format extension mechanism supports custom proof types.</p>
</note></p>


</clause>

<clause id="_7015c302-3b79-a2e5-f4ed-e65176bf11bb" inline-header="false" obligation="informative">
<title id="_e4597e6c-daa0-8691-637b-b94043f459f4">Composition pattern 3: Verifiable Presentation wrapping SIGNATIF artifact</title>
<p id="_7fe619fe-82aa-6daa-ff1c-051ee99f0da0">A holder creates a Verifiable Presentation that wraps a SIGNATIF artifact:</p>

<sourcecode id="_1e281c83-4bb9-efd9-1514-2173095ddcff"><body>{
  "@context": ["https://www.w3.org/2018/credentials/v1"],
  "type": ["VerifiablePresentation"],
  "verifiableCredential": [
    {
      "type": ["VerifiableCredential", "SignatifArtifact"],
      "credentialSubject": {
        "batchId": "LOT-2026-001",
        "product": "vaccine-batch-A",
        "quantity": 50000
      },
      "proof": [
        {
          "type": "SignatifDataSignature",
          "verificationMethod": "did:web:pharmaco.example#device-key",
          "proofPurpose": "assertionMethod",
          "proofValue": "&lt;Ed25519 signature&gt;",
          "signatif_dimension": "data"
        },
        {
          "type": "SignatifTimeAttestation",
          "verificationMethod": "did:web:time-authority.example#key-1",
          "proofPurpose": "assertionMethod",
          "proofValue": "&lt;Ed25519 signature&gt;",
          "signatif_dimension": "time"
        }
      ]
    }
  ],
  "proof": {
    "type": "Ed25519Signature2018",
    "verificationMethod": "did:key:holder...",
    "proofValue": "&lt;holder signature&gt;"
  }
}</body></sourcecode>


<p id="_941d7dee-4cd1-6701-46a8-8f58e77f3758">The holder binds themselves to the presentation (standard VC holder binding). The SIGNATIF co-signatures inside the credential provide the trust convergence assessment. Selective disclosure mechanisms (e.g., BBS+ signatures) can be combined with SIGNATIF co-signatures for privacy-preserving presentations.</p>
</clause>

<clause id="_774cc273-b1c3-9ec6-0090-21d883f7e529" inline-header="false" obligation="informative">
<title id="_41b45090-0b9f-8127-84bb-39e083f8c85a">What SIGNATIF adds to the VC data model</title>
<p id="_a29f954f-b40f-74aa-9780-0cf35777d114">VC provides tamper-evidence, issuer identification, and claims structure. SIGNATIF adds the trust infrastructure layer that VC does not specify:</p>

<ul id="_c44cd4e2-030d-0596-7b9a-860de247728a"><li><p id="_a9aeb41f-b6c1-ddcc-5485-40ed4dd10cb2">Delegation hierarchy with scope enforcement. VC identifies the issuer but does not specify the chain of authority from root to issuer, nor machine-checkable scope constraints. SIGNATIF adds a delegation chain with monotonic scope narrowing enforced at every link.</p>
</li>
<li><p id="_19e3cc9f-61aa-e4ab-1c1a-43987f307227">Multi-dimensional convergence. VC supports one proof (or multiple proofs, but with no convergence assessment model). SIGNATIF adds independent dimension attestations (data, person, time, location, environment, and extensible others) with a coverage report and scheme-defined classification.</p>
</li>
<li><p id="_3f1a08fd-7170-9ccc-2700-3ff3fd939de9">Threshold protection. VC issuers use single keys. SIGNATIF requires threshold at every authority level, preventing single-key compromise.</p>
</li>
<li><p id="_39f35e54-857d-4a73-0064-56e6e70c59b9">Mandatory transparency. VCs can be issued without any public record. SIGNATIF requires every artifact in a recognized transparency log with inclusion proofs as a verification input.</p>
</li>
<li><p id="_1d49be16-4b95-3087-92c4-d5cb376faae1">Trust lifecycle. VC revocation invalidates the credential. SIGNATIF revocation propagates to condition-dependent artifacts, including scope condition withdrawal — revoking trust when the real-world conditions that made the artifact trustworthy no longer hold.</p>
</li>
<li><p id="_a50ee107-66e9-2cc6-8317-6e92681f8544">Graduated, reproducible assessment. VC verification is binary (valid or invalid). SIGNATIF produces an objective coverage report that the scheme’s classification policy maps to domain-specific grade labels.</p>
</li>
</ul>
</clause>

<clause id="_108d43ab-f5a4-4452-81e2-bf74aa4d5c22" inline-header="false" obligation="informative">
<title id="_e453fd0b-9ed6-64db-fa6a-e68ea3b1423d">Adoption paths</title>
<p id="_a2e24150-74ea-6958-f6ff-aab7abfe083d">Organizations already using VCs can adopt SIGNATIF incrementally:</p>

<ul id="_398ccf95-5040-d16a-8584-3e49a705a1f6"><li><p id="_4c9c1e60-696c-c2e2-3128-b85dba8f0ae0">Add dimensions. Keep the existing VC issuance pipeline. Add person, time, or environment co-signatures as additional VC proofs (pattern 2). The existing VC verifier continues to work; SIGNATIF-aware verifiers get the coverage report.</p>
</li>
<li><p id="_c25bf555-2067-41f7-c727-66193b6fcad6">Add scope and transparency. Wrap the VC in a SIGNATIF artifact (pattern 1). Add scope enforcement and transparency logging. The VC payload is unchanged; the trust infrastructure is added around it.</p>
</li>
<li><p id="_63c21c94-bc4d-d16b-6963-5231cfef3a51">Full SIGNATIF deployment. Issue SIGNATIF artifacts natively, using VC as the payload format (pattern 3 with native SIGNATIF co-signatures). This gives the full feature set: scope, threshold, transparency, convergence, revocation propagation, and condition lifecycle.</p>
</li>
<note id="_dd6d7c19-4c4c-2d99-1cce-b147e996eb7c"><p id="_a82ae1b1-a9ed-75d2-9ef8-bab09607c207">SIGNATIF does not replace the W3C VC data model. The two standards operate at different layers: VC defines the credential data model and proof verification; SIGNATIF defines the trust infrastructure (delegation, scope, convergence, transparency, lifecycle). Organizations can use VC for data modeling and SIGNATIF for trust infrastructure simultaneously.</p>
</note></ul>


</clause>
</annex><annex id="_b74ec947-e121-d5b7-450b-f6ba90c3c32b" anchor="annex-h" inline-header="false" obligation="informative">
<title id="_45031c46-6895-8a8c-efe9-73515fadd45f">Composition with the EU Digital Product Passport</title>
<clause id="_f3e5b0de-9c3f-1fa4-0be1-6486af5b2581" inline-header="false" obligation="informative">
<title id="_569fc5b8-0887-86c7-0f17-cd84f55c827d">General</title>
<p id="_a74f0718-1404-b420-4112-63d20ba328a2">The EU Ecodesign for Sustainable Products Regulation <eref type="inline" bibitemid="espr" citeas="Regulation (EU) 2024/1781"/> establishes the Digital Product Passport (DPP): structured product data for regulated goods, a data carrier on the product, and a decentralized registry, with product-group requirements arriving through delegated acts. Credential-based representations of DPP data are under evaluation in the European standardization program.</p>

<p id="_5a239d99-5ea1-934d-c96c-39be9d61c0c3">This annex describes how a DPP scheme and the SIGNATIF framework compose. The DPP data model, product-group requirements, and delegated acts are external to this document; nothing in this annex specifies or anticipates them. A DPP deployment is a scheme in the sense of  <xref target="annex-c"/>: it maintains registries, defines scope dimensions and classification policies, and claims conformance classes. This annex is informative. It does not specify requirements.</p>
</clause>

<clause id="_b425f729-b120-e29d-a779-290fbdd3d7cf" inline-header="false" obligation="informative">
<title id="_965d7a1e-c737-6ba7-2d17-aa910324a42b">Concept mapping</title>
<p id="_196aa9ee-bb28-aae8-75a6-3a9c94924cdf"><xref target="tab-dpp-mapping"/> maps the EU DPP concepts to SIGNATIF mechanisms.</p>

<table id="_76e23466-53a5-d704-8be3-6263e23f65bf" anchor="tab-dpp-mapping"><colgroup><col width="28.5714%"/><col width="28.5714%"/><col width="42.8572%"/></colgroup>
<name id="_712b3011-8dcd-cf93-8b52-86b0caeeda9c">Concept mapping between EU DPP and SIGNATIF</name>
<thead><tr id="_42a3ae16-9028-6e07-2d9a-fe8f066c7e1e"><th id="_a0ea39a3-da3c-4beb-d63a-eab664dcbce1" valign="top" align="left">EU DPP concept</th>
<th id="_70680232-e1e4-9f88-036b-7c0b572e37bf" valign="top" align="left">SIGNATIF equivalent</th>
<th id="_e3e3d9d3-6f1c-b1b5-9574-7791906c5aaf" valign="top" align="left">Relationship</th>
</tr></thead>
<tbody><tr id="_8155fe9b-cf4d-c0bd-bef2-6f6edb2b4fd5"><td id="_7f8f2670-1a92-9835-6d76-5b8a63d10a66" valign="top" align="left">DPP record (structured product data)</td>
<td id="_f21ca455-3fcb-4ba3-870d-72d3ac61da9d" valign="top" align="left"><concept><refterm>trusted artifact</refterm><renderterm>trusted artifact</renderterm><xref target="term-trusted-artifact"/></concept> payload</td>
<td id="_7f685f24-90aa-880b-0238-8564c37d1835" valign="top" align="left">The DPP data model for a product group is the payload; SIGNATIF wraps and   attests it with multi-dimensional  <concept><refterm>co-signature</refterm><renderterm>co-signatures</renderterm><xref target="term-co-signature"/></concept> over the    <concept><refterm>canonical payload</refterm><renderterm>canonical payload</renderterm><xref target="term-canonical-payload"/></concept>.</td>
</tr><tr id="_e320ba99-f5e5-7843-ec23-44be6dc0f8fa"><td id="_aadaf8b0-4d97-46c0-5d17-fe79e9856143" valign="top" align="left">Data carrier (QR code on the product)</td>
<td id="_7af87314-f7b6-ac4c-c544-0016d08a80a7" valign="top" align="left">Barcode and passport delivery (<xref target="delivery-qr"/>, <xref target="delivery-passport"/>)</td>
<td id="_5f1a3208-f97e-e4fd-2e55-0559a688b838" valign="top" align="left">The carrier requirements — self-containment, version identification,   error correction — are those of  <xref target="delivery"/>; a connected verifier may   instead resolve a compact reference.</td>
</tr><tr id="_6ddf1c24-9ecb-72c7-8dd2-1e789ee88b79"><td id="_1217034b-2561-e7da-3f8a-88a4e2047129" valign="top" align="left">DPP registry</td>
<td id="_e9c59d93-c0f0-1c64-fb72-6607e4033512" valign="top" align="left"><concept><refterm>transparency log</refterm><renderterm>transparency logs</renderterm><xref target="term-transparency-log"/></concept> with mirrors</td>
<td id="_ba7a6184-ba38-97cb-0af5-0ef1da62d09a" valign="top" align="left">Registry function is met by log operators and mirrors; inclusion in M of   K independent logs satisfies the multi-log attestation quorum, so no   single registry operator controls the record.</td>
</tr><tr id="_025d5849-a153-fc2e-d157-907f0521de2c"><td id="_7b906bc7-bebc-3c5b-f51e-820dae12a498" valign="top" align="left">Unique product identifier</td>
<td id="_78f90d59-cb0a-c467-010f-c4bf7e36fa50" valign="top" align="left">Artifact identifier and version</td>
<td id="_863b650b-4f13-9625-cc7a-e1143d2d6d34" valign="top" align="left">The product identifier binds to the artifact identifier; successive DPP   versions follow the version compatibility rules of the artifact format.</td>
</tr><tr id="_6deb5828-6d98-b8a4-a739-92d6d7fc79d1"><td id="_c726a33f-3e5b-9d14-1b11-6acf9b93f145" valign="top" align="left">Economic operator</td>
<td id="_4c5a03fc-a9bc-4fc5-245a-dde846c59c09" valign="top" align="left"><concept><refterm>delegated trust authority</refterm><renderterm>delegated trust authorities</renderterm><xref target="term-delegated-trust-authority"/></concept> and    <concept><refterm>end certificate</refterm><renderterm>end certificate</renderterm><xref target="term-end-certificate"/></concept> holders</td>
<td id="_528a4d83-c073-a241-caef-7e569c82419e" valign="top" align="left">Operators hold scoped signing authority delegated from the scheme root;   the scope narrows to product groups and roles.</td>
</tr><tr id="_0cdb5c24-799c-e3d4-8556-0db97c9d491f"><td id="_fc45c671-1238-343b-5697-255ae3020f54" valign="top" align="left">Market surveillance authority</td>
<td id="_9e0ae9df-13c0-f7ae-f919-3e7b68773aa9" valign="top" align="left">Verifier with an acceptance policy</td>
<td id="_c0ea09e3-5841-e400-3129-4707dcc42e35" valign="top" align="left">Inspection verifies offline from the <concept><refterm>trust anchor bundle</refterm><renderterm>trust anchor bundle</renderterm><xref target="term-trust-anchor-bundle"/></concept>; the   acceptance policy encodes the surveillance risk threshold, and the    <concept><refterm>classification label</refterm><renderterm>classification label</renderterm><xref target="term-classification-label"/></concept> carries the graded evidence.</td>
</tr><tr id="_9d22071c-6acd-9bf7-64ea-9ec43fd7a427"><td id="_db53ad04-ee60-9866-07a7-003b349fe0fe" valign="top" align="left">Operator registration withdrawal</td>
<td id="_bb1950dc-7f33-b1c7-f46f-7aacf8dd8007" valign="top" align="left">Revocation propagation (<xref target="revocation-propagation"/>)</td>
<td id="_bd088cb9-dad9-7fae-8a44-f5aaf5d01aab" valign="top" align="left">Withdrawing an operator’s recognition revokes its authority state and   propagates to every passport artifact transitively bound to it.</td>
</tr><tr id="_a2d64131-dce5-3916-a500-f59447050d48"><td id="_fd572a59-4b58-ffc0-ec7d-27c33ed12b54" valign="top" align="left">Decade-plus product lifetimes</td>
<td id="_867ef6cb-8901-b173-20b2-d4971c1219b5" valign="top" align="left">Algorithm agility (<xref target="algorithm-agility-migration"/>)</td>
<td id="_aa1bf298-10be-2737-7887-efaca4dcb2b6" valign="top" align="left">Passports signed classically migrate through composite to   post-quantum-only phases on a published schedule without re-issuing the   trust graph.</td>
</tr></tbody>
</table>
</clause>

<clause id="_db9c4e84-75bd-3c8d-97f3-309eb3230e93" inline-header="false" obligation="informative">
<title id="_5aeb7264-6a5c-3dac-76b4-5e4289f0b6c3">Composition pattern 1: DPP record as SIGNATIF payload</title>
<p id="_a4a932e1-548f-618e-7ff0-5a88c4c5e510">The DPP record for a product group is the logical payload. The SIGNATIF artifact wraps it; each dimension attestation co-signs the same canonical payload:</p>

<sourcecode id="_77cefc93-21ed-9cc5-bc5d-738afde59335"><body>{
  "version": "1.0",
  "artifact_id": "dpp-2026-00001",
  "payload": {
    "product_group": "textiles",
    "unique_product_identifier": "urn:dpp:eu:abc-manufacturing:sku-4711",
    "material_composition": { },
    "carbon_footprint_declared": "in-development",
    "economic_operator_id": "urn:eu:eop:vat:DE123456789"
  },
  "co_signatures": [
    { "dimension": "authority", "signer": "end-certificate:operator-key" },
    { "dimension": "time", "signer": "time-key:eu-time-authority" },
    { "dimension": "location", "signer": "location-key:plant-registry" }
  ],
  "transparency": { "logs": ["log-a", "log-b"], "quorum": "2-of-3" }
}</body></sourcecode>


<p id="_a669bb74-0a60-7b57-feba-af27d49231e6">Fields shown are illustrative; the payload schema belongs to the DPP scheme’s registry, not to this document.</p>
</clause>

<clause id="_65264266-2601-4975-4f22-40734b420275" inline-header="false" obligation="informative">
<title id="_bcd43550-e059-7b5f-0002-c11df3398084">Composition pattern 2: DPP data carrier</title>
<p id="_c7e88388-fed3-7861-0e4b-80019dfc8a78">A DPP data carrier on the product is a SIGNATIF barcode or passport in the sense of  <xref target="delivery"/>:</p>

<ul id="_6b3cb16b-d3f5-4b25-de5e-8d1d7d9663fb"><li><p id="_e61917f5-73e8-56a7-ae13-078cd3dbc3f0">Self-contained carriers hold the artifact or its passport — identifier, key fingerprint, scope summary, validity period — with error correction matched to the scanning environment.</p>
</li>
<li><p id="_255e4045-5456-88f2-6787-96516a74eb13">Where the artifact exceeds carrier capacity, the carrier holds a compact reference that a connected verifier resolves from a transparency log or mirror on first encounter and caches.</p>
</li>
<li><p id="_ec6c5e5d-39d2-2794-1b3a-43965325b1f0">Offline inspection verifies from the carrier and the verifier’s trust anchor bundle without contacting any registry.</p>
</li>
</ul>
</clause>

<clause id="_5623df21-b99f-95b0-a096-9590d6601785" inline-header="false" obligation="informative">
<title id="_ddcdf022-e332-5108-2924-cb2d6fea248b">Composition pattern 3: DPP registry as multi-operator transparency</title>
<p id="_e14a2e0e-dff2-ca87-1138-e114e1103c9e">The decentralized-registry intent of the DPP is met by the transparency infrastructure of  <xref target="transparency"/>:</p>

<ul id="_f376ddbb-69b5-bd3c-2628-be723d4b79b0"><li><p id="_e4395601-88b1-9d4b-2017-82a1e2b22832">Multiple independent log operators record passport issuance; the scheme’s federated trust authority requires inclusion in M of K logs.</p>
</li>
<li><p id="_2aadd9eb-7bf6-2ab9-56f2-f9fadb756450">Mirrors replicate log state through gossip, giving every economic operator and surveillance authority third-party evidence of what was issued, independent of any single operator.</p>
</li>
<li><p id="_3d32b982-e3b1-dbaa-1a01-4869132f8a00">Inclusion proofs anchor each passport artifact to its log entries; a verifier’s cached tree heads suffice for offline re-verification within the freshness window.</p>
</li>
</ul>
</clause>

<clause id="_9ba5b6a8-30ad-7726-7070-5d21292c55ea" inline-header="false" obligation="informative">
<title id="_582de55f-e99d-4525-5c74-cbde0f8410a2">What SIGNATIF adds to the DPP data model</title>
<p id="_cdcdd6ca-0d92-489b-1f91-f1a341cacffa"><xref target="tab-dpp-additions"/> summarizes the concerns the framework addresses beyond the DPP data model itself.</p>

<table id="_d91587a2-3cc8-1a14-b503-eb0a791b3a41" anchor="tab-dpp-additions"><colgroup><col width="40%"/><col width="60%"/></colgroup>
<name id="_5a5ec084-383b-1e4c-a7f5-af15874173eb">Concerns addressed by SIGNATIF mechanisms</name>
<thead><tr id="_eb4f98c6-b2e6-38d0-8bc9-3c0f500a5869"><th id="_17860aff-0298-d17c-cabb-5cefc41b18c9" valign="top" align="left">Concern</th>
<th id="_ab070864-773b-9888-f863-a1ad76b60623" valign="top" align="left">SIGNATIF mechanism</th>
</tr></thead>
<tbody><tr id="_bf018db4-349f-1b4a-f1cb-b23258d29fc8"><td id="_4bb8a2df-89e2-6437-0a17-ab8f5ddf6bec" valign="top" align="left">Who may issue for which product group</td>
<td id="_6555e724-b73e-d35c-bbff-b35f0142bac3" valign="top" align="left">Cryptographic <concept><refterm>authorization scope</refterm><renderterm>authorization scope</renderterm><xref target="term-authorization-scope"/></concept> narrowing at every delegation link</td>
</tr><tr id="_c220a1ed-cc56-fb75-3e88-c6df900f15de"><td id="_150f8e52-6ef4-4013-b16b-eb03d6f9d06a" valign="top" align="left">Evidence quality at inspection</td>
<td id="_6c5ff91b-bc55-fd22-e9b1-c4994ae00f21" valign="top" align="left">Objective coverage report and graduated <concept><refterm>classification label</refterm><renderterm>classification label</renderterm><xref target="term-classification-label"/></concept></td>
</tr><tr id="_947589b4-9105-1517-267c-642ae1e8e0c5"><td id="_e8cea36c-7b12-6eb9-aabb-fb9ae358531a" valign="top" align="left">Registry capture and avoidance</td>
<td id="_1d15a23a-de9d-3721-8d06-8daf64acd80b" valign="top" align="left">Mandatory transparency inclusion with M-of-K multi-log quorum</td>
</tr><tr id="_f50afb8e-f875-84f9-f5db-d28ad495b756"><td id="_adeb5ca0-886a-fadb-3430-65e05101d72b" valign="top" align="left">Withdrawal of an operator’s recognition</td>
<td id="_86fc0426-53a1-d01a-74d9-c6e461969b15" valign="top" align="left">Threshold-gated revocation propagating to bound artifacts</td>
</tr><tr id="_d80cf4fe-fc8a-5f6c-71da-785e7f387bdc"><td id="_6d39bd0d-1532-2942-e02c-1215f7f8f746" valign="top" align="left">Verification without registry access</td>
<td id="_c79581f7-0347-c94f-8e0f-21ace108f8b6" valign="top" align="left">Offline verification from the trust anchor bundle</td>
</tr><tr id="_b6a3542a-eaba-bfe5-9534-0d0468360310"><td id="_28973476-d856-5f18-4675-b65de8becf32" valign="top" align="left">Long-lived products</td>
<td id="_9d0a0ede-6866-dabe-d61b-be19ccfd95c5" valign="top" align="left">Published classical-to-composite-to-post-quantum migration</td>
</tr></tbody>
</table>
</clause>

<clause id="_f2337bc5-e26a-5772-6e5f-d262958ad7a3" inline-header="false" obligation="informative">
<title id="_1c05d67b-9d13-9ce3-59f6-2e617adfbbb7">Adoption paths</title>
<p id="_e4a08dd2-2e42-9c2b-74f1-a0bfbf1afb03">A DPP scheme may adopt incrementally:</p>

<ul id="_19d256e6-4522-4043-fb5d-556cd74d445c"><li><p id="_48d594ee-f433-0938-f1f7-0c1733555b91">Start with the authority dimension only — issuer chains, scope narrowing, transparency inclusion — which is PKI-like and sufficient for issuance accountability.</p>
</li>
<li><p id="_7da17141-d298-0f7f-1adf-75f391b7d1db">Add the time and location dimensions as attestation sources become available, raising dimensional coverage and labels.</p>
</li>
<li><p id="_5e93213a-93ed-c586-0110-87a6753154c4">Introduce multi-root cross-domain co-signatures when several economic operators or notified bodies attest the same passport.</p>
</li>
<li><p id="_43e21c01-c148-2f1a-d7d8-309f1dc0b75c">Migrate algorithm classes per the deployment’s declared migration phase as product lifetimes extend beyond the classical-only horizon.</p>
</li>
<note id="_000fef5d-3b8d-9b90-0052-a834399789c3"><p id="_d61aaeba-b33d-155a-d8ac-2e6754de50da">Delegated acts under <eref type="inline" bibitemid="espr" citeas="Regulation (EU) 2024/1781"/> continue to define DPP data models, carriers, and registry interfaces. A conforming DPP scheme tracks those external definitions in its registries; the composition described here does not depend on their final form.</p>
</note></ul>


</clause>
</annex><bibliography><references id="_1344e4f3-9379-c382-a910-4461593b77ca" normative="false" obligation="informative">
<title id="_2b4ed339-a7ed-1bbb-9576-55fcbc1ace3a">Bibliography</title><bibitem id="_f648d6f0-2ac2-7418-2f4d-0d448c1e26ba" type="standard" schema-version="v1.5.6" anchor="iso3166-1">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn" type="title-main">Codes for the representation of names of countries and their subdivisions</title>

  
<title language="en" script="Latn" type="title-part">Part 1: Country code</title>

  
<title language="en" script="Latn" type="main">Codes for the representation of names of countries and their subdivisions — Part 1: Country code</title>

  
<title language="fr" script="Latn" type="title-main">Codes pour la représentation des noms de pays et de leurs subdivisions</title>

  
<title language="fr" script="Latn" type="title-part">Partie 1: Codes de pays</title>

  
<title language="fr" script="Latn" type="main">Codes pour la représentation des noms de pays et de leurs subdivisions — Partie 1: Codes de pays</title>

  <uri type="src">https://www.iso.org/standard/72482.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:72482:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/07/24/72482.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO 3166-1:2020</docidentifier>
  <docidentifier type="iso-reference">ISO 3166-1:2020(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso:3166:-1:stage-90.93</docidentifier>
  <docnumber>3166</docnumber>
  <date type="published">
    <on>2020-08-25</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="TC">
        
<name>Information and documentation</name>

        <identifier>ISO/TC 46</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>4</edition>
  <language>en</language>
  <language>fr</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This document specifies basic guidelines for the implementation and maintenance of country codes. This code is intended for use in any application requiring the expression of current country names in coded form.</abstract>
  <status>
    <stage>90</stage>
    <substage>93</substage>
  </status>
  <copyright>
    <from>2020</from>
    <owner>
      <organization>
        
<name>ISO</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO 3166-1:2013</formattedref>
      <docidentifier type="ISO" primary="true">ISO 3166-1:2013</docidentifier>
      <date type="published">
        <on>2013-11-19</on>
      </date>
    </bibitem>

  </relation>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>ISO/PWI 3166-1</formattedref>
      <docidentifier type="ISO" primary="true">ISO/PWI 3166-1</docidentifier>
    </bibitem>

  </relation>
  <place>
    <city>Geneva</city>
  </place>
</bibitem><bibitem id="_84b2b6ac-27a8-d999-e641-767cea102992" type="standard" schema-version="v1.5.6" anchor="iso8601">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn" type="title-intro">Date and time</title>

  
<title language="en" script="Latn" type="title-main">Representations for information interchange</title>

  
<title language="en" script="Latn" type="title-part">Part 1: Basic rules</title>

  
<title language="en" script="Latn" type="main">Date and time — Representations for information interchange — Part 1: Basic rules</title>

  
<title language="fr" script="Latn" type="title-intro">Date et heure</title>

  
<title language="fr" script="Latn" type="title-main">Représentations pour l’échange d’information</title>

  
<title language="fr" script="Latn" type="title-part">Partie 1: Règles de base</title>

  
<title language="fr" script="Latn" type="main">Date et heure — Représentations pour l’échange d’information — Partie 1: Règles de base</title>

  <uri type="src">https://www.iso.org/standard/70907.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:70907:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/07/09/70907.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO 8601-1:2019</docidentifier>
  <docidentifier type="iso-reference">ISO 8601-1:2019(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso:8601:-1:stage-90.92</docidentifier>
  <docnumber>8601</docnumber>
  <date type="published">
    <on>2019-02-25</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="TC">
        
<name>Processes, data elements and documents in commerce, industry and administration</name>

        <identifier>ISO/TC 154</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>1</edition>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This document specifies representations of dates of the Gregorian calendar and times based on the 24-hour clock, as well as composite elements of them, as character strings for use in information interchange. It is also applicable for representing times and time shifts based on Coordinated Universal Time (UTC). This document excludes the representation of date elements from non-Gregorian calendars or times not from the 24-hour clock. This document does not address character encoding of representations specified in this document.</abstract>
  <status>
    <stage>90</stage>
    <substage>92</substage>
  </status>
  <copyright>
    <from>2019</from>
    <owner>
      <organization>
        
<name>ISO</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO 8601:2004</formattedref>
      <docidentifier type="ISO" primary="true">ISO 8601:2004</docidentifier>
      <date type="published">
        <on>2004-12-03</on>
      </date>
    </bibitem>

  </relation>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>ISO/CD 8601-1</formattedref>
      <docidentifier type="ISO" primary="true">ISO/CD 8601-1</docidentifier>
    </bibitem>

  </relation>
  <relation type="updatedBy">
    <bibitem>
      <formattedref>ISO 8601-1:2019/Amd 1:2022</formattedref>
      <docidentifier type="ISO" primary="true">ISO 8601-1:2019/Amd 1:2022</docidentifier>
      <date type="published">
        <on>2022-10-25</on>
      </date>
    </bibitem>

  </relation>
  <place>
    <city>Geneva</city>
  </place>
</bibitem><bibitem id="_d73fd73d-1130-4dec-88e7-ec27390cc17f" type="standard" schema-version="v1.5.6" anchor="iso7064">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn" type="title-intro">Information technology</title>

  
<title language="en" script="Latn" type="title-main">Security techniques</title>

  
<title language="en" script="Latn" type="title-part">Check character systems</title>

  
<title language="en" script="Latn" type="main">Information technology — Security techniques — Check character systems</title>

  
<title language="fr" script="Latn" type="title-intro">Technologies de l’information</title>

  
<title language="fr" script="Latn" type="title-main">Techniques de sécurité</title>

  
<title language="fr" script="Latn" type="title-part">Systèmes de caractères de contrôle</title>

  
<title language="fr" script="Latn" type="main">Technologies de l’information — Techniques de sécurité — Systèmes de caractères de contrôle</title>

  <uri type="src">https://www.iso.org/standard/31531.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:31531:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/03/15/31531.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 7064:2003</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 7064:2003(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:7064:stage-90.93</docidentifier>
  <docnumber>7064</docnumber>
  <date type="published">
    <on>2003-03-07</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Information security, cybersecurity and privacy protection</name>

        <identifier>ISO/IEC JTC 1/SC 27</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>1</edition>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">ISO/IEC 7064:2002 specifies a set of check character systems capable of protecting strings against errors which occur when people copy or key data. The strings may be of fixed or variable length and may have character sets which are numeric (10 digits: 0 to 9);alphabetic (26 letters: A to Z);alphanumeric (letters and digits). Embedded spaces and special characters are ignored. ISO/IEC 7064:2002 specifies conformance requirements for products described as generating check characters or checking strings using the systems given in this International Standard. ISO/IEC 7064:2002 is for use in information interchange between organizations; it is also strongly recommended as good practice for internal information systems. The check character systems specified in ISO/IEC 7064:2002 can detect: all single substitution errors (the substitution of a single character for another, for example 4234 for 1234);all or nearly all single (local) transposition errors (the transposition of two single characters, either adjacent or with one character between them, for example 12354 or 12543 for 12345);all or nearly all shift errors (shifts of the whole string to the left or right);a high proportion of double substitution errors (two separate single substitution errors in the same string, for example 7234587 for 1234567);a high proportion of all other errors. ISO/IEC 7064:2002 excludes systems designed specifically to: permit both error detection and automatic correction;detect deliberate falsification;check strings interchanged solely between machines. ISO/IEC 7064:2002 specifies two types of systems: pure systems;hybrid systems. The pure systems use a single modulus for all stages of the calculation.</abstract>
  <status>
    <stage>90</stage>
    <substage>93</substage>
  </status>
  <copyright>
    <from>2003</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO 7064:1983</formattedref>
      <docidentifier type="ISO" primary="true">ISO 7064:1983</docidentifier>
      <date type="published">
        <on>1983-09-01</on>
      </date>
    </bibitem>

  </relation>
  <place>
    <city>Geneva</city>
  </place>
</bibitem><bibitem id="_81d43e56-ad3a-1e5a-7bf2-aad3dd55e371" type="standard" schema-version="v1.5.6" anchor="iso9594-8">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn" type="title-intro">Information technology</title>

  
<title language="en" script="Latn" type="title-main">Open systems interconnection</title>

  
<title language="en" script="Latn" type="title-part">Part 8: The Directory: Public-key and attribute certificate frameworks</title>

  
<title language="en" script="Latn" type="main">Information technology — Open systems interconnection — Part 8: The Directory: Public-key and attribute certificate frameworks</title>

  
<title language="fr" script="Latn" type="title-intro">Technologies de l’information</title>

  
<title language="fr" script="Latn" type="title-main">Interconnexion de systèmes ouverts (OSI)</title>

  
<title language="fr" script="Latn" type="title-part">Partie 8: Titre manque</title>

  
<title language="fr" script="Latn" type="main">Technologies de l’information — Interconnexion de systèmes ouverts (OSI) — Partie 8: Titre manque</title>

  <uri type="src">https://www.iso.org/standard/80325.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:80325:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/08/03/80325.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 9594-8:2020</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 9594-8:2020(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:9594:-8</docidentifier>
  <docnumber>9594</docnumber>
  <date type="published">
    <on>2020-12-01</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Telecommunications and information exchange between systems</name>

        <identifier>ISO/IEC JTC 1/SC 6</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>9</edition>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This document addresses some of the security requirements in the areas of authentication and other security services through the provision of a set of frameworks upon which full services can be based. Specifically, this Recommendation | International Standard defines frameworks for: ? public-key certificates; and ? attribute certificates. The public-key certificate framework defined in this Recommendation | International Standard specifies the information objects and data types for a public-key infrastructure (PKI), including public-key certificates, certificate revocation lists (CRLs), trust broker and authorization and validation lists (AVLs). The attribute certificate framework specifies the information objects and data types for a privilege management infrastructure (PMI), including attribute certificates, and attribute certificate revocation lists (ACRLs). This Recommendation | International Standard also provides the framework for issuing, managing, using and revoking certificates. An extensibility mechanism is included in the defined formats for both certificate types and for all revocation list schemes. This Recommendation | International Standard also includes a set of extensions, which is expected to be generally useful across a number of applications of PKI and PMI. The schema components (including object classes, attribute types and matching rules) for storing PKI and PMI information in a directory, are included in this Recommendation | International Standard. This Recommendation | International Standard specifies the framework for strong authentication, involving credentials formed using cryptographic techniques. It is not intended to establish this as a general framework for authentication, but it can be of general use for applications which consider these techniques adequate. Authentication (and other security services) can only be provided within the context of a defined security policy. It is a matter for users of an application to define their own security policy.</abstract>
  <status>
    <stage>90</stage>
    <substage>60</substage>
  </status>
  <copyright>
    <from>2020</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO/IEC 9594-8:2017</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 9594-8:2017</docidentifier>
      <date type="published">
        <on>2017-05-05</on>
      </date>
    </bibitem>

  </relation>
  <relation type="updatedBy">
    <bibitem>
      <formattedref>ISO/IEC 9594-8:2020/Cor 1:2021</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 9594-8:2020/Cor 1:2021</docidentifier>
      <date type="published">
        <on>2021-12-17</on>
      </date>
    </bibitem>

  </relation>
  <relation type="updatedBy">
    <bibitem>
      <formattedref>ISO/IEC 9594-8:2020/Cor 2:2024</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 9594-8:2020/Cor 2:2024</docidentifier>
      <date type="published">
        <on>2024-02-22</on>
      </date>
    </bibitem>

  </relation>
  <relation type="updatedBy">
    <bibitem>
      <formattedref>ISO/IEC 9594-8:2020/Amd 1:2025</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 9594-8:2020/Amd 1:2025</docidentifier>
      <date type="published">
        <on>2025-05-19</on>
      </date>
    </bibitem>

  </relation>
  <relation type="updatedBy">
    <bibitem>
      <formattedref>ISO/IEC 9594-8:2020/CD Cor 3</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 9594-8:2020/CD Cor 3</docidentifier>
    </bibitem>

  </relation>
  <place>
    <city>Geneva</city>
  </place>
</bibitem><bibitem anchor="iso11770" id="_6a2949b5-dc2b-d604-c28f-c6613b23b54e" type="standard">
<title format="text/plain">Information technology — Security techniques — Key management</title>
<docidentifier type="ISO">ISO/IEC 11770</docidentifier><docnumber>11770</docnumber><contributor><role type="publisher"/><organization>
<name>International Organization for Standardization</name>
<abbreviation>ISO</abbreviation></organization></contributor><contributor><role type="publisher"/><organization>
<name>International Electrotechnical Commission</name>
<abbreviation>IEC</abbreviation></organization></contributor><language>en</language><script>Latn</script></bibitem><bibitem anchor="iso14888" id="_b1f81192-5f63-689b-eae6-63f5695a3db7" type="standard">
<title format="text/plain">Information technology — Security techniques — Digital signatures with appendix</title>
<docidentifier type="ISO">ISO/IEC 14888</docidentifier><docnumber>14888</docnumber><contributor><role type="publisher"/><organization>
<name>International Organization for Standardization</name>
<abbreviation>ISO</abbreviation></organization></contributor><contributor><role type="publisher"/><organization>
<name>International Electrotechnical Commission</name>
<abbreviation>IEC</abbreviation></organization></contributor><language>en</language><script>Latn</script></bibitem><bibitem id="_ce99e16b-3049-876c-8ca3-198488efd633" type="standard" schema-version="v1.5.6" anchor="iso18031">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn" type="title-intro">Information technology</title>

  
<title language="en" script="Latn" type="title-main">Security techniques</title>

  
<title language="en" script="Latn" type="title-part">Random bit generation</title>

  
<title language="en" script="Latn" type="main">Information technology — Security techniques — Random bit generation</title>

  
<title language="fr" script="Latn" type="title-intro">Technologies de l’information</title>

  
<title language="fr" script="Latn" type="title-main">Techniques de sécurité</title>

  
<title language="fr" script="Latn" type="title-part">Génération de bits aléatoires</title>

  
<title language="fr" script="Latn" type="main">Technologies de l’information — Techniques de sécurité — Génération de bits aléatoires</title>

  <uri type="src">https://www.iso.org/standard/81645.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:81645:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/08/16/81645.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 18031:2025</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 18031:2025(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:18031</docidentifier>
  <docnumber>18031</docnumber>
  <date type="published">
    <on>2025-02-03</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Information security, cybersecurity and privacy protection</name>

        <identifier>ISO/IEC JTC 1/SC 27</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>3</edition>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This document specifies a conceptual model for a random bit generator for cryptographic purposes, together with the elements of this model. This document specifies the characteristics of the main elements required for both non-deterministic and deterministic random bit generators. It also establishes the security requirements for both non-deterministic and deterministic random bit generators. Techniques for statistical testing of random bit generators for the purposes of independent verification or validation and detailed designs for such generators are outside the scope of this document.</abstract>
  <status>
    <stage>60</stage>
    <substage>60</substage>
  </status>
  <copyright>
    <from>2025</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO/IEC 18031:2011/Cor 1:2014</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 18031:2011/Cor 1:2014</docidentifier>
      <date type="published">
        <on>2014-09-19</on>
      </date>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO/IEC 18031:2011</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 18031:2011</docidentifier>
      <date type="published">
        <on>2011-11-08</on>
      </date>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO/IEC 18031:2011/Amd 1:2017</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 18031:2011/Amd 1:2017</docidentifier>
      <date type="published">
        <on>2017-03-06</on>
      </date>
    </bibitem>

  </relation>
  <place>
    <city>Geneva</city>
  </place>
</bibitem><bibitem id="_af392178-cd47-4ef3-5294-770b9326f018" type="standard" schema-version="v1.5.6" anchor="iso18045">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn" type="title-intro">Information security, cybersecurity and privacy protection</title>

  
<title language="en" script="Latn" type="title-main">Evaluation criteria for IT security</title>

  
<title language="en" script="Latn" type="title-part">Requirements and methodology for IT security evaluation</title>

  
<title language="en" script="Latn" type="main">Information security, cybersecurity and privacy protection — Evaluation criteria for IT security — Requirements and methodology for IT security evaluation</title>

  
<title language="fr" script="Latn" type="title-intro">Sécurité de l’information, cybersécurité et protection de la vie privée</title>

  
<title language="fr" script="Latn" type="title-main">Critères d’évaluation pour la sécurité des technologies de l’information</title>

  
<title language="fr" script="Latn" type="title-part">Exigences et méthodologie pour l’évaluation de sécurité</title>

  
<title language="fr" script="Latn" type="main">Sécurité de l’information, cybersécurité et protection de la vie privée — Critères d’évaluation pour la sécurité des technologies de l’information — Exigences et méthodologie pour l’évaluation de sécurité</title>

  <uri type="src">https://www.iso.org/standard/88141.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:88141:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/08/81/88141.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 18045:2026</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 18045:2026(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:18045</docidentifier>
  <docnumber>18045</docnumber>
  <date type="published">
    <on>2026-05-19</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Information security, cybersecurity and privacy protection</name>

        <identifier>ISO/IEC JTC 1/SC 27</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>4</edition>
  <language>en</language>
  <language>fr</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This document specifies requirements and the minimum actions performed by an evaluator in order to conduct an evaluation using the criteria and evaluation evidence defined in the ISO/IEC 15408 series evaluation.</abstract>
  <status>
    <stage>60</stage>
    <substage>60</substage>
  </status>
  <copyright>
    <from>2026</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO/IEC 18045:2022</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 18045:2022</docidentifier>
      <date type="published">
        <on>2022-08-09</on>
      </date>
    </bibitem>

  </relation>
  <place>
    <city>Geneva</city>
  </place>
</bibitem><bibitem id="_9e6502ab-7a10-c19a-7655-3b71173fd18b" type="standard" schema-version="v1.5.6" anchor="iso19790">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn" type="title-intro">Information security, cybersecurity and privacy protection</title>

  
<title language="en" script="Latn" type="title-main">Security requirements for cryptographic modules</title>

  
<title language="en" script="Latn" type="main">Information security, cybersecurity and privacy protection — Security requirements for cryptographic modules</title>

  
<title language="fr" script="Latn" type="title-intro">Sécurité de l’information, cybersécurité et protection de la vie privée</title>

  
<title language="fr" script="Latn" type="title-main">Exigences de sécurité pour les modules cryptographiques</title>

  
<title language="fr" script="Latn" type="main">Sécurité de l’information, cybersécurité et protection de la vie privée — Exigences de sécurité pour les modules cryptographiques</title>

  <uri type="src">https://www.iso.org/standard/82423.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:82423:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/08/24/82423.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 19790:2025</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 19790:2025(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:19790</docidentifier>
  <docnumber>19790</docnumber>
  <date type="published">
    <on>2025-02-26</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Information security, cybersecurity and privacy protection</name>

        <identifier>ISO/IEC JTC 1/SC 27</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>3</edition>
  <language>en</language>
  <language>fr</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This document specifies the security requirements for a cryptographic module utilized within a security system protecting sensitive information in Information and Communication Technologies (ICT). It defines four security levels for cryptographic modules to provide for a wide spectrum of data sensitivity and a diversity of application environments. This document specifies up to four security levels for each of the 11 requirement areas with each security level increasing security over the preceding level.</abstract>
  <status>
    <stage>60</stage>
    <substage>60</substage>
  </status>
  <copyright>
    <from>2025</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO/IEC 19790:2012/Cor 1:2015</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 19790:2012/Cor 1:2015</docidentifier>
      <date type="published">
        <on>2015-09-25</on>
      </date>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO/IEC 19790:2012</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 19790:2012</docidentifier>
      <date type="published">
        <on>2012-08-09</on>
      </date>
    </bibitem>

  </relation>
  <place>
    <city>Geneva</city>
  </place>
</bibitem><bibitem id="_a7d8fa94-82c1-8c55-7905-e2720ee3e1c9" type="standard" schema-version="v1.5.6" anchor="iso27001">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn" type="title-intro">Information security, cybersecurity and privacy protection</title>

  
<title language="en" script="Latn" type="title-main">Information security management systems</title>

  
<title language="en" script="Latn" type="title-part">Requirements</title>

  
<title language="en" script="Latn" type="main">Information security, cybersecurity and privacy protection — Information security management systems — Requirements</title>

  
<title language="fr" script="Latn" type="title-intro">Sécurité de l’information, cybersécurité et protection de la vie privée</title>

  
<title language="fr" script="Latn" type="title-main">Systèmes de management de la sécurité de l’information</title>

  
<title language="fr" script="Latn" type="title-part">Exigences</title>

  
<title language="fr" script="Latn" type="main">Sécurité de l’information, cybersécurité et protection de la vie privée — Systèmes de management de la sécurité de l’information — Exigences</title>

  <uri type="src">https://www.iso.org/standard/82875.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:82875:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/08/28/82875.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 27001:2022</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 27001:2022(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:27001</docidentifier>
  <docnumber>27001</docnumber>
  <date type="published">
    <on>2022-10-25</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Information security, cybersecurity and privacy protection</name>

        <identifier>ISO/IEC JTC 1/SC 27</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>3</edition>
  <language>en</language>
  <language>fr</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This document specifies the requirements for establishing, implementing, maintaining and continually improving an information security management system within the context of the organization. This document also includes requirements for the assessment and treatment of information security risks tailored to the needs of the organization. The requirements set out in this document are generic and are intended to be applicable to all organizations, regardless of type, size or nature. Excluding any of the requirements specified in Clauses 4 to 10 is not acceptable when an organization claims conformity to this document.</abstract>
  <status>
    <stage>60</stage>
    <substage>60</substage>
  </status>
  <copyright>
    <from>2022</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO/IEC 27001:2013/Cor 1:2014</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 27001:2013/Cor 1:2014</docidentifier>
      <date type="published">
        <on>2014-09-18</on>
      </date>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO/IEC 27001:2013/Cor 2:2015</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 27001:2013/Cor 2:2015</docidentifier>
      <date type="published">
        <on>2015-11-12</on>
      </date>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem>
      <formattedref>ISO/IEC 27001:2013</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 27001:2013</docidentifier>
      <date type="published">
        <on>2013-09-25</on>
      </date>
    </bibitem>

  </relation>
  <relation type="updatedBy">
    <bibitem>
      <formattedref>ISO/IEC 27001:2022/Amd 1:2024</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 27001:2022/Amd 1:2024</docidentifier>
      <date type="published">
        <on>2024-02-23</on>
      </date>
    </bibitem>

  </relation>
  <place>
    <city>Geneva</city>
  </place>
</bibitem><bibitem anchor="opentimestamps" id="_5362a636-8f0f-9e84-7f4c-68e6494bc47b">
  <formattedref format="application/x-isodoc+xml"><em>Scalable, Trustless, Distributed Timestamping</em>, OpenTimestamps specification</formattedref>
  <docidentifier>OpenTimestamps</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="gm-t-0003-2012" id="_05cce5ac-1d34-e16f-445d-422e79046f43">
  <formattedref format="application/x-isodoc+xml"><em>SM2 Elliptic Curve Public Key Cryptography Algorithm</em>, Chinese cryptographic standard</formattedref>
  <docidentifier>GM/T 0003-2012</docidentifier>
  <docnumber>0003</docnumber>
  <date type="published">
    <on>2012</on>
  </date>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="gm-t-0005-2010" id="_0b975335-cdf5-2a22-5204-bd84a5968bd6">
  <formattedref format="application/x-isodoc+xml"><em>SM3 Cryptographic Hash Algorithm</em>, Chinese cryptographic standard</formattedref>
  <docidentifier>GM/T 0005-2010</docidentifier>
  <docnumber>0005</docnumber>
  <date type="published">
    <on>2010</on>
  </date>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="jsonschema" id="_8d7985b0-888f-ad05-f315-6383a67ff8e7">
  <formattedref format="application/x-isodoc+xml">IETF Internet-Draft, 2018</formattedref>
  <docidentifier>JSON Schema Specification (Draft 7)</docidentifier>
  <docnumber>7)</docnumber>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="pkcs10" id="_6d3beb85-cb46-0f4b-4a74-768462b7cf77">
  <formattedref format="application/x-isodoc+xml"><em>Certification Request Syntax Specification</em>, RFC 2986, IETF, 2000</formattedref>
  <docidentifier>PKCS #10 v1.7</docidentifier>
  <docnumber>10 v1.7</docnumber>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="pkcs11" id="_39f50b87-e233-6c25-47b2-76e9f5193bc5">
  <formattedref format="application/x-isodoc+xml"><em>Cryptographic Token Interface Standard</em>, OASIS, 2020</formattedref>
  <docidentifier>PKCS #11 v3.0</docidentifier>
  <docnumber>11 v3.0</docnumber>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="bip340" id="_1565e9c1-6906-5da0-b522-3b6854210530">
  <formattedref format="application/x-isodoc+xml"><em>Taproot: Schnorr Signatures for SegWit v1</em>, Bitcoin Improvement Proposal, 2020</formattedref>
  <docidentifier>BIP 340</docidentifier>
  <docnumber>340</docnumber>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="espr" id="_797cd504-9a74-478e-757d-a31d12da9c15">
  <formattedref format="application/x-isodoc+xml"><em>Ecodesign for Sustainable Products Regulation</em>, European Parliament and Council, 2024</formattedref>
  <docidentifier>Regulation (EU) 2024/1781</docidentifier>
  <docnumber>2024/1781</docnumber>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem id="_76e02849-9ca2-e828-31f0-36404e327b8a" type="standard" schema-version="v1.5.6" anchor="rfc3986">
  <fetched>2026-08-18</fetched>
  
<title type="main">Uniform Resource Identifier (URI): Generic Syntax</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc3986</uri>
  <docidentifier type="IETF" primary="true">RFC 3986</docidentifier>
  <docidentifier type="DOI">10.17487/RFC3986</docidentifier>
  <docnumber>RFC3986</docnumber>
  <date type="published">
    <on>2005-01</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Berners-Lee</surname>          <completename language="en" script="Latn">T. Berners-Lee</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">R.</formatted-initials>          <surname language="en" script="Latn">Fielding</surname>          <completename language="en" script="Latn">R. Fielding</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">L.</formatted-initials>          <surname language="en" script="Latn">Masinter</surname>          <completename language="en" script="Latn">L. Masinter</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_551479e9-1748-3d0b-339c-68e3418e9970">A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>INTERNET STANDARD</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC1738</formattedref>
      <docidentifier type="IETF" primary="true">RFC1738</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>STD</title>

    <number>66</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>3986</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>Internet protocol</vocab>
  </keyword>
  <keyword>
    <vocab>IP</vocab>
  </keyword>
  <keyword>
    <vocab>uniform resource identifier</vocab>
  </keyword>
  <keyword>
    <vocab>URI</vocab>
  </keyword>
  <keyword>
    <vocab>www</vocab>
  </keyword>
  <keyword>
    <vocab>world wide web</vocab>
  </keyword>
</bibitem><bibitem id="_9dfd1cda-45f6-24d4-7246-41955efd72e7" type="standard" schema-version="v1.5.6" anchor="rfc4949">
  <fetched>2026-08-18</fetched>
  
<title type="main">Internet Security Glossary, Version 2</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc4949</uri>
  <docidentifier type="IETF" primary="true">RFC 4949</docidentifier>
  <docidentifier type="DOI">10.17487/RFC4949</docidentifier>
  <docnumber>RFC4949</docnumber>
  <date type="published">
    <on>2007-08</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">R.</formatted-initials>          <surname language="en" script="Latn">Shirey</surname>          <completename language="en" script="Latn">R. Shirey</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_c2b119ad-63f3-9765-ac0d-03ac52de341f">This Glossary provides definitions, abbreviations, and explanations of terminology for information system security.  The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026).  The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; © use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed.  This memo provides information for the Internet community.</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <series>
    
<title>FYI</title>

    <number>36</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>4949</number>
  </series>
  <series type="stream">
    
<title>INDEPENDENT</title>

  </series>
  <keyword>
    <vocab>abbreviation</vocab>
  </keyword>
  <keyword>
    <vocab>clarity</vocab>
  </keyword>
  <keyword>
    <vocab>definition</vocab>
  </keyword>
  <keyword>
    <vocab>dictionary</vocab>
  </keyword>
  <keyword>
    <vocab>language</vocab>
  </keyword>
  <keyword>
    <vocab>punctuation</vocab>
  </keyword>
  <keyword>
    <vocab>synonym</vocab>
  </keyword>
  <keyword>
    <vocab>terminology</vocab>
  </keyword>
  <keyword>
    <vocab>writing</vocab>
  </keyword>
</bibitem><bibitem id="_e0a77e59-30e1-58cc-63df-5c6cb4d678fd" type="standard" schema-version="v1.5.6" anchor="rfc5280">
  <fetched>2026-08-18</fetched>
  
<title type="main">Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc5280</uri>
  <docidentifier type="IETF" primary="true">RFC 5280</docidentifier>
  <docidentifier type="DOI">10.17487/RFC5280</docidentifier>
  <docnumber>RFC5280</docnumber>
  <date type="published">
    <on>2008-05</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">D.</formatted-initials>          <surname language="en" script="Latn">Cooper</surname>          <completename language="en" script="Latn">D. Cooper</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Santesson</surname>          <completename language="en" script="Latn">S. Santesson</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Farrell</surname>          <completename language="en" script="Latn">S. Farrell</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Boeyen</surname>          <completename language="en" script="Latn">S. Boeyen</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">R.</formatted-initials>          <surname language="en" script="Latn">Housley</surname>          <completename language="en" script="Latn">R. Housley</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">W.</formatted-initials>          <surname language="en" script="Latn">Polk</surname>          <completename language="en" script="Latn">W. Polk</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Public-Key Infrastructure (X.509)</name>

        <identifier>pkix</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_c4f85510-575a-ceb2-a6c7-7495b3d930c4">This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet.  An overview of this approach and model is provided as an introduction.  The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms.  Standard certificate extensions are described and two Internet-specific extensions are defined.  A set of required certificate extensions is specified.  The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions.  An algorithm for X.509 certification path validation is described.  An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>5280</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>X.509 v3</vocab>
  </keyword>
  <keyword>
    <vocab>X.509 v2</vocab>
  </keyword>
  <keyword>
    <vocab>certificate extensions</vocab>
  </keyword>
</bibitem><bibitem id="_49869b2a-6e52-b373-a2f2-aff83e5be82f" type="standard" schema-version="v1.5.6" anchor="rfc6960">
  <fetched>2026-08-18</fetched>
  
<title type="main">X.509 Internet Public Key Infrastructure Online Certificate Status Protocol — OCSP</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6960</uri>
  <docidentifier type="IETF" primary="true">RFC 6960</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6960</docidentifier>
  <docnumber>RFC6960</docnumber>
  <date type="published">
    <on>2013-06</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Santesson</surname>          <completename language="en" script="Latn">S. Santesson</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">M.</formatted-initials>          <surname language="en" script="Latn">Myers</surname>          <completename language="en" script="Latn">M. Myers</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">R.</formatted-initials>          <surname language="en" script="Latn">Ankney</surname>          <completename language="en" script="Latn">R. Ankney</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">A.</formatted-initials>          <surname language="en" script="Latn">Malpani</surname>          <completename language="en" script="Latn">A. Malpani</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Galperin</surname>          <completename language="en" script="Latn">S. Galperin</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Adams</surname>          <completename language="en" script="Latn">C. Adams</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Public-Key Infrastructure (X.509)</name>

        <identifier>pkix</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_0645f52e-58e6-989c-db4d-20e9919161c6">This document specifies a protocol useful in determining the current status of a digital certificate without requiring Certificate Revocation Lists (CRLs).  Additional mechanisms addressing PKIX operational requirements are specified in separate documents.  This document obsoletes RFCs 2560 and 6277.  It also updates RFC 5912.</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC5912</formattedref>
      <docidentifier type="IETF" primary="true">RFC5912</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>6960</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>PKIX</vocab>
  </keyword>
  <keyword>
    <vocab>digital security</vocab>
  </keyword>
  <keyword>
    <vocab>ocsp</vocab>
  </keyword>
</bibitem><bibitem id="_17c14866-1957-5df0-59f3-b978e59c7b3e" type="standard" schema-version="v1.5.6" anchor="rfc6962">
  <fetched>2026-08-18</fetched>
  
<title type="main">Certificate Transparency</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6962</uri>
  <docidentifier type="IETF" primary="true">RFC 6962</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6962</docidentifier>
  <docnumber>RFC6962</docnumber>
  <date type="published">
    <on>2013-06</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Laurie</surname>          <completename language="en" script="Latn">B. Laurie</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">A.</formatted-initials>          <surname language="en" script="Latn">Langley</surname>          <completename language="en" script="Latn">A. Langley</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">E.</formatted-initials>          <surname language="en" script="Latn">Kasper</surname>          <completename language="en" script="Latn">E. Kasper</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_67b6db2b-18fe-0b1e-e4aa-9cd74f063d37">This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</p>

    <p id="_fdb442e4-fa57-8688-e815-c46045e082cc">Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</p>

  </abstract>
  <status>
    <stage>EXPERIMENTAL</stage>
  </status>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC9162</formattedref>
      <docidentifier type="IETF" primary="true">RFC9162</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>6962</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>TLS certificates</vocab>
  </keyword>
</bibitem><bibitem id="_9b9b4fe6-ade4-8133-9090-fb8387cb17ed" type="standard" schema-version="v1.5.6" anchor="rfc7515">
  <fetched>2026-08-18</fetched>
  
<title type="main">JSON Web Signature (JWS)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc7515</uri>
  <docidentifier type="IETF" primary="true">RFC 7515</docidentifier>
  <docidentifier type="DOI">10.17487/RFC7515</docidentifier>
  <docnumber>RFC7515</docnumber>
  <date type="published">
    <on>2015-05</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">M.</formatted-initials>          <surname language="en" script="Latn">Jones</surname>          <completename language="en" script="Latn">M. Jones</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">J.</formatted-initials>          <surname language="en" script="Latn">Bradley</surname>          <completename language="en" script="Latn">J. Bradley</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">N.</formatted-initials>          <surname language="en" script="Latn">Sakimura</surname>          <completename language="en" script="Latn">N. Sakimura</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Javascript Object Signing and Encryption</name>

        <identifier>jose</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_dbde9c5f-a16f-623a-caad-708733066f91">JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures.  Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification.  Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>7515</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>JavaScript Object Notation</vocab>
  </keyword>
  <keyword>
    <vocab>JSON</vocab>
  </keyword>
  <keyword>
    <vocab>JSON Object Signing and Encryption</vocab>
  </keyword>
  <keyword>
    <vocab>JOSE</vocab>
  </keyword>
  <keyword>
    <vocab>JSON Web Signature</vocab>
  </keyword>
  <keyword>
    <vocab>JWS</vocab>
  </keyword>
  <keyword>
    <vocab>JSON Web Encryption</vocab>
  </keyword>
  <keyword>
    <vocab>JWE</vocab>
  </keyword>
  <keyword>
    <vocab>JSON Web Key</vocab>
  </keyword>
  <keyword>
    <vocab>JWK</vocab>
  </keyword>
  <keyword>
    <vocab>JSON Web Algorithms</vocab>
  </keyword>
  <keyword>
    <vocab>JWA</vocab>
  </keyword>
</bibitem><bibitem id="_770493af-41d9-0dd5-1a02-66c1a964d461" type="standard" schema-version="v1.5.6" anchor="rfc8032">
  <fetched>2026-08-18</fetched>
  
<title type="main">Edwards-Curve Digital Signature Algorithm (EdDSA)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8032</uri>
  <docidentifier type="IETF" primary="true">RFC 8032</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8032</docidentifier>
  <docnumber>RFC8032</docnumber>
  <date type="published">
    <on>2017-01</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Josefsson</surname>          <completename language="en" script="Latn">S. Josefsson</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">I.</formatted-initials>          <surname language="en" script="Latn">Liusvaara</surname>          <completename language="en" script="Latn">I. Liusvaara</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_8a4ed966-9296-2613-83c2-1ad2b1a2dda5">This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA).  The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves.  An example implementation and test vectors are provided.</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>8032</number>
  </series>
  <series type="stream">
    
<title>IRTF</title>

  </series>
  <keyword>
    <vocab>signature</vocab>
  </keyword>
  <keyword>
    <vocab>digital signature</vocab>
  </keyword>
  <keyword>
    <vocab>EdDSA</vocab>
  </keyword>
</bibitem><bibitem id="_4fe1302f-43f4-828a-98d8-3be20129c388" type="standard" schema-version="v1.5.6" anchor="rfc8152">
  <fetched>2026-08-18</fetched>
  
<title type="main">CBOR Object Signing and Encryption (COSE)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8152</uri>
  <docidentifier type="IETF" primary="true">RFC 8152</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8152</docidentifier>
  <docnumber>RFC8152</docnumber>
  <date type="published">
    <on>2017-07</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">J.</formatted-initials>          <surname language="en" script="Latn">Schaad</surname>          <completename language="en" script="Latn">J. Schaad</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>CBOR Object Signing and Encryption</name>

        <identifier>cose</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_c8f87d45-db47-df90-dead-5d7399fe90c2">Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined for this data format.  This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC9052</formattedref>
      <docidentifier type="IETF" primary="true">RFC9052</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC9053</formattedref>
      <docidentifier type="IETF" primary="true">RFC9053</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>8152</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>CoAP</vocab>
  </keyword>
  <keyword>
    <vocab>ECC</vocab>
  </keyword>
  <keyword>
    <vocab>Elliptic Curve</vocab>
  </keyword>
</bibitem><bibitem id="_5a5dce39-a7fe-e48f-2d4e-30b64b6bb159" type="standard" schema-version="v1.5.6" anchor="xmss">
  <fetched>2026-08-18</fetched>
  
<title type="main">XMSS: eXtended Merkle Signature Scheme</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8391</uri>
  <docidentifier type="IETF" primary="true">RFC 8391</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8391</docidentifier>
  <docnumber>RFC8391</docnumber>
  <date type="published">
    <on>2018-05</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">A.</formatted-initials>          <surname language="en" script="Latn">Huelsing</surname>          <completename language="en" script="Latn">A. Huelsing</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">D.</formatted-initials>          <surname language="en" script="Latn">Butin</surname>          <completename language="en" script="Latn">D. Butin</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Gazdag</surname>          <completename language="en" script="Latn">S. Gazdag</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">J.</formatted-initials>          <surname language="en" script="Latn">Rijneveld</surname>          <completename language="en" script="Latn">J. Rijneveld</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">A.</formatted-initials>          <surname language="en" script="Latn">Mohaisen</surname>          <completename language="en" script="Latn">A. Mohaisen</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_39d9d402-d9ec-9413-c575-95a248e9b7c1">This note describes the eXtended Merkle Signature Scheme (XMSS), a hash-based digital signature system that is based on existing descriptions in scientific literature.  This note specifies Winternitz One-Time Signature Plus (WOTS+), a one-time signature scheme; XMSS, a single-tree scheme; and XMSS^MT, a multi-tree variant of XMSS.  Both XMSS and XMSS^MT use WOTS+ as a main building block.  XMSS provides cryptographic digital signatures without relying on the conjectured hardness of mathematical problems.  Instead, it is proven that it only relies on the properties of cryptographic hash functions.  XMSS provides strong security guarantees and is even secure when the collision resistance of the underlying hash function is broken.  It is suitable for compact implementations, is relatively simple to implement, and naturally resists side-channel attacks.  Unlike most other signature systems, hash-based signatures can so far withstand known attacks using quantum computers.</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>8391</number>
  </series>
  <series type="stream">
    
<title>IRTF</title>

  </series>
  <keyword>
    <vocab>Digital signature</vocab>
  </keyword>
  <keyword>
    <vocab>cryptography</vocab>
  </keyword>
  <keyword>
    <vocab>post-quantum cryptography</vocab>
  </keyword>
  <keyword>
    <vocab>Hash-based signatures</vocab>
  </keyword>
  <keyword>
    <vocab>Merkle signatures</vocab>
  </keyword>
  <keyword>
    <vocab>Merkle tree</vocab>
  </keyword>
  <keyword>
    <vocab>hash function</vocab>
  </keyword>
  <keyword>
    <vocab>Winternitz</vocab>
  </keyword>
  <keyword>
    <vocab>Winternitz one-time signature scheme</vocab>
  </keyword>
  <keyword>
    <vocab>WOTS</vocab>
  </keyword>
  <keyword>
    <vocab>W-OTS</vocab>
  </keyword>
  <keyword>
    <vocab>WOTS+</vocab>
  </keyword>
  <keyword>
    <vocab>W-OTS+</vocab>
  </keyword>
  <keyword>
    <vocab>XMSS-MT</vocab>
  </keyword>
  <keyword>
    <vocab>multi-tree XMSS</vocab>
  </keyword>
</bibitem><bibitem id="_c8d0641a-5384-456f-e61e-32bf5c06511b" type="standard" schema-version="v1.5.6" anchor="rfc8446">
  <fetched>2026-08-18</fetched>
  
<title type="main">The Transport Layer Security (TLS) Protocol Version 1.3</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8446</uri>
  <docidentifier type="IETF" primary="true">RFC 8446</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8446</docidentifier>
  <docnumber>RFC8446</docnumber>
  <date type="published">
    <on>2018-08</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">E.</formatted-initials>          <surname language="en" script="Latn">Rescorla</surname>          <completename language="en" script="Latn">E. Rescorla</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Transport Layer Security</name>

        <identifier>tls</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_16ad18e5-8871-ea62-a98f-0bb3b28ecaa8">This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</p>

    <p id="_50580296-2b3e-6513-7a0d-6550d6407f91">This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC5705</formattedref>
      <docidentifier type="IETF" primary="true">RFC5705</docidentifier>
    </bibitem>

  </relation>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC6066</formattedref>
      <docidentifier type="IETF" primary="true">RFC6066</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC9846</formattedref>
      <docidentifier type="IETF" primary="true">RFC9846</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>8446</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>international data algorithm</vocab>
  </keyword>
  <keyword>
    <vocab>symmetric</vocab>
  </keyword>
  <keyword>
    <vocab>transport protocol layer</vocab>
  </keyword>
  <keyword>
    <vocab>authentication</vocab>
  </keyword>
  <keyword>
    <vocab>privacy</vocab>
  </keyword>
</bibitem><bibitem id="_32f8f3d5-5689-3f2f-dbd7-301da71278bf" type="standard" schema-version="v1.5.6" anchor="lersh">
  <fetched>2026-08-18</fetched>
  
<title type="main">Leighton-Micali Hash-Based Signatures</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8554</uri>
  <docidentifier type="IETF" primary="true">RFC 8554</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8554</docidentifier>
  <docnumber>RFC8554</docnumber>
  <date type="published">
    <on>2019-04</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">D.</formatted-initials>          <surname language="en" script="Latn">McGrew</surname>          <completename language="en" script="Latn">D. McGrew</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">M.</formatted-initials>          <surname language="en" script="Latn">Curcio</surname>          <completename language="en" script="Latn">M. Curcio</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Fluhrer</surname>          <completename language="en" script="Latn">S. Fluhrer</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_36ccd37b-0d86-4da4-b511-aa29b8b1f666">This note describes a digital-signature system based on cryptographic hash functions, following the seminal work in this area of Lamport, Diffie, Winternitz, and Merkle, as adapted by Leighton and Micali in 1995. It specifies a one-time signature scheme and a general signature scheme. These systems provide asymmetric authentication without using large integer mathematics and can achieve a high security level. They are suitable for compact implementations, are relatively simple to implement, and are naturally resistant to side-channel attacks. Unlike many other signature systems, hash-based signatures would still be secure even if it proves feasible for an attacker to build a quantum computer.</p>

    <p id="_17ec64a3-e013-7cad-4457-995e6e6267bf">This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF. This has been reviewed by many researchers, both in the research group and outside of it. The Acknowledgements section lists many of them.</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>8554</number>
  </series>
  <series type="stream">
    
<title>IRTF</title>

  </series>
  <keyword>
    <vocab>LMS</vocab>
  </keyword>
  <keyword>
    <vocab>HSS</vocab>
  </keyword>
  <keyword>
    <vocab>stateful</vocab>
  </keyword>
</bibitem><bibitem id="_120b75d8-c1a8-c16f-ca62-c44eeeec9d51" type="standard" schema-version="v1.5.6" anchor="rfc8785">
  <fetched>2026-08-18</fetched>
  
<title type="main">JSON Canonicalization Scheme (JCS)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8785</uri>
  <docidentifier type="IETF" primary="true">RFC 8785</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8785</docidentifier>
  <docnumber>RFC8785</docnumber>
  <date type="published">
    <on>2020-06</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">A.</formatted-initials>          <surname language="en" script="Latn">Rundgren</surname>          <completename language="en" script="Latn">A. Rundgren</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Jordan</surname>          <completename language="en" script="Latn">B. Jordan</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Erdtman</surname>          <completename language="en" script="Latn">S. Erdtman</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_62221d35-dbad-fc92-247f-bcc4793c5c7e">Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the “wire” while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</p>

    <p id="_86e35fea-cb92-149a-1e31-e7e5c3e745a8">This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>8785</number>
  </series>
  <series type="stream">
    
<title>INDEPENDENT</title>

  </series>
  <keyword>
    <vocab>JSON</vocab>
  </keyword>
  <keyword>
    <vocab>ECMAScript</vocab>
  </keyword>
  <keyword>
    <vocab>Signatures</vocab>
  </keyword>
  <keyword>
    <vocab>Cryptography</vocab>
  </keyword>
  <keyword>
    <vocab>Canonicalization</vocab>
  </keyword>
</bibitem><bibitem id="_16fefa65-99fc-685e-a946-60c082a243bd" type="standard" schema-version="v1.5.6" anchor="rfc8949">
  <fetched>2026-08-18</fetched>
  
<title type="main">Concise Binary Object Representation (CBOR)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8949</uri>
  <docidentifier type="IETF" primary="true">RFC 8949</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8949</docidentifier>
  <docnumber>RFC8949</docnumber>
  <date type="published">
    <on>2020-12</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Bormann</surname>          <completename language="en" script="Latn">C. Bormann</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">P.</formatted-initials>          <surname language="en" script="Latn">Hoffman</surname>          <completename language="en" script="Latn">P. Hoffman</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Concise Binary Object Representation Maintenance and Extensions</name>

        <identifier>cbor</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_2a1b82b0-70ea-92c3-5dec-6de7085857d4">The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</p>

    <p id="_f5b2b763-b09c-c8cd-1069-83214ced1a4b">This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</p>

  </abstract>
  <status>
    <stage>INTERNET STANDARD</stage>
  </status>
  <series>
    
<title>STD</title>

    <number>94</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>8949</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>parser</vocab>
  </keyword>
  <keyword>
    <vocab>decoder</vocab>
  </keyword>
  <keyword>
    <vocab>encoder</vocab>
  </keyword>
  <keyword>
    <vocab>binary format</vocab>
  </keyword>
  <keyword>
    <vocab>data interchange format</vocab>
  </keyword>
  <keyword>
    <vocab>JSON</vocab>
  </keyword>
</bibitem><bibitem id="_099dd6b4-a184-6d37-85d3-841e28acce02" type="standard" schema-version="v1.5.6" anchor="rfc9162">
  <fetched>2026-08-18</fetched>
  
<title type="main">Certificate Transparency Version 2.0</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc9162</uri>
  <docidentifier type="IETF" primary="true">RFC 9162</docidentifier>
  <docidentifier type="DOI">10.17487/RFC9162</docidentifier>
  <docnumber>RFC9162</docnumber>
  <date type="published">
    <on>2021-12</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Laurie</surname>          <completename language="en" script="Latn">B. Laurie</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">E.</formatted-initials>          <surname language="en" script="Latn">Messeri</surname>          <completename language="en" script="Latn">E. Messeri</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">R.</formatted-initials>          <surname language="en" script="Latn">Stradling</surname>          <completename language="en" script="Latn">R. Stradling</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Public Notary Transparency</name>

        <identifier>trans</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_f37bc129-3bc9-7d6d-428b-ef78b77b8978">This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</p>

    <p id="_da2f66d6-9119-79b3-0e43-d5037642484c">This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</p>

    <p id="_be12f1a5-51c1-3ea5-9eac-ad8883106fb5">Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</p>

  </abstract>
  <status>
    <stage>EXPERIMENTAL</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>9162</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>certificates</vocab>
  </keyword>
  <keyword>
    <vocab>pkix</vocab>
  </keyword>
  <keyword>
    <vocab>tls</vocab>
  </keyword>
  <keyword>
    <vocab>website</vocab>
  </keyword>
  <keyword>
    <vocab>webpki</vocab>
  </keyword>
  <keyword>
    <vocab>browsers</vocab>
  </keyword>
</bibitem><bibitem id="_f90574a9-ca89-7ec5-0157-b6f51e16508d" type="standard" schema-version="v1.5.6" anchor="fips204">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn">Module-Lattice-Based Digital Signature Standard</title>

  <uri type="src">https://csrc.nist.gov/pubs/fips/204/final</uri>
  <uri type="doi">https://doi.org/10.6028/NIST.FIPS.204</uri>
  <docidentifier type="NIST" primary="true">NIST FIPS 204</docidentifier>
  <docidentifier type="DOI">NIST.FIPS.204</docidentifier>
  <date type="published">
    <on>2024-08-13</on>
  </date>
  <contributor>
    <role type="author"/>
    <organization>
      
<name>National Institute of Standards and Technology</name>

      <abbreviation>NIST</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <status>
    <stage>final</stage>
    <substage>active</substage>
    <iteration>final</iteration>
  </status>
  <copyright>
    <from>2024</from>
    <owner>
      <organization>
        
<name>National Institute of Standards and Technology</name>

        <abbreviation>NIST</abbreviation>
        <uri>www.nist.gov</uri>
      </organization>
    </owner>
  </copyright>
  <place>
    <city>Gaithersburg</city>
    <region iso="MD"/>
  </place>
  <keyword>
    <vocab>cryptography</vocab>
  </keyword>
  <keyword>
    <vocab>digital signatures</vocab>
  </keyword>
  <keyword>
    <vocab>Federal Information Processing Standards</vocab>
  </keyword>
  <keyword>
    <vocab>lattice</vocab>
  </keyword>
  <keyword>
    <vocab>post-quantum</vocab>
  </keyword>
  <keyword>
    <vocab>public-key cryptography</vocab>
  </keyword>
</bibitem><bibitem id="_66ebee67-9370-16ec-d647-e8e8e7ddf380" type="standard" schema-version="v1.5.6" anchor="fips205">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn">Stateless Hash-Based Digital Signature Standard</title>

  <uri type="src">https://csrc.nist.gov/pubs/fips/205/final</uri>
  <uri type="doi">https://doi.org/10.6028/NIST.FIPS.205</uri>
  <docidentifier type="NIST" primary="true">NIST FIPS 205</docidentifier>
  <docidentifier type="DOI">NIST.FIPS.205</docidentifier>
  <date type="published">
    <on>2024-08-13</on>
  </date>
  <contributor>
    <role type="author"/>
    <organization>
      
<name>National Institute of Standards and Technology</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <status>
    <stage>final</stage>
    <substage>active</substage>
    <iteration>final</iteration>
  </status>
  <copyright>
    <from>2024</from>
    <owner>
      <organization>
        
<name>National Institute of Standards and Technology</name>

        <abbreviation>NIST</abbreviation>
        <uri>www.nist.gov</uri>
      </organization>
    </owner>
  </copyright>
  <place>
    <city>Gaithersburg</city>
    <region iso="MD"/>
  </place>
  <keyword>
    <vocab>computer security</vocab>
  </keyword>
  <keyword>
    <vocab>cryptography</vocab>
  </keyword>
  <keyword>
    <vocab>digital signatures</vocab>
  </keyword>
  <keyword>
    <vocab>Federal Information Processing Standards</vocab>
  </keyword>
  <keyword>
    <vocab>hash-based signatures</vocab>
  </keyword>
  <keyword>
    <vocab>post-quantum</vocab>
  </keyword>
  <keyword>
    <vocab>public-key cryptography</vocab>
  </keyword>
</bibitem><bibitem id="_14a4ca58-02c1-b37b-7ada-b7ccdce1413a" type="standard" schema-version="v1.5.6" anchor="fips186-4">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn">Digital Signature Standard (DSS)</title>

  <uri type="src">https://csrc.nist.gov/pubs/fips/186-4/final</uri>
  <uri type="doi">https://doi.org/10.6028/NIST.FIPS.186-4</uri>
  <docidentifier type="NIST" primary="true">NIST FIPS 186-4</docidentifier>
  <docidentifier type="DOI">NIST.FIPS.186-4</docidentifier>
  <date type="published">
    <on>2013-07-19</on>
  </date>
  <date type="obsoleted">
    <on>2024-02-03</on>
  </date>
  <contributor>
    <role type="author"/>
    <organization>
      
<name>National Institute of Standards and Technology</name>

    </organization>
  </contributor>
  <edition>Revision 4</edition>
  <language>en</language>
  <script>Latn</script>
  <status>
    <stage>final</stage>
    <substage>withdrawn</substage>
    <iteration>final</iteration>
  </status>
  <copyright>
    <from>2013</from>
    <owner>
      <organization>
        
<name>National Institute of Standards and Technology</name>

        <abbreviation>NIST</abbreviation>
        <uri>www.nist.gov</uri>
      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <description language="en" script="Latn">supersedes</description>
    <bibitem>
      <formattedref>NIST FIPS 186-4</formattedref>
      <uri type="src">https://csrc.nist.gov/pubs/fips/186-3/final</uri>
      <docidentifier type="NIST" primary="true">NIST FIPS 186-4</docidentifier>
    </bibitem>

  </relation>
  <relation type="updates">
    <bibitem>
      <formattedref>NIST FIPS 186-4</formattedref>
      <uri type="src">https://csrc.nist.gov/pubs/fips/186-5/final</uri>
      <docidentifier type="NIST" primary="true">NIST FIPS 186-4</docidentifier>
    </bibitem>

  </relation>
  <place>
    <city>Gaithersburg</city>
    <region iso="MD"/>
  </place>
  <keyword>
    <vocab>cryptography</vocab>
  </keyword>
  <keyword>
    <vocab>Digital Signature Algorithm</vocab>
  </keyword>
  <keyword>
    <vocab>digital signatures</vocab>
  </keyword>
  <keyword>
    <vocab>Elliptic Curve Digital Signature Algorithm</vocab>
  </keyword>
  <keyword>
    <vocab>Federal Information Processing Standard</vocab>
  </keyword>
  <keyword>
    <vocab>computer security</vocab>
  </keyword>
  <keyword>
    <vocab>public key cryptography</vocab>
  </keyword>
</bibitem><bibitem id="_cbeb2143-586a-e99f-ce2e-d50785e1804e" type="standard" schema-version="v1.5.6" anchor="nist-sp800-57">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn">Recommendation for Key Management — Part 1 – General</title>

  <uri type="src">https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final</uri>
  <uri type="doi">https://doi.org/10.6028/NIST.SP.800-57pt1r5</uri>
  <docidentifier type="NIST" primary="true">NIST SP 800-57pt1r5</docidentifier>
  <docidentifier type="DOI">NIST.SP.800-57pt1r5</docidentifier>
  <date type="published">
    <on>2020-05-04</on>
  </date>
  <date type="issued">
    <on>2020-05-01</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Elaine</forename>          <surname language="en" script="Latn">Barker</surname>          <completename language="en" script="Latn">Elaine B. Barker</completename>       </name>

      <affiliation>
        <organization>
          
<name>National Institute of Standards and Technology</name>

          <abbreviation>NIST</abbreviation>
        </organization>
      </affiliation>
    </person>
  </contributor>
  <edition>Revision 5</edition>
  <language>en</language>
  <script>Latn</script>
  <status>
    <stage>final</stage>
    <substage>active</substage>
    <iteration>final</iteration>
  </status>
  <copyright>
    <from>2020</from>
    <owner>
      <organization>
        
<name>National Institute of Standards and Technology</name>

        <abbreviation>NIST</abbreviation>
        <uri>www.nist.gov</uri>
      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <description language="en" script="Latn">supersedes</description>
    <bibitem>
      <formattedref>NIST SP 800-57pt1r5</formattedref>
      <uri type="src">https://csrc.nist.gov/pubs/sp/800/57/pt1/r4/final</uri>
      <docidentifier type="NIST" primary="true">NIST SP 800-57pt1r5</docidentifier>
    </bibitem>

  </relation>
  <place>
    <city>Gaithersburg</city>
    <region iso="MD"/>
  </place>
  <keyword>
    <vocab>archive</vocab>
  </keyword>
  <keyword>
    <vocab>assurances</vocab>
  </keyword>
  <keyword>
    <vocab>authentication</vocab>
  </keyword>
  <keyword>
    <vocab>authorization</vocab>
  </keyword>
  <keyword>
    <vocab>availability</vocab>
  </keyword>
  <keyword>
    <vocab>backup</vocab>
  </keyword>
  <keyword>
    <vocab>compromise</vocab>
  </keyword>
  <keyword>
    <vocab>confidentiality</vocab>
  </keyword>
  <keyword>
    <vocab>cryptanalysis</vocab>
  </keyword>
  <keyword>
    <vocab>cryptographic key</vocab>
  </keyword>
  <keyword>
    <vocab>cryptographic module</vocab>
  </keyword>
  <keyword>
    <vocab>digital signature</vocab>
  </keyword>
  <keyword>
    <vocab>hash function</vocab>
  </keyword>
  <keyword>
    <vocab>key agreement</vocab>
  </keyword>
  <keyword>
    <vocab>key information</vocab>
  </keyword>
  <keyword>
    <vocab>key-inventory management</vocab>
  </keyword>
  <keyword>
    <vocab>key management</vocab>
  </keyword>
  <keyword>
    <vocab>key management policy</vocab>
  </keyword>
  <keyword>
    <vocab>key recovery</vocab>
  </keyword>
  <keyword>
    <vocab>key transport</vocab>
  </keyword>
  <keyword>
    <vocab>originator-usage period</vocab>
  </keyword>
  <keyword>
    <vocab>private key</vocab>
  </keyword>
  <keyword>
    <vocab>public key</vocab>
  </keyword>
  <keyword>
    <vocab>recipient-usage period</vocab>
  </keyword>
  <keyword>
    <vocab>secret key</vocab>
  </keyword>
  <keyword>
    <vocab>split knowledge</vocab>
  </keyword>
  <keyword>
    <vocab>trust anchor</vocab>
  </keyword>
</bibitem><bibitem id="_524dd45e-3953-f29d-91ce-a9c308c313a0" type="standard" schema-version="v1.5.6" anchor="nist-sp800-131a">
  <fetched>2026-08-18</fetched>
  
<title language="en" script="Latn">Transitioning the Use of Cryptographic Algorithms and Key Lengths</title>

  <uri type="src">https://csrc.nist.gov/pubs/sp/800/131/a/r2/final</uri>
  <uri type="doi">https://doi.org/10.6028/NIST.SP.800-131Ar2</uri>
  <docidentifier type="NIST" primary="true">NIST SP 800-131Ar2</docidentifier>
  <docidentifier type="DOI">NIST.SP.800-131Ar2</docidentifier>
  <date type="published">
    <on>2019-03-21</on>
  </date>
  <date type="issued">
    <on>2019-03-01</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Elaine</forename>          <surname language="en" script="Latn">Barker</surname>          <completename language="en" script="Latn">Elaine B. Barker</completename>       </name>

      <affiliation>
        <organization>
          
<name>National Institute of Standards and Technology</name>

          <abbreviation>NIST</abbreviation>
        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Allen</forename>          <surname language="en" script="Latn">Roginsky</surname>          <completename language="en" script="Latn">Allen Roginsky</completename>       </name>

      <affiliation>
        <organization>
          
<name>National Institute of Standards and Technology</name>

          <abbreviation>NIST</abbreviation>
        </organization>
      </affiliation>
    </person>
  </contributor>
  <edition>Revision 2</edition>
  <language>en</language>
  <script>Latn</script>
  <status>
    <stage>final</stage>
    <substage>active</substage>
    <iteration>final</iteration>
  </status>
  <copyright>
    <from>2019</from>
    <owner>
      <organization>
        
<name>National Institute of Standards and Technology</name>

        <abbreviation>NIST</abbreviation>
        <uri>www.nist.gov</uri>
      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <description language="en" script="Latn">supersedes</description>
    <bibitem>
      <formattedref>NIST SP 800-131Ar2</formattedref>
      <uri type="src">https://csrc.nist.gov/pubs/sp/800/131/a/r1/final</uri>
      <docidentifier type="NIST" primary="true">NIST SP 800-131Ar2</docidentifier>
    </bibitem>

  </relation>
  <place>
    <city>Gaithersburg</city>
    <region iso="MD"/>
  </place>
  <keyword>
    <vocab>cryptographic algorithm</vocab>
  </keyword>
  <keyword>
    <vocab>digital signatures</vocab>
  </keyword>
  <keyword>
    <vocab>encryption</vocab>
  </keyword>
  <keyword>
    <vocab>hash function</vocab>
  </keyword>
  <keyword>
    <vocab>key agreement</vocab>
  </keyword>
  <keyword>
    <vocab>key derivation functions</vocab>
  </keyword>
  <keyword>
    <vocab>key management</vocab>
  </keyword>
  <keyword>
    <vocab>key transport</vocab>
  </keyword>
  <keyword>
    <vocab>key wrapping</vocab>
  </keyword>
  <keyword>
    <vocab>message authentication codes</vocab>
  </keyword>
  <keyword>
    <vocab>post-quantum algorithms</vocab>
  </keyword>
  <keyword>
    <vocab>random number generation</vocab>
  </keyword>
  <keyword>
    <vocab>security strength</vocab>
  </keyword>
  <keyword>
    <vocab>transition</vocab>
  </keyword>
</bibitem><bibitem anchor="w3c-c14n" id="_a32d82d4-4661-f96f-1f9f-d705dde7d292">
  <formattedref format="application/x-isodoc+xml">W3C, 2002</formattedref>
  <docidentifier type="W3C">W3C Recommendation: Exclusive XML Canonicalization Version 1.0</docidentifier>
  <docnumber>3C Recommendation: Exclusive XML Canonicalization Version 1.0</docnumber>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="json-ld" id="_b08f1b3f-b556-e627-b2e0-b359bcd3ee3b">
  <formattedref format="application/x-isodoc+xml">W3C, 2020</formattedref>
  <docidentifier type="W3C">W3C Recommendation: JSON-LD 1.1</docidentifier>
  <docnumber>3C Recommendation: JSON-LD 1.1</docnumber>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="w3c-vc" id="_14631320-60fb-ebed-2e1f-775e69471935">
  <formattedref format="application/x-isodoc+xml">W3C, 2022</formattedref>
  <docidentifier type="W3C">W3C Recommendation: Verifiable Credentials Data Model 1.1</docidentifier>
  <docnumber>3C Recommendation: Verifiable Credentials Data Model 1.1</docnumber>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="w3c-xmldsig" id="_3fc718ca-7990-2adb-9974-773d19bc3f49">
  <formattedref format="application/x-isodoc+xml">W3C, 2013</formattedref>
  <docidentifier type="W3C">W3C Recommendation: XML Signature Syntax and Processing Version 2.0</docidentifier>
  <docnumber>3C Recommendation: XML Signature Syntax and Processing Version 2.0</docnumber>
  <language>en</language>
  <script>Latn</script>
</bibitem>









































</references></bibliography>
</metanorma>
