examples/fips_validation: fix SHA hash size calculation
Added function to calculate hash size for a given SHA hash algorithm.
Fixes: d5c247145c
("examples/fips_validation: add parsing for SHA")
Cc: stable@dpdk.org
Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Acked-by: Brian Dooley <brian.dooley@intel.com>
This commit is contained in:
parent
0bd998fb4b
commit
8bc8ba4373
@ -374,4 +374,6 @@ int prepare_gcm_xform(struct rte_crypto_sym_xform *xform);
|
|||||||
|
|
||||||
int prepare_gmac_xform(struct rte_crypto_sym_xform *xform);
|
int prepare_gmac_xform(struct rte_crypto_sym_xform *xform);
|
||||||
|
|
||||||
|
int parse_test_sha_hash_size(enum rte_crypto_auth_algorithm algo);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <rte_cryptodev.h>
|
#include <rte_cryptodev.h>
|
||||||
|
|
||||||
@ -33,6 +34,22 @@ struct plain_hash_size_conversion {
|
|||||||
{"64", RTE_CRYPTO_AUTH_SHA512},
|
{"64", RTE_CRYPTO_AUTH_SHA512},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int
|
||||||
|
parse_test_sha_hash_size(enum rte_crypto_auth_algorithm algo)
|
||||||
|
{
|
||||||
|
int ret = -EINVAL;
|
||||||
|
uint8_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < RTE_DIM(phsc); i++) {
|
||||||
|
if (phsc[i].algo == algo) {
|
||||||
|
ret = atoi(phsc[i].str);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
parse_interim_algo(__rte_unused const char *key,
|
parse_interim_algo(__rte_unused const char *key,
|
||||||
char *text,
|
char *text,
|
||||||
@ -212,6 +229,7 @@ parse_test_sha_json_algorithm(void)
|
|||||||
json_t *algorithm_object;
|
json_t *algorithm_object;
|
||||||
const char *algorithm_str;
|
const char *algorithm_str;
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
int sz;
|
||||||
|
|
||||||
algorithm_object = json_object_get(json_info.json_vector_set, "algorithm");
|
algorithm_object = json_object_get(json_info.json_vector_set, "algorithm");
|
||||||
algorithm_str = json_string_value(algorithm_object);
|
algorithm_str = json_string_value(algorithm_object);
|
||||||
@ -226,23 +244,15 @@ parse_test_sha_json_algorithm(void)
|
|||||||
if (i == RTE_DIM(json_algorithms))
|
if (i == RTE_DIM(json_algorithms))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
for (i = 0; i < RTE_DIM(phsc); i++) {
|
sz = parse_test_sha_hash_size(info.interim_info.sha_data.algo);
|
||||||
if (info.interim_info.sha_data.algo == phsc[i].algo) {
|
if (sz < 0)
|
||||||
vec.cipher_auth.digest.len = atoi(phsc[i].str);
|
return -1;
|
||||||
free(vec.cipher_auth.digest.val);
|
|
||||||
vec.cipher_auth.digest.val = calloc(1, vec.cipher_auth.digest.len);
|
free(vec.cipher_auth.digest.val);
|
||||||
if (vec.cipher_auth.digest.val == NULL)
|
vec.cipher_auth.digest.len = sz;
|
||||||
return -1;
|
vec.cipher_auth.digest.val = calloc(1, sz);
|
||||||
|
if (vec.cipher_auth.digest.val == NULL)
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (i == RTE_DIM(phsc)) {
|
|
||||||
free(vec.cipher_auth.digest.val);
|
|
||||||
vec.cipher_auth.digest.val = NULL;
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user