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

Jarkko Sakkinen
2025-03-22T17:25:35Z

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