Skip to content

Commit 2c35b5d

Browse files
committed
Update to fetch pcr.json and batcher.eif file
1 parent dd99b0c commit 2c35b5d

File tree

1 file changed

+21
-59
lines changed

1 file changed

+21
-59
lines changed

.github/workflows/build-eif.yml

Lines changed: 21 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -92,73 +92,35 @@ jobs:
9292
run: |
9393
nix build '.#x86_64-eif' -L || true
9494
95-
echo "=== Finding EIF in nix store ==="
96-
ls -la /nix/store/*batcher* 2>/dev/null || echo "No batcher found"
95+
EIF_DIR=$(ls -d /nix/store/*batcher-x86_64 2>/dev/null | grep -v '\.drv' | head -1)
9796
98-
EIF=$(ls -d /nix/store/*batcher-x86_64 2>/dev/null | head -1)
99-
echo "Found: $EIF"
100-
101-
if [ -z "$EIF" ]; then
102-
echo "ERROR: No EIF found in store"
97+
if [ -z "$EIF_DIR" ] || [ ! -d "$EIF_DIR" ]; then
98+
echo "ERROR: EIF directory not found"
10399
exit 1
104100
fi
105101
106-
echo "=== EIF details ==="
107-
ls -la "$EIF"
108-
file "$EIF" || true
109-
110-
echo "=== Copying EIF ==="
111-
if [ -f "$EIF" ]; then
112-
echo "EIF is a file"
113-
cp -v "$EIF" ./enclave.eif
114-
elif [ -d "$EIF" ]; then
115-
echo "EIF is a directory, contents:"
116-
ls -la "$EIF"/
117-
cp -v "$EIF"/* ./enclave.eif 2>/dev/null || cp -rv "$EIF" ./enclave-dir
118-
else
119-
echo "EIF is neither file nor directory, trying direct copy"
120-
cp -Lv "$EIF" ./enclave.eif
121-
fi
102+
echo "EIF directory: $EIF_DIR"
103+
ls -la "$EIF_DIR"/
122104
123-
echo "=== Result ==="
124-
ls -la ./enclave* || echo "No enclave files found!"
105+
cp "$EIF_DIR/batcher.eif" ./enclave.eif
106+
cp "$EIF_DIR/pcr.json" ./pcr.json
107+
108+
echo "Copied files:"
109+
ls -la ./enclave.eif ./pcr.json
125110
126111
- name: Get PCR0
127112
run: |
128-
echo "=== Approach 1: strings on EIF ==="
129-
PCR0_STRINGS=$(strings ./enclave.eif | grep -E '^[a-f0-9]{96}$' | head -1 || true)
130-
echo "Result: ${PCR0_STRINGS:-not found}"
131-
132-
echo ""
133-
echo "=== Approach 2: enclaver describe-eif (no args) ==="
134-
ENCLAVER=$(nix build '.#enclaver' --print-out-paths --no-link)
135-
cd "$(dirname ./enclave.eif)" && "${ENCLAVER}/bin/enclaver" describe-eif 2>&1 | head -20 || true
136-
PCR0_ENCLAVER=$("${ENCLAVER}/bin/enclaver" describe-eif 2>&1 | grep -oP '"PCR0":\s*"\K[a-f0-9]+' || true)
137-
echo "Result: ${PCR0_ENCLAVER:-not found}"
138-
cd -
139-
140-
echo ""
141-
echo "=== Approach 3: file info ==="
142-
file ./enclave.eif
143-
ls -la ./enclave.eif
144-
echo "First 200 bytes (hex):"
145-
xxd ./enclave.eif | head -20
146-
147-
echo ""
148-
echo "=== Using first successful result ==="
149-
PCR0="${PCR0_STRINGS:-${PCR0_ENCLAVER}}"
150-
151-
if [ -n "$PCR0" ]; then
152-
PCR0_KECCAK=$(cast keccak "0x${PCR0}")
153-
echo "PCR0: $PCR0"
154-
echo "Enclave Hash: $PCR0_KECCAK"
155-
echo "PCR0_RAW=0x${PCR0}" >> $GITHUB_ENV
156-
echo "ENCLAVE_HASH=${PCR0_KECCAK}" >> $GITHUB_ENV
157-
else
158-
echo "PCR0 not extracted - get it on EC2 with: nitro-cli describe-eif --eif-path <file>"
159-
echo "PCR0_RAW=pending" >> $GITHUB_ENV
160-
echo "ENCLAVE_HASH=pending" >> $GITHUB_ENV
161-
fi
113+
echo "=== PCR values from pcr.json ==="
114+
cat ./pcr.json
115+
116+
PCR0=$(jq -r '.PCR0' ./pcr.json)
117+
echo "PCR0: $PCR0"
118+
119+
PCR0_KECCAK=$(cast keccak "0x${PCR0}")
120+
echo "Enclave Hash: $PCR0_KECCAK"
121+
122+
echo "PCR0_RAW=0x${PCR0}" >> $GITHUB_ENV
123+
echo "ENCLAVE_HASH=${PCR0_KECCAK}" >> $GITHUB_ENV
162124
163125
- name: Build Summary
164126
run: |

0 commit comments

Comments
 (0)