Skip to content

Upgrade Darwin backend - #2547

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

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

Conversation

@qmuntal

Copy link
Copy Markdown
Member

Summary

Upgrade github.com/microsoft/go-crypto-darwin to v0.0.3-0.20261006124332-ca950df3b0d1, which includes the merged ML-DSA allocation improvements in microsoft/go-crypto-darwin#257. Synchronize the standalone cryptobackend requirement and regenerate the vendored dependency patch.

The revision also removes Darwin's fakecgo initialization in favor of the runtime-managed libc call path and updates the precompiled CryptoKit objects. 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 provider now calls CryptoKit ML-DSA bindings directly and borrows context bytes read-only. Its macOS 26 CI passes the existing-key allocation budgets in both cgo modes: signing at most one Go allocation for the returned signature, verification and equality zero. This does not measure native allocations or throughput, or the full standard-library ML-DSA workload.

Updates #2489.

Validation

  • Go 1.28 Darwin ARM64 and AMD64 nocgo full-standard-library cross-builds passed. Standard-library ML-DSA tests, the provider's full xcrypto tests, the standalone cryptobackend module and all provider packages cross-compiled for both architectures.
  • Windows ARM64 crypto unit tests passed with Go fallback and native CNG; native ML-DSA generation, parsing, equality, verification and allocation checks passed. The existing native deterministic-signing failure is unchanged and belongs to the separate migration.
  • Standalone module tidiness and consistency, standard-library dependency rules, exact replay of all 13 patches and vendor/module source equality passed.

Native macOS execution was not available locally. No E2E/replay suites or throughput benchmarks were run.

Update go-crypto-darwin 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 13:27
@qmuntal
Quim Muntal (qmuntal) requested a review from a team as a code owner October 6, 2026 13: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.

Copilot review overview

🔵 Needs a closer look

The native crypto upgrade includes precompiled objects and lacked native macOS execution validation.

Review effort: Balanced
Findings: None

What changed in this PR

Upgrades the Darwin crypto provider and synchronizes standalone and vendored dependency metadata.

Changes:

  • Updates the Darwin provider version and checksums.
  • Regenerates the vendor patch with ML-DSA allocation improvements and libc-path changes.

Patch consistency: Patches are happy!

File Description
cryptobackend/​go.mod Pins the upgraded Darwin provider.
cryptobackend/​go.sum Updates provider checksums.
patches/​0001-Vendor-external-dependencies.patch Synchronizes vendored Darwin sources and metadata.

💡 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 88bf397 into microsoft/main Oct 6, 2026
61 checks passed
@qmuntal
Quim Muntal (qmuntal) deleted the dev/qmuntal/upgrade-darwin branch October 6, 2026 14:37
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