Repository navigation
Conversation
Signed-off-by: Srinivasa Consultants <78673153+dinakarjs@users.noreply.github.com>
|
🟡 Contributor Check: MEDIUM
Automated check by AgenTrust Contributor Check. |
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
noah-ing
left a comment
There was a problem hiding this comment.
Reviewed exact head fee80aa against 305fedc. No actionable defect found. The catch covers only X25519 exchange ValueError, preserves its cause and detail, and normalizes already-rejected keys into the documented SealedChannelError.
Fresh Linux/Python 3.12 environment using the hash-pinned lock: the final full unit/conformance run passed 846 tests, with two real-hardware capture tests skipped. Independently authored checks passed 29 cases, including rejected encodings, exception boundaries, and deterministic base/head ciphertext compatibility. Ten normalization cases fail against the base with the expected raw ValueError.
Ruff, format, mypy, Bandit, dependency consistency and dependency audit pass. Source stayed unchanged; DCO trailer and clean merge simulation confirmed. The PR description accurately limits the security impact to error normalization. This is software/error-contract validation, not hardware-attestation evidence; the required two independent current-head maintainer approvals remain separate.
rajnisht7
left a comment
There was a problem hiding this comment.
the changes looks good, low order X25519 keys that parse but fail at exchange() now raise SealedChannelError with the backend ValueError preserved as cause, same as the existing invalid-key path. catch is limited to the exchange call, no ciphertext is produced, and the three regression cases cover it cleanly
|
Approved fee80aa: the three low-order cases fail with main's |
What
Normalize X25519 exchange failures in
SealedChannel.seal()toSealedChannelError, preserving the backend exception as the cause. The catch covers the exchange operation only. Add three low-order-key regression cases and a changelog entry.Why
A 32-byte low-order public key passes key parsing but raises a raw backend
ValueErrorduring exchange. Callers handling the channel's documented error family cannot handle this consistently with other invalid keys or open failures.Security impact
The low-order keys already fail closed before ciphertext is created. No encryption format, key acceptance, attestation binding or key-custody guarantee changes. This is error normalization, not a confidentiality bypass fix. The channel path requires two maintainer approvals under CONTRIBUTING.md.
Test plan
DCO sign-off