summaryrefslogtreecommitdiff
path: root/examples/fips_validation
diff options
context:
space:
mode:
authorMarko Kovacevic <marko.kovacevic@intel.com>2019-04-15 16:04:47 +0100
committerAkhil Goyal <akhil.goyal@nxp.com>2019-04-18 16:01:28 +0200
commit07f403e77341e48a4f617cad672d562a210a97c7 (patch)
tree889a2221317feb958915f3296239192d16ad0214 /examples/fips_validation
parentcf47a68e5d9f52cdec3462961d313feb9c66859f (diff)
downloaddpdk-07f403e77341e48a4f617cad672d562a210a97c7.zip
dpdk-07f403e77341e48a4f617cad672d562a210a97c7.tar.gz
dpdk-07f403e77341e48a4f617cad672d562a210a97c7.tar.xz
examples/fips_validation: fix HMAC test
Application was failing as the HMAC and Plain SHA fips request files are similar in a way that they both have SHA- in the top section to determine the hash algo and hash sizes. And HMAC having the algo in the second line but the Plain SHA in the third meant that when the HMAC files was used once it parsed the third line Plain SHA was set as the algo and not HMAC. USER1: Failed to get capability for cdev 0 USER1: Error -22: test block [L=20 SHAAlg=SHA_2] USER1: Error -22: Failed test /root/FIPS/HMAC/req/HMAC.req Fixes: f4797bae0050 ("examples/fips_validation: support plain SHA") Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Diffstat (limited to 'examples/fips_validation')
-rw-r--r--examples/fips_validation/fips_validation.c80
1 files changed, 45 insertions, 35 deletions
diff --git a/examples/fips_validation/fips_validation.c b/examples/fips_validation/fips_validation.c
index 2f8314f..8d43b26 100644
--- a/examples/fips_validation/fips_validation.c
+++ b/examples/fips_validation/fips_validation.c
@@ -98,6 +98,7 @@ fips_test_parse_header(void)
uint32_t i;
char *tmp;
int ret;
+ int algo_parsed = 0;
time_t t = time(NULL);
struct tm *tm_now = localtime(&t);
@@ -106,41 +107,50 @@ fips_test_parse_header(void)
return ret;
for (i = 0; i < info.nb_vec_lines; i++) {
- if (strstr(info.vec[i], "AESVS")) {
- info.algo = FIPS_TEST_ALGO_AES;
- ret = parse_test_aes_init();
- if (ret < 0)
- return ret;
- } else if (strstr(info.vec[i], "GCM")) {
- info.algo = FIPS_TEST_ALGO_AES_GCM;
- ret = parse_test_gcm_init();
- if (ret < 0)
- return ret;
- } else if (strstr(info.vec[i], "CMAC")) {
- info.algo = FIPS_TEST_ALGO_AES_CMAC;
- ret = parse_test_cmac_init();
- if (ret < 0)
- return 0;
- } else if (strstr(info.vec[i], "CCM")) {
- info.algo = FIPS_TEST_ALGO_AES_CCM;
- ret = parse_test_ccm_init();
- if (ret < 0)
- return 0;
- } else if (strstr(info.vec[i], "HMAC")) {
- info.algo = FIPS_TEST_ALGO_HMAC;
- ret = parse_test_hmac_init();
- if (ret < 0)
- return ret;
- } else if (strstr(info.vec[i], "TDES")) {
- info.algo = FIPS_TEST_ALGO_TDES;
- ret = parse_test_tdes_init();
- if (ret < 0)
- return 0;
- } else if (strstr(info.vec[i], "SHA-")) {
- info.algo = FIPS_TEST_ALGO_SHA;
- ret = parse_test_sha_init();
- if (ret < 0)
- return ret;
+ if (!algo_parsed) {
+ if (strstr(info.vec[i], "AESVS")) {
+ algo_parsed = 1;
+ info.algo = FIPS_TEST_ALGO_AES;
+ ret = parse_test_aes_init();
+ if (ret < 0)
+ return ret;
+ } else if (strstr(info.vec[i], "GCM")) {
+ algo_parsed = 1;
+ info.algo = FIPS_TEST_ALGO_AES_GCM;
+ ret = parse_test_gcm_init();
+ if (ret < 0)
+ return ret;
+ } else if (strstr(info.vec[i], "CMAC")) {
+ algo_parsed = 1;
+ info.algo = FIPS_TEST_ALGO_AES_CMAC;
+ ret = parse_test_cmac_init();
+ if (ret < 0)
+ return 0;
+ } else if (strstr(info.vec[i], "CCM")) {
+ algo_parsed = 1;
+ info.algo = FIPS_TEST_ALGO_AES_CCM;
+ ret = parse_test_ccm_init();
+ if (ret < 0)
+ return 0;
+ } else if (strstr(info.vec[i], "HMAC")) {
+ algo_parsed = 1;
+ info.algo = FIPS_TEST_ALGO_HMAC;
+ ret = parse_test_hmac_init();
+ if (ret < 0)
+ return ret;
+ } else if (strstr(info.vec[i], "TDES")) {
+ algo_parsed = 1;
+ info.algo = FIPS_TEST_ALGO_TDES;
+ ret = parse_test_tdes_init();
+ if (ret < 0)
+ return 0;
+ } else if (strstr(info.vec[i], "SHA-")) {
+ algo_parsed = 1;
+ info.algo = FIPS_TEST_ALGO_SHA;
+ ret = parse_test_sha_init();
+ if (ret < 0)
+ return ret;
+ }
}
tmp = strstr(info.vec[i], "# Config info for ");