Register PEL encodings and SchemeRef digest
This commit is contained in:
parent
4dae7a32d2
commit
96bf3f08b3
15
include/amduat/enc/pel1_result.h
Normal file
15
include/amduat/enc/pel1_result.h
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef AMDUAT_ENC_PEL1_RESULT_H
|
||||
#define AMDUAT_ENC_PEL1_RESULT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum { PEL_ENC_EXECUTION_RESULT_V1 = 0x0103u };
|
||||
enum { AMDUAT_PEL_ENC_EXECUTION_RESULT_V1 = PEL_ENC_EXECUTION_RESULT_V1 };
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* AMDUAT_ENC_PEL1_RESULT_H */
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef AMDUAT_ENC_PEL_PROGRAM_DAG_H
|
||||
#define AMDUAT_ENC_PEL_PROGRAM_DAG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum { PEL_ENC_PROGRAM_DAG_V1 = 0x0101u };
|
||||
enum { AMDUAT_PEL_ENC_PROGRAM_DAG_V1 = PEL_ENC_PROGRAM_DAG_V1 };
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* AMDUAT_ENC_PEL_PROGRAM_DAG_H */
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef AMDUAT_ENC_PEL_TRACE_DAG_H
|
||||
#define AMDUAT_ENC_PEL_TRACE_DAG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum { PEL_ENC_TRACE_DAG_V1 = 0x0102u };
|
||||
enum { AMDUAT_PEL_ENC_TRACE_DAG_V1 = PEL_ENC_TRACE_DAG_V1 };
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* AMDUAT_ENC_PEL_TRACE_DAG_H */
|
||||
18
include/amduat/pel/enc.h
Normal file
18
include/amduat/pel/enc.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#ifndef AMDUAT_PEL_ENC_H
|
||||
#define AMDUAT_PEL_ENC_H
|
||||
|
||||
#include "amduat/enc/pel1_result.h"
|
||||
#include "amduat/enc/pel_program_dag.h"
|
||||
#include "amduat/enc/pel_trace_dag.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Umbrella header for PEL encoding profile IDs. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* AMDUAT_PEL_ENC_H */
|
||||
|
|
@ -12,6 +12,13 @@ graph mappings later without rewriting identifiers.
|
|||
- **Registry values are data.** Each entry has a descriptor row that is data
|
||||
(name, digest length, status, notes). Values are not treated as concepts.
|
||||
|
||||
## Naming conventions
|
||||
|
||||
- **Spec series** use the `/1` form (e.g. `ASL/1-CORE`, `ASL/1-STORE`).
|
||||
- **Family/registry tokens** use the compact form (e.g. `HASH/ASL1`,
|
||||
`ENC/ASL1-CORE`, `TYPE/ASL1`). This keeps registry IDs short and aligns with
|
||||
the existing hash/encoding identifiers.
|
||||
|
||||
This matches MS/1: concept handles are stable identifiers; the descriptor bytes
|
||||
are data nodes that can be hashed and referenced.
|
||||
|
||||
|
|
@ -82,6 +89,7 @@ This uses the generic registry container in `amduat/asl/registry`.
|
|||
- `registry/hash-asl1.jsonl` — ASL1 HashId assignments.
|
||||
- `registry/enc-asl1-core.jsonl` — ASL1 core encoding profile assignments.
|
||||
- `registry/type-tag.jsonl` — ASL1 TypeTag assignments.
|
||||
- `registry/enc-pel1.jsonl` — PEL encoding profile assignments.
|
||||
|
||||
## Design constraints
|
||||
|
||||
|
|
|
|||
3
registry/enc-pel1.jsonl
Normal file
3
registry/enc-pel1.jsonl
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{"registry":"ENC/PEL1","profile_id":"0x0101","handle":"amduat.enc.pel1.profile.0101@1","name":"PEL_ENC_PROGRAM_DAG_V1","version":"0x0200","status":"mandatory","spec_ref":"ENC/PEL-PROGRAM-DAG/1 v0.2.0","notes":"Canonical encoding profile for PEL/PROGRAM-DAG/1 Program Artifacts.","descriptor_sha256":"a47c2022b7e68f54a5644c3ac35397e083c22162265df4af1359379b2729063f"}
|
||||
{"registry":"ENC/PEL1","profile_id":"0x0102","handle":"amduat.enc.pel1.profile.0102@1","name":"PEL_ENC_TRACE_DAG_V1","version":"0x0100","status":"mandatory","spec_ref":"ENC/PEL-TRACE-DAG/1 v0.1.0","notes":"Canonical encoding profile for PEL/TRACE-DAG/1 Trace Artifacts.","descriptor_sha256":"7bbd936a0bcd5ff9874b9858191bcf586a3ce135b485d49c1f2249cdd081f74f"}
|
||||
{"registry":"ENC/PEL1","profile_id":"0x0103","handle":"amduat.enc.pel1.profile.0103@1","name":"PEL_ENC_EXECUTION_RESULT_V1","version":"0x0300","status":"mandatory","spec_ref":"ENC/PEL1-RESULT/1 v0.3.0","notes":"Canonical encoding profile for PEL/1 surface ExecutionResult Artifacts.","descriptor_sha256":"f74c0a796ee43fb8e4841c0523b19176cef10bf43a808678eb8ca299a34b3795"}
|
||||
55
registry/enc-pel1.schema.md
Normal file
55
registry/enc-pel1.schema.md
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# ENC/PEL1 Registry Manifest (draft)
|
||||
|
||||
This file documents the JSONL rows in `registry/enc-pel1.jsonl`. Each line is
|
||||
one entry descriptor for a single PEL encoding profile assignment. The key is
|
||||
the profile ID (a concept); the descriptor is data.
|
||||
|
||||
## Field definitions
|
||||
|
||||
- `registry`: string. Constant `"ENC/PEL1"`.
|
||||
- `profile_id`: string. Hex `u16` formatted as `0x0000`.
|
||||
- `handle`: string. Stable concept handle for this profile assignment, e.g.
|
||||
`amduat.enc.pel1.profile.0101@1`.
|
||||
- `name`: string or null. Profile name if assigned (e.g.
|
||||
`PEL_ENC_PROGRAM_DAG_V1`).
|
||||
- `version`: string. Hex `u16` encoded version from the descriptor table.
|
||||
- `status`: string. One of: `mandatory`, `reserved`, `deprecated`,
|
||||
`experimental`.
|
||||
- `spec_ref`: string. Document/version that defines the assignment.
|
||||
- `notes`: string. Short human-readable note.
|
||||
- `descriptor_sha256`: string. Lowercase hex SHA-256 digest of the canonical
|
||||
descriptor (see below).
|
||||
|
||||
## Canonical registry key
|
||||
|
||||
`profile_id` is the registry key. Its key bytes are the big-endian `u16`
|
||||
encoding defined in `ENC/ASL1-CORE` (see `amduat_enc_asl1_core_key` for the
|
||||
encoding convention).
|
||||
|
||||
## Handle naming scheme
|
||||
|
||||
Handles are opaque identifiers in the `amduat` namespace:
|
||||
|
||||
```
|
||||
amduat.enc.pel1.profile.<hex4>@1
|
||||
```
|
||||
|
||||
`hex4` is the 4-digit lowercase hex of the profile ID (zero-padded).
|
||||
|
||||
## Descriptor digest rule
|
||||
|
||||
`descriptor_sha256` is computed as SHA-256 over the UTF-8 bytes of the
|
||||
canonical JSON object with these fields **in order**:
|
||||
|
||||
```
|
||||
registry, profile_id, handle, name, version, status, spec_ref, notes
|
||||
```
|
||||
|
||||
The canonical JSON uses no extra whitespace and does **not** include the
|
||||
`descriptor_sha256` field itself.
|
||||
|
||||
## Intended use
|
||||
|
||||
- Source of truth for codegen (C tables, enums) and documentation tables.
|
||||
- `descriptor_sha256` can be treated as the stable digest for mapping entries
|
||||
into graph references or evidence tables.
|
||||
|
|
@ -1 +1,5 @@
|
|||
{"registry":"TYPE/ASL1","tag_id":"0x00000100","handle":"amduat.type.asl1.tag.00000100@1","name":"TYPE_TAG_PEL_SCHEME_DESC_1","status":"mandatory","spec_ref":"PEL/PROGRAM-DAG-DESC/1 v0.1.6","notes":"PEL scheme descriptor tag for PEL/PROGRAM-DAG-DESC/1.","descriptor_sha256":"939ebb66e4effbcd5dd74cb872f82b4216a95341309c64f3f0d13ffec5e49f5b"}
|
||||
{"registry":"TYPE/ASL1","tag_id":"0x00000101","handle":"amduat.type.asl1.tag.00000101@1","name":"TYPE_TAG_PEL_PROGRAM_DAG_1","status":"mandatory","spec_ref":"ENC/PEL-PROGRAM-DAG/1 v0.2.0","notes":"Canonical TypeTag for PEL/PROGRAM-DAG/1 Program Artifacts.","descriptor_sha256":"85c45f422bbea91898aa16922f074aeb50391190a1fed0a1083a859101c5616e"}
|
||||
{"registry":"TYPE/ASL1","tag_id":"0x00000102","handle":"amduat.type.asl1.tag.00000102@1","name":"TYPE_TAG_PEL_TRACE_DAG_1","status":"mandatory","spec_ref":"ENC/PEL-TRACE-DAG/1 v0.1.0","notes":"Canonical TypeTag for PEL/TRACE-DAG/1 Trace Artifacts.","descriptor_sha256":"e044e3d9423442c51d3a2008a090aeca5575ca5ba30293965dd40c6baa67b3d2"}
|
||||
{"registry":"TYPE/ASL1","tag_id":"0x00000103","handle":"amduat.type.asl1.tag.00000103@1","name":"TYPE_TAG_PEL1_RESULT_1","status":"mandatory","spec_ref":"ENC/PEL1-RESULT/1 v0.3.0","notes":"Canonical TypeTag for PEL/1 ExecutionResult Artifacts.","descriptor_sha256":"0e90731d9fbb4cddf4a1fae055faad66a19db33eab199e9a53db716ca07cef83"}
|
||||
{"registry":"TYPE/ASL1","tag_id":"0x00000201","handle":"amduat.type.asl1.tag.00000201@1","name":"TYPE_TAG_TGK1_EDGE_V1","status":"mandatory","spec_ref":"ENC/TGK1-EDGE/1 v0.1.0","notes":"Canonical TypeTag for TGK1 EdgeArtifacts encoded with ENC/TGK1-EDGE/1.","descriptor_sha256":"5a6c0733433544923a98317e1c3bebfc3e0fb3f9e8ec1975be3d936b417f5990"}
|
||||
|
|
|
|||
|
|
@ -659,6 +659,27 @@ In the Amduat 2.0 baseline:
|
|||
|
||||
* Engines that implement the Amduat 2.0 baseline DAG scheme MUST treat this specific `Reference` as “the” scheme identifier for `PEL/PROGRAM-DAG/1`.
|
||||
|
||||
For the baseline registry assignments:
|
||||
|
||||
```text
|
||||
TYPE_TAG_PEL_SCHEME_DESC_1.tag_id = 0x00000100
|
||||
TYPE_TAG_PEL_PROGRAM_DAG_1.tag_id = 0x00000101
|
||||
PEL_ENC_PROGRAM_DAG_V1 = 0x0101
|
||||
```
|
||||
|
||||
the canonical bytes and digest are:
|
||||
|
||||
```text
|
||||
DagSchemeDescriptorBytes_DAG_1 (hex) =
|
||||
00010000001150454c2f50524f4752414d2d4441472f310000010101010000
|
||||
|
||||
ArtifactBytes_DAG_1 (hex) =
|
||||
0100000100000000000000001f00010000001150454c2f50524f4752414d2d4441472f310000010101010000
|
||||
|
||||
digest_DAG_1 =
|
||||
c50fb2a734a5cc233c3875b70a7d96eaad374f000029771d8bef1af2cd6384dd
|
||||
```
|
||||
|
||||
### 5.3 Alternative deployments (non-baseline)
|
||||
|
||||
Other deployments MAY derive alternative scheme references from:
|
||||
|
|
|
|||
Loading…
Reference in a new issue