Initial curated chimera source from a8ae5b1db07fb49926c94585e2718e5130330974
This commit is contained in:
commit
c737a37f71
531 files changed
+119270
No files matched your search
@@ -0,0 +1,90 @@
|
||||
'use strict';
|
||||
|
||||
const assert = require('node:assert/strict');
|
||||
const crypto = require('node:crypto');
|
||||
const fs = require('node:fs');
|
||||
const os = require('node:os');
|
||||
const path = require('node:path');
|
||||
const test = require('node:test');
|
||||
const { parseKstuffRouteSelectionSnapshot } = require('../../src/services/ps5-fpkg-route-selection-trace');
|
||||
|
||||
const sha = value => crypto.createHash('sha256').update(value).digest('hex');
|
||||
const lines = sample => [
|
||||
'schema=chimera.p15-a7-route-selection-metrics.v1', 'status=attached', `sample=${sample}`,
|
||||
'route nmount_dispatch=0 nmount_trap=0 nmount_emu=0',
|
||||
'dbgarm attempt=0 read_fail=0 pcb_ptr_fail=0 pcb_state_fail=0 stack_fail=0 pcb_set_fail=0 write_fail=0 armed=0 rollback_restore_fail=0 finish=0 finish_restore_fail=0',
|
||||
'mailbox total=0 fself=0 fpkg=0 npdrm=0 unhandled=0', 'fpkg verify=0 verify_emu=0', '',
|
||||
].join('\n');
|
||||
|
||||
test('A7 active preflight embeds the same strict semantic parser used by the product', async () => {
|
||||
const mod = await import('../../scripts/autonomous/p15-a7-active-preflight.mjs');
|
||||
const runtimeFingerprint = 'a'.repeat(64);
|
||||
const options = { sequence: 7, sampledAt: 1234, runtimeFingerprint };
|
||||
assert.deepEqual(
|
||||
mod.parseEmbeddedKstuffRouteSelectionSnapshot(lines(7), options),
|
||||
parseKstuffRouteSelectionSnapshot(lines(7), options),
|
||||
);
|
||||
const unsafe = `${lines(7)}unexpected=raw-kernel-data\n`;
|
||||
assert.throws(() => mod.parseEmbeddedKstuffRouteSelectionSnapshot(unsafe, options), {
|
||||
code: 'PS5_FPKG_ROUTE_SELECTION_TRACE_UNSAFE_LINE',
|
||||
});
|
||||
});
|
||||
|
||||
// PS5Upload's identity must remain independent of kstuff execution identity.
|
||||
for (const payloadIdentityCurrentBootExact of [false, true]) {
|
||||
test(`A7 file hashes and advancing counters cannot attest kstuff execution (management payload attested: ${payloadIdentityCurrentBootExact})`, async t => {
|
||||
const mod = await import('../../scripts/autonomous/p15-a7-active-preflight.mjs');
|
||||
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'chimera-a7-active-'));
|
||||
t.after(() => fs.rmSync(root, { recursive: true, force: true }));
|
||||
const manifest = Buffer.from(`\n\npldmgr_v0.4.2.elf\n${mod.EXPECTED.loaderName}\n!30000\n${mod.EXPECTED.readerName}\n!5000\netaHEN-2.6B.bin\nftpsrv.elf\nnanodns.elf\n`);
|
||||
assert.equal(sha(manifest), mod.EXPECTED.manifestSha256);
|
||||
const loader = Buffer.alloc(mod.EXPECTED.loaderSize); const reader = Buffer.alloc(mod.EXPECTED.readerSize);
|
||||
const reads = new Map([
|
||||
[`${mod.REMOTE_DIR}/autoload.txt`, manifest], [`${mod.REMOTE_DIR}/${mod.EXPECTED.loaderName}`, loader],
|
||||
[`${mod.REMOTE_DIR}/${mod.EXPECTED.readerName}`, reader], [mod.METRICS_PATH, Buffer.from(lines(4))],
|
||||
]);
|
||||
// Matching file bytes do not prove which kstuff runtime executed this boot.
|
||||
const expected = { ...mod.EXPECTED, loaderSha256: sha(loader), readerSha256: sha(reader) };
|
||||
let metricsRead = 0;
|
||||
const result = await mod.qualifyActiveRuntime({
|
||||
ftp: {
|
||||
list: async () => ['autoload.txt', mod.EXPECTED.loaderName, mod.EXPECTED.readerName, mod.EXPECTED.currentLoaderName, mod.EXPECTED.currentReaderName].map(name => ({ name })),
|
||||
download: async (source, target) => { const bytes = source === mod.METRICS_PATH ? Buffer.from(lines(++metricsRead + 3)) : reads.get(source); fs.writeFileSync(target, bytes); },
|
||||
},
|
||||
parseSnapshot: parseKstuffRouteSelectionSnapshot,
|
||||
managementSnapshot: async () => ({ engineExact: true, managementReady: true, processCoverageComplete: true, foregroundClean: true, payloadIdentityCurrentBootExact }),
|
||||
wait: async () => {}, now: (() => { let value = 1000; return () => value += 11000; })(), temporaryRoot: root, expected,
|
||||
});
|
||||
assert.equal(result.status, 'blocked');
|
||||
assert.equal(result.activeRuntimeExact, false);
|
||||
assert.equal(result.activeTransitionProven, false);
|
||||
assert.equal(result.runtime.identityStatus, 'unproven');
|
||||
assert.equal(result.runtime.traceEligible, false);
|
||||
assert.equal(result.runtime.identitySource, 'expected-build-inputs');
|
||||
assert.equal(result.evidenceContract.status, 'unavailable');
|
||||
assert.equal(result.evidenceContract.reason, 'kstuff_current_boot_execution_receipt_unavailable');
|
||||
assert.equal(result.autoload.loaderSha256, sha(loader));
|
||||
assert.equal(result.autoload.readerSha256, sha(reader));
|
||||
assert.equal(result.autoload.manifestSha256, sha(manifest));
|
||||
assert.equal(result.premetrics.continuous, true);
|
||||
assert.equal(result.launchEligible, false);
|
||||
assert.equal(result.launchRequests, 0);
|
||||
assert.equal(result.payloadLoadPerformed, false);
|
||||
assert.equal(result.consoleMutationPerformed, false);
|
||||
});
|
||||
}
|
||||
|
||||
test('A7 active preflight fails closed on stale semantic samples', async t => {
|
||||
const mod = await import('../../scripts/autonomous/p15-a7-active-preflight.mjs');
|
||||
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'chimera-a7-stale-'));
|
||||
t.after(() => fs.rmSync(root, { recursive: true, force: true }));
|
||||
const manifest = Buffer.from(`\n\npldmgr_v0.4.2.elf\n${mod.EXPECTED.loaderName}\n!30000\n${mod.EXPECTED.readerName}\n!5000\netaHEN-2.6B.bin\nftpsrv.elf\nnanodns.elf\n`);
|
||||
const loader = Buffer.alloc(mod.EXPECTED.loaderSize); const reader = Buffer.alloc(mod.EXPECTED.readerSize);
|
||||
const expected = { ...mod.EXPECTED, loaderSha256: sha(loader), readerSha256: sha(reader) };
|
||||
await assert.rejects(mod.qualifyActiveRuntime({
|
||||
ftp: {
|
||||
list: async () => ['autoload.txt', mod.EXPECTED.loaderName, mod.EXPECTED.readerName, mod.EXPECTED.currentLoaderName, mod.EXPECTED.currentReaderName].map(name => ({ name })),
|
||||
download: async (source, target) => fs.writeFileSync(target, source.endsWith('autoload.txt') ? manifest : (source === mod.METRICS_PATH ? Buffer.from(lines(8)) : source.endsWith(mod.EXPECTED.loaderName) ? loader : reader)),
|
||||
}, parseSnapshot: parseKstuffRouteSelectionSnapshot, managementSnapshot: async () => ({}), wait: async () => {}, temporaryRoot: root, expected,
|
||||
}), { code: 'P15_A7_ACTIVE_CONTINUITY' });
|
||||
});
|
||||
Reference in new issue
Block a user