-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes for pqc and crypto refresh #2142
Fixes for pqc and crypto refresh #2142
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #2142 +/- ##
==========================================
- Coverage 77.26% 77.25% -0.02%
==========================================
Files 194 194
Lines 37746 37751 +5
==========================================
- Hits 29165 29163 -2
- Misses 8581 8588 +7 ☔ View full report in Codecov by Sentry. |
For v6 it's mandated to have direct-key signatures.
As far as I can see this implements the correct behaviour ("MUST") but not all of the Crypto Refresh's additional and optional subpackets etc. |
432e453
to
c551af4
Compare
I updated the branch (rebase on main) and fixed a typo ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks! We may safely ignore codecov failure as changed lines just throw exeption on malloc failure.
This includes the following fixes for the Crypto Refresh and PQC code:
KMAC256::fixedInfo()
now returns the correct valueThanks to @teythoon for spotting the issues.
Further, I fixed a compile error (wrong variable used) for the Crypto Refresh / PQC code and included a copy constructor for the composite algorithms such that it will now build with MSVC/Clang.
A last change has been made to the
salg
parsing in the PKESK code. The variable was undefined (up to a certain point) and I initially set it tosalg = PGP_SA_UNKNOWN;
. In the Crypto Refresh code it is checked whether or not this is AES since v3 PKESK with the new algorithms don't encrypt the session key and requires AES for that case. This part of the logic is a bit messy currently since thesalg
value is defined early when it's not encrypted (can directly be parsed when the PKESKv3 material is parsed), but for other cases it's only available after decryption inencrypted_try_key()
.