diff options
author | Fan Zhang <roy.fan.zhang@intel.com> | 2020-04-29 14:00:03 +0100 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2020-04-30 14:38:33 +0000 |
commit | f539578bac8b64886b57c460c9d74273e6613f8b (patch) | |
tree | 190e09705fe1ebb46ca86a48c19de49fcaf0cbb0 /src/vnet/crypto/format.c | |
parent | 162330f25aeec09694fffaaa31ba9b318620eb9c (diff) |
crypto: introduce async crypto infra
Type: feature
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Signed-off-by: Piotr Bronowski <piotrx.bronowski@intel.com>
Signed-off-by: Dariusz Kazimierski <dariuszx.kazimierski@intel.com>
Signed-off-by: Piotr Kleski <piotrx.kleski@intel.com>
Change-Id: I4c3fcccf55c36842b7b48aed260fef2802b5c54b
Diffstat (limited to 'src/vnet/crypto/format.c')
-rw-r--r-- | src/vnet/crypto/format.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/vnet/crypto/format.c b/src/vnet/crypto/format.c index 715941e0ee7..b58ab7fceb2 100644 --- a/src/vnet/crypto/format.c +++ b/src/vnet/crypto/format.c @@ -105,6 +105,61 @@ format_vnet_crypto_engine (u8 * s, va_list * args) return format (s, "%s", e->name); } +u8 * +format_vnet_crypto_async_op_type (u8 * s, va_list * args) +{ + vnet_crypto_async_op_type_t opt = + va_arg (*args, vnet_crypto_async_op_type_t); + char *strings[] = { +#define _(n, s) [VNET_CRYPTO_ASYNC_OP_TYPE_##n] = s, + foreach_crypto_async_op_type +#undef _ + }; + + if (opt >= VNET_CRYPTO_ASYNC_OP_N_TYPES) + return format (s, "unknown"); + + return format (s, "%s", strings[opt]); +} + +u8 * +format_vnet_crypto_async_alg (u8 * s, va_list * args) +{ + vnet_crypto_async_alg_t alg = va_arg (*args, vnet_crypto_async_alg_t); + vnet_crypto_main_t *cm = &crypto_main; + vnet_crypto_async_alg_data_t *d = vec_elt_at_index (cm->async_algs, alg); + return format (s, "%s", d->name); +} + +u8 * +format_vnet_crypto_async_op (u8 * s, va_list * args) +{ + vnet_crypto_main_t *cm = &crypto_main; + vnet_crypto_async_op_id_t op = va_arg (*args, int); // vnet_crypto_op_id_t); + vnet_crypto_async_op_data_t *otd = cm->async_opt_data + op; + + return format (s, "%U-%U", format_vnet_crypto_async_op_type, otd->type, + format_vnet_crypto_async_alg, otd->alg); + + vnet_crypto_async_op_id_t opt = va_arg (*args, vnet_crypto_async_op_id_t); + char *strings[] = { +#define _(n, s, k, t, a) \ + [VNET_CRYPTO_OP_##n##_TAG##t##_AAD##a##_ENC] = s "-enc", \ + [VNET_CRYPTO_OP_##n##_TAG##t##_AAD##a##_DEC] = s "-dec", + foreach_crypto_aead_async_alg +#undef _ +#define _(c, h, s, k ,d) \ + [VNET_CRYPTO_OP_##c##_##h##_TAG##d##_ENC] = s "-enc", \ + [VNET_CRYPTO_OP_##c##_##h##_TAG##d##_DEC] = s "-dec", + foreach_crypto_link_async_alg +#undef _ + }; + + if (opt >= VNET_CRYPTO_ASYNC_OP_N_IDS) + return format (s, "unknown"); + + return format (s, "%s", strings[opt]); +} /* * fd.io coding-style-patch-verification: ON |