+#ifndef _VLC_TLS_H
+# define _VLC_TLS_H
+
+struct tls_t
+{
+ VLC_COMMON_MEMBERS
+
+ /* Module properties */
+ module_t *p_module;
+ void *p_sys;
+
+ tls_server_t * (*pf_server_create) ( tls_t *, const char *, const char * );
+};
+
+struct tls_server_t
+{
+ tls_t *p_tls;
+ void *p_sys;
+
+ void (*pf_delete) ( tls_server_t * );
+
+ int (*pf_add_CA) ( tls_server_t *, const char * );
+ int (*pf_add_CRL) ( tls_server_t *, const char * );
+
+ tls_session_t * (*pf_session_prepare) ( tls_server_t * );
+};
+
+struct tls_session_t
+{
+ tls_t *p_tls;
+ tls_server_t *p_server;
+
+ void *p_sys;
+
+ tls_session_t * (*pf_handshake) ( tls_session_t *, int );
+ void (*pf_close) ( tls_session_t * );
+ int (*pf_send) ( tls_session_t *, const char *, int );
+ int (*pf_recv) ( tls_session_t *, char *, int );
+};
+