aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>2017-06-01 12:03:34 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2017-06-16 17:01:10 +0300
commit2156eaa076fe0ca0aaa910c8902d5b60aa3bbed6 (patch)
treec9cfebff5bbe7396e86c09e539f73a81f5ff4e6d
parentca1ebaa8319604d4f5fe303be7150b7278fe9d94 (diff)
crypto: linux-generic: add capabilities for CIPHER_NULL and AUTH_NULL
There is no point in having separate cases for NULL algorithms. Add capabilities returning 0 key/digest/iv length. Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-by: Petri Savolainen <petri.savolainen@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
-rw-r--r--platform/linux-generic/odp_crypto.c14
-rw-r--r--test/common_plat/validation/api/crypto/odp_crypto_test_inp.c18
2 files changed, 14 insertions, 18 deletions
diff --git a/platform/linux-generic/odp_crypto.c b/platform/linux-generic/odp_crypto.c
index 32fece308..9e5a11900 100644
--- a/platform/linux-generic/odp_crypto.c
+++ b/platform/linux-generic/odp_crypto.c
@@ -34,6 +34,9 @@
*
* Keep sorted: first by key length, then by IV length
*/
+static const odp_crypto_cipher_capability_t cipher_capa_null[] = {
+{.key_len = 0, .iv_len = 0} };
+
static const odp_crypto_cipher_capability_t cipher_capa_des[] = {
{.key_len = 24, .iv_len = 8} };
@@ -51,6 +54,9 @@ static const odp_crypto_cipher_capability_t cipher_capa_aes_gcm[] = {
*
* Keep sorted: first by digest length, then by key length
*/
+static const odp_crypto_auth_capability_t auth_capa_null[] = {
+{.digest_len = 0, .key_len = 0, .aad_len = {.min = 0, .max = 0, .inc = 0} } };
+
static const odp_crypto_auth_capability_t auth_capa_md5_hmac[] = {
{.digest_len = 12, .key_len = 16, .aad_len = {.min = 0, .max = 0, .inc = 0} },
{.digest_len = 16, .key_len = 16, .aad_len = {.min = 0, .max = 0, .inc = 0} } };
@@ -571,8 +577,8 @@ int odp_crypto_cipher_capability(odp_cipher_alg_t cipher,
switch (cipher) {
case ODP_CIPHER_ALG_NULL:
- src = NULL;
- num = 0;
+ src = cipher_capa_null;
+ num = sizeof(cipher_capa_null) / size;
break;
case ODP_CIPHER_ALG_DES:
src = cipher_capa_des;
@@ -611,8 +617,8 @@ int odp_crypto_auth_capability(odp_auth_alg_t auth,
switch (auth) {
case ODP_AUTH_ALG_NULL:
- src = NULL;
- num = 0;
+ src = auth_capa_null;
+ num = sizeof(auth_capa_null) / size;
break;
case ODP_AUTH_ALG_MD5_HMAC:
src = auth_capa_md5_hmac;
diff --git a/test/common_plat/validation/api/crypto/odp_crypto_test_inp.c b/test/common_plat/validation/api/crypto/odp_crypto_test_inp.c
index c89d04f9c..470c5bc5e 100644
--- a/test/common_plat/validation/api/crypto/odp_crypto_test_inp.c
+++ b/test/common_plat/validation/api/crypto/odp_crypto_test_inp.c
@@ -141,13 +141,8 @@ static void alg_test(odp_crypto_op_t op,
num = odp_crypto_cipher_capability(cipher_alg, cipher_capa,
MAX_ALG_CAPA);
- if (cipher_alg != ODP_CIPHER_ALG_NULL) {
- CU_ASSERT(num > 0);
- found = 0;
- } else {
- CU_ASSERT(num == 0);
- found = 1;
- }
+ CU_ASSERT(num > 0);
+ found = 0;
CU_ASSERT(num <= MAX_ALG_CAPA);
@@ -167,13 +162,8 @@ static void alg_test(odp_crypto_op_t op,
num = odp_crypto_auth_capability(auth_alg, auth_capa, MAX_ALG_CAPA);
- if (auth_alg != ODP_AUTH_ALG_NULL) {
- CU_ASSERT(num > 0);
- found = 0;
- } else {
- CU_ASSERT(num == 0);
- found = 1;
- }
+ CU_ASSERT(num > 0);
+ found = 0;
CU_ASSERT(num <= MAX_ALG_CAPA);