Check for RSAPrivateCrtKey in WolfCryptCipher for RSA#153
Merged
rlm2002 merged 1 commit intowolfSSL:masterfrom Sep 8, 2025
Merged
Check for RSAPrivateCrtKey in WolfCryptCipher for RSA#153rlm2002 merged 1 commit intowolfSSL:masterfrom
rlm2002 merged 1 commit intowolfSSL:masterfrom
Conversation
…ateKey usage, throw exception if passed something else
There was a problem hiding this comment.
Pull Request Overview
This PR adds validation to ensure that RSA private keys used with WolfCryptCipher include CRT (Chinese Remainder Theorem) parameters, which are required by the underlying wolfSSL library. Instead of allowing non-CRT keys to fail later with cryptic native errors, the code now throws a clear InvalidKeyException upfront.
- Adds instanceof check for RSAPrivateCrtKey in WolfCryptCipher.wolfCryptSetKey()
- Throws descriptive InvalidKeyException when non-CRT RSA private keys are provided
- Includes comprehensive JUnit tests covering both positive and negative scenarios
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/main/java/com/wolfssl/provider/jce/WolfCryptCipher.java | Adds CRT parameter validation for RSA private keys with descriptive error message |
| src/test/java/com/wolfssl/provider/jce/test/WolfCryptCipherTest.java | Adds test coverage for CRT key validation including positive, negative, and public key scenarios |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
rlm2002
approved these changes
Sep 8, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WolfCryptCipher RSA currently only supports
PrivateKeyobjects of typeRSAPrivateCrtKey. This PR adjusts to throw an exception if the key does not include CRT parameters, as required by native wolfSSL. This gives users a more meaningful error/exception up front rather than amp_exptmod errorlater on.JUnit tests included for regression prevention.
This helps fix OpenJDK SunJCE test:
crypto/provider/Cipher/RSA/TestRSA.java