CAMEL-23210 - Camel-PQC: Add input validation for algorithm combinations and key sizes in PQCProducer Add startup validation in PQCProducer.doStart() to reject invalid symmetric key lengths for KEM operations. A static map defines valid key sizes for each of the 15 symmetric algorithms with fixed key requirements (AES, ARIA, CAMELLIA, CAST6, CHACHA7539, DSTU7624, GOST28147, GOST3412_2015, GRAIN128, HC128, HC256, SALSA20, SEED, SM4, DESEDE). Algorithms with variable key lengths (RC2, RC5, CAST5) are intentionally excluded. Validation only applies to the six KEM operation types; signature, lifecycle, and stateful operations are unaffected. Additionally, warn at startup about non-recommended hybrid combinations (RSA in hybrid signatures, non-NIST PQC algorithms) and log NIST parameter set guidance for ML-KEM, ML-DSA, and SLH-DSA. Includes 12 new unit tests in PQCInputValidationTest covering invalid key lengths, valid key lengths, hybrid KEM validation, and non-KEM passthrough scenarios. Signed-off-by: Andrea Cosentino <ancosen@gmail.com> # in VALID_SYMMETRIC_KEY_LENGTHS map to improve traceability and avoid # potential typos # assertThatThrownBy/assertThatCode for more precise failure messages
Apache Camel is an Open Source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.
Camel empowers you to define routing and mediation rules in a variety of domain-specific languages (DSL, such as Java, XML, Groovy and YAML). This means you get smart completion of routing rules in your IDE, whether in a Java or XML editor.
Apache Camel uses URIs to enable easier integration with all kinds of transport or messaging model including HTTP, ActiveMQ, JMS, JBI, SCA, MINA or CXF together with working with pluggable Data Format options. Apache Camel is a small library that has minimal dependencies for easy embedding in any Java application. Apache Camel lets you work with the same API regardless of the transport type, making it possible to interact with all the components provided out-of-the-box, with a good understanding of the API.
Apache Camel has powerful Bean Binding and integrated seamlessly with popular frameworks such as Spring, Quarkus, and CDI.
Apache Camel has extensive testing support allowing you to easily unit test your routes.
Apache Camel comes alongside several artifacts with components, data formats, languages, and kinds. The up-to-date list is available online at the Camel website:
Apache Camel comes with many examples. The up to date list is available online at GitHub:
To help you get started, try the following links:
Getting Started
https://camel.apache.org/getting-started.html
The beginner examples are another powerful alternative pathway for getting started with Apache Camel.
Building
https://camel.apache.org/camel-core/contributing/
Contributions
We welcome all kinds of contributions, the details of which are specified here:
https://github.com/apache/camel/blob/main/CONTRIBUTING.md
Please refer to the website for details of finding the issue tracker, email lists, GitHub, chat
Website: https://camel.apache.org/
GitHub (source): https://github.com/apache/camel
Issue tracker: https://issues.apache.org/jira/projects/CAMEL
Mailing-list: https://camel.apache.org/community/mailing-list/
Chat: https://camel.zulipchat.com/
StackOverflow: https://stackoverflow.com/questions/tagged/apache-camel
Twitter: https://twitter.com/ApacheCamel
Support
For additional help, support, we recommend referencing this page first:
https://camel.apache.org/community/support/
Getting Help
If you get stuck somewhere, please feel free to reach out to us on either StackOverflow, Chat, or the email mailing list.
Please help us make Apache Camel better — we appreciate any feedback you may have.
Enjoy!
The Camel riders!
The terms for software licensing are detailed in the LICENSE.txt file,
located in the working directory.