Skip to content

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

Merged
merged 14 commits into from
Feb 28, 2025
Merged

feat: wrap picotls backend #10

merged 14 commits into from
Feb 28, 2025

Conversation

richard-ramos
Copy link
Member

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:

  • quictls
  • gnuTLS
  • BoringSSL
  • AWS-LC
  • Picotls
  • wolfSSL
  • LibreSSL

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.

@richard-ramos
Copy link
Member Author

Ah interesting! this seems to not work on windows and macos/arm64. Will investigate

@richard-ramos richard-ramos force-pushed the picotls branch 3 times, most recently from 979cade to 50f2bcc Compare January 31, 2025 00:45
@richard-ramos richard-ramos force-pushed the picotls branch 3 times, most recently from eaff2e2 to f21ed34 Compare February 6, 2025 20:28
@richard-ramos richard-ramos force-pushed the picotls branch 3 times, most recently from 97b533a to 97be291 Compare February 20, 2025 20:26
@richard-ramos
Copy link
Member Author

This is ready for review.
Do not review ngtcp2.nim since it's a generated file (also, it's like a 11K lines file 💀 )

Copy link
Member

@vladopajic vladopajic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@richard-ramos richard-ramos force-pushed the picotls branch 5 times, most recently from 7f84462 to 7d870d9 Compare February 28, 2025 17:49
Copy link
Member

@vladopajic vladopajic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@richard-ramos richard-ramos merged commit 0a746ce into main Feb 28, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants