ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
tls.h
Go to the documentation of this file.
1#pragma once
2
4#include <ngtcp2/ngtcp2_crypto.h>
5#include <openssl/ssl.h>
6#include <stdbool.h>
7
9
10/* The context and its ALPN storage must outlive every SSL created from it. */
11typedef struct {
12 SSL_CTX *ssl_ctx;
13 unsigned char alpn[256];
14 unsigned int alpn_length;
15 bool server;
16 /* Set before creating connections; defaults to disabled. */
19 bool http3;
30
32asciichat_error_t quic_tls_server_create(const char *alpn, const char *certificate_file, const char *private_key_file,
33 quic_tls_t **out);
35asciichat_error_t quic_tls_client_create(const char *alpn, const char *ca_file, quic_tls_t **out);
36
38asciichat_error_t quic_tls_client_configure(quic_tls_t *tls, SSL *ssl, const char *server_name);
39
43asciichat_error_t quic_tls_session_create(quic_tls_t *tls, const char *server_name, ngtcp2_crypto_conn_ref *connection,
44 SSL **out);
48void quic_tls_session_destroy(SSL **ssl);
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
static bool size_t gotel_query_t * out
Definition queries.h:8
bool accept_native
Definition tls.h:20
SSL_CTX * ssl_ctx
Definition tls.h:12
unsigned char alpn[256]
Definition tls.h:13
bool server
Definition tls.h:15
char webtransport_origin[512]
Definition tls.h:22
unsigned int alpn_length
Definition tls.h:14
char webtransport_path[512]
Definition tls.h:23
bool http3
Definition tls.h:19
http_server_t * http_server
Definition tls.h:21
bool enable_datagrams
Definition tls.h:17
bool webtransport
Definition tls.h:18
asciichat_error_t quic_tls_client_create(const char *alpn, const char *ca_file, quic_tls_t **out)
Definition tls.c:90
asciichat_error_t quic_tls_verify_ready(quic_tls_t *tls, SSL *ssl)
Definition tls.c:161
asciichat_error_t quic_tls_session_create(quic_tls_t *tls, const char *server_name, ngtcp2_crypto_conn_ref *connection, SSL **out)
Definition tls.c:126
void quic_tls_session_destroy(SSL **ssl)
Definition tls.c:194
void quic_tls_destroy(quic_tls_t **tls)
Definition tls.c:202
asciichat_error_t quic_tls_client_configure(quic_tls_t *tls, SSL *ssl, const char *server_name)
Definition tls.c:112
asciichat_error_t quic_tls_server_create(const char *alpn, const char *certificate_file, const char *private_key_file, quic_tls_t **out)
Definition tls.c:67
struct http_server http_server_t
Definition tls.h:8