2022-01-26 10:20 PM
2022-02-09 02:46 AM
Hi @SPati.7
Yes, SBSFU will managed the Secure Boot with the STM32H7 security feature describe by @Jocelyn RICARD
For the STSAFE-A110, this is a secure element with ECC support.
For the TLS integration, STSAFE-A110 can be used for the authentication with the private key managed by the STSAFE-A110.
In term of TLS stack, I know that WolfSSL has already an implementation of STSAFE-A100 (previous version) but should be compatible with STSAFE-A110 (https://www.wolfssl.com/wolfssl-support-stsafe-a100-crypto-coprocessor/)
For MbedTLS, the integration can be done by pk structure overload for the signature management.
Both stacks are suitable for your application.
Best Regards,
Benjamin
2022-02-09 02:51 AM
@Benjamin BARATTE Thanks for your quick reply.
is there any training or material to understand on implementation details of STSAFE-A110 with WolfSSL or mbedTLS ..?? any thing is fine to understand, how complex the implementation and effort estimate to achieve the same.
Please help with materials. I found good SBSFU online trainings, but not STSAFE.
2022-02-09 03:02 AM
@Benjamin BARATTE I will specific question related to STSAFE-A110.
If we want to use STSAFE-A110 in our product, what is the process in terms of configuring SAFE with our own Root CA chain of certificates to implement TLS.
Can you please share any info you have regarding this..?? as we are more concern on storage of certificate mechanism like whether it is done by ST .?? or OEM can do it on SAFE directly ..??
Please provide any detail you have on the usage of A110 on OEM.
Thanks
Subbu
Baxter
2022-02-09 04:51 AM
Hi @SPati.7 ,
For WolfSSL, you can check with them if they provide training on this feature.
For MbedTLS, I don't have training at the moment.
I can provide you this structure to overload Mbedtls mbedtls_pk_info_t :
static const mbedtls_pk_info_t mbedtls_stsafe_info = {
MBEDTLS_PK_ECDSA,
"ECDSA-STSAFE-A110",
stsafea_get_bitlen,
stsafea_can_do,
#if defined(MBEDTLS_ECDSA_C)
NULL,
stsafea_sign_wrap,
#if defined(MBEDTLS_ECP_RESTARTABLE)
NULL,
NULL,
#endif
#else /* MBEDTLS_ECDSA_C */
NULL,
NULL,
#endif /* MBEDTLS_ECDSA_C */
NULL,
NULL,
NULL,
NULL,
NULL,
#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
NULL,
NULL,
#endif
NULL,
};
here you have the minimal function to implement on STSAFE-A wrapper.
Then to use in TLS context, you have to provide to ssl context a private key, you can create the private key with the following code :
mbedtls_pk_context pk;
mbedtls_pk_init(&pk);
pk->pk_info = &mbedtls_stsafe_info ;
I will try to compile everything in a wiki article but not in a near future.
Regarding the personalization of the STSAFE-A product, you have to contact your local ST support to discuss this topic.
if you are in EMEA region, I'm your entrypoint, otherwise you will need to contact your local ST support.
Best Regards,
Benjamin
2022-02-09 05:32 AM
Thanks @Benjamin BARATTE for your reply. I will check with local ST Support.
2022-02-23 09:46 AM
Hi @Jocelyn RICARD I have some more questions raised during our deep understanding of SBSFU Solution details. Can you please help with these or refer links to find same ??
I really appreciate your @Jocelyn RICARD help in getting these answers asap.
Thanks for your support.
Regards
Subbu
2022-02-23 08:46 PM
@Jocelyn RICARD Can you please reply to the above queries ..??
2022-02-24 03:46 AM
@Jocelyn RICARD Can you please reply to my queries ..??
2022-02-28 09:35 AM
Hello Subbu,
I was OoO last week.
1. There is no specific reserved size for bootloader. Now on STM32H7, the sector size is 128KB. So, the bootloader is using the first sector even if the whole size is not needed.
Usually bootloader is taking less than 64KB actually,
2. The SBSFU example stored only one public key.
3. The SBSFU is an implementation example. It is provided as a working base that you adapt to your own constraints.
4. I don't fully catch your question. At device level, only decryption occurs when you install a new encrypted firmware.
5. When you install a new firmware and this new firmware verification fails, the firmware is simply not installed. If you want to be able to recover whatever happens (for instance part of the firmware is erased for any reason) then you need to keep the local loader that will allow transfering a new firmware.
You have lots of details in the documentation.
Please read
Getting started with the X-CUBE-SBSFU STM32Cube Expansion Package
Integration guide for the X-CUBE-SBSFU STM32Cube Expansion Package
Best regards
Jocelyn
AN