-
Notifications
You must be signed in to change notification settings - Fork 1
feat: wrap picotls backend #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
ee4795e
to
bf6aae8
Compare
bf6aae8
to
81e03bd
Compare
Ah interesting! this seems to not work on windows and macos/arm64. Will investigate |
32ee315
to
eb5895c
Compare
979cade
to
50f2bcc
Compare
2936843
to
307755b
Compare
eaff2e2
to
f21ed34
Compare
97b533a
to
97be291
Compare
This is ready for review. |
* feat: load certificates from memory * feat: load private key from memory * fix: load key
97be291
to
44a9151
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
7f84462
to
7d870d9
Compare
7d870d9
to
7cede58
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
As outlined in issue #961 on the nim-libp2p repository, at the time of writing this pull request, mbedTLS does not yet export the necessary APIs required for the QUIC protocol. Similarly, BearSSL has not implemented support for TLS 1.3. To overcome this limitation and unblock the implementation of QUIC support for nim-libp2p, I decided to wrap one of the TLS backends supported by ngtcp2: picotls.
Currently, ngtcp2 supports the following TLS backends:
After reviewing the available options, the most promising choices appeared to be picotls or quictls. Both seem to provide lightweight and efficient TLS stacks specifically designed for QUIC. I ended up choosing picotls but ultimately, it is during the integration of this library with nim-quic that the final decision might change depending on issues that might be encountered.