test update to verify the crypto capability functionality

Signed-off-by: Balakrishna Garapati <[email protected]>
---
 v2: Added the suport to verify if hw offload is supported
 v3: Move capability initialization to linux-generic (Bill)

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

diff --git a/test/validation/crypto/odp_crypto_test_inp.c 
b/test/validation/crypto/odp_crypto_test_inp.c
index fc125f7..0c5b110 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,51 @@ static void alg_test(odp_crypto_op_t op,
        odp_crypto_compl_t compl_event;
        odp_crypto_op_result_t result;

+       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
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to