1
0
mirror of https://github.com/Mbed-TLS/mbedtls.git synced 2025-07-30 22:43:08 +03:00

Move common code of demo scripts into a library

The new file programs/demo_common.sh contains initialization code,
utility functions and cleanup code meant to be used by all demo
scripts written in sh.

Initial features:

* msg: Display a message.
* run, run_bad: Run a command, visibly.
* $root_dir, $programs_dir: location of the mbedtls source tree.
* $files_to_clean: files that are cleaned up on exit.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine
2020-04-23 17:33:36 +02:00
parent 2fcf04f468
commit d1b5f6f609
2 changed files with 98 additions and 31 deletions

View File

@ -15,36 +15,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
set -e -u
. "${0%/*}/../demo_common.sh"
program_name="key_ladder_demo"
program="${0%/*}/$program_name"
files_to_clean=
msg <<'EOF'
This script demonstrates the use of the PSA cryptography interface to
create a master key, derive a key from it and use that key to wrap
the derived key using an AEAD algorithm.
EOF
if [ ! -e "$program" ]; then
# Look for programs in the current directory and the directories above it
for dir in "." ".." "../.."; do
program="$dir/programs/psa/$program_name"
if [ -e "$program" ]; then
break
fi
done
if [ ! -e "$program" ]; then
echo "Could not find $program_name executable"
echo "If building out-of-tree, this script must be run" \
"from the project build directory."
exit 1
fi
fi
run () {
echo
echo "# $1"
shift
echo "+ $*"
"$@"
}
program="${0%/*}"/key_ladder_demo
if [ -e master.key ]; then
echo "# Reusing the existing master.key file."
@ -68,7 +47,7 @@ run "Compare the unwrapped data with the original input." \
cmp input.txt hello_world.txt
files_to_clean="$files_to_clean hellow_orld.txt"
! run "Derive a different key and attempt to unwrap the data. This must fail." \
run_bad "Derive a different key and attempt to unwrap the data. This must fail." \
"$program" unwrap master=master.key input=hello_world.wrap output=hellow_orld.txt label=hellow label=orld
files_to_clean="$files_to_clean hello.key"
@ -79,5 +58,4 @@ run "Check that we get the same key by unwrapping data made by the other key." \
"$program" unwrap master=hello.key label=world \
input=hello_world.wrap output=hello_world.txt
# Cleanup
rm -f $files_to_clean
cleanup