summaryrefslogtreecommitdiffstats
path: root/scripts/gen-randstruct-seed.sh
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2022-05-03 22:55:02 +0200
committerKees Cook <keescook@chromium.org>2022-05-08 10:33:07 +0200
commitbe2b34fa9be31c60a95989f984c9a5d40cd781b6 (patch)
treea1b5f247ac20de2866d52ea68930b47268366efc /scripts/gen-randstruct-seed.sh
parentrandstruct: Split randstruct Makefile and CFLAGS (diff)
downloadlinux-be2b34fa9be31c60a95989f984c9a5d40cd781b6.tar.xz
linux-be2b34fa9be31c60a95989f984c9a5d40cd781b6.zip
randstruct: Move seed generation into scripts/basic/
To enable Clang randstruct support, move the structure layout randomization seed generation out of scripts/gcc-plugins/ into scripts/basic/ so it happens early enough that it can be used by either compiler implementation. The gcc-plugin still builds its own header file, but now does so from the common "randstruct.seed" file. Cc: linux-hardening@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20220503205503.3054173-6-keescook@chromium.org
Diffstat (limited to 'scripts/gen-randstruct-seed.sh')
-rwxr-xr-xscripts/gen-randstruct-seed.sh7
1 files changed, 7 insertions, 0 deletions
diff --git a/scripts/gen-randstruct-seed.sh b/scripts/gen-randstruct-seed.sh
new file mode 100755
index 000000000000..61017b36c464
--- /dev/null
+++ b/scripts/gen-randstruct-seed.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+SEED=$(od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n')
+echo "$SEED" > "$1"
+HASH=$(echo -n "$SEED" | sha256sum | cut -d" " -f1)
+echo "#define RANDSTRUCT_HASHED_SEED \"$HASH\"" > "$2"