test: add private_encrypt/public_decrypt coverage#121
Merged
atoomic merged 2 commits intocpan-authors:mainfrom Mar 19, 2026
Merged
Conversation
Collaborator
|
Failure from CI @toddr-bot rebase |
private_encrypt() and public_decrypt() use different OpenSSL code paths from encrypt()/decrypt() — EVP_PKEY_sign/verify_recover on 3.x vs RSA_private_encrypt/RSA_public_decrypt on earlier versions — but were only tested with no_padding (in rsa.t). New t/private_crypt.t adds 17 subtests covering: - PKCS1 padding round-trip - No-padding round-trip - Binary data with embedded NUL bytes - Max-length plaintext boundary - Plaintext-too-long rejection - Cross-key failure (wrong public key) - Garbage and truncated ciphertext rejection - PSS and OAEP padding rejection (invalid for sign operations) - Public key cannot private_encrypt - Interop: private_encrypt vs sign produce different outputs - Empty string handling Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
73b8bfa to
f4106cf
Compare
Contributor
Author
Rebase: test: add private_encrypt/public_decrypt coverageBranch Diff: 1 file changed, 187 insertions(+) Review feedback was analyzed and applied. Actions
CICI passed. Automated by Kōan |
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.
What
Adds
t/private_crypt.t— 17 subtests for theprivate_encrypt()/public_decrypt()code path.Why
These operations map to different OpenSSL functions than
encrypt()/decrypt():RSA_private_encrypt/RSA_public_decryptEVP_PKEY_sign/EVP_PKEY_verify_recoverThe existing test suite only exercised these with
no_padding(inrsa.t). PR #118 fixed the 3.x code path but had no dedicated tests to prevent regressions.Testing
🤖 Generated with Claude Code
Quality Report
Changes: 1 file changed, 193 insertions(+)
Code scan: clean
Tests: passed (OK)
Branch hygiene: clean
Generated by Kōan post-mission quality pipeline