Repository navigation
release: 0.18.374 - #374
Merged
Merged
Conversation
All eleven published packages share one version; the bump is only their Version elements, and IoxideRuntime.Version is generated from ioxide.csproj. ioxide.redis.stackexchange is bumped too, though CI does not pack it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
All eleven published packages share one version, as always. The bump is only their
Versionelements;IoxideRuntime.Versionis generated fromioxide.csproj.ioxide.redis.stackexchangeis bumped too, so a manual pack matches, but CI does not pack it.The minor goes to 18 for #373: TLS moves from the system OpenSSL to a BoringSSL that ships in the packages. The public API does not change; the behaviour that does is listed below.
Carries everything since 0.17.340:
TcpOptions.SendWaitAllcan turnMSG_WAITALLoff, bound per connection at accept.CipherSuitesname that is not a TLS 1.3 suite (tls: a CipherSuites name that is not a TLS 1.3 suite is accepted, and the port then serves nobody #348).Completeon the TLS writer does not throw while the connection's flush is in flight.TlsSession.Closed.ww*.example.comfails verification forwww.example.cominstead of matching it.HandshakeTimeoutMsends a TLS handshake whose peer accepted and went silent.Breaking
EnablePackageValidation, baseline 0.17.340) reports no break in the eleven packages. As a control,ioxideagainst 0.16.281 reports the knownCreateTcpchange.NO_SHARED_CIPHER,CERTIFICATE_VERIFY_FAILED) instead of OpenSSL's sentences.CipherSuitestakes only the TLS 1.3 suites BoringSSL implements (AES-128-GCM, AES-256-GCM, ChaCha20-Poly1305): a TLS 1.2 name, a typo or a CCM suite now fails startup (tls: a CipherSuites name that is not a TLS 1.3 suite is accepted, and the port then serves nobody #348).CipherListuses BoringSSL's cipher strings, which have no DHE or CCM suites.MinimumVersion = 0means TLS 1.2.ioxideno longer needs the system OpenSSL, andioxide.ngtcp2no longer needslibcrypto.so.3.Native
libioxide_boringssl.so(new, inioxide, 3.3 MB): BoringSSL at5b83e5d, built byscripts/build-boringssl-native.sh. It needs only libc.libioxide_ngtcp2.so: rebuilt byscripts/build-ngtcp2-native.shon BoringSSL's libcrypto, linked in with its symbols hidden (1.2 MB -> 2.9 MB). It needs only libc.The packages ship both libraries; consumers rebuild nothing. Checked from outside the repo: a net10.0 app referencing the packed
ioxide0.18.374 runs the docs'Tls/OpenSslprogram and serves HTTPS (TLS 1.3, ECDSA). It loadslibioxide_boringssl.sofrom the package'sruntimes/linux-x64/nativeand never loads the systemlibssl.so.3.On this branch's tree (main at e18120c, plus the bump), all eight suites pass with none skipped: E2E 288, Unit 82, Http 88, Tls 194, Chaos 79, File 5, Pg 18 and Redis 6. The
tlsmodule was loaded, so the kTLS tests ran.Some tests stay pending. Each one pins a known gap and fails the run once the gap is fixed: E2E 5, Unit 1, Chaos 1, and Redis 1 (#336). The TLS and HTTP client suites have none left.