#!/bin/sh
# run_idx.sh -- GUEST-side DF-2367 evidence: drive the REAL kernel
# rijndael key schedule + the validated instrumented twin through a
# divergence matrix; all index traces land in dmesg (tag RIJNH:).
#
#   A. full 160-byte table-index traces:
#      - fixed pt, key byte 0 flipped  (key[0] -> Te0 index of t0)
#      - fixed pt, key byte 15 flipped (key[15] -> Te3 index of t3)
#      - fixed key, pt byte 0 flipped
#      - fixed key, pt byte 15 flipped
#   B. 24x8 idxr1 statistical matrix (first-round indices)
#   C. exact kernel addresses/sizes of the T-tables (nm)
#   D. aggregate timing probe (bench) key byte0 00 vs 80, 3 runs
set -e

PT=00112233445566778899aabbccddeeff
KEY=000102030405060708090a0b0c0d0e0f

echo "== A: full traces =="
/root/rijnh idx $KEY       $PT
/root/rijnh idx 800102030405060708090a0b0c0d0e0f $PT
/root/rijnh idx 000102030405060708090a0b0c0d0eff $PT
/root/rijnh idx $KEY 80112233445566778899aabbccddeeff
/root/rijnh idx $KEY 00112233445566778899aabbccdde80

echo "== B: idxr1 matrix =="
KEYS='000102030405060708090a0b0c0d0e0f 0001020304050607a64083c48b578a24 00010203040506084477fd7e0aa20639 0001020304050608e2af773789ec824e 000102030405060980e6f0f10936fe63 000102030405060a1f1e6aaa888174a71 000102030405060abd5d4551089c2ae86 000102030405060b5b9ccfcf896e13c9b 000102030405060bf9dc4a2e88ba9d5b0 000102030405060c97db94eee87e55e25 000102030405060d35bbf9eae8610e63a 000102030405060dd39a4f66d84a6305f 000102030405060e71794cdec833d2774 000102030405060f0f57fb5ab82978089 000102030405060fad36aa128812bd99e 000102030405070848b158b5b7ffd0353 0001020304050709e6e1b7c2b7e7354d7 000102030405070a84d07078c76ce3fbc 000102030405070b22bf2f47b75bb38d1 000102030405070cc0addebf274533086 000102030405070d5e9c9d1b733eebe9b 000102030405070efc8b4d8e9718a87b0 00010203040507109a69fd6116fd71085 00010203040507113848761d06e2f9f9a'
PTS='00112233445566778899aabbccddeeff 0134577acf02aabe7730f5a40a6558be 02568ac4f9e4034d664e1f78641b92dc 0378de17ea25fbed556d3a4d1e71ccfb 049a0376fde503a8448c5521e0e90a1a 05bc2628f20605a133ab70179e566c39 06de49d9a52707b922ca8b0e5bcbce58 07f06d8a86480ac811e9a60619403077'
for k in $KEYS; do
	for p in $PTS; do
		/root/rijnh idxr1 $k $p
	done
done

echo "== C: T-table kernel symbols =="
nm /boot/kernel/kernel | grep -E " [rR] (Te[0-4]|Td[0-4])$" || true

echo "== D: timing probe =="
/root/rijnh bench 200000 000102030405060708090a0b0c0d0e0f
/root/rijnh bench 200000 800102030405060708090a0b0c0d0e0f
/root/rijnh bench 200000 000102030405060708090a0b0c0d0e0f
/root/rijnh bench 200000 800102030405060708090a0b0c0d0e0f
/root/rijnh bench 200000 000102030405060708090a0b0c0d0e0f
/root/rijnh bench 200000 800102030405060708090a0b0c0d0e0f
echo "IDX RUNS DONE"
