Skip to content

Commit 940d059

Browse files
committed
Provide definitions for 'secure elemtn', 'accelerator', and 'built-in key'
* Xref the terms in suitable places * Remove 'registration of drivers' from the description of crypto subsystem initialization.
1 parent 755eb0d commit 940d059

File tree

7 files changed

+34
-16
lines changed

7 files changed

+34
-16
lines changed

doc/crypto/api/keys/ids.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ Key identifiers are integral values that act as permanent names for persistent k
1313
:code:`PSA_KEY_ID_USER_MIN - PSA_KEY_ID_USER_MAX`
1414
Applications can freely choose persistent key identifiers in this range.
1515
:code:`PSA_KEY_ID_VENDOR_MIN - PSA_KEY_ID_VENDOR_MAX`
16-
Implementations can define additional persistent key identifiers in this range, and must allocate any volatile key identifiers from this range.
16+
Implementations can define additional persistent key identifiers in this range for :term:`built-in key`\ s, and must allocate any volatile key identifiers from this range.
1717

1818
Key identifiers outside these ranges are reserved for future use.
1919

2020
Key identifiers are output from a successful call to one of the key creation functions. For persistent keys, this is the same identifier as the one specified in the key attributes used to create the key. The key identifier remains valid until it is invalidated by passing it to `psa_destroy_key()`. A volatile key identifier must not be used after it has been invalidated.
2121

2222
If an invalid key identifier is provided as a parameter in any function, the function will return :code:`PSA_ERROR_INVALID_HANDLE`; except for the special case of calling :code:`psa_destroy_key(PSA_KEY_ID_NULL)`, which has no effect and always returns :code:`PSA_SUCCESS`.
2323

24-
Valid key identifiers must have distinct values within the same application. If the implementation provides :term:`caller isolation`, then key identifiers are local to each application. That is, the same key identifier in two applications corresponds to two different keys.
24+
Valid key identifiers must have distinct values within the same application. If the implementation provides :term:`caller isolation`, then key identifiers are local to each application. That is, keys that are created by two applications with the same key identifier are two separate keys.
2525

2626

2727
Key identifier type

doc/crypto/api/keys/lifetimes.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ application specifies the key identifier when the key is created and when
4444
using the key.
4545

4646
The lifetime attribute of a persistent key indicates how and where it is stored. The default lifetime value for a persistent key is `PSA_KEY_LIFETIME_PERSISTENT`, which corresponds to a default storage area. This specification defines how implementations can provide other lifetime values corresponding to
47-
different storage areas with different retention policies, or to secure elements
47+
different storage areas with different retention policies, or to :term:`secure element`\ s
4848
with different security characteristics.
4949

5050
To create a persistent key:

doc/crypto/api/keys/management.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ When creating a key, the attributes for the new key are specified in a `psa_key_
330330
.. param:: psa_key_id_t source_key
331331
The key to copy.
332332
It must permit the usage `PSA_KEY_USAGE_COPY`.
333-
If a private or secret key is being copied outside of a secure element it must also permit `PSA_KEY_USAGE_EXPORT`.
333+
If a private or secret key is being copied outside of a :term:`secure element` it must also permit `PSA_KEY_USAGE_EXPORT`.
334334
.. param:: const psa_key_attributes_t * attributes
335335
The attributes for the new key.
336336

doc/crypto/api/keys/policy.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ The usage flags are encoded in a bitmask, which has the type `psa_key_usage_t`.
112112

113113
* This flag is required to export a key from the cryptoprocessor using `psa_export_key()`. A public key or the public part of a key pair can always be exported regardless of the value of this permission flag.
114114

115-
* This flag can also be required to make a copy of a key outside of a secure element using `psa_copy_key()`. See also `PSA_KEY_USAGE_COPY`.
115+
* This flag can also be required to make a copy of a key outside of a :term:`secure element` using `psa_copy_key()`. See also `PSA_KEY_USAGE_COPY`.
116116

117117
If a key does not have export permission, implementations must not permit the key to be exported in plain form from the cryptoprocessor, whether through `psa_export_key()` or through a proprietary interface. The key might still be exportable in a wrapped form, i.e. in a form where it is encrypted by another key.
118118

doc/crypto/api/library/library.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -146,19 +146,19 @@ If the application calls any function that returns a :code:`psa_status_t` result
146146
:definition: /* implementation-defined value */
147147
148148
.. summary::
149-
Crypto subsystem identifier for accelerator drivers.
149+
Crypto subsystem identifier for :term:`cryptographic accelerator`\ s.
150150

151-
Initializing this subsystem results in initialization of all registered accelerator drivers.
151+
Initializing this subsystem results in initialization of cryptographic hardware accelerator interfaces.
152152

153-
Initializing this subsystem allows cryptographic operations that are implemented via an accelerator driver.
153+
Initializing this subsystem allows cryptographic operations that are implemented in an accelerator.
154154

155155
.. macro:: PSA_CRYPTO_SUBSYSTEM_SECURE_ELEMENTS
156156
:definition: /* implementation-defined value */
157157
158158
.. summary::
159-
Crypto subsystem identifier for secure element drivers.
159+
Crypto subsystem identifier for :term:`secure element`\ s.
160160

161-
Initializing this subsystem results in initialization of all registered secure element drivers.
161+
Initializing this subsystem results in initialization of all cryptographic secure elements.
162162

163163
Initializing this subsystem as well as `PSA_CRYPTO_SUBSYSTEM_KEYS` allows creating, accessing, and destroying keys in a secure element. That is, keys whose location is not `PSA_KEY_LOCATION_LOCAL_STORAGE`.
164164

@@ -168,7 +168,7 @@ If the application calls any function that returns a :code:`psa_status_t` result
168168
.. summary::
169169
Crypto subsystem identifier for the random generator.
170170

171-
Initializing this subsystem initializes all registered entropy drivers, and accesses the registered entropy sources.
171+
Initializing this subsystem initializes all entropy providers, and access to entropy sources.
172172

173173
Initializing this subsystem is necessary for `psa_generate_random()`, `psa_generate_key()`, `psa_encapsulate()`, PAKE operations, and some operations using key pairs.
174174

@@ -186,7 +186,7 @@ If the application calls any function that returns a :code:`psa_status_t` result
186186
:definition: /* implementation-defined value */
187187
188188
.. summary::
189-
Crypto subsystem identifier for access to built-in keys.
189+
Crypto subsystem identifier for access to :term:`built-in key`\ s.
190190

191191
Initializing this subsystem as well as `PSA_CRYPTO_SUBSYSTEM_KEYS` allows access to built-in keys.
192192

doc/crypto/overview/sample-arch.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.. SPDX-FileCopyrightText: Copyright 2018-2022 Arm Limited and/or its affiliates <[email protected]>
1+
.. SPDX-FileCopyrightText: Copyright 2018-2022, 2024 Arm Limited and/or its affiliates <[email protected]>
22
.. SPDX-License-Identifier: CC-BY-SA-4.0 AND LicenseRef-Patent-license
33
44
.. _architectures:
@@ -44,7 +44,7 @@ other partition runs an application. There is a security boundary between the
4444
two partitions, so that the application cannot access the cryptoprocessor,
4545
except through its public interface. Thus, the architecture provides
4646
:term:`cryptoprocessor isolation`. The cryptoprocessor has
47-
some non-volatile storage, a TRNG, and possibly, some cryptographic accelerators.
47+
some non-volatile storage, a true random number generator, and possibly, some :term:`cryptographic accelerator`\ s.
4848

4949
There are a number of potential physical realizations: the cryptoprocessor might
5050
be a separate chip, a separate processor on the same chip, or a logical
@@ -103,7 +103,7 @@ have multiple cryptoprocessors:
103103

104104
* Different compromises between security and performance for different keys.
105105
Typically, this means a cryptoprocessor that runs on the same hardware as the
106-
main application and processes short-term secrets, a secure element or a
106+
main application and processes short-term secrets, a :term:`secure element` or a
107107
similar separate chip that retains long-term secrets.
108108
* Independent provisioning of certain secrets.
109109
* A combination of a non-removable cryptoprocessor and removable ones, for

doc/crypto/terms

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.. SPDX-FileCopyrightText: Copyright 2020-2022 Arm Limited and/or its affiliates <[email protected]>
1+
.. SPDX-FileCopyrightText: Copyright 2020-2022, 2024 Arm Limited and/or its affiliates <[email protected]>
22
.. SPDX-License-Identifier: CC-BY-SA-4.0 AND LicenseRef-Patent-license
33

44
.. term:: Algorithm
@@ -191,3 +191,21 @@
191191
:abbr: PQC
192192

193193
A cryptographic scheme that relies on mathematical problems that do not have efficient algorithms for either classical or quantum computing.
194+
195+
.. term:: Secure element
196+
:abbr: SE
197+
198+
A hardware component or subsystem that is protected by design from unauthorized access, used to run a limited set of security services, and securely store confidential and cryptographic data.
199+
200+
.. term:: Cryptographic accelerator
201+
202+
A hardware component or subsystem that provides accelerated implementation of cryptographic functionality.
203+
204+
.. term:: Built-in key
205+
206+
A cryptographic key that is present in the implementation, which was not created by the application.
207+
For example:
208+
209+
* An immutable system or platform key.
210+
* A key derived from from a system secret.
211+
* A key provisioned by another component in the system for use by the application.

0 commit comments

Comments
 (0)