summaryrefslogtreecommitdiffhomepage
path: root/src/event/quic/ngx_event_quic_protection.h (follow)
AgeCommit message (Collapse)AuthorFilesLines
2025-05-23QUIC: ssl_encryption_level_t abstraction layer.Sergey Kandaurov1-9/+5
Encryption level values are decoupled from ssl_encryption_level_t, which is now limited to BoringSSL QUIC callbacks, with mappings provided. Although the values match, this provides a technically safe approach, in particular, to access protection level sized arrays. In preparation for using OpenSSL 3.5 TLS callbacks.
2024-11-26QUIC: constified nonce parameter of crypto functions.Sergey Kandaurov1-1/+1
This follows OpenSSL and BoringSSL API, and gives a hint to compiler that this parameter may not be modified.
2023-10-20QUIC: removed key field from ngx_quic_secret_t.Sergey Kandaurov1-2/+1
It is made local as it is only needed now when creating crypto context. BoringSSL lacks EVP interface for ChaCha20, providing instead a function for one-shot encryption, thus hp is still preserved. Based on a patch by Roman Arutyunyan.
2023-10-20QUIC: simplified ngx_quic_ciphers() API.Sergey Kandaurov1-2/+1
After conversion to reusable crypto ctx, now there's enough caller context to remove the "level" argument from ngx_quic_ciphers().
2023-10-20QUIC: reusing crypto contexts for header protection.Sergey Kandaurov1-0/+1
2023-10-20QUIC: reusing crypto contexts for packet protection.Sergey Kandaurov1-3/+9
2023-10-20QUIC: renamed protection functions.Sergey Kandaurov1-1/+1
Now these functions have names ngx_quic_crypto_XXX(): - ngx_quic_tls_open() -> ngx_quic_crypto_open() - ngx_quic_tls_seal() -> ngx_quic_crypto_seal() - ngx_quic_tls_hp() -> ngx_quic_crypto_hp()
2023-08-31QUIC: split keys availability checks to read and write sides.Sergey Kandaurov1-1/+1
Keys may be released by TLS stack in different times, so it makes sense to check this independently as well. This allows to fine-tune what key direction is used when checking keys availability. When discarding, server keys are now marked in addition to client keys.
2023-08-25QUIC: posted generating TLS Key Update next keys.Sergey Kandaurov1-1/+1
Since at least f9fbeb4ee0de and certainly after 924882f42dea, which TLS Key Update support predates, queued data output is deferred to a posted push handler. To address timing signals after these changes, generating next keys is now posted to run after the push handler.
2023-06-20QUIC: TLS_AES_128_CCM_SHA256 cipher suite support.Roman Arutyunyan1-1/+1
2023-06-09QUIC: a new constant for AEAD tag length.Roman Arutyunyan1-1/+2
Previously used constant EVP_GCM_TLS_TAG_LEN had misleading name since it was used not only with GCM, but also with CHACHAPOLY. Now a new constant NGX_QUIC_TAG_LEN introduced. Luckily all AEAD algorithms used by QUIC have the same tag length of 16.
2023-02-22QUIC: OpenSSL compatibility layer.Roman Arutyunyan1-0/+39
The change allows to compile QUIC with OpenSSL which lacks BoringSSL QUIC API. This implementation does not support 0-RTT.
2022-07-27QUIC: removed ngx_quic_keys_new().Vladimir Homutov1-1/+39
The ngx_quic_keys_t structure is now exposed.
2022-07-27QUIC: avoided pool usage in ngx_quic_protection.c.Vladimir Homutov1-3/+3
2022-01-26QUIC: removed draft versions support.Sergey Kandaurov1-1/+1
2021-12-07QUIC: converted ngx_quic_keys_set_encryption_secret() to NGX codes.Sergey Kandaurov1-3/+4
While here, removed check for encryption level zero, redundant by its nature.
2021-04-13QUIC: normalize header inclusion.Sergey Kandaurov1-2/+0
Stop including QUIC headers with no user-serviceable parts inside. This allows to provide a much cleaner QUIC interface. To cope with that, ngx_quic_derive_key() is now explicitly exported for v3 and quic modules. Additionally, this completely hides the ngx_quic_keys_t internal type.
2021-02-19QUIC: multiple versions support.Sergey Kandaurov1-1/+1
Draft-29 and beyond are now supported simultaneously, no need to recompile.
2021-02-15QUIC: fixed indentation.Sergey Kandaurov1-2/+2
2021-02-08QUIC: the "quic_host_key" directive.Vladimir Homutov1-4/+4
The token generation in QUIC is reworked. Single host key is used to generate all required keys of needed sizes using HKDF. The "quic_stateless_reset_token_key" directive is removed. Instead, the "quic_host_key" directive is used, which reads key from file, or sets it to random bytes if not specified.
2020-12-25QUIC: moved all quic sources into src/event/quic.Vladimir Homutov1-0/+38