1 /*
2  * Copyright (c) 2001-2019, Arm Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 /*!
7 
8   @mainpage CryptoCell-312 runtime-software API overview
9 
10   This documentation describes the runtime APIs provided by Arm CryptoCell-312.
11   It provides the programmer with all information necessary for integrating
12   and using the runtime APIs in the target environment.\n
13   The API layer enables using the CryptoCell cryptographic algorithms, for example,
14   AES, hash, RSA and ECC.\n
15   Cryptographic algorithms can be divided into two main categories:
16   <ul><li>Symmetric algorithms are mostly used for message confidentiality.\n
17   The symmetric encryption algorithms are accessible via the generic cipher layer.
18   For more information, see mbedtls_cipher_setup().</li>
19   <li>Asymmetric algorithms are mostly used for key exchange and message integrity.\n
20   The asymmetric encryption algorithms are accessible via the generic public
21   key layer.</li></ul>
22   The following algorithms are provided:
23   <ul><li>Symmetric:<ul>
24     <li>AES. \ref cc_aes_hw_limit.</li></ul></li>
25     <li>Asymmetric:<ul>
26     <li>Diffie-Hellman-Merkle. See ::mbedtls_dhm_read_public(), ::mbedtls_dhm_make_public()
27       and ::mbedtls_dhm_calc_secret().</li>
28     <li>RSA. See ::mbedtls_rsa_public() and ::mbedtls_rsa_private().</li>
29     <li>Elliptic Curves over GF(p). See ::mbedtls_ecp_point_init().</li>
30     <li>Elliptic Curve Digital Signature Algorithm (ECDSA). See ::mbedtls_ecdsa_init().</li>
31     <li>Elliptic Curve Diffie Hellman (ECDH). See ::mbedtls_ecdh_init().</li></ul></li></ul>
32   The documentation is automatically generated from the source code using Doxygen.\n
33   For more information on Doxygen, see http://www.stack.nl/~dimitri/doxygen/.\n
34   The <b>Modules</b> section introduces the high-level module concepts used
35   throughout this documentation.
36  */