diff options
| author | Drew DeVault <sir@cmpwn.com> | 2020-09-24 19:58:34 -0400 |
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2020-09-24 19:58:41 -0400 |
| commit | fa69887e52201eb348f1bfbecf72bdab5c57bd9c (patch) | |
| tree | 2e49486c30e333483b45150348f2c51831450dd5 /include | |
| parent | 7af04ea4713770cd19cb9659a59f8758e4207c2c (diff) | |
| download | gmnisrv-fa69887e52201eb348f1bfbecf72bdab5c57bd9c.tar.gz gmnisrv-fa69887e52201eb348f1bfbecf72bdab5c57bd9c.tar.xz gmnisrv-fa69887e52201eb348f1bfbecf72bdab5c57bd9c.zip | |
Implement TLS exchange with clients
This probably leaves a bit to be desired tbh
Diffstat (limited to 'include')
| -rw-r--r-- | include/config.h | 2 | ||||
| -rw-r--r-- | include/server.h | 10 | ||||
| -rw-r--r-- | include/tls.h | 2 |
3 files changed, 10 insertions, 4 deletions
diff --git a/include/config.h b/include/config.h index 495db3a..83253f7 100644 --- a/include/config.h +++ b/include/config.h @@ -7,12 +7,12 @@ struct gmnisrv_tls { char *store; char *organization; char *email; + SSL_CTX *ssl_ctx; }; struct gmnisrv_host { char *hostname; char *root; - SSL_CTX *ssl_ctx; X509 *x509; EVP_PKEY *pkey; struct gmnisrv_host *next; diff --git a/include/server.h b/include/server.h index ac3bcac..5624b52 100644 --- a/include/server.h +++ b/include/server.h @@ -1,5 +1,6 @@ #ifndef GMNISRV_SERVER #define GMNISRV_SERVER +#include <openssl/ssl.h> #include <poll.h> #include <stdbool.h> @@ -8,11 +9,14 @@ struct gmnisrv_client { struct sockaddr addr; socklen_t addrlen; + int sockfd; - char buf[GEMINI_MAX_URL + 2]; - size_t bufln; + SSL *ssl; + BIO *bio; - int sockfd; + char buf[GEMINI_MAX_URL + 3]; + + struct gmnisrv_host *host; }; struct gmisrv_config; diff --git a/include/tls.h b/include/tls.h index bc088ef..06d1123 100644 --- a/include/tls.h +++ b/include/tls.h @@ -4,5 +4,7 @@ struct gmnisrv_config; int gmnisrv_tls_init(struct gmnisrv_config *conf); +SSL *gmnisrv_tls_get_ssl(struct gmnisrv_config *conf, int fd); +void gmnisrv_tls_set_host(SSL *ssl, struct gmnisrv_host *host); #endif |
