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

Blaise Boscaccy
2025-03-31T20:04:14Z

Jarkko Sakkinen <jarkko@kernel.org> writes:

> 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?

It's a "light-skeleton". I'll remove the abbreviations from this
patchset's commit messages. The jargon is hard enough to grok as-is.

> 2. Why hornet is here in lower case?
>

Typo. Thanks for finding that.

>> 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