Skip to content

Code for QUIC support#24

Open
helkoulak wants to merge 2 commits intowolfSSL:mainfrom
helkoulak:quic-support
Open

Code for QUIC support#24
helkoulak wants to merge 2 commits intowolfSSL:mainfrom
helkoulak:quic-support

Conversation

@helkoulak
Copy link
Copy Markdown

No description provided.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds QUIC support to the wolfcrypt provider by implementing the necessary cryptographic operations and packet protection algorithms required by the QUIC protocol.

  • Adds QUIC-specific header protection and packet encryption/decryption algorithms
  • Implements support for AES-128/256-GCM and ChaCha20-Poly1305 ciphers for QUIC
  • Configures cipher suites with QUIC key factories when the "quic" feature is enabled

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
wolfcrypt-rs/src/bindings.rs Adds lint allowance for unnecessary transmutes
rustls-wolfcrypt-provider/src/types/mod.rs Adds ChaCha cipher object type definition
rustls-wolfcrypt-provider/src/lib.rs Reorganizes imports and adds conditional QUIC support to cipher suites
rustls-wolfcrypt-provider/src/hkdf.rs Adds spacing for formatting
rustls-wolfcrypt-provider/src/error.rs Adds spacing for formatting
rustls-wolfcrypt-provider/src/aead/quic.rs Implements complete QUIC header protection and packet encryption
rustls-wolfcrypt-provider/Cargo.toml Adds "quic" feature flag

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread rustls-wolfcrypt-provider/src/lib.rs Outdated
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
Copy link
Copy Markdown
Member

@julek-wolfssl julek-wolfssl left a comment

Choose a reason for hiding this comment

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

Good stuff. Does quic get tested in the current CI workflows?

Comment thread rustls-wolfcrypt-provider/src/hkdf.rs Outdated
Comment thread rustls-wolfcrypt-provider/src/types/mod.rs
Comment thread rustls-wolfcrypt-provider/src/error.rs Outdated
Comment thread rustls-wolfcrypt-provider/Cargo.toml
Copy link
Copy Markdown
Contributor

@gasbytes gasbytes left a comment

Choose a reason for hiding this comment

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

Nice work.
There seems to be some formatting issues that the CI detected, please fix those.
Also address the github copilot reports (mainly some unwraps that need to be refactored to handle errors).
Run clippy locally before committing too, the CI should detect some lints with the newest version.
Thank you.

@helkoulak
Copy link
Copy Markdown
Author

Good stuff. Does quic get tested in the current CI workflows?

Thank you. maybe we need to add --features quic in order for quic code to be compiled.

Nice work. There seems to be some formatting issues that the CI detected, please fix those. Also address the github copilot reports (mainly some unwraps that need to be refactored to handle errors). Run clippy locally before committing too, the CI should detect some lints with the newest version. Thank you.

Thank you. I have corrected the mentioned issues. Hopefully CI tests will runs without errors

@gasbytes
Copy link
Copy Markdown
Contributor

gasbytes commented Sep 25, 2025

Hello @helkoulak, there are still some clippy reports in the CI/CD apparently, it would be great if you could try and fix them.

Thank you. maybe we need to add --features quic in order for quic code to be compiled.

Yes, please feel free to update the current workflows to test that too.

@helkoulak
Copy link
Copy Markdown
Author

Hello @helkoulak, there are still some clippy reports in the CI/CD apparently, it would be great if you could try and fix them.
No problem, I will fix them ASAP.

Thank you. maybe we need to add --features quic in order for quic code to be compiled.

Yes, please feel free to update the current workflows to test that too.
Thank you, will do that ASAP

Copy link
Copy Markdown
Member

@julek-wolfssl julek-wolfssl left a comment

Choose a reason for hiding this comment

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

Great work. Still need to dive into src/aead.

Comment thread .github/workflows/ubuntu-build.yml Outdated
Comment thread .github/workflows/ubuntu-build.yml Outdated
Comment thread .github/workflows/ubuntu-build.yml Outdated
Comment thread .github/workflows/ubuntu-build.yml
Comment thread rustls-wolfcrypt-provider/src/lib.rs
Comment thread rustls-wolfcrypt-provider/src/sign/eddsa.rs
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs
Copy link
Copy Markdown
Contributor

@gasbytes gasbytes left a comment

Choose a reason for hiding this comment

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

Really nice work Hosam, I left a couple of comments.

Comment thread .github/workflows/ubuntu-build.yml
Comment thread .github/workflows/ubuntu-build.yml
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
Comment thread .github/workflows/macos-build.yml Outdated
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
Comment thread rustls-wolfcrypt-provider/Cargo.toml
Comment thread rustls-wolfcrypt-provider/src/aead/quic.rs Outdated
gasbytes
gasbytes previously approved these changes Jan 28, 2026
Copy link
Copy Markdown
Contributor

@gasbytes gasbytes left a comment

Choose a reason for hiding this comment

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

Great work Hosam, LGTM.

@anhu
Copy link
Copy Markdown
Member

anhu commented Mar 10, 2026

Contributor agreement signed, approved and filed.
wolfSSL members, please proceed in the pull request process.

@gasbytes
Copy link
Copy Markdown
Contributor

@helkoulak please rebase your work against the latest main.
Thanks.

@helkoulak
Copy link
Copy Markdown
Author

@helkoulak please rebase your work against the latest main. Thanks.

Will do ASAP. Thank you

@helkoulak
Copy link
Copy Markdown
Author

Branch has been rebased against the latest main

- Cryptography code to support QUIC for header and packet protection.
- Adds function extract_key_pair() to extract ED25519 private and if available public key values from a PKCS#8 DER formatted key.
- Few bug fixes for the rustls provider.
- The test suite to test WolfCrypt provider against rustls version 0.23.35.
- Adds related workflows for building and testing.
.github/test-workspace
- run the rustls testsuite job against the pr's own provider replacing
external fork checkouts
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.

5 participants