Various cipher and authentication algorithms support multiple key/IV/digest lengths. It's not a scalable solution to define these lengths as part of algorithm enumeration. This patch set deprecates enumerations (e.g. ODP_CIPHER_ALG_AES128_CBC) with length definitions. Those are still supported but will be removed in next API version. New enumerations define only algorithm names, with the exception of SHA-2 family of algorithms which are commonly referred with their digest length (such as SHA-256). The supported key/IV/digest lengths are requested with two new functions odp_crypto_cipher_capa() and odp_crypto_auth_capa(). Usage of HMAC is included into authentication algorithm name (it used to be implicit). Only currently supported and validation tested algorithms are defined, but later on e.g. MD5 or SHA-256 (without HMAC) may be defined as well as a set of new algorithms.
Supported key/IV/digest lengths are set to values that pass current validation test suite. Some tests may need to be updated with their key/IV/digest length usage. For example, AES-GCM authentication test uses key length of zero bytes (since it's paired with AES-GCM cipher). v2: * deprecate _params_t and use _param_t instead * rename cipher/auth_capa_t to _capability_t * rename cipher/auth_capa() to _capability() Petri Savolainen (10): api: crypto: rename _params_t to _param_t linux-gen: crypto: rename params to param api: crypto: decouple key length from algorithm enumeration linux-gen: crypto: add algo capability functions linux-gen: crypto: add support to new enumerations api: crypto: added session param init api: crypto: documentation clean up test: crypto: use odp_crypto_session_param_init validation: crypto: use algorithm capability example: ipsec: use op_param_t instead of op_params_t example/ipsec/odp_ipsec.c | 6 +- example/ipsec/odp_ipsec_cache.c | 4 +- include/odp/api/spec/crypto.h | 441 ++++++++++++++----- .../linux-generic/include/odp_crypto_internal.h | 21 +- platform/linux-generic/odp_crypto.c | 489 +++++++++++++-------- test/common_plat/performance/odp_crypto.c | 9 +- .../validation/api/crypto/odp_crypto_test_inp.c | 120 +++-- 7 files changed, 744 insertions(+), 346 deletions(-) -- 2.8.1