Fixes for WolfSSL ML-DSA implementation #7677
Merged
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.
Hi everybody,
After trying the new WolfSSL implementation of ML-DSA, I found some problems. On the one hand, interoperability has been lost to the OQS project due to different OIDs etc. (WolfSSL had ML-DSA implemented following the NIST draft, which is incompatible with the Round 3 version, but the OIDs have still been the Round 3 ones from OQS). Furthermore, private key files in PEM/DER format stored on disk typically contain both the private and the public key. The parsing code was unable to properly handle those keys, resulting in failing private key loading.
Both identified issues are fixed with the changes in this commit:
Tested using in-house TLS client and server applications using WolfSSL and with OpenSSL s_client / s_server applications with OQS provider (current master branch), always using private key files generated by OQS.