* std/r4/all algs enablement
* add documentation
* make doxygen happy
* Revert "make doxygen happy"
This reverts commit 9aedf2a7e651e0a686b2c5cade38db9af1e4b988.
* fall back to doxygen 1.9.2
* update github workflow to new filter naming
* adding appveyor testing for new OQS_ALGS_ENABLED option
* don't enable disabled vars
* add empty input test
* documenting focus on standard algs
* correct alg name typo
* Update README.md
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
* Switch example to use Kyber-768.
Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com>
Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
* Renamed sha2 C_OR_NI to C_OR_ARM since we only select between C and ARM
* Updated AES C_OR_NI_OR_ARM's formatting and logic
* Renamed sha2_ni.c to sha2_armv8.c and updated CMakeLists.txt to fix build issues with arm optimized AES linking
* Fixed a feature detection logic issue
* Found an issue when compiling a distributed version
* Only apply -march=armv8-a+crypto to arm builds
* updated some naming
Suppose a user of the incremental SHA3 API absorbs 10 bytes, and then
absorbs 2^64 - 10 bytes. At the beginning of the second
`keccak_inc_absorb` call, the 25th element of the Keccak state is equal
to 10, and there is a uint64_t overflow in
```
if (s[25] && mlen + s[25] >= r)
```
which causes the branch to be skipped. Later code assumes that mlen >= r
implies that s[25] = 0, and calls
```
(*Keccak_AddBytes_ptr)(s, m, 0, r);
```
with third argument 0 instead of s[25]. This call modifies the wrong
elements of the Keccak state, which leads to an incorrect result.
I went looking for bugs of this form because of CVE-2022-37454, but this
one is not a security concern. It is also largely theoretical since it
involves processing close to 2^64 bytes.
* Ensure build without an executable stack (fixes#1285)
Until it is clear why the shared library on mips64el and hppa is built
with the executable bit set for the stack, build with both
`-Wa,--noexecstack` (for the assembler) and `-Wl,-z,--noexecstack` (for
the linker).
* Check if compiler/linker support flags for noexecstack before using them
* Add a warning if unable to check for support
* Solve '-Wstrict-prototypes'
Manual changes are applied to the following algorithms only:
* Bike
* Frodo
* Picnic
* Add prototype for implementation of `OQS_SIG_alg_count`
* Add prototype for implementation of `OQS_KEM_alg_count`
* Run `copy_from_upstream.py`
Now, the constructors have a full prototype. It compiles with clang 16.0
The script `scripts/update_docs_from_yaml.py` is using the python package
`tabulate`. It is missing from the `requirements.txt` file.
This PR adds it the the `requirements.txt` file.