Skip to content
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

[QUIC] Eliminate peer X509 certificate parsing on Linux #101602

Open
rzikm opened this issue Apr 26, 2024 · 2 comments
Open

[QUIC] Eliminate peer X509 certificate parsing on Linux #101602

rzikm opened this issue Apr 26, 2024 · 2 comments
Labels
area-System.Net.Quic tenet-performance Performance related issue untriaged New issue has not been triaged by the area owner

Comments

@rzikm
Copy link
Member

rzikm commented Apr 26, 2024

Originally, MsQuic linked statically to both libssl (forked to add QUIC supporting APIs) and libcrypto. Because of that it was dangerous to pass raw X509* to applications, because the system installed libcrypto (where OpenSSL's X.509 code lives) could be different version and have different X509 object layout. So currently, the certificates are being serialized to DER or PKCS12 format and parsed again by the application, which delays the handshake by about 1 ms.

Since recent MsQuic versions are compiled to use system-installed libcrypto, it should be possible to exchange raw X509* under these conditions:

  • MsQuic was compiled with -UseSystemOpenSSLCrypto
  • MsQuic was dynamically linked against the same libcrypto version used by .NET process

To verify these conditions, we need additional API surface in MsQuic (additional global Get-only parameters).

@rzikm rzikm added tenet-performance Performance related issue area-System.Net.Quic labels Apr 26, 2024
@dotnet-policy-service dotnet-policy-service bot added the untriaged New issue has not been triaged by the area owner label Apr 26, 2024
Copy link
Contributor

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

@rzikm
Copy link
Member Author

rzikm commented Apr 26, 2024

Scratch that, i must have miscounted decimal digits, the impact is order of magnitude lower than I assumed (in order of ms). Updatd description. This makes it low priority.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-System.Net.Quic tenet-performance Performance related issue untriaged New issue has not been triaged by the area owner
Projects
None yet
Development

No branches or pull requests

1 participant