X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Ffips_validation%2Ffips_validation_tdes.c;h=a1ddd57cfd6e009fb6f6dc378be2cbe0bd89501c;hb=23370156431239ac850ba2360277d11c19431d0f;hp=15ee434e14bd754ef242c915ade3172d21ad1df1;hpb=86ce81af7352875f31efc01cb110b7b17c0ae235;p=dpdk.git diff --git a/examples/fips_validation/fips_validation_tdes.c b/examples/fips_validation/fips_validation_tdes.c index 15ee434e14..a1ddd57cfd 100644 --- a/examples/fips_validation/fips_validation_tdes.c +++ b/examples/fips_validation/fips_validation_tdes.c @@ -12,6 +12,7 @@ #define NEW_LINE_STR "#" #define TEST_TYPE_KEY " for CBC" +#define TEST_TYPE_ECB_KEY " for ECB" #define TEST_CBCI_KEY " for CBCI" #define ENC_STR "[ENCRYPT]" @@ -58,9 +59,7 @@ static int parse_tdes_uint8_hex_str(const char *key, char *src, struct fips_val *val); static int -parse_tdes_interim(const char *key, - __attribute__((__unused__)) char *text, - struct fips_val *val); +parse_tdes_interim(const char *key, char *text, struct fips_val *val); struct fips_test_callback tdes_tests_vectors[] = { {KEYS_STR, parse_tdes_uint8_hex_str, &vec.cipher_auth.key}, @@ -76,6 +75,7 @@ struct fips_test_callback tdes_tests_vectors[] = { struct fips_test_callback tdes_tests_interim_vectors[] = { {ENC_STR, parse_tdes_interim, NULL}, {DEC_STR, parse_tdes_interim, NULL}, + {NK_STR, parse_tdes_interim, NULL}, {NULL, NULL, NULL} /**< end pointer */ }; @@ -93,21 +93,23 @@ struct fips_test_callback tdes_writeback_callbacks[] = { }; static int -parse_tdes_interim(const char *key, - __attribute__((__unused__)) char *text, - __attribute__((__unused__)) struct fips_val *val) +parse_tdes_interim(const char *key, char *text, + __rte_unused struct fips_val *val) { if (strstr(key, ENC_STR)) info.op = FIPS_TEST_ENC_AUTH_GEN; else if (strstr(key, DEC_STR)) info.op = FIPS_TEST_DEC_AUTH_VERIF; - else if (strstr(NK_STR, "NumKeys = 1")) - info.interim_info.tdes_data.nb_keys = 1; - else if (strstr(NK_STR, "NumKeys = 2")) - info.interim_info.tdes_data.nb_keys = 2; - else if (strstr(NK_STR, "NumKeys = 3")) - info.interim_info.tdes_data.nb_keys = 3; - else + else if (strstr(key, NK_STR)) { + if (strcmp(text, "NumKeys = 1") == 0) + info.interim_info.tdes_data.nb_keys = 1; + else if (strcmp(text, "NumKeys = 2") == 0) + info.interim_info.tdes_data.nb_keys = 2; + else if (strcmp(text, "NumKeys = 3") == 0) + info.interim_info.tdes_data.nb_keys = 3; + else + return -EINVAL; + } else return -EINVAL; return 0; @@ -212,6 +214,8 @@ writeback_tdes_hex_str(const char *key, char *dst, struct fips_val *val) tmp_val.val = val->val + 8; else if (strstr(key, KEY3_STR)) tmp_val.val = val->val + 16; + else + return -EINVAL; return writeback_hex_str(key, dst, &tmp_val); } @@ -250,6 +254,12 @@ parse_test_tdes_init(void) if (strstr(line, test_types[j].desc)) { info.interim_info.tdes_data.test_type = test_types[j].type; + if (strstr(line, TEST_TYPE_ECB_KEY)) + info.interim_info.tdes_data.test_mode = + TDES_MODE_ECB; + else + info.interim_info.tdes_data.test_mode = + TDES_MODE_CBC; break; } }