open-quantum-safe / liboqs

C library for prototyping and experimenting with quantum-resistant cryptography
https://openquantumsafe.org/
Other
1.92k stars 466 forks source link

Remove SPHINCS+ aarch64 code #1972

Closed SWilson4 closed 3 weeks ago

SWilson4 commented 4 weeks ago

The aarch64 implementations for SPHINCS+ appear to have been pulled into liboqs by mistake in the process of #1420. They have, as far as I can tell, never been switched on. Nor do we advertise their availability in documentation. It would be a non-trivial effort to enable them, so this PR simply deletes the unused code. We can revisit the inclusion of ARM-optimized SPHINCS+ as part of #1894.

To guard against this happening in the future, I added a --delete (-d) option to copy_from_upstream.py. This option ensures a "clean" copy by deleting all subdirectories from upstream target directories (e.g., src/sig/sphincs) prior to running the copy logic. I switched this option on in CI so that we can catch a similar slip-up before merge in the future. I don't, however, recommend it for local use, as it has the potential to wipe out unsaved changes.

The actual deletion of the aarch64 code was done using the new copy_from_upstream option. Here's an example of CI failing because it detects the SPHINCS+ aarch64 code.

Fixes #1967.