Cut 1 completes the dormant MutationEnvelope contract without changing any runtime path. Bind target_id to the provisioned agent identity, require canonical UUID v4 authorization IDs, cap authorization lifetime at the fleet TTL, and add an unsigned MutationReceipt carrying the audit join. Server, Agent, and helper share the same canonical bytes, key identity, receipt digest, and Ed25519 golden vectors. Current APT/DNF and Windows execution remains untouched.
69 lines
5.5 KiB
JSON
69 lines
5.5 KiB
JSON
{
|
|
"manifest": {
|
|
"protocol_version": 1,
|
|
"operation_id": "550e8400-e29b-41d4-a716-446655440010",
|
|
"target_id": "7c0f4e2a-9b31-4d55-8a6e-1f2c3d4e5f60",
|
|
"backend": "pacman",
|
|
"operation": "install",
|
|
"resolved_actions": [
|
|
{
|
|
"kind": "package",
|
|
"identity": "zsh@5.9-2",
|
|
"payload": "{\"artifact_sha256\":\"2222222222222222222222222222222222222222222222222222222222222222\",\"execution_location\":{\"kind\":\"cache\",\"value\":\"/var/cache/redflag/zsh.pkg.tar.zst\"},\"repository\":\"core\"}"
|
|
},
|
|
{
|
|
"kind": "package",
|
|
"identity": "acl@2.3.2-1",
|
|
"payload": "{\"artifact_sha256\":\"1111111111111111111111111111111111111111111111111111111111111111\",\"execution_location\":{\"kind\":\"cache\",\"value\":\"/var/cache/redflag/acl.pkg.tar.zst\"},\"repository\":\"core\"}"
|
|
}
|
|
],
|
|
"evidence": [
|
|
{
|
|
"kind": "repository-metadata",
|
|
"digest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
|
},
|
|
{
|
|
"kind": "producer",
|
|
"digest": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
}
|
|
]
|
|
},
|
|
"authorization": {
|
|
"protocol_version": 1,
|
|
"authorization_id": "550e8400-e29b-41d4-a716-446655440011",
|
|
"manifest_hash": "",
|
|
"authority_kind": "fleet-server",
|
|
"authority_id": "redflag-prod",
|
|
"target_id": "7c0f4e2a-9b31-4d55-8a6e-1f2c3d4e5f60",
|
|
"issued_at": 1700000000,
|
|
"not_before": 1700000001,
|
|
"expires_at": 1700000600,
|
|
"decision": "allow",
|
|
"key_id": "",
|
|
"signature": ""
|
|
},
|
|
"receipt": {
|
|
"protocol_version": 1,
|
|
"operation_id": "550e8400-e29b-41d4-a716-446655440010",
|
|
"manifest_hash": "67138d0644874a3feb53f9b7777df1af01d8e8ed43678755aaef9b447b38bbf0",
|
|
"authorization_id": "550e8400-e29b-41d4-a716-446655440011",
|
|
"target_id": "7c0f4e2a-9b31-4d55-8a6e-1f2c3d4e5f60",
|
|
"backend": "pacman",
|
|
"operation": "install",
|
|
"decision": "denied",
|
|
"reason": "backend_not_migrated",
|
|
"executed": false,
|
|
"verified_actions": 0,
|
|
"exit_code": 18,
|
|
"error": "backend=pacman",
|
|
"timestamp": 1700000100
|
|
},
|
|
"test_seed": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f",
|
|
"expected_manifest_canonical_hex": "32353a726564666c61672e6d75746174696f6e2d6d616e6966657374313a3133363a35353065383430302d653239622d343164342d613731362d34343636353534343030313033363a37633066346532612d396233312d346435352d386136652d316632633364346535663630363a7061636d616e373a696e7374616c6c313a323234323a32333a726564666c61672e7265736f6c7665642d616374696f6e373a7061636b61676531313a61636c40322e332e322d313138393a7b2261727469666163745f736861323536223a2231313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131222c22657865637574696f6e5f6c6f636174696f6e223a7b226b696e64223a226361636865222c2276616c7565223a222f7661722f63616368652f726564666c61672f61636c2e706b672e7461722e7a7374227d2c227265706f7369746f7279223a22636f7265227d3233393a32333a726564666c61672e7265736f6c7665642d616374696f6e373a7061636b616765393a7a736840352e392d323138393a7b2261727469666163745f736861323536223a2232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232222c22657865637574696f6e5f6c6f636174696f6e223a7b226b696e64223a226361636865222c2276616c7565223a222f7661722f63616368652f726564666c61672f7a73682e706b672e7461722e7a7374227d2c227265706f7369746f7279223a22636f7265227d313a323130383a31363a726564666c61672e65766964656e636531393a7265706f7369746f72792d6d6574616461746136343a6262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626239363a31363a726564666c61672e65766964656e6365383a70726f647563657236343a61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161",
|
|
"expected_manifest_hash": "67138d0644874a3feb53f9b7777df1af01d8e8ed43678755aaef9b447b38bbf0",
|
|
"expected_authorization_canonical_hex": "33303a726564666c61672e6d75746174696f6e2d617574686f72697a6174696f6e313a3133363a35353065383430302d653239622d343164342d613731362d34343636353534343030313136343a3637313338643036343438373461336665623533663962373737376466316166303164386538656434333637383735356161656639623434376233386262663031323a666c6565742d73657276657231323a726564666c61672d70726f6433363a37633066346532612d396233312d346435352d386136652d31663263336434653566363031303a3137303030303030303031303a3137303030303030303131303a31373030303030363030353a616c6c6f7733323a3536343735616137353436333437346330323835646635646266326263616237",
|
|
"expected_key_id": "56475aa75463474c0285df5dbf2bcab7",
|
|
"expected_signature": "0e00c4b6e552af2e99794a5ad86827e25d2a9046822e0f287e4f231e907b6d914b6e7b09d12523378458a22388f4206d313b140d6aebdfbd26dd3db5a620c600",
|
|
"expected_receipt_canonical_hex": "32343a726564666c61672e6d75746174696f6e2d72656365697074313a3133363a35353065383430302d653239622d343164342d613731362d34343636353534343030313036343a3637313338643036343438373461336665623533663962373737376466316166303164386538656434333637383735356161656639623434376233386262663033363a35353065383430302d653239622d343164342d613731362d34343636353534343030313133363a37633066346532612d396233312d346435352d386136652d316632633364346535663630363a7061636d616e373a696e7374616c6c363a64656e69656432303a6261636b656e645f6e6f745f6d69677261746564353a66616c7365313a30323a313831343a6261636b656e643d7061636d616e31303a31373030303030313030",
|
|
"expected_receipt_digest": "ae3278be71bb142b5cb0dde16b6b84516cec514ebc247a012312ffd18dccade0"
|
|
}
|