Cysharp / YetAnotherHttpHandler

YetAnotherHttpHandler brings the power of HTTP/2 (and gRPC) to Unity and .NET Standard.
MIT License
376 stars 33 forks source link

Update Rustls from 0.21 to 0.22 #49

Closed mangolas closed 9 months ago

mangolas commented 9 months ago

In order to support UWP (arm64 specifically) Ring has to be updated from 0.16 to 0.17. And in order to get Ring updated, Rustls had to be updated, which unfortunately has breaking changes from 0.21 to 0.22.

mayuki commented 9 months ago

Thank you for the PR. Sorry for the delay in responding.

I ran this PR to verify it and it seems that there is an error with TLS connections. When I run dotnet test on Windows and Linux, I get the error Protocol Version.

I am not sure if this error is correct, but when I capture the packets with Wireshark, it actually returns a Protocol Version error.

image

When I check the Client Hello packets, there are some differences such as signature_algorithms being empty.

This PR build: image

main build: image

mayuki commented 9 months ago

The error may be ProtocolVersion (70) only on Windows; on Linux it returns DecodeError (50), so it may depend on the server's TLS stack.

image

mangolas commented 9 months ago

I see, my bad, I just run tests on Mac and was happy that they passed and didn't realise there are more tests on Win&Linux side. I added all schemes to dummy verifier and now tests pass on Windows side, I was bit wondering what to return there...

mayuki commented 9 months ago

.NET does not support HTTP/2 with TLS on macOS, so we does not use HTTP/2 + HTTPS test servers for testing on macOS.

It appears to be working with additional commits. Thanks for the great contribution!👍