Split transport and crypto parts into separate files.

New files:
    src/event/ngx_event_quic_protection.h
    src/event/ngx_event_quic_protection.c

The protection.h header provides interface to the crypto part of the QUIC:

2 functions to initialize corresponding secrets:

ngx_quic_set_initial_secret()
ngx_quic_set_encryption_secret()

and 2 functions to deal with packet processing:

ngx_quic_encrypt()
ngx_quic_decrypt()

Also, structures representing secrets are defined there.

All functions require SSL connection and a pool, only crypto operations
inside, no access to nginx connections or events.

Currently pool->log is used for the logging (instead of original c->log).
This commit is contained in:
Vladimir Homutov
2020-03-16 19:00:47 +03:00
parent 0d8984083b
commit d0ebfa4cb9
6 changed files with 1207 additions and 1220 deletions

View File

@@ -1264,10 +1264,12 @@ if [ $USE_OPENSSL = YES ]; then
ngx_module_name=ngx_openssl_module
ngx_module_incs=
ngx_module_deps="src/event/ngx_event_openssl.h \
src/event/ngx_event_quic.h"
src/event/ngx_event_quic.h \
src/event/ngx_event_quic_protection.h"
ngx_module_srcs="src/event/ngx_event_openssl.c
src/event/ngx_event_openssl_stapling.c
src/event/ngx_event_quic.c"
src/event/ngx_event_quic.c
src/event/ngx_event_quic_protection.c"
ngx_module_libs=
ngx_module_link=YES
ngx_module_order=