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

53 lines
889 B
Bash
Executable File

#!/bin/bash
# SPDX-License-Identifier: MIT
BASE=$(dirname "$0")
BASE=$(cd "${BASE}" && pwd)
cd "${BASE}" || exit
VERSION=$(cat "${BASE}/VERSION")
V1=upstream
V2=upstream-patched
ARCHIVE="${VERSION}.zip"
PATCHES="${BASE}/patches"
if [ -e "${V1}" ]
then
printf "%s directory already exists. Delete it (y/n)? " "${V1}"
read -r yn
if [ "${yn:-n}" != "y" ]
then
exit -1
fi
rm -rf "${V1}"
fi
if [ -e "${V2}" ]
then
printf "%s directory already exists. Delete it (y/n)? " "${V2}"
read -r yn
if [ "${yn:-n}" != "y" ]
then
exit -1
fi
rm -rf "${V2}"
fi
if [ ! -f "${BASE}/${ARCHIVE}" ]
then
wget -P "${BASE}" "https://github.com/XKCP/XKCP/archive/${VERSION}.zip"
fi
unzip -qq -d "${BASE}" "${BASE}/${ARCHIVE}"
mv "XKCP-${VERSION}" "${V1}"
mkdir -p "${V2}"
cp -rp "${V1}"/* "${V2}"
( cd "${V2}" || exit
for X in "${PATCHES}"/*
do
patch -p1 < "${X}"
done
)