diff options
author | 2025-01-16 12:47:01 +0000 | |
---|---|---|
committer | 2025-01-16 14:53:36 +0000 | |
commit | 4e003776cb9a7f7989ae4c49baec12d74ad16fa7 (patch) | |
tree | 07b2eb1625a37086d4ecc7a6c19d17b18f3b3996 /src/vnet/crypto/crypto_api.c | |
parent | 574c4574cd93e698af74d09992541af04150ead4 (diff) |
crypto: combine sync and async algos and ops
Type: improvement
Change-Id: I4d507b105e5b5ba7dd68d373c7f1ab156a9fc9f1
Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/vnet/crypto/crypto_api.c')
-rw-r--r-- | src/vnet/crypto/crypto_api.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/src/vnet/crypto/crypto_api.c b/src/vnet/crypto/crypto_api.c index e701864a5ba..e7322cdd553 100644 --- a/src/vnet/crypto/crypto_api.c +++ b/src/vnet/crypto/crypto_api.c @@ -68,18 +68,23 @@ vl_api_crypto_set_handler_t_handler (vl_api_crypto_set_handler_t * mp) { vl_api_crypto_set_handler_reply_t *rmp; int rv = 0; - char *engine; - char *alg_name; - crypto_op_class_type_t oct; - - engine = (char *) mp->engine; - alg_name = (char *) mp->alg_name; - oct = (crypto_op_class_type_t) mp->oct; - - if (mp->is_async) - rv = vnet_crypto_set_async_handler2 (alg_name, engine); - else - rv = vnet_crypto_set_handler2 (alg_name, engine, oct); + + enum + { + CRYPTO_OP_SIMPLE, + CRYPTO_OP_CHAINED, + CRYPTO_OP_BOTH, + } oct = (typeof (oct)) mp->oct; + + vnet_crypto_set_handlers_args_t args = { + .engine = (char *) mp->engine, + .handler_name = (char *) mp->alg_name, + .set_async = mp->is_async != 0, + .set_simple = oct == CRYPTO_OP_SIMPLE || oct == CRYPTO_OP_BOTH, + .set_chained = oct == CRYPTO_OP_CHAINED || oct == CRYPTO_OP_BOTH, + }; + + rv = vnet_crypto_set_handlers (&args); REPLY_MACRO (VL_API_CRYPTO_SET_HANDLER_REPLY); } |