summaryrefslogtreecommitdiffstats
path: root/src/vnet/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/crypto')
-rw-r--r--src/vnet/crypto/crypto.h1
-rw-r--r--src/vnet/crypto/format.c21
2 files changed, 22 insertions, 0 deletions
diff --git a/src/vnet/crypto/crypto.h b/src/vnet/crypto/crypto.h
index 5d03d52756e..92b65a4722a 100644
--- a/src/vnet/crypto/crypto.h
+++ b/src/vnet/crypto/crypto.h
@@ -185,6 +185,7 @@ format_function_t format_vnet_crypto_engine;
format_function_t format_vnet_crypto_op;
format_function_t format_vnet_crypto_op_type;
format_function_t format_vnet_crypto_op_status;
+unformat_function_t unformat_vnet_crypto_alg;
static_always_inline void
vnet_crypto_op_init (vnet_crypto_op_t * op, vnet_crypto_op_id_t type)
diff --git a/src/vnet/crypto/format.c b/src/vnet/crypto/format.c
index df811fe4f2f..715941e0ee7 100644
--- a/src/vnet/crypto/format.c
+++ b/src/vnet/crypto/format.c
@@ -26,6 +26,27 @@ format_vnet_crypto_alg (u8 * s, va_list * args)
return format (s, "%s", d->name);
}
+uword
+unformat_vnet_crypto_alg (unformat_input_t * input, va_list * args)
+{
+ vnet_crypto_main_t *cm = &crypto_main;
+ vnet_crypto_alg_t *alg = va_arg (*args, vnet_crypto_alg_t *);
+ uword *p;
+ u8 *name;
+
+ if (!unformat (input, "%s", &name))
+ return 0;
+
+ p = hash_get_mem (cm->alg_index_by_name, name);
+ vec_free (name);
+ if (p == 0)
+ return 0;
+
+ *alg = p[0];
+
+ return 1;
+}
+
u8 *
format_vnet_crypto_op (u8 * s, va_list * args)
{