+int
+vnet_crypto_set_handler (char *ops_handler_name, char *engine)
+{
+ uword *p;
+ vnet_crypto_main_t *cm = &crypto_main;
+ vnet_crypto_op_type_t ot;
+ vnet_crypto_op_type_data_t *otd;
+ vnet_crypto_engine_t *ce;
+
+ p = hash_get_mem (cm->ops_handler_index_by_name, ops_handler_name);
+ if (!p)
+ return -1;
+
+ ot = p[0];
+ otd = cm->opt_data + ot;
+
+ p = hash_get_mem (cm->engine_index_by_name, engine);
+ if (!p)
+ return -1;
+
+ ce = cm->engines + p[0];
+ otd->active_engine_index = p[0];
+ cm->ops_handlers[ot] = ce->ops_handlers[ot];
+
+ return 0;
+}
+