diff options
Diffstat (limited to 'src/vnet')
-rw-r--r-- | src/vnet/crypto/crypto.h | 1 | ||||
-rw-r--r-- | src/vnet/crypto/format.c | 21 |
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) { |