Skip to content

[cryptopp-modern] Add new port#48612

Draft
Coralesoft wants to merge 6 commits intomicrosoft:masterfrom
Coralesoft:cryptopp-modern
Draft

[cryptopp-modern] Add new port#48612
Coralesoft wants to merge 6 commits intomicrosoft:masterfrom
Coralesoft:cryptopp-modern

Conversation

@Coralesoft
Copy link
Copy Markdown

@Coralesoft Coralesoft commented Dec 2, 2025

Summary

  • Adds new port cryptopp-modern version 2026.2.0, a maintained fork of Crypto++ with improved CMake support and a reorganised code layout.

Security

Build notes

  • Static library only.
  • Disables assembly optimisations on Windows x86 and ARM to avoid build failures.

Test results

  • Tested successfully on Windows x64 with Visual Studio 2022.

Checklist

  • Port builds successfully.
  • No trailing whitespace or formatting issues.
  • Licence file is properly installed.
  • CMake config and pkg-config files are properly installed.

Adds cryptopp-modern version 2025.12.0, a modern C++ cryptography library
with improved CMake support and code organization.

Closes cryptopp-modern/cryptopp-modern#6
@Coralesoft
Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree

@dg0yt
Copy link
Copy Markdown
Contributor

dg0yt commented Dec 2, 2025

AFAIU this is a fork of cryptopp, but only one lib providing the same lib and symbols can be accepted in this registry. Accepting the new port might mean delisting the other port.

@Coralesoft
Copy link
Copy Markdown
Author

Thanks for raising this.

You’re right: cryptopp-modern is a fork of Crypto++ 8.9.0 and deliberately provides the same ABI and symbols. The idea is to offer a maintained, drop-in compatible variant for people already using Crypto++, with fixes (including the Marvin / CVE-2023-50979 mitigation), a modern CMake setup, CI, and additional algorithms like Argon2 and BLAKE3.

My intention with this PR isn’t to force a particular policy outcome, but simply to make that maintained, drop-in option available to vcpkg users. If, given the “one library / one set of symbols” rule, the right approach is to use cryptopp-modern behind the existing cryptopp port, or to keep the current port as-is and close this PR, I’m happy to follow whatever best fits the registry.

@BillyONeal BillyONeal added the requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. label Dec 5, 2025
@BillyONeal
Copy link
Copy Markdown
Member

It looks like the other package managers are just trying to patch the known CVEs e.g. https://metadata.ftp-master.debian.org/changelogs//main/libc/libcrypto++/libcrypto++_8.9.0-2_changelog

@Coralesoft
Copy link
Copy Markdown
Author

Coralesoft commented Dec 5, 2025

That's great news, i have a PR for this CVE with the repo weidai11/cryptopp#1335 since October

@BillyONeal
Copy link
Copy Markdown
Member

/cc @noloader

@BillyONeal
Copy link
Copy Markdown
Member

Unfortunately as this would effectively change the maintainer of cryptopp for vcpkg we are very hesitant to make that change without seeing that upstream is well and truly dead. I asked Microsoft crypto board about CVE-2023-50979 and paraphrased they said "we ban PKCS#1 v1.5 padding anyway".

There are other package management systems like apt for which adding this fork would not create mutual incompatibilities; you may wish to speak with the Debian maintainers.

@BillyONeal
Copy link
Copy Markdown
Member

I'm going to draft rather than close this because there is nothing wrong with the code here and if we start seeing this fork replace the original more broadly we may merge it.

@BillyONeal BillyONeal marked this pull request as draft December 10, 2025 23:28
@BillyONeal BillyONeal removed the requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. label Dec 10, 2025
This release includes a fix for CVE-2024-28285, a fault-injection
vulnerability in ElGamal, DLIES, and ECIES hybrid decryption that
can lead to private key recovery via differential fault analysis.

The upstream Crypto++ 8.9.0 remains unpatched (issue microsoft#1262 still open).
@Coralesoft Coralesoft marked this pull request as ready for review February 1, 2026 05:11
@Coralesoft
Copy link
Copy Markdown
Author

FYI, I clicked ready for review when I pushed the update and I can’t change it back from my side. Happy for it to be treated as draft. I’ll keep it maintained and update this thread if adoption shifts.

@dg0yt
Copy link
Copy Markdown
Contributor

dg0yt commented Feb 1, 2026

clicked ready for review when I pushed the update and I can’t change it back from my side.

For reference, top right in my screen (for a PR which I authored):
grafik

@BillyONeal BillyONeal marked this pull request as draft February 2, 2026 21:23
@BillyONeal
Copy link
Copy Markdown
Member

I took another pass over other package management systems to see if they had adopted something else or merged more extensive patches and unfortunately I don't see that, so set back to draft for now. (It seems you didn't intend to unset draft but that caused me to double check anyway)

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