John Schanck 7dc4b378d6
Refactor SHA3 implementations and improve API (#922)
* sha3: remove old implementations

* sha3: new implementations

* picnic: use liboqs sha3 and sha3x4

* frodo: use new sha3x4 interface

* sphincs: use liboqs sha3x4

* fixup

* skip test_spdx on xkcp_low directory
* xkcp_sha3: explicit casts to avoid narrowing warnings
* xkcp_sha3x4: explicit casts to avoid narrowing warnings
* sha3: disable platform specific xkcp if OQS_PORTABLE_BUILD
* sha3: fix Wcast-qual warnings on clang-9
* fix 'reset' functions
* xkcp_sha3: skip fastloop call if input is not long enough
* xkcp_low: Enable lane complementing for plain-64bits
* xkcp_low: remove Kravatte definitions from times4/avx2

* Add common OQS_MEM_aligned_alloc and OQS_MEM_aligned_free

* Require both OQS_USE_OPENSSL and OQS_USE_SHA3_OPENSSL to enable OpenSSL's SHA3

* Fix some undefined behaviour in KeccakP-1600/plain-64bits

* Fix some undefined behaviour in KeccakP-1600times4/avx2

* Expand shake tests

* Add sha3x4.h include to oqs.h

* Add xkcp_low license info to readme [skip-ci]

* Add copy_from_xkcp scripts [skip-ci]

* SPDX License Info for new scripts [skip-ci]
2021-03-22 19:54:32 -04:00

25 lines
653 B
Plaintext

Usage
-----
From liboqs/scripts/copy_from_xkcp run
$ ./package.sh
This will output liboqs-xkcp-todaysdate.tar.gz
From the top level liboqs directory:
$ rm -rf src/common/sha3/xkcp_low
$ tar xzf scripts/copy_from_xkcp/liboqs-xkcp-todaysdate.tar.gz
Patching
--------
From liboqs/scripts/copy_from_xkcp run
$ ./checkout.sh
This will create `upstream` and `upstream-patched` directories.
The `upstream-patched` directory is `upstream` with the patches
from the `patches` directory applied.
Make any necessary changes in the `upstream-patched` directory,
then run
$ ./update-patches.sh
Your new patches will be included in the next run of ./package.sh.