diff mbox

[API-NEXT,PATCHv2,2/2] validation: crypto: verify odp crypto capability

Message ID 1461595117-15338-1-git-send-email-balakrishna.garapati@linaro.org
State Superseded
Headers show

Commit Message

Balakrishna Garapati April 25, 2016, 2:38 p.m. UTC
test update to verify the crypto capability functionality

Signed-off-by: Balakrishna Garapati <balakrishna.garapati@linaro.org>
---
 v2: Added the suport to verify if hw offload is supported

 test/validation/crypto/odp_crypto_test_inp.c | 49 ++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

--
1.9.1

Comments

Bill Fischofer April 26, 2016, 12:55 a.m. UTC | #1
On Mon, Apr 25, 2016 at 9:38 AM, Balakrishna Garapati <
balakrishna.garapati@linaro.org> wrote:

> test update to verify the crypto capability functionality

>

> Signed-off-by: Balakrishna Garapati <balakrishna.garapati@linaro.org>

> ---

>  v2: Added the suport to verify if hw offload is supported

>

>  test/validation/crypto/odp_crypto_test_inp.c | 49

> ++++++++++++++++++++++++++++

>  1 file changed, 49 insertions(+)

>

> diff --git a/test/validation/crypto/odp_crypto_test_inp.c

> b/test/validation/crypto/odp_crypto_test_inp.c

> index fc125f7..393fd20 100644

> --- a/test/validation/crypto/odp_crypto_test_inp.c

> +++ b/test/validation/crypto/odp_crypto_test_inp.c

> @@ -46,6 +46,7 @@ static void alg_test(odp_crypto_op_t op,

>                      )

>  {

>         odp_crypto_session_t session;

> +       odp_crypto_capability_t capability;

>         int rc;

>         odp_crypto_ses_create_err_t status;

>         odp_bool_t posted;

> @@ -53,6 +54,54 @@ static void alg_test(odp_crypto_op_t op,

>         odp_crypto_compl_t compl_event;

>         odp_crypto_op_result_t result;

>

> +       /* Initialize crypto capability structure */

> +       memset(&capability, 0, sizeof(odp_crypto_capability_t));



Since this is an output struct, the odp_crypto_capability() API itself
should zero and set this structure, not the caller.  This memset should
move from here to part 1 as part of the implementation of this API.


> +

> +       rc = odp_crypto_capability(&capability);

> +       CU_ASSERT(!rc);

> +

> +       if (capability.hw_ciphers.all_bits) {

> +               if (cipher_alg == ODP_CIPHER_ALG_3DES_CBC &&

> +                   !(capability.hw_ciphers.bit.trides_cbc))

> +                       rc = -1;

> +               if (cipher_alg == ODP_CIPHER_ALG_AES128_CBC &&

> +                   !(capability.hw_ciphers.bit.aes128_cbc))

> +                       rc = -1;

> +               if (cipher_alg == ODP_CIPHER_ALG_AES128_GCM &&

> +                   !(capability.hw_ciphers.bit.aes128_gcm))

> +                       rc = -1;

> +       } else {

> +               if (cipher_alg == ODP_CIPHER_ALG_3DES_CBC &&

> +                   !(capability.ciphers.bit.trides_cbc))

> +                       rc = -1;

> +               if (cipher_alg == ODP_CIPHER_ALG_AES128_CBC &&

> +                   !(capability.ciphers.bit.aes128_cbc))

> +                       rc = -1;

> +               if (cipher_alg == ODP_CIPHER_ALG_AES128_GCM &&

> +                   !(capability.ciphers.bit.aes128_gcm))

> +                       rc = -1;

> +       }

> +

> +       CU_ASSERT(!rc);

> +

> +       if (capability.hw_auths.all_bits) {

> +               if (auth_alg == ODP_AUTH_ALG_AES128_GCM &&

> +                   !(capability.hw_auths.bit.aes128_gcm))

> +                       rc = -1;

> +               if (auth_alg == ODP_AUTH_ALG_NULL &&

> +                   !(capability.hw_auths.bit.null))

> +                       rc = -1;

> +       } else {

> +               if (auth_alg == ODP_AUTH_ALG_AES128_GCM &&

> +                   !(capability.auths.bit.aes128_gcm))

> +                       rc = -1;

> +               if (auth_alg == ODP_AUTH_ALG_NULL &&

> +                   !(capability.auths.bit.null))

> +                       rc = -1;

> +       }

> +

> +       CU_ASSERT(!rc);

> +

>         /* Create a crypto session */

>         odp_crypto_session_params_t ses_params;

>         memset(&ses_params, 0, sizeof(ses_params));

> --

> 1.9.1

>

> _______________________________________________

> lng-odp mailing list

> lng-odp@lists.linaro.org

> https://lists.linaro.org/mailman/listinfo/lng-odp

>
diff mbox

Patch

diff --git a/test/validation/crypto/odp_crypto_test_inp.c b/test/validation/crypto/odp_crypto_test_inp.c
index fc125f7..393fd20 100644
--- a/test/validation/crypto/odp_crypto_test_inp.c
+++ b/test/validation/crypto/odp_crypto_test_inp.c
@@ -46,6 +46,7 @@  static void alg_test(odp_crypto_op_t op,
 		     )
 {
 	odp_crypto_session_t session;
+	odp_crypto_capability_t capability;
 	int rc;
 	odp_crypto_ses_create_err_t status;
 	odp_bool_t posted;
@@ -53,6 +54,54 @@  static void alg_test(odp_crypto_op_t op,
 	odp_crypto_compl_t compl_event;
 	odp_crypto_op_result_t result;

+	/* Initialize crypto capability structure */
+	memset(&capability, 0, sizeof(odp_crypto_capability_t));
+
+	rc = odp_crypto_capability(&capability);
+	CU_ASSERT(!rc);
+
+	if (capability.hw_ciphers.all_bits) {
+		if (cipher_alg == ODP_CIPHER_ALG_3DES_CBC &&
+		    !(capability.hw_ciphers.bit.trides_cbc))
+			rc = -1;
+		if (cipher_alg == ODP_CIPHER_ALG_AES128_CBC &&
+		    !(capability.hw_ciphers.bit.aes128_cbc))
+			rc = -1;
+		if (cipher_alg == ODP_CIPHER_ALG_AES128_GCM &&
+		    !(capability.hw_ciphers.bit.aes128_gcm))
+			rc = -1;
+	} else {
+		if (cipher_alg == ODP_CIPHER_ALG_3DES_CBC &&
+		    !(capability.ciphers.bit.trides_cbc))
+			rc = -1;
+		if (cipher_alg == ODP_CIPHER_ALG_AES128_CBC &&
+		    !(capability.ciphers.bit.aes128_cbc))
+			rc = -1;
+		if (cipher_alg == ODP_CIPHER_ALG_AES128_GCM &&
+		    !(capability.ciphers.bit.aes128_gcm))
+			rc = -1;
+	}
+
+	CU_ASSERT(!rc);
+
+	if (capability.hw_auths.all_bits) {
+		if (auth_alg == ODP_AUTH_ALG_AES128_GCM &&
+		    !(capability.hw_auths.bit.aes128_gcm))
+			rc = -1;
+		if (auth_alg == ODP_AUTH_ALG_NULL &&
+		    !(capability.hw_auths.bit.null))
+			rc = -1;
+	} else {
+		if (auth_alg == ODP_AUTH_ALG_AES128_GCM &&
+		    !(capability.auths.bit.aes128_gcm))
+			rc = -1;
+		if (auth_alg == ODP_AUTH_ALG_NULL &&
+		    !(capability.auths.bit.null))
+			rc = -1;
+	}
+
+	CU_ASSERT(!rc);
+
 	/* Create a crypto session */
 	odp_crypto_session_params_t ses_params;
 	memset(&ses_params, 0, sizeof(ses_params));