Skip to content
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

Stateful sigs XMSS updates #1590

Merged
merged 7 commits into from
Oct 20, 2023
Merged

Conversation

ashman-p
Copy link
Contributor

Updated XMSS code to use callbacks for "secure store/update" of secret key after each signature generation.
Reflect these changes in the test app.
Some XMSS tests takes too long and hit the time-out limit.

  • Does this PR change the input/output behaviour of a cryptographic algorithm (i.e., does it change known answer test values)? (If so, a version bump will be required from x.y.z to x.(y+1).0.)
  • Does this PR change the list of algorithms available -- either adding, removing, or renaming? Does this PR otherwise change an API? (If so, PRs in fully supported downstream projects dependent on these, i.e., oqs-provider and OQS-OpenSSH will also need to be ready for review and merge by the time this is merged.)

@ashman-p ashman-p requested a review from dstebila as a code owner October 20, 2023 16:59
@ashman-p ashman-p requested review from SWilson4 and ducnguyen-sb and removed request for dstebila October 20, 2023 17:00
Copy link
Contributor

@ducnguyen-sb ducnguyen-sb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @ashman-p , I will integrate the changes into my XMSS code.

@ducnguyen-sb ducnguyen-sb merged commit a90d482 into stateful-sigs Oct 20, 2023
5 of 11 checks passed
@ducnguyen-sb ducnguyen-sb deleted the stateful-sigs-xmss-updates branch October 20, 2023 19:04
@ashman-p
Copy link
Contributor Author

@ducnguyen-sb ... These are the testcase that I see failures with.
The tests essentially does the following operations...

  1.       Key-pair generation
    
  2.       Signature generation 
    
  3.       Signature verification
    

ERROR: OQS_SIG_STFL_verify failed. :XMSSMT-SHA2_20/4_256
ERROR: lock thread test Sig Verify 1 failed. :XMSSMT-SHA2_20/4_256
ERROR: OQS_SIG_STFL_verify failed. :XMSSMT-SHA2_40/4_256
ERROR: lock thread test Sig Verify 1 failed. :XMSSMT-SHA2_40/4_256
ERROR: OQS_SIG_STFL_verify failed. :XMSSMT-SHA2_40/8_256
ERROR: lock thread test Sig Verify 1 failed. :XMSSMT-SHA2_40/8_256
ERROR: OQS_SIG_STFL_verify failed. :XMSSMT-SHA2_60/6_256
ERROR: lock thread test Sig Verify 1 failed. :XMSSMT-SHA2_60/6_256
ERROR: OQS_SIG_STFL_verify failed. :XMSSMT-SHAKE_20/2_256
ERROR: lock thread test Sig Verify 1 failed. :XMSSMT-SHAKE_20/2_256
ERROR: OQS_SIG_STFL_verify failed. :XMSSMT-SHAKE_20/4_256
ERROR: lock thread test Sig Verify 1 failed. :XMSSMT-SHAKE_20/4_256
ERROR: OQS_SIG_STFL_verify failed. :XMSSMT-SHAKE_40/8_256
ERROR: OQS_SIG_STFL_sign failed. :XMSSMT-SHAKE_60/12_256
ERROR: lock thread test OQS_SIG_STFL_sign failed. :XMSSMT-SHAKE_60/12_256

zsh: segmentation fault tests/test_sig_stfl XMSSMT-SHAKE_40/8_256

The other tests, other than the slow keypair generation, passes.

@baentsch
Copy link
Member

@ashman-p @ducnguyen-sb Pardon the question from the "side lines": Why are you merging code that CI already shows as failing? The error list written up above is exactly visible as such by clicking at any of the failing pre-merge CI runs, e.g., this. Or does this statement

Some XMSS tests takes too long and hit the time-out limit.

make you consider CI results as not relevant/trustworthy for this code? Allow me to posit the goal that any code destined for "main" has "full feature coverage" CI that not only passes but does that also within the 1h. Extending this period makes contributions (of anything) "unpleasant" (and is bad to the environment by way of too many CPU cycles/power/CO2 consumed).

@ashman-p You once asked how to separate between "productive" and "experimental"/"research" code: I think this is one such area: Stuff that cannot be fully tested in a standard CI environment should stay in a separate "experimental" branch. IMO we could also further relax other CI tasks in such new branch (like style or memory checks). Maybe something to discuss in an upcoming OQS meeting.

@ducnguyen-sb
Copy link
Contributor

Hi @ashman-p, I've fixed all problems mentioned in @ashman-p post.
#1588

@baentsch Sorry for the inconvenience, in a meeting, we realize we are work on the same code, thus, it's easier for him to transfer the work with XMSS codebase to me and I will update the state-sigs from current broken status to working status.

SWilson4 pushed a commit that referenced this pull request Dec 15, 2023
* Update XMSS to use callbacks. Update test cases.

* Fix format

* Fix SA issues

* Fix format

* Fix SA issue

* set secure function callback for KAT tests. Block slow tests

* set secure function callback for KAT tests. Block slow tests.
SWilson4 pushed a commit that referenced this pull request Feb 14, 2024
* Update XMSS to use callbacks. Update test cases.

* Fix format

* Fix SA issues

* Fix format

* Fix SA issue

* set secure function callback for KAT tests. Block slow tests

* set secure function callback for KAT tests. Block slow tests.
cothan pushed a commit that referenced this pull request Apr 2, 2024
* Update XMSS to use callbacks. Update test cases.

* Fix format

* Fix SA issues

* Fix format

* Fix SA issue

* set secure function callback for KAT tests. Block slow tests

* set secure function callback for KAT tests. Block slow tests.
SWilson4 pushed a commit that referenced this pull request Apr 12, 2024
* Update XMSS to use callbacks. Update test cases.

* Fix format

* Fix SA issues

* Fix format

* Fix SA issue

* set secure function callback for KAT tests. Block slow tests

* set secure function callback for KAT tests. Block slow tests.
SWilson4 pushed a commit that referenced this pull request May 14, 2024
* Update XMSS to use callbacks. Update test cases.

* Fix format

* Fix SA issues

* Fix format

* Fix SA issue

* set secure function callback for KAT tests. Block slow tests

* set secure function callback for KAT tests. Block slow tests.
ashman-p added a commit that referenced this pull request Jun 4, 2024
commit e356ebf Na lms (#1486)
commit 55094c3 LMS H5_W1 (#1513)
commit 4d773d7 Convert to use OQS_SIG_STFL_SECRET_KEY struct  (#1525)
commit 245aede LMS updated to use new SK API (#1533)
commit a85a9aa Stateful sigs secret key storage callback (#1553)
commit 3934949 Na statful sig lock (#1559)
commit 3db6b44 Secret Key Query  (#1572)
commit 2446c64 Na stateful sigs lms var (#1574)
commit 8df2539 Stateful sigs XMSS updates (#1590)
commit a7b2987 SHA2 Increment with arbitrary length (non-block sizes) (#1614)
commit 2dd9e07 Na lms kat multi level (#1620)
commit 982b440 Fix Build Errors (#1635)
commit ddae644 Various fixes
commit cc50ef0 Fix warning
commit cf03392 Update README.md
commit 9325713 Update README.md
commit a52b217 Update README.md
commit d442ac9 Update README.md
commit 72ab478 Update README.md
commit 5967f12 Update src/CMakeLists.txt
commit fc6d512 Update documentation and license text. (#1663)
commit e7a83c7 Disable Stateful Signatures in the build by default (#1676)
commit 6c81bae Na stateful macro (#1687)

Signed-off-by: Norman Ashley <nashley@cisco.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants