From d1ac67f6d73f24a165ccc008440bb8b208ae140f Mon Sep 17 00:00:00 2001 From: Dirk Engling Date: Mon, 16 May 2022 15:53:39 +0200 Subject: Decouple IO openssl's BIO abstraction and split connection and tls handling to allow for other TLS libs --- vchat-tls.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 vchat-tls.h (limited to 'vchat-tls.h') diff --git a/vchat-tls.h b/vchat-tls.h new file mode 100755 index 0000000..8d33ebd --- /dev/null +++ b/vchat-tls.h @@ -0,0 +1,30 @@ +#pragma once + +/* prototypes */ + +struct vc_x509store_t; +typedef struct vc_x509store_t vc_x509store_t; +typedef int (*vc_askpass_cb_t)(char *, int, int, void *); + +vc_x509store_t *vc_init_x509store(); +void vc_x509store_set_pkeycb(vc_x509store_t *, vc_askpass_cb_t); +void vc_x509store_setflags(vc_x509store_t *, int); +void vc_x509store_setkeyfile(vc_x509store_t *, char *); +void vc_x509store_setcertfile(vc_x509store_t *, char *); +void vc_x509store_setcafile(vc_x509store_t *, char *); +void vc_cleanup_x509store(vc_x509store_t *s); + +int vc_tls_connect(int serverfd, vc_x509store_t * ); +ssize_t vc_tls_sendmessage(const void *buf, size_t size); +ssize_t vc_tls_receivemessage(void *buf, size_t size); +void vc_tls_cleanup(); + +#define VC_X509S_NODEF_CAFILE 0x01 +#define VC_X509S_NODEF_CAPATH 0x02 +#define VC_X509S_USE_CERTIFICATE 0x04 +#define VC_X509S_SSL_VERIFY_NONE 0x10 +#define VC_X509S_SSL_VERIFY_PEER 0x20 +#define VC_X509S_SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x40 +#define VC_X509S_SSL_VERIFY_CLIENT_ONCE 0x80 +#define VC_X509S_SSL_VERIFY_MASK 0xF0 + -- cgit v1.2.3