Skip to content

Upgrade OpenSSL backend - #2546

Merged
Quim Muntal (qmuntal) merged 1 commit into
microsoft/mainfrom
dev/qmuntal/upgrade-openssl
Oct 6, 2026
Merged

Quim Muntal (qmuntal) merged 1 commit into
microsoft/mainfrom
dev/qmuntal/upgrade-openssl

Conversation

@qmuntal

Copy link
Copy Markdown
Member

Summary

Upgrade github.com/microsoft/go-crypto-openssl to v0.5.1-0.20261005142555-824eae519d26, which includes the merged ML-DSA allocation improvements in microsoft/go-crypto-openssl#85. Synchronize the standalone cryptobackend requirement and regenerate the vendored dependency patch.

The upgrade also includes the provider's loader thread-affinity fix, fakecgo layout updates, and TLS 1.2 PRF compatibility change. This PR changes only the standalone module metadata and patch 0001; it does not include the separate ML-DSA fallback migration or change the Go submodule pointer.

The existing ML-DSA allocation workload drops from 28 to 8 Go allocations with the same Go toolchain, OpenSSL 3.5.7 provider and inputs. This does not measure native allocations or throughput.

Updates #2489.

Validation

  • Built the isolated Windows ARM64 Go toolchain. Crypto unit tests passed with Go fallback; native CNG checks passed except the existing ML-DSA deterministic-signing and RSA missing-NULL vector failures, reproduced with the pre-upgrade provider.
  • Linux ARM64/OpenSSL 3.5.7: native ML-DSA generation, equality, allocations, public-key and verification/vector checks; ECDH, ECDSA, Ed25519 and ML-KEM units/vectors; RSA, HMAC and SHA-3 units; focused TLS PRF units. The native ML-DSA deterministic-signing failure also reproduces before this upgrade.
  • OpenSSL 3.3.7 default and SymCrypt FIPS providers: focused crypto, fallback and TLS PRF units passed.
  • The merged provider's crypto/setup tests passed with cgo and nocgo under GOEXPERIMENT=cgocheck2; shared-binding algorithm race tests passed.
  • Standalone module consistency, standard-library dependency checks, Darwin/FreeBSD cross-builds, exact replay of all 12 patches and vendor/module source equality passed.

No E2E/replay suites or throughput benchmarks were run.

Update go-crypto-openssl to the revision containing the merged ML-DSA
allocation improvements. Synchronize the standalone cryptobackend
requirement and regenerate the vendored dependency patch.
Copilot AI balanced review requested due to automatic review settings October 6, 2026 09:27
@qmuntal
Quim Muntal (qmuntal) requested a review from a team as a code owner October 6, 2026 09:27
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Copilot review overview

Review effort: Lite
Findings: None

What changed in this PR

Upgrades the vendored OpenSSL crypto backend (github.com/microsoft/go-crypto-openssl) to pick up ML-DSA allocation improvements and related upstream fixes, and synchronizes the standalone cryptobackend module metadata accordingly.

Changes:

  • Bump github.com/microsoft/go-crypto-openssl to v0.5.1-0.20261005142555-824eae519d26 in both std patch metadata and cryptobackend’s go.mod/go.sum.
  • Regenerate patch 0001 to reflect updated vendor contents (fakecgo layout updates, loader thread-affinity fix, TLS 1.2 PRF compatibility tweak).
File Description
patches/​0001-Vendor-external-dependencies.patch Updates the vendored dependency patch to the new go-crypto-openssl revision and includes upstream generated file changes.
cryptobackend/​go.mod Bumps the direct go-crypto-openssl requirement to the new pseudo-version.
cryptobackend/​go.sum Updates checksums to match the new go-crypto-openssl pseudo-version.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@qmuntal
Quim Muntal (qmuntal) merged commit a3cc764 into microsoft/main Oct 6, 2026
60 checks passed
@qmuntal
Quim Muntal (qmuntal) deleted the dev/qmuntal/upgrade-openssl branch October 6, 2026 10:26
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.

3 participants