57 lines
1.8 KiB
Batchfile
57 lines
1.8 KiB
Batchfile
::Post build for SECBOOT_ECCDSA_WITH_AES128_CBC_SHA256
|
|
@echo off
|
|
::comment this line to force python
|
|
::python is used if windows executable not found
|
|
goto exe:
|
|
goto py:
|
|
:exe
|
|
::line for window executable
|
|
set "prepareimage=%1\\..\\..\\..\\..\\..\\..\\Middlewares\\ST\\STM32_Secure_Engine\\Utilities\\KeysAndImages\\win\\prepareimage.exe"
|
|
set "python="
|
|
if exist %prepareimage% (
|
|
goto postbuild
|
|
)
|
|
:py
|
|
::line for python
|
|
set "prepareimage=%1\\..\\..\\..\\..\\..\\..\\Middlewares\\ST\\STM32_Secure_Engine\\Utilities\\KeysAndImages\\prepareimage.py"
|
|
set "python=python "
|
|
:postbuild
|
|
|
|
set "bin=%1\\%2.bin"
|
|
set "kmsu=%1\\..\\Binary\\%2.kmsu"
|
|
set "kmsb=%1\\..\\Binary\\%2.kmsb"
|
|
set "sign=%1\\..\\Binary\\%2.sign"
|
|
set "iv=%1\\..\\Binary\\iv.bin"
|
|
set "oemkey=%1\\..\\Binary\\OEM_KEY_COMPANY1_key_AES_CBC.bin"
|
|
set "ecckey=%1\\..\\Binary\\ECCKEY.txt"
|
|
set "kmsBinary=%1\\..\\Binary\\"
|
|
|
|
::Make sure we have a Binary sub-folder in UserApp folder
|
|
if not exist "%kmsBinary%" (
|
|
mkdir "%kmsBinary%"
|
|
)
|
|
|
|
:: When doing the AES CBC encrypt, prepareimage.py pads the input file if needed (to be a multiple of the AES block size = 16 bytes)
|
|
set "command=%python%%prepareimage% enc -k %oemkey% -i %iv% %bin% %kmsu% > %1\output.txt 2>&1"
|
|
%command%
|
|
IF %ERRORLEVEL% NEQ 0 goto :error
|
|
:: -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.
|
|
set "command=%python%%prepareimage% sha256 %1\\%2.bin %sign% -p 16 >> %1\output.txt 2>&1"
|
|
%command%
|
|
IF %ERRORLEVEL% NEQ 0 goto :error
|
|
set "command=%python%%prepareimage% pack -k %ecckey% -m "KMSB" -r 28 -v %3 -i %iv% -f %kmsu% -t %sign% -o 320 %kmsb% >> %1\output.txt 2>&1"
|
|
%command%
|
|
IF %ERRORLEVEL% NEQ 0 goto :error
|
|
|
|
|
|
::clean up the intermediate file
|
|
del %sign%
|
|
del %kmsu%
|
|
|
|
|
|
exit 0
|
|
:error
|
|
:: remove the elf to force the regeneration
|
|
del %elf%
|
|
exit 1
|