typedef enum crypto_engine_type_
{
CRYPTO_ENGINE_NONE,
- CRYPTO_ENGINE_MBEDTLS,
CRYPTO_ENGINE_OPENSSL,
+ CRYPTO_ENGINE_MBEDTLS,
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_
u32 index;
} vnet_app_add_cert_key_pair_args_t;
+typedef struct crypto_ctx_
+{
+ u32 ctx_index; /**< index in crypto context pool */
+ u32 n_subscribers; /**< refcount of sessions using said context */
+ u32 ckpair_index; /**< certificate & key */
+ u8 crypto_engine;
+ void *data; /**< protocol specific data */
+} crypto_context_t;
+
/* Application attach options */
typedef enum
{
u8 is_ip4;
ip46_address_t ip;
u32 ckpair_index;
+ u8 crypto_engine;
} __clib_packed session_listen_msg_t;
STATIC_ASSERT (sizeof (session_listen_msg_t) <= SESSION_CTRL_MSG_MAX_SIZE,
u64 segment_handle;
uword vpp_event_queue_address;
transport_endpoint_t rmt;
+ u8 flags;
} __clib_packed session_accepted_msg_t;
typedef struct session_accepted_reply_msg_
u8 proto;
u8 is_ip4;
ip46_address_t ip;
+ ip46_address_t lcl_ip;
u8 hostname_len;
u8 hostname[16];
u64 parent_handle;
u32 ckpair_index;
+ u8 crypto_engine;
+ u8 flags;
} __clib_packed session_connect_msg_t;
STATIC_ASSERT (sizeof (session_connect_msg_t) <= SESSION_CTRL_MSG_MAX_SIZE,