1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-11-23 21:02:09 +00:00
seirdy.one/content/notes/openssl-and-quic.md

27 lines
1.2 KiB
Markdown
Raw Normal View History

2022-10-25 01:01:26 +00:00
---
title: "OpenSSL and QUIC"
date: 2022-10-24T18:01:26-07:00
---
A rough timeline of QUIC support in OpenSSL-like libraries:
1. BoringSSL implements QUIC.
2022-10-25 01:11:01 +00:00
2022-10-25 01:01:26 +00:00
2. Quiche, a QUIC library, requires BoringSSL. Nginx can be patched to use Quiche for HTTP/3.
2022-10-25 01:11:01 +00:00
2022-10-25 01:01:26 +00:00
3. Nginx's experimental QUIC branch (nginx-quic) is released. It requires BoringSSL.
2022-10-25 01:11:01 +00:00
2022-10-25 01:01:26 +00:00
4. Some organizations (mostly Akamai) fork OpenSSL to implement the BoringSSL QUIC API, calling their fork QuicTLS. They plan to upstream changes.
2022-10-25 01:11:01 +00:00
2022-10-25 01:01:26 +00:00
5. nginx-quic supports building with QuicTLS too.
2022-10-25 01:11:01 +00:00
2022-10-25 01:01:26 +00:00
6. [OpenSSL decides against the BoringSSL API](https://daniel.haxx.se/blog/2021/10/25/the-quic-api-openssl-will-not-provide/) and declines QuicTLS patches, preferring to write their own incompatible implementation.
2022-10-25 01:11:01 +00:00
2022-10-25 01:01:26 +00:00
7. LibreSSL implements the BoringSSL QUIC API.
2022-10-25 01:11:01 +00:00
2022-10-25 01:01:26 +00:00
8. [nginx-quic can link against LibreSSL](https://hg.nginx.org/nginx-quic/rev/79cd6993a3e3) as well as BoringSSL and QuicTLS; they all use similar APIs.
(I _believe_ wolfSSL is mostly compatible with the BoringSSL QUIC API, but I might be wrong.)
Developers will have a harder time supporting multiple TLS implementations, hurting the viability of e.g. LibreSSL-based distributions.