diff mbox series

[RFC,security-next,3/4] hornet: Add an example lskel data extactor script

Message ID 20250321164537.16719-4-bboscaccy@linux.microsoft.com (mailing list archive)
State Under Review
Delegated to: Paul Moore
Headers show
Series Introducing Hornet LSM | expand

Commit Message

Blaise Boscaccy March 21, 2025, 4:45 p.m. UTC
This script eases lskel developments against hornet by generating the
data payload used for code signing. It extracts the data out of the
autogenerated lskel header that gets created via bpftool.

Signed-off-by: Blaise Boscaccy <bboscaccy@linux.microsoft.com>
---
 scripts/hornet/extract-skel.sh | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100755 scripts/hornet/extract-skel.sh

Comments

Jarkko Sakkinen March 22, 2025, 5:25 p.m. UTC | #1
On Fri, Mar 21, 2025 at 09:45:05AM -0700, Blaise Boscaccy wrote:
> This script eases lskel developments against hornet by generating the

1. What iskel?
2. Why hornet is here in lower case?

> data payload used for code signing. It extracts the data out of the
> autogenerated lskel header that gets created via bpftool.
> 
> Signed-off-by: Blaise Boscaccy <bboscaccy@linux.microsoft.com>
> ---
>  scripts/hornet/extract-skel.sh | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
>  create mode 100755 scripts/hornet/extract-skel.sh
> 
> diff --git a/scripts/hornet/extract-skel.sh b/scripts/hornet/extract-skel.sh
> new file mode 100755
> index 0000000000000..9ace78794b85e
> --- /dev/null
> +++ b/scripts/hornet/extract-skel.sh
> @@ -0,0 +1,29 @@
> +#!/bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +# Copyright (c) 2025 Microsoft Corporation
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of version 2 of the GNU General Public
> +# License as published by the Free Software Foundation.
> +
> +function usage() {
> +    echo "Sample script for extracting instructions and map data out of"
> +    echo "autogenerated eBPF lskel headers"
> +    echo ""
> +    echo "USAGE: header_file output_file"
> +    exit
> +}
> +
> +ARGC=$#
> +
> +EXPECTED_ARGS=2
> +
> +if [ $ARGC -ne $EXPECTED_ARGS ] ; then
> +    usage
> +else
> +    printf $(gcc -E $1 | grep "static const char opts_insn" | \
> +		 awk -F"=" '{print $2}' | sed 's/;\+$//' | sed 's/\"//g') > $2
> +    printf $(gcc -E $1 | grep "static const char opts_data" | \
> +		 awk -F"=" '{print $2}' | sed 's/;\+$//' | sed 's/\"//g') >> $2
> +fi
> -- 
> 2.48.1
> 

BR, Jarkko
diff mbox series

Patch

diff --git a/scripts/hornet/extract-skel.sh b/scripts/hornet/extract-skel.sh
new file mode 100755
index 0000000000000..9ace78794b85e
--- /dev/null
+++ b/scripts/hornet/extract-skel.sh
@@ -0,0 +1,29 @@ 
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+#
+# Copyright (c) 2025 Microsoft Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License as published by the Free Software Foundation.
+
+function usage() {
+    echo "Sample script for extracting instructions and map data out of"
+    echo "autogenerated eBPF lskel headers"
+    echo ""
+    echo "USAGE: header_file output_file"
+    exit
+}
+
+ARGC=$#
+
+EXPECTED_ARGS=2
+
+if [ $ARGC -ne $EXPECTED_ARGS ] ; then
+    usage
+else
+    printf $(gcc -E $1 | grep "static const char opts_insn" | \
+		 awk -F"=" '{print $2}' | sed 's/;\+$//' | sed 's/\"//g') > $2
+    printf $(gcc -E $1 | grep "static const char opts_data" | \
+		 awk -F"=" '{print $2}' | sed 's/;\+$//' | sed 's/\"//g') >> $2
+fi