Skip to content

Commit 4d94153

Browse files
greg-ferrlubos
authored andcommitted
doc: nrf54l: psa algorithms for kmu key types
Added info about supported PSA algorithms for each key type. NCSDK-35412. Signed-off-by: Grzegorz Ferenc <[email protected]>
1 parent 9801130 commit 4d94153

File tree

2 files changed

+57
-10
lines changed

2 files changed

+57
-10
lines changed

doc/nrf/app_dev/device_guides/nrf54l/cryptography.rst

Lines changed: 56 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,8 @@ The following list shows available schemes that determine how the keys are used:
216216
Key types that can be stored in the KMU
217217
=======================================
218218

219-
The following table lists all key types that can be stored in the KMU, indicating which usage schemes (Protected, Encrypted, and Raw) support them and the number of key slots they require.
219+
The following table lists all key types that can be stored in the KMU.
220+
For each key type, the table lists the supported algorithms and indicates which usage schemes (Protected, Encrypted, and Raw) support the key types and the number of key slots they require.
220221

221222
.. note::
222223
This list does not include the key types that are supported by the CRACEN driver, but not stored in the KMU.
@@ -227,71 +228,116 @@ The following table lists all key types that can be stored in the KMU, indicatin
227228
:header-rows: 1
228229

229230
* - Key type
230-
- PSA key attributes
231-
- KMU slots [1]_
231+
- PSA key attributes and algorithms [1]_
232+
- KMU slots [2]_
232233
- Protected
233234
- Encrypted
234235
- Raw
235236
* - AES 128-bit keys
236-
- | ``key_type``: ``PSA KEY_TYPE_AES``
237+
- | ``key_type``: ``PSA_KEY_TYPE_AES``
238+
|
237239
| ``key_bits``: 128
240+
|
241+
| ``key_algorithm`` - one of the following:
242+
| - ``PSA_ALG_AES_ECB_NO_PADDING``
243+
| - ``PSA_ALG_AES_CBC_NO_PADDING``
244+
| - ``PSA_ALG_AES_CTR``
245+
| - ``PSA_ALG_CCM``
246+
| - ``PSA_ALG_GCM``
247+
| - ``PSA_ALG_CMAC*``
248+
| - ``PSA_ALG_SP800_108_COUNTER_CMAC``
238249
- 1
239250
- Yes
240251
- Yes
241252
- Yes
242253
* - AES 192-bit and 256-bit keys
243254
- | ``key_type``: ``PSA_KEY_TYPE_AES``
244-
| ``key_bits``: 192 [2]_
255+
|
256+
| ``key_bits``: 192 [3]_
245257
| ``key_bits``: 256
258+
|
259+
| ``key_algorithm`` - one of the following:
260+
| - ``PSA_ALG_AES_ECB_NO_PADDING``
261+
| - ``PSA_ALG_AES_CBC_NO_PADDING``
262+
| - ``PSA_ALG_AES_CTR``
263+
| - ``PSA_ALG_CCM``
264+
| - ``PSA_ALG_GCM``
265+
| - ``PSA_ALG_CMAC*``
266+
| - ``PSA_ALG_SP800_108_COUNTER_CMAC``
246267
- 2
247268
- Yes
248269
- Yes
249270
- Yes
250271
* - ChaCha20-Poly1305
251-
- ``key_type``: ``PSA_KEY_TYPE_CHACHA20``
272+
- | ``key_type``: ``PSA_KEY_TYPE_CHACHA20``
273+
|
274+
| ``key_algorithm`` - one of the following:
275+
| - ``PSA_ALG_CHACHA20``
276+
| - ``PSA_ALG_CHACHA20_POLY1305``
252277
- 2
253278
- No
254279
- Yes
255280
- Yes
256-
* - ECC secp256r1 key pair (ECDSA and ECDH usage) [3]_
281+
* - ECC secp256r1 key pair (ECDSA and ECDH usage) [4]_
257282
- | ``key_type``: ``PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)``
283+
|
258284
| ``key_bits``: 256
285+
|
286+
| ``key_algorithm`` - one of the following:
287+
| - ``PSA_ALG_ECDSA``
288+
| - ``PSA_ALG_ECDH``
259289
- 2
260290
- No
261291
- Yes
262292
- Yes
263293
* - ECC secp256r1 public key (ECDSA usage only)
264294
- | ``key_type``: ``PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1)``
295+
|
265296
| ``key_bits``: 256
297+
|
298+
| ``key_algorithm``: ``PSA_ALG_ECDSA``
266299
- 4
267300
- No
268301
- Yes
269302
- Yes
270303
* - Ed25519 key pair
271304
- | ``key_type``: ``PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS)``
305+
|
272306
| ``key_bits``: 255
307+
|
308+
| ``key_algorithm`` - one of the following:
309+
| - ``PSA_ALG_ED25519``
310+
| - ``PSA_ALG_ED25519PH``
273311
- 2
274312
- No
275313
- Yes
276314
- Yes
277315
* - ED25519 public key
278316
- | ``key_type``: ``PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS)``
317+
|
279318
| ``key_bits``: 255
319+
|
320+
| ``key_algorithm`` - one of the following:
321+
| - ``PSA_ALG_ED25519``
322+
| - ``PSA_ALG_ED25519PH``
280323
- 2
281324
- No
282325
- Yes
283326
- Yes
284327
* - HMAC SHA-256 128-bit keys
285328
- | ``key_type``: ``PSA_KEY_TYPE_HMAC``
329+
|
286330
| ``key_bits``: 128
331+
|
287332
| ``key_algorithm``: ``PSA_ALG_HMAC(PSA_ALG_SHA_256)``
288333
- 1
289334
- No
290335
- No
291336
- Yes
292-
.. [1] Keys with the Encrypted usage scheme (``CRACEN_KMU_KEY_USAGE_SCHEME_ENCRYPTED``) will require two additional KMU slots to store the nonce and the authentication tag.
293-
.. [2] Not supported on nRF54LM20.
294-
.. [3] ECDH not supported for key derivation.
337+
.. [1] Store each key with only one algorithm to follow PSA Crypto best practices.
338+
.. [2] Keys with the Encrypted usage scheme (``CRACEN_KMU_KEY_USAGE_SCHEME_ENCRYPTED``) will require two additional KMU slots to store the nonce and the authentication tag.
339+
.. [3] 192-bit key size is not supported on nRF54LM20.
340+
.. [4] ECDH not supported for key derivation.
295341
296342
Storing keys in KMU
297343
===================

doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ Security
146146
* The :ref:`secure_storage_in_ncs` page with updated information about the secure storage configuration in the |NCS|.
147147
Also renamed the page from "Trusted storage in the |NCS|."
148148
* The :ref:`ug_crypto_supported_features` page with the missing entries for the HMAC key type (:kconfig:option:`CONFIG_PSA_WANT_KEY_TYPE_HMAC`).
149+
* The :ref:`ug_nrf54l_crypto_kmu_supported_key_types` section specific for the nRF54L Series devices to list the supported algorithms for each key type.
149150

150151
Protocols
151152
=========

0 commit comments

Comments
 (0)