Copyright © 2019 STMicroelectronics
Key Management Services (KMS) provides cryptographic services through the standard PKCS#11 APIs (developed by OASIS) allowing to abstract the key value to the caller (using object ID and not directly the key value). KMS can be executed inside a protected/isolated environment in order to ensure that key value can’t be accessed by an unauthorized code running outside the protected/isolated environment.
The figure below shows the overall KMS architecture.
KMS manages 3 types of keys:
KMS supports this subset of PKCS#11 APIs:
For more details, refer to UM2262 : Getting started with X-CUBE-SBSFU expansion package, Chapter 4.
New features in this release are :
Secure counters
Give possibility to encrypt the blob objects in NVM
CHM documentation updated
Compatibility with v1.1.8
Compatibility with v1.1.7
Compatibility with v1.1.6
Give possibility to derivate keys in RAM instead of NVM
Locked objects are no more accessible by searches
Break of compatibility with v1.1.5
Configuration switch placement review
Warnings and spelling issues fixes
C_STM_ImportBlob update to specify blob download area
Allow multiple C_Initialize and C_Finalize imbricated calls
New features and improvements introduced in this release are :
Object search
ECC key pair generation
ECDH key derivation
Memory management improved (introduction of different allocators)
Lock keys and services vendor APIs
iKMS/niKMS folders replaces tKMS one
MPU isolation support in iKMS
kms_config.h redesign (better scalability and config build time check)
Bug fixes
Official delivery of Key Management Services for STM32 series, compliant with PKCS#11 APIs from OASIS.
None