blob: f3edaba30d3a75ba5c546ad88974a8766e5642c9 [file] [log] [blame] [view]
Gilles Peskine36cee0e2019-10-15 16:07:12 +02001# PSA cryptography interfaces
2
3This page contains technical information about the cryptography interfaces in the Arm Platform Security Architecture (PSA) and related documents and software.
4For more information about the Platform Security Architecture, see [the Arm Developer website](https://developer.arm.com/architectures/security-architectures/platform-security-architecture).
5
6## Application programming interface
7
8The PSA Cryptography API is a C programming interface for applications that wish to store cryptographic keys and use them to perform cryptographic operations.
9
10**Status: beta** version 1.0.0 beta 3. Minor changes and clarifications are planned before 1.0. Additional features are planned for 1.x releases.
11
12**Reference documentation**:
13[HTML](../html/index.html),
14[PDF](../PSA_Cryptography_API_Specification.pdf)
15
16**Reference implementation**: [Mbed Crypto](https://github.com/ARMmbed/mbed-crypto)
17
18## Hardware abstraction layer
19
20PSA includes functional specifications describing a hardware abstraction layer covering [cryptographic accelerators](accel/), [secure elements](se/) and [entropy sources](entropy/).
21
22### Accelerator driver interface
23
24The accelerator interface lets you drivers for cryptographic accelerators into an implementation of the PSA Cryptography API. Cryptographic accelerators perform cryptographic operations with keys in clear text.
25
26For more information, see [PSA cryptography accelerator driver interface](accel/).
27
28### Secure element driver interface
29
30The accelerator interface lets you drivers for external cryptoprocessors into an implementation of the PSA Cryptography API. External cryptoprocessors such as secure elements and smart cards perform cryptographic operations with keys accessed via opaque handles.
31
32For more information, see [PSA secure element driver interface](se/).
33
34### Entropy source driver interface
35
36The accelerator interface lets you drivers for entropy sources such as Hardware Random Number Generators (HRNG), also known as True Random Number Generators (TRNG), into an implementation of the PSA Cryptography API.
37
38For more information, see [PSA entropy source driver interface](entropy/).