-
Notifications
You must be signed in to change notification settings - Fork 122
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
Expose SHAKE through the EVP API #1199
Conversation
d2d298b
to
48be6d7
Compare
Only reviewed 48be6d7, but hte service indicator changes/tests lgtm 👍 |
9c09d51
to
3439c15
Compare
3439c15
to
216bdfb
Compare
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.
Since you are marking this as an approved algorithm, do we need to add a corresponding self test in self_check.c?
a2c7b39
to
8e9bb64
Compare
@darylmartin100 --That's a good question. Right now, we're missing coverage in
I'm not sure what the decision criterion is for adding an algorithm to |
one general question: can the |
@dkostic -- I don't think we should allow that (neither does OpenSSL). For regular digests, we technically allow multiple calls to I've added a test case to |
b2f8b6e
to
3e1c326
Compare
a04871b
to
bb9a42f
Compare
Co-authored-by: dkostic <[email protected]>
This reverts commit 090e2ba.
This reverts commit 5d23a69.
This reverts commit 1726039.
Co-authored-by: dkostic <[email protected]>
bb9a42f
to
8311023
Compare
Issues
Resolves CryptoAlg-2034
Notes
This commit exposes our extant SHAKE implementation through the EVP digest API and incorporates that implementation into the FIPS service indicator and ACVP tooling. SHAKE differs from traditional digest functions in that it does not have a fixed output digest size. When using the incremental EVP API, the output size is specified on finalization through
EVP_DigestFinalXOF
. This additional parameter percolates throughout the EVP and test code, as the function signature ofEVP_DigestFinalXOF
is different from that ofEVP_DigestFinal
orEVP_DigestFinal_ex
.We also add SHA3 to the self tests. As noted below, while the self-tests don't include actual tests for every approved digest algorithm we support, they do cover the core implementation of every approved digest. SHA224 is covered by the SHA256 self-test; SHA384, SHA512-224, and SHA512-256 are covered by the SHA512 self-test; SHAKE-128, SHAKE-256, and all the SHA3 variants are covered by the SHA3-512 self-test.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.