This example uses the SE Manager API to perform the key provisioning and OTP initialization on the supported Series 2 device.
The following items can be programmed to the SE OTP:
Tamper (Secure Vault device only) and secure boot configuration
AES-128 key (HSE only)
Public sign key
Public command key
The AES-128 key (encrypt-unsafe-key.prv
), the corresponding private sign key (rootsign-unsafe-privkey.pem
), and private command key (cmd-unsafe-privkey.pem
) can be found in the Windows folder below.
C:\SiliconLabs\SimplicityStudio\v5\developer\adapter_packs\secmgr\scripts\offline
The AES-128 key (encrypt-unsafe-key.prv
) is:
81a5e21fa15286f1df445c2cc120fa3f
The public key of rootsign-unsafe-privkey.pem
is:
X - C4AF4AC69AAB9512DB50F7A26AE5B4801183D85417E729A56DA974F4E08A562C
Y - DE6019DEA9411332DC1A743372D170B436238A34597C410EA177024DE20FC819
The public key of cmd-unsafe-privkey.pem
is:
X - B1BC6F6FA56640ED522B2EE0F5B3CF7E5D48F60BE8148F0DC08440F0A4E1DCA4
Y - 7C04119ED6A1BE31B7707E5F9D001A659A051003E95E1B936F05C37EA793AD63
The example redirects standard I/O to the virtual serial port (VCOM) of the kit. By default, the serial port setting is 115200 bps and 8-N-1 configuration.
The example has been instrumented with code to count the number of clock cycles spent in different operations. The results are printed on the VCOM serial port console. This feature can be disabled by defining SE_MANAGER_PRINT=0
(default is 1) in the IDE setting (Preprocessor->Defined symbols
).
The following SE Manager APIs are used in this example:
sl_se_init
sl_se_deinit
sl_se_init_command_context
sl_se_deinit_command_context
sl_se_get_se_version
sl_se_read_otp
sl_se_read_pubkey
sl_se_init_otp_key
sl_se_init_otp
sl_se_aes_crypt_ecb
sl_se_read_executed_command
(VSE only)sl_se_ack_command
(VSE only)Adapter Firmware
under General Device Information in Simplicity Studio 5 Users Guide).Secure Firmware
under General Device Information in Simplicity Studio 5 Users Guide).Device Console
in Simplicity Studio 5, Line terminator:
must be set to None
).Platform()
checkbox to browse the platform examples).Optimize for debugging (-Og)
on Simplicity IDE and None
on IAR Embedded Workbench.