diff options
Diffstat (limited to 'crypto/openssl/ssl/quic/quic_tserver.c')
| -rw-r--r-- | crypto/openssl/ssl/quic/quic_tserver.c | 145 |
1 files changed, 73 insertions, 72 deletions
diff --git a/crypto/openssl/ssl/quic/quic_tserver.c b/crypto/openssl/ssl/quic/quic_tserver.c index f7106b2fef37..f3cf1cbd6acb 100644 --- a/crypto/openssl/ssl/quic/quic_tserver.c +++ b/crypto/openssl/ssl/quic/quic_tserver.c @@ -21,7 +21,7 @@ * ======================= */ struct quic_tserver_st { - QUIC_TSERVER_ARGS args; + QUIC_TSERVER_ARGS args; /* Dummy SSL object for this QUIC connection for use by msg_callback */ SSL *ssl; @@ -30,12 +30,12 @@ struct quic_tserver_st { * The QUIC engine, port and channel providing the core QUIC connection * implementation. */ - QUIC_ENGINE *engine; - QUIC_PORT *port; - QUIC_CHANNEL *ch; + QUIC_ENGINE *engine; + QUIC_PORT *port; + QUIC_CHANNEL *ch; /* The mutex we give to the QUIC channel. */ - CRYPTO_MUTEX *mutex; + CRYPTO_MUTEX *mutex; /* SSL_CTX for creating the underlying TLS connection */ SSL_CTX *ctx; @@ -44,12 +44,12 @@ struct quic_tserver_st { SSL *tls; /* Are we connected to a peer? */ - unsigned int connected : 1; + unsigned int connected : 1; }; static int alpn_select_cb(SSL *ssl, const unsigned char **out, - unsigned char *outlen, const unsigned char *in, - unsigned int inlen, void *arg) + unsigned char *outlen, const unsigned char *in, + unsigned int inlen, void *arg) { QUIC_TSERVER *srv = arg; static const unsigned char alpndeflt[] = { @@ -67,18 +67,19 @@ static int alpn_select_cb(SSL *ssl, const unsigned char **out, } if (SSL_select_next_proto((unsigned char **)out, outlen, alpn, alpnlen, - in, inlen) != OPENSSL_NPN_NEGOTIATED) + in, inlen) + != OPENSSL_NPN_NEGOTIATED) return SSL_TLSEXT_ERR_ALERT_FATAL; return SSL_TLSEXT_ERR_OK; } QUIC_TSERVER *ossl_quic_tserver_new(const QUIC_TSERVER_ARGS *args, - const char *certfile, const char *keyfile) + const char *certfile, const char *keyfile) { QUIC_TSERVER *srv = NULL; - QUIC_ENGINE_ARGS engine_args = {0}; - QUIC_PORT_ARGS port_args = {0}; + QUIC_ENGINE_ARGS engine_args = { 0 }; + QUIC_PORT_ARGS port_args = { 0 }; QUIC_CONNECTION *qc = NULL; if (args->net_rbio == NULL || args->net_wbio == NULL) @@ -98,16 +99,16 @@ QUIC_TSERVER *ossl_quic_tserver_new(const QUIC_TSERVER_ARGS *args, srv->ctx = args->ctx; else srv->ctx = SSL_CTX_new_ex(srv->args.libctx, srv->args.propq, - TLS_method()); + TLS_method()); if (srv->ctx == NULL) goto err; if (certfile != NULL - && SSL_CTX_use_certificate_file(srv->ctx, certfile, SSL_FILETYPE_PEM) <= 0) + && SSL_CTX_use_certificate_file(srv->ctx, certfile, SSL_FILETYPE_PEM) <= 0) goto err; if (keyfile != NULL - && SSL_CTX_use_PrivateKey_file(srv->ctx, keyfile, SSL_FILETYPE_PEM) <= 0) + && SSL_CTX_use_PrivateKey_file(srv->ctx, keyfile, SSL_FILETYPE_PEM) <= 0) goto err; SSL_CTX_set_alpn_select_cb(srv->ctx, alpn_select_cb, srv); @@ -116,18 +117,18 @@ QUIC_TSERVER *ossl_quic_tserver_new(const QUIC_TSERVER_ARGS *args, if (srv->tls == NULL) goto err; - engine_args.libctx = srv->args.libctx; - engine_args.propq = srv->args.propq; - engine_args.mutex = srv->mutex; + engine_args.libctx = srv->args.libctx; + engine_args.propq = srv->args.propq; + engine_args.mutex = srv->mutex; if ((srv->engine = ossl_quic_engine_new(&engine_args)) == NULL) goto err; ossl_quic_engine_set_time_cb(srv->engine, srv->args.now_cb, - srv->args.now_cb_arg); + srv->args.now_cb_arg); - port_args.channel_ctx = srv->ctx; - port_args.is_multi_conn = 1; + port_args.channel_ctx = srv->ctx; + port_args.is_multi_conn = 1; port_args.do_addr_validation = 1; if ((srv->port = ossl_quic_engine_create_port(srv->engine, &port_args)) == NULL) goto err; @@ -187,23 +188,23 @@ void ossl_quic_tserver_free(QUIC_TSERVER *srv) /* Set mutator callbacks for test framework support */ int ossl_quic_tserver_set_plain_packet_mutator(QUIC_TSERVER *srv, - ossl_mutate_packet_cb mutatecb, - ossl_finish_mutate_cb finishmutatecb, - void *mutatearg) + ossl_mutate_packet_cb mutatecb, + ossl_finish_mutate_cb finishmutatecb, + void *mutatearg) { return ossl_quic_channel_set_mutator(srv->ch, mutatecb, finishmutatecb, - mutatearg); + mutatearg); } int ossl_quic_tserver_set_handshake_mutator(QUIC_TSERVER *srv, - ossl_statem_mutate_handshake_cb mutate_handshake_cb, - ossl_statem_finish_mutate_handshake_cb finish_mutate_handshake_cb, - void *mutatearg) + ossl_statem_mutate_handshake_cb mutate_handshake_cb, + ossl_statem_finish_mutate_handshake_cb finish_mutate_handshake_cb, + void *mutatearg) { return ossl_statem_set_mutator(ossl_quic_channel_get0_ssl(srv->ch), - mutate_handshake_cb, - finish_mutate_handshake_cb, - mutatearg); + mutate_handshake_cb, + finish_mutate_handshake_cb, + mutatearg); } int ossl_quic_tserver_tick(QUIC_TSERVER *srv) @@ -250,20 +251,20 @@ int ossl_quic_tserver_is_handshake_confirmed(const QUIC_TSERVER *srv) } int ossl_quic_tserver_read(QUIC_TSERVER *srv, - uint64_t stream_id, - unsigned char *buf, - size_t buf_len, - size_t *bytes_read) + uint64_t stream_id, + unsigned char *buf, + size_t buf_len, + size_t *bytes_read) { int is_fin = 0; QUIC_STREAM *qs; qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), - stream_id); + stream_id); if (qs == NULL) { int is_client_init = ((stream_id & QUIC_STREAM_INITIATOR_MASK) - == QUIC_STREAM_INITIATOR_CLIENT); + == QUIC_STREAM_INITIATOR_CLIENT); /* * A client-initiated stream might spontaneously come into existence, so @@ -283,7 +284,7 @@ int ossl_quic_tserver_read(QUIC_TSERVER *srv, return 0; if (!ossl_quic_rstream_read(qs->rstream, buf, buf_len, - bytes_read, &is_fin)) + bytes_read, &is_fin)) return 0; if (*bytes_read > 0) { @@ -298,13 +299,13 @@ int ossl_quic_tserver_read(QUIC_TSERVER *srv, ossl_statm_get_rtt_info(ossl_quic_channel_get_statm(srv->ch), &rtt_info); if (!ossl_quic_rxfc_on_retire(&qs->rxfc, *bytes_read, - rtt_info.smoothed_rtt)) + rtt_info.smoothed_rtt)) return 0; } if (is_fin) ossl_quic_stream_map_notify_totally_read(ossl_quic_channel_get_qsm(srv->ch), - qs); + qs); if (*bytes_read > 0) ossl_quic_stream_map_update_state(ossl_quic_channel_get_qsm(srv->ch), qs); @@ -320,7 +321,7 @@ int ossl_quic_tserver_has_read_ended(QUIC_TSERVER *srv, uint64_t stream_id) int is_fin = 0; qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), - stream_id); + stream_id); if (qs == NULL) return 0; @@ -338,21 +339,21 @@ int ossl_quic_tserver_has_read_ended(QUIC_TSERVER *srv, uint64_t stream_id) * called since the FIN was received. */ if (!ossl_quic_rstream_peek(qs->rstream, buf, sizeof(buf), - &bytes_read, &is_fin)) + &bytes_read, &is_fin)) return 0; if (is_fin && bytes_read == 0) { /* If we have a FIN awaiting retirement and no data before it... */ /* Let RSTREAM know we've consumed this FIN. */ if (!ossl_quic_rstream_read(qs->rstream, buf, sizeof(buf), - &bytes_read, &is_fin)) + &bytes_read, &is_fin)) return 0; assert(is_fin && bytes_read == 0); assert(qs->recv_state == QUIC_RSTREAM_STATE_DATA_RECVD); ossl_quic_stream_map_notify_totally_read(ossl_quic_channel_get_qsm(srv->ch), - qs); + qs); ossl_quic_stream_map_update_state(ossl_quic_channel_get_qsm(srv->ch), qs); return 1; } @@ -361,10 +362,10 @@ int ossl_quic_tserver_has_read_ended(QUIC_TSERVER *srv, uint64_t stream_id) } int ossl_quic_tserver_write(QUIC_TSERVER *srv, - uint64_t stream_id, - const unsigned char *buf, - size_t buf_len, - size_t *bytes_written) + uint64_t stream_id, + const unsigned char *buf, + size_t buf_len, + size_t *bytes_written) { QUIC_STREAM *qs; @@ -372,12 +373,12 @@ int ossl_quic_tserver_write(QUIC_TSERVER *srv, return 0; qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), - stream_id); + stream_id); if (qs == NULL || !ossl_quic_stream_has_send_buffer(qs)) return 0; if (!ossl_quic_sstream_append(qs->sstream, - buf, buf_len, bytes_written)) + buf, buf_len, bytes_written)) return 0; if (*bytes_written > 0) @@ -400,7 +401,7 @@ int ossl_quic_tserver_conclude(QUIC_TSERVER *srv, uint64_t stream_id) return 0; qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), - stream_id); + stream_id); if (qs == NULL || !ossl_quic_stream_has_send_buffer(qs)) return 0; @@ -414,8 +415,8 @@ int ossl_quic_tserver_conclude(QUIC_TSERVER *srv, uint64_t stream_id) } int ossl_quic_tserver_stream_new(QUIC_TSERVER *srv, - int is_uni, - uint64_t *stream_id) + int is_uni, + uint64_t *stream_id) { QUIC_STREAM *qs; @@ -440,13 +441,13 @@ SSL_CTX *ossl_quic_tserver_get0_ssl_ctx(QUIC_TSERVER *srv) } int ossl_quic_tserver_stream_has_peer_stop_sending(QUIC_TSERVER *srv, - uint64_t stream_id, - uint64_t *app_error_code) + uint64_t stream_id, + uint64_t *app_error_code) { QUIC_STREAM *qs; qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), - stream_id); + stream_id); if (qs == NULL) return 0; @@ -457,13 +458,13 @@ int ossl_quic_tserver_stream_has_peer_stop_sending(QUIC_TSERVER *srv, } int ossl_quic_tserver_stream_has_peer_reset_stream(QUIC_TSERVER *srv, - uint64_t stream_id, - uint64_t *app_error_code) + uint64_t stream_id, + uint64_t *app_error_code) { QUIC_STREAM *qs; qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), - stream_id); + stream_id); if (qs == NULL) return 0; @@ -474,7 +475,7 @@ int ossl_quic_tserver_stream_has_peer_reset_stream(QUIC_TSERVER *srv, } int ossl_quic_tserver_set_new_local_cid(QUIC_TSERVER *srv, - const QUIC_CONN_ID *conn_id) + const QUIC_CONN_ID *conn_id) { /* Replace existing local connection ID in the QUIC_CHANNEL */ return ossl_quic_channel_replace_local_cid(srv->ch, conn_id); @@ -494,12 +495,12 @@ uint64_t ossl_quic_tserver_pop_incoming_stream(QUIC_TSERVER *srv) } int ossl_quic_tserver_is_stream_totally_acked(QUIC_TSERVER *srv, - uint64_t stream_id) + uint64_t stream_id) { QUIC_STREAM *qs; qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), - stream_id); + stream_id); if (qs == NULL) return 1; @@ -509,19 +510,19 @@ int ossl_quic_tserver_is_stream_totally_acked(QUIC_TSERVER *srv, int ossl_quic_tserver_get_net_read_desired(QUIC_TSERVER *srv) { return ossl_quic_reactor_net_read_desired( - ossl_quic_channel_get_reactor(srv->ch)); + ossl_quic_channel_get_reactor(srv->ch)); } int ossl_quic_tserver_get_net_write_desired(QUIC_TSERVER *srv) { return ossl_quic_reactor_net_write_desired( - ossl_quic_channel_get_reactor(srv->ch)); + ossl_quic_channel_get_reactor(srv->ch)); } OSSL_TIME ossl_quic_tserver_get_deadline(QUIC_TSERVER *srv) { return ossl_quic_reactor_get_tick_deadline( - ossl_quic_channel_get_reactor(srv->ch)); + ossl_quic_channel_get_reactor(srv->ch)); } int ossl_quic_tserver_shutdown(QUIC_TSERVER *srv, uint64_t app_error_code) @@ -554,11 +555,11 @@ QUIC_CHANNEL *ossl_quic_tserver_get_channel(QUIC_TSERVER *srv) } void ossl_quic_tserver_set_msg_callback(QUIC_TSERVER *srv, - void (*f)(int write_p, int version, - int content_type, - const void *buf, size_t len, - SSL *ssl, void *arg), - void *arg) + void (*f)(int write_p, int version, + int content_type, + const void *buf, size_t len, + SSL *ssl, void *arg), + void *arg) { ossl_quic_channel_set_msg_callback(srv->ch, f, srv->ssl); ossl_quic_channel_set_msg_callback_arg(srv->ch, arg); @@ -572,13 +573,13 @@ int ossl_quic_tserver_new_ticket(QUIC_TSERVER *srv) } int ossl_quic_tserver_set_max_early_data(QUIC_TSERVER *srv, - uint32_t max_early_data) + uint32_t max_early_data) { return SSL_set_max_early_data(srv->tls, max_early_data); } void ossl_quic_tserver_set_psk_find_session_cb(QUIC_TSERVER *srv, - SSL_psk_find_session_cb_func cb) + SSL_psk_find_session_cb_func cb) { SSL_set_psk_find_session_callback(srv->tls, cb); } |
