u8 *key;
} vnet_app_add_tls_key_args_t;
-typedef enum tls_engine_type_
+typedef enum crypto_engine_type_
{
- TLS_ENGINE_NONE,
- TLS_ENGINE_MBEDTLS,
- TLS_ENGINE_OPENSSL,
+ CRYPTO_ENGINE_NONE,
+ CRYPTO_ENGINE_OPENSSL,
+ CRYPTO_ENGINE_MBEDTLS,
CRYPTO_ENGINE_VPP,
CRYPTO_ENGINE_PICOTLS,
- TLS_N_ENGINES
-} tls_engine_type_t;
+ 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;
+} crypto_context_t;
+
/* Application attach options */
typedef enum
{
clib_error_t *vnet_app_add_tls_key (vnet_app_add_tls_key_args_t * a);
int vnet_app_add_cert_key_pair (vnet_app_add_cert_key_pair_args_t * a);
int vnet_app_del_cert_key_pair (u32 index);
-int vent_app_add_cert_key_interest (u32 index, u32 app_index); /* Ask for app cb on pair deletion */
+/** Ask for app cb on pair deletion */
+int vnet_app_add_cert_key_interest (u32 index, u32 app_index);
typedef struct app_session_transport_
{
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,
+ "msg too large");
+
typedef struct session_listen_uri_msg_
{
u32 client_index;
u8 uri[56];
} __clib_packed session_listen_uri_msg_t;
+STATIC_ASSERT (sizeof (session_listen_uri_msg_t) <= SESSION_CTRL_MSG_MAX_SIZE,
+ "msg too large");
+
typedef struct session_bound_msg_
{
u32 context;
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,
+ "msg too large");
+
typedef struct session_connect_uri_msg_
{
u32 client_index;
u8 uri[56];
} __clib_packed session_connect_uri_msg_t;
+STATIC_ASSERT (sizeof (session_connect_uri_msg_t) <=
+ SESSION_CTRL_MSG_MAX_SIZE, "msg too large");
+
typedef struct session_connected_msg_
{
u32 context;