110 lines
5.3 KiB
Plaintext
110 lines
5.3 KiB
Plaintext
/**
|
|
@page KMS_Blob_Example KMS application
|
|
|
|
@verbatim
|
|
******************************************************************************
|
|
* @file Applications/KMS/KMS_Blob_Example/readme.txt
|
|
* @author MCD Application Team
|
|
* @brief Description of the KMS_Blob_Example application.
|
|
******************************************************************************
|
|
*
|
|
* Copyright (c) 2020 STMicroelectronics.
|
|
* All rights reserved.
|
|
*
|
|
* This software is licensed under terms that can be found in the LICENSE file in
|
|
* the root directory of this software component.
|
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
|
*
|
|
******************************************************************************
|
|
@endverbatim
|
|
|
|
@par Application Description
|
|
|
|
How to use the KMS middleware provisionning capabilities (C_STM_ImportBlob API).
|
|
|
|
Application configuration:
|
|
KMS is configured with blob importation embedded keys:
|
|
- one AES 128 bits key
|
|
- one ECDSA P256 curve public key
|
|
|
|
Application execution:
|
|
The application starts by waiting for a blob image to import. The blob image (generated by KMS_Blob_Binary
|
|
application example) has to be transferred to the target through the Hyperterminal using Ymodem protocol.
|
|
Once this transfer is completed, the application installs the keys embedded into the blob image.
|
|
Then, the application uses one imported AES key to encrypt and decrypt a clear text message.
|
|
|
|
For debug: A terminal connected with the board via VCOM is needed to see the execution log and test status.
|
|
|
|
Connection needed:
|
|
Connect ST-Link cable to the PC USB port to display data on the HyperTerminal.
|
|
A virtual COM port will then appear in the HyperTerminal.
|
|
- Hyperterminal configuration:
|
|
- Data Length = 8 bits
|
|
- One Stop Bit
|
|
- Parity: none
|
|
- BaudRate = 115200 baud
|
|
- Flow control: None
|
|
|
|
NUCLEO-WL55JC RevC board LED3 is also used to report test status:
|
|
- LED3 is turned on at the end of the execution when all completed successfully
|
|
- LED3 is blinking twice per second when an error occurred
|
|
|
|
@par Keywords
|
|
|
|
Cryptography, KMS, Provisioning
|
|
|
|
@par Directory contents
|
|
|
|
- KMS/KMS_Blob_Example/Inc/stm32wlxx_nucleo_conf.h BSP configuration file
|
|
- KMS/KMS_Blob_Example/Inc/stm32wlxx_hal_conf.h HAL configuration file
|
|
- KMS/KMS_Blob_Example/Inc/stm32wlxx_it.h Interrupt handlers header file
|
|
- KMS/KMS_Blob_Example/Inc/app_kms.h Header for app_kms.c module
|
|
- KMS/KMS_Blob_Example/Inc/ca_conf.h Cryptographic configuration file
|
|
- KMS/KMS_Blob_Example/Inc/ca_low_level.h Header for ca_low_level.c module
|
|
- KMS/KMS_Blob_Example/Inc/com.h Header for com.c module
|
|
- KMS/KMS_Blob_Example/Inc/common.h Header for common.c module
|
|
- KMS/KMS_Blob_Example/Inc/flash_if.h Header for flash_if.c module
|
|
- KMS/KMS_Blob_Example/Inc/kms_config.h KMS configuration file
|
|
- KMS/KMS_Blob_Example/Inc/kms_low_level.h Header for kms_low_level.c module
|
|
- KMS/KMS_Blob_Example/Inc/kms_mem_pool_def.h KMS memory pool definition file
|
|
- KMS/KMS_Blob_Example/Inc/kms_platf_objects_config.h KMS embedded objects definition files
|
|
- KMS/KMS_Blob_Example/Inc/kms_platf_objects_interface.h KMS embedded objects interface files
|
|
- KMS/KMS_Blob_Example/Inc/main.h Header for main.c module
|
|
- KMS/KMS_Blob_Example/Inc/mbedtls_config.h MBED crypto configuration file
|
|
- KMS/KMS_Blob_Example/Inc/nvms_low_level.h Header for nvms_low_level.c module
|
|
- KMS/KMS_Blob_Example/Inc/ymodem.h Header for ymodem.c module
|
|
- KMS/KMS_Blob_Example/Src/stm32wlxx_it.c Interrupt handlers
|
|
- KMS/KMS_Blob_Example/Src/stm32wlxx_hal_msp.c HAL MSP module
|
|
- KMS/KMS_Blob_Example/Src/app_kms.c KMS application
|
|
- KMS/KMS_Blob_Example/Src/ca_low_level.c Cryptographic low level source file
|
|
- KMS/KMS_Blob_Example/Src/com.c Communication module file
|
|
- KMS/KMS_Blob_Example/Src/common.c Common utilities file
|
|
- KMS/KMS_Blob_Example/Src/flash_if.c Flash interface file
|
|
- KMS/KMS_Blob_Example/Src/kms_low_level.c KMS low level source file
|
|
- KMS/KMS_Blob_Example/Src/kms_object_update_app.c KMS blob image download and import source file
|
|
- KMS/KMS_Blob_Example/Src/main.c Main program
|
|
- KMS/KMS_Blob_Example/Src/nvms_low_level.c NVMS low level source file
|
|
- KMS/KMS_Blob_Example/Src/system_stm32wlxx.c STM32WLxx system source file
|
|
- KMS/KMS_Blob_Example/Src/ymodem.c Ymodem communication protocol source file
|
|
|
|
|
|
@par Hardware and Software environment
|
|
|
|
- This application runs on STM32WL55xx devices.
|
|
|
|
- This application has been tested with NUCLEO-WL55JC RevC board and can be
|
|
easily tailored to any other supported device and development board.
|
|
- This application needs a terminal emulator.
|
|
|
|
|
|
|
|
@par How to use it ?
|
|
|
|
In order to make the program work, you must do the following :
|
|
- Open your preferred toolchain
|
|
- Rebuild all files and load your image into target memory
|
|
- Run the application
|
|
|
|
* <h3><center>© COPYRIGHT STMicroelectronics</center></h3>
|
|
*/
|