cryptodev: add algorithm string parsers
Adds functions to get the cipher/authentication algorithm enums, given a string. This is useful for applications which gets the algorithm required from the user, to have a common string-enum mapping. Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
This commit is contained in:
parent
e26690f4fc
commit
afe6050060
@ -187,6 +187,40 @@ rte_crypto_auth_algorithm_strings[] = {
|
||||
[RTE_CRYPTO_AUTH_ZUC_EIA3] = "zuc-eia3"
|
||||
};
|
||||
|
||||
int
|
||||
rte_cryptodev_get_cipher_algo_enum(enum rte_crypto_cipher_algorithm *algo_enum,
|
||||
const char *algo_string)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 1; i < RTE_DIM(rte_crypto_cipher_algorithm_strings); i++) {
|
||||
if (strcmp(algo_string, rte_crypto_cipher_algorithm_strings[i]) == 0) {
|
||||
*algo_enum = (enum rte_crypto_cipher_algorithm) i;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Invalid string */
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
rte_cryptodev_get_auth_algo_enum(enum rte_crypto_auth_algorithm *algo_enum,
|
||||
const char *algo_string)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 1; i < RTE_DIM(rte_crypto_auth_algorithm_strings); i++) {
|
||||
if (strcmp(algo_string, rte_crypto_auth_algorithm_strings[i]) == 0) {
|
||||
*algo_enum = (enum rte_crypto_auth_algorithm) i;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Invalid string */
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* The crypto auth operation strings identifiers.
|
||||
* It could be used in application command line.
|
||||
|
@ -234,6 +234,36 @@ rte_cryptodev_sym_capability_check_auth(
|
||||
const struct rte_cryptodev_symmetric_capability *capability,
|
||||
uint16_t key_size, uint16_t digest_size, uint16_t aad_size);
|
||||
|
||||
/**
|
||||
* Provide the cipher algorithm enum, given an algorithm string
|
||||
*
|
||||
* @param algo_enum A pointer to the cipher algorithm
|
||||
* enum to be filled
|
||||
* @param algo_string Authentication algo string
|
||||
*
|
||||
* @return
|
||||
* - Return -1 if string is not valid
|
||||
* - Return 0 is the string is valid
|
||||
*/
|
||||
int
|
||||
rte_cryptodev_get_cipher_algo_enum(enum rte_crypto_cipher_algorithm *algo_enum,
|
||||
const char *algo_string);
|
||||
|
||||
/**
|
||||
* Provide the authentication algorithm enum, given an algorithm string
|
||||
*
|
||||
* @param algo_enum A pointer to the authentication algorithm
|
||||
* enum to be filled
|
||||
* @param algo_string Authentication algo string
|
||||
*
|
||||
* @return
|
||||
* - Return -1 if string is not valid
|
||||
* - Return 0 is the string is valid
|
||||
*/
|
||||
int
|
||||
rte_cryptodev_get_auth_algo_enum(enum rte_crypto_auth_algorithm *algo_enum,
|
||||
const char *algo_string);
|
||||
|
||||
/** Macro used at end of crypto PMD list */
|
||||
#define RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST() \
|
||||
{ RTE_CRYPTO_OP_TYPE_UNDEFINED }
|
||||
|
@ -64,3 +64,11 @@ DPDK_17.02 {
|
||||
rte_crypto_cipher_operation_strings;
|
||||
|
||||
} DPDK_16.11;
|
||||
|
||||
DPDK_17.05 {
|
||||
global:
|
||||
|
||||
rte_cryptodev_get_auth_algo_enum;
|
||||
rte_cryptodev_get_cipher_algo_enum;
|
||||
|
||||
} DPDK_17.02;
|
||||
|
Loading…
x
Reference in New Issue
Block a user