Skip to content

Commit 71ee20c

Browse files
committed
Add qubes.PESign
Related to QubesOS/qubes-issues#8206
1 parent 08bc162 commit 71ee20c

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

rpc/qubes.PESign

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
3+
set -x -e -o pipefail
4+
5+
CERTIFICATE="$1"
6+
[[ -z "$CERTIFICATE" ]] && { echo "Please provide certificate name"; exit 1; };
7+
8+
PAYLOAD_DIR="$(mktemp -d)"
9+
10+
cleanup() {
11+
local payload_dir="$1"
12+
if [ -n "${payload_dir}" ]; then
13+
rm -rf "${payload_dir}"
14+
fi
15+
}
16+
17+
trap "cleanup ${PAYLOAD_DIR}" EXIT
18+
19+
payload="${PAYLOAD_DIR}/payload"
20+
21+
# Limit stdin size
22+
head --bytes=100MB > "$payload"
23+
24+
# We don't allow payload being at least 100MB
25+
actual_size="$(wc -c < "$payload")"
26+
if [ "$actual_size" -eq $((100 * 1024 * 1024)) ]; then
27+
echo "Input size is at least 100MB. Aborting."
28+
exit 1
29+
fi
30+
31+
pesign -s -c "${CERTIFICATE//__/ }" -i "$payload" -o "$payload".signed
32+
33+
cat "$payload".signed

0 commit comments

Comments
 (0)