diff options
author | Florin Coras <fcoras@cisco.com> | 2019-10-20 19:32:47 -0700 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2019-10-21 10:46:09 +0000 |
commit | 79ba25d40248ceba3efb232952282678b5a7f910 (patch) | |
tree | b6f27b8d1f1e539ee925778fc91a055a60443b6f /src/vnet/session | |
parent | ef7cbf6adf1882af4d4ae8657632d4a2a59efcb2 (diff) |
session: support registration of custom crypto engines
Type: feature
Change-Id: I888d415ff645b3827df7d4cfb0d3c5f4ac940617
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/session')
-rw-r--r-- | src/vnet/session/application.c | 13 | ||||
-rw-r--r-- | src/vnet/session/application.h | 8 | ||||
-rw-r--r-- | src/vnet/session/application_interface.h | 2 |
3 files changed, 22 insertions, 1 deletions
diff --git a/src/vnet/session/application.c b/src/vnet/session/application.c index 396470ae6f9..7cb888c2344 100644 --- a/src/vnet/session/application.c +++ b/src/vnet/session/application.c @@ -1630,6 +1630,7 @@ cert_key_pair_store_init (vlib_main_t * vm) { /* Add a certificate with index 0 to support legacy apis */ (void) app_cert_key_pair_alloc (); + app_main.last_crypto_engine = CRYPTO_ENGINE_LAST; return 0; } @@ -1651,6 +1652,18 @@ VLIB_CLI_COMMAND (show_certificate_command, static) = }; /* *INDENT-ON* */ +crypto_engine_type_t +app_crypto_engine_type_add (void) +{ + return (++app_main.last_crypto_engine); +} + +u8 +app_crypto_engine_n_types (void) +{ + return (app_main.last_crypto_engine + 1); +} + /* * fd.io coding-style-patch-verification: ON * diff --git a/src/vnet/session/application.h b/src/vnet/session/application.h index a853c3cb73a..08117b744f1 100644 --- a/src/vnet/session/application.h +++ b/src/vnet/session/application.h @@ -139,6 +139,11 @@ typedef struct app_main_ * Pool from which we allocate certificates (key, cert) */ app_cert_key_pair_t *cert_key_pair_store; + + /* + * Last registered crypto engine type + */ + crypto_engine_type_t last_crypto_engine; } app_main_t; typedef struct app_init_args_ @@ -291,6 +296,9 @@ int mq_send_session_connected_cb (u32 app_wrk_index, u32 api_context, void mq_send_unlisten_reply (app_worker_t * app_wrk, session_handle_t sh, u32 context, int rv); +crypto_engine_type_t app_crypto_engine_type_add (void); +u8 app_crypto_engine_n_types (void); + #endif /* SRC_VNET_SESSION_APPLICATION_H_ */ /* diff --git a/src/vnet/session/application_interface.h b/src/vnet/session/application_interface.h index 609a20a47f6..f73cd0abcbc 100644 --- a/src/vnet/session/application_interface.h +++ b/src/vnet/session/application_interface.h @@ -166,7 +166,7 @@ typedef enum crypto_engine_type_ CRYPTO_ENGINE_OPENSSL, CRYPTO_ENGINE_VPP, CRYPTO_ENGINE_PICOTLS, - CRYPTO_N_ENGINES + CRYPTO_ENGINE_LAST = CRYPTO_ENGINE_PICOTLS, } crypto_engine_type_t; typedef struct _vnet_app_add_cert_key_pair_args_ |