blob: 73a1a975cc21bf7b59d9c5927932773c6f14af80 [file] [log] [blame]
Gilles Peskine2a079ac2019-10-15 16:08:13 +02001<h1 id="psa-secure-element-driver-interface">PSA secure element driver interface</h1>
Gilles Peskined1bf57b2019-10-15 18:06:25 +02002<p>The secure element driver interface lets you write drivers for external cryptoprocessors such as secure elements (SE), smart cards and hardware security modules (HSM) that perform operations on keys that never leave the external processor and are accessed only through opaque handles. You can plug such drivers into any implementation of the <a href="../#application-programming-interface">PSA Cryptography API</a>.</p>
Gilles Peskinef6dc7482021-11-17 11:58:16 +01003<p><strong>Status: obsolescent</strong> — planned to be replaced by the <a href="../index.html#unified-driver-interface">unified driver interface</a>, although the unified interface does not support runtime driver registration.</p>
Gilles Peskined5137322020-04-17 17:06:30 +02004<p><strong>Documentation</strong>: for now, please see the header file: <a href="https://github.com/ARMmbed/mbedtls/blob/development/include/psa/crypto_se_driver.h"><code>include/psa/crypto_se_driver.h</code></a></p>
5<p><strong>Mbed TLS support status</strong>: Partial. Only a few operations are supported: key pair generation, import, export and destruction; signature and verification.</p>
Gilles Peskineb78b6282019-10-15 16:26:55 +02006<p><strong>Example</strong>: You can see the code of an <a href="https://github.com/ARMmbed/mbed-os-atecc608a">example driver</a> for the <a href="https://www.microchip.com/wwwproducts/en/ATECC608A">Microchip ATECC608A secure element</a>. See the instructions for the <a href="https://github.com/ARMmbed/mbed-os-example-atecc608a">example application using this driver</a> for how to build <a href="https://github.com/ARMmbed/mbed-os">Mbed OS</a> with this driver.</p>