STM32CubeWL/Projects/NUCLEO-WL55JC/Applications/KMS/KMS_Blob_Binary/STM32CubeIDE/postbuild.sh

74 lines
1.9 KiB
Bash

#!/bin/bash -
#Post build for SECBOOT_ECCDSA_WITH_AES128_CBC_SHA256
# arg1 is the build directory
# arg2 is the bin file path+name without extension
# arg3 is the version
projectdir=$1
execname=$2
version=$3
userAppBinary=$projectdir"Binary"
bin=$projectdir"/"$execname".bin"
kmsu=$userAppBinary"/"$execname".kmsu"
kmsb=$userAppBinary"/"$execname".kmsb"
sign=$userAppBinary"/"$execname".sign"
iv=$userAppBinary"/iv.bin"
oemkey=$userAppBinary"/OEM_KEY_COMPANY1_key_AES_CBC.bin"
ecckey=$userAppBinary"/ECCKEY.txt"
current_directory=`pwd`
cd $1../../../../../Middlewares/ST/STM32_Secure_Engine/Utilities/KeysAndImages
basedir=`pwd`
cd $current_directory
# test if window executable usable
prepareimage=$basedir"/win/prepareimage/prepareimage.exe"
uname | grep -i -e windows -e mingw
if [ $? == 0 ] && [ -e "$prepareimage" ]; then
echo "prepareimage with windows executable"
cmd=""
else
# line for python
echo "prepareimage with python script"
prepareimage=$basedir/prepareimage.py
cmd="python"
fi
echo "$cmd $prepareimage" > $1/output.txt
# Make sure we have a Binary sub-folder in UserApp folder
if [ ! -e $userAppBinary ]; then
mkdir $userAppBinary
fi
command=$cmd" "$prepareimage" enc -k "$oemkey" -i "$iv" "$bin" "$kmsu
echo $command
$command >> "$projectdir"/output.txt
ret=$?
if [ $ret == 0 ]; then
# -p 16 indicates that the input file must be a multiple of the AES block size (16 bytes). Padding is done before computing the sha256 if needed.
command=$cmd" "$prepareimage" sha256 "$bin" "$sign" -p 16"
echo $command
$command >> $projectdir"/output.txt"
ret=$?
if [ $ret == 0 ]; then
command=$cmd" "$prepareimage" pack -k "$ecckey" -m "KMSB" -r 28 -v "$version" -i "$iv" -f "$kmsu" -t "$sign" -o 320 "$kmsb
echo $command
$command >> $projectdir"/output.txt"
ret=$?
fi
fi
if [ $ret == 0 ]; then
rm $sign
rm $kmsu
exit 0
else
echo "$command : failed" >> $projectdir"/output.txt"
echo $command : failed
read -n 1 -s
exit 1
fi