aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>2018-01-24 08:02:26 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2018-02-26 13:46:09 +0300
commitc91ad1474b0ec07aba6bada7ad0258c71d45c952 (patch)
treeb8503b67ed6d05bbd1b66bc14a09a936cbcf9c94 /include
parent367ed491278550753dfbe805f0fe240495608494 (diff)
api: crypto: add ChaCha20-Poly1305 support
ChaCha20-Poly1305 is a promising AEAD algorithm. Add decarations to support it. Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Reviewed-by: Petri Savolainen <petri.savolainen@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'include')
-rw-r--r--include/odp/api/spec/crypto.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/odp/api/spec/crypto.h b/include/odp/api/spec/crypto.h
index 421080c2b..b7ab53620 100644
--- a/include/odp/api/spec/crypto.h
+++ b/include/odp/api/spec/crypto.h
@@ -101,6 +101,15 @@ typedef enum {
*/
ODP_CIPHER_ALG_AES_CCM,
+ /** ChaCha20-Poly1305
+ *
+ * ChaCha20 with Poly1305 provide both authentication and ciphering of
+ * data (authenticated encryption) in the same operation. Hence this
+ * algorithm must be paired always with ODP_AUTH_ALG_CHACHA20_POLY1305
+ * authentication.
+ */
+ ODP_CIPHER_ALG_CHACHA20_POLY1305,
+
/** @deprecated Use ODP_CIPHER_ALG_AES_CBC instead */
ODP_DEPRECATE(ODP_CIPHER_ALG_AES128_CBC),
@@ -183,6 +192,15 @@ typedef enum {
*/
ODP_AUTH_ALG_AES_CMAC,
+ /** ChaCha20-Poly1305 AEAD
+ *
+ * ChaCha20 with Poly1305 provide both authentication and ciphering of
+ * data (authenticated encryption) in the same operation. Hence this
+ * algorithm must be paired always with
+ * ODP_CIPHER_ALG_CHACHA20_POLY1305 cipher.
+ */
+ ODP_AUTH_ALG_CHACHA20_POLY1305,
+
/** @deprecated Use ODP_AUTH_ALG_MD5_HMAC instead */
ODP_DEPRECATE(ODP_AUTH_ALG_MD5_96),
@@ -221,6 +239,9 @@ typedef union odp_crypto_cipher_algos_t {
/** ODP_CIPHER_ALG_AES_CCM */
uint32_t aes_ccm : 1;
+ /** ODP_CIPHER_ALG_CHACHA20_POLY1305 */
+ uint32_t chacha20_poly1305 : 1;
+
/** @deprecated Use aes_cbc instead */
uint32_t ODP_DEPRECATE(aes128_cbc) : 1;
@@ -269,6 +290,9 @@ typedef union odp_crypto_auth_algos_t {
/** ODP_AUTH_ALG_AES_CMAC*/
uint32_t aes_cmac : 1;
+ /** ODP_AUTH_ALG_CHACHA20_POLY1305 */
+ uint32_t chacha20_poly1305 : 1;
+
/** @deprecated Use md5_hmac instead */
uint32_t ODP_DEPRECATE(md5_96) : 1;