chore: Adapt camel-pqc to Bouncy Castle 1.85 algorithm renames#24653
Conversation
Bumps `bouncycastle-version` from 1.84 to 1.85. Updates `org.bouncycastle:bcpkix-jdk18on` from 1.84 to 1.85 - [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html) - [Commits](https://github.com/bcgit/bc-java/commits) Updates `org.bouncycastle:bcprov-jdk18on` from 1.84 to 1.85 - [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html) - [Commits](https://github.com/bcgit/bc-java/commits) Updates `org.bouncycastle:bcutil-jdk18on` from 1.84 to 1.85 - [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html) - [Commits](https://github.com/bcgit/bc-java/commits) Updates `org.bouncycastle:bcjmail-jdk18on` from 1.84 to 1.85 - [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html) - [Commits](https://github.com/bcgit/bc-java/commits) Updates `org.bouncycastle:bcpg-jdk18on` from 1.84 to 1.85 - [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html) - [Commits](https://github.com/bcgit/bc-java/commits) Updates `org.bouncycastle:bcmail-jdk18on` from 1.84 to 1.85 - [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html) - [Commits](https://github.com/bcgit/bc-java/commits) --- updated-dependencies: - dependency-name: org.bouncycastle:bcpkix-jdk18on dependency-version: '1.85' dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.bouncycastle:bcprov-jdk18on dependency-version: '1.85' dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.bouncycastle:bcutil-jdk18on dependency-version: '1.85' dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.bouncycastle:bcjmail-jdk18on dependency-version: '1.85' dependency-type: direct:development update-type: version-update:semver-minor - dependency-name: org.bouncycastle:bcpg-jdk18on dependency-version: '1.85' dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.bouncycastle:bcmail-jdk18on dependency-version: '1.85' dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bouncy Castle 1.85 removed the pre-standardization PQC algorithm names (DILITHIUM, KYBER, SPHINCSPLUS) from the BCPQC provider, replacing them with the NIST standardized names (ML-DSA, ML-KEM, SLH-DSA) in the main BC provider. Update the PQC enum values and default parameter specs to use the new names while keeping the Camel enum constants unchanged for backward compatibility. Users with signatureAlgorithm=DILITHIUM in their routes will continue to work transparently. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
|
🌟 Thank you for your contribution to the Apache Camel project! 🌟 🐫 Apache Camel Committers, please review the following items:
|
gnodet
left a comment
There was a problem hiding this comment.
Clean, comprehensive adaptation of camel-pqc to Bouncy Castle 1.85's NIST-standardized PQC algorithm names. All renamed algorithms (DILITHIUM→ML-DSA, KYBER→ML-KEM, SPHINCSPLUS→SLH-DSA) are correctly mapped across 20 files with proper parameter spec equivalences, provider migration from BCPQC to BC, and backward-compatible enum constant preservation.
Minor notes:
- The BC version bump from 1.84 to 1.85 overlaps with companion PR #24648. One will need a trivial rebase after the other merges.
- The SPHINCS+ default parameter spec change from Haraka-based (haraka_256s) to SHA2-based (slh_dsa_sha2_128s) is correct since NIST FIPS 205 only standardized SHA2 and SHAKE instantiations.
- The explicit parameter spec returns in lifecycle managers (replacing null/key-size fallbacks) is an improvement.
This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.
Claude Code review on behalf of @gnodet
|
🧪 CI tested the following changed modules:
✅ POM dependency changes: targeted tests included Changed properties: bouncycastle-version Modules affected by dependency changes (11)
🔬 Scalpel shadow comparison — Scalpel: 22 tested, 29 compile-only — current: 9 all testedMaveniverse Scalpel detected 51 affected modules (current approach: 9).
|
Summary
Claude Code on behalf of davsclaus
Bouncy Castle 1.85 removed the pre-standardization PQC algorithm names (DILITHIUM, KYBER, SPHINCSPLUS) from the BCPQC provider. This PR adapts camel-pqc to use the NIST standardized names:
ML-DSA(BC provider) — FIPS 204ML-KEM(BC provider) — FIPS 203SLH-DSA(BC provider) — FIPS 205The Camel enum constants (
signatureAlgorithm=DILITHIUM,keyEncapsulationAlgorithm=KYBER, etc.) are preserved unchanged for backward compatibility — existing routes continue to work transparently.Changes:
PQCSignatureAlgorithms.DILITHIUMand.SPHINCSPLUSto use new JCA names and BC providerPQCKeyEncapsulationAlgorithms.KYBERto use new JCA name and BC providerDilithiumParameterSpec,KyberParameterSpec,SPHINCSPlusParameterSpec) to standardized ones (MLDSAParameterSpec,MLKEMParameterSpec,SLHDSAParameterSpec)This is a companion to PR #24648 (Bouncy Castle 1.84 → 1.85 version bump).
Test plan
PQCEndToEndIntegrationTestwhich was failing)🤖 Generated with Claude Code