- Last edited 3 months ago ago

# Introduction to cryptographic library with STM32

## Contents

## 1 What is the Cryptographic Library?

The Cryptographic Library * V4.x.x* supports most of required algorithms for encryption, hashing, message authentication and digital signing, enabling developers to meet application requirements for any combination of data, integrity, confidentiality, identification/authentication, and non-repudiation.

The Cryptographic Library is designed and compiled to run on Arm^{®} Cortex^{®}-M based ST MCUs.

## 2 Getting started with STM32 and the Cryptographic Library

**C**ortex^{®}-**M** **O**ptimized **C**rypto **S**tack (**CMOX**) is an optimized Cryptographic Library to be used with STM32 Cortex^{®}-M based MCUs.

**Supported cryptographic algorithms:**

**Cipher encryption and decryption:***AES*: CBC, CCM, CFB, CTR, ECB, GCM, OFB, XTS, KeyWrap*SM4*: CBC, CFB, CTR, ECB, OFB*Chacha-Poly1305*

**Digest generation:***SHA-1**SHA-2*: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256*SHA-3*: SHA3-224, SHA3-256, SHA3-384, SHA3-512*SM3**SHAKE*

**Message authentication code (MAC) generation:***HMAC*:- SHA-1
- SHA-2: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256
- SM3

*AES*: CMAC*KMAC*: SHAKE

**Elliptic curves based on key generation, signature and verification:***Elliptic curve digital signature algorithm (ECDSA)*: NIST-R (P-224, P-256, P-384, P-521), NIST-K P-256, BRAINPOOL R/T (P-160, P-192, P-224, P-256, P-320, P-384, P-512), ANSSI P-256*Edwards-curve digital signature algorithm (EdDSA)*: Ed448, Ed25519*SM2 digital signature algorithm*: OSCCA 256-bits curve

**Elliptic curves Diffie-Hellman:**- Curve448, curve25519
- NIST-R (P-224, P-256, P-384, P-521), NIST-K P-256, BRAINPOOL R/T (P-160, P-192, P-224, P-256, P-320, P-384, P-512), ANSSI P-256

**RSA signature, verification, encryption & decryption:**- PKCS#1 v1.5 and v2.2
- Chinese remainder theorem (CRT) key representation
- Hash method:
- SHA-1
- SHA-2: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256

**Deterministic random bit generator (DRBG):**- CTR-DRBG

## 3 Cryptographic Library compliancy with STM32 MCUs

The delivered libraries (one per each Cortex^{®}-M core) are structured to be compliant with all the cores used by STM32 MCUs. They can thus be used on any STM32 MCU that embeds the corresponding Cortex^{®}-M core.

## 4 STMicroelectronics resources

The Cryptographic library package can be downloaded from: STM32 cryptographic firmware library software expansion for STM32Cube^{[1]}

## 5 References