Thom Wiggers 6427e7f808 | 5 lat temu | |
---|---|---|
common | 5 lat temu | |
crypto_kem | 5 lat temu | |
crypto_sign | 5 lat temu | |
.clang-format | 5 lat temu | |
.clang-tidy | 5 lat temu | |
.gitattributes | 5 lat temu | |
.gitignore | 5 lat temu | |
Makefile | 5 lat temu | |
README.md | 5 lat temu |
PQClean, in short, is an effort to collect clean implementations of the post-quantum schemes that are in the NIST post-quantum project. The goal of PQClean is to provide standalone implementations that
What PQClean is not aiming for is
As a first main target, we are collecting C implementations that fulfill the requirements listed below.
The checking of items on this list is still being developed. Checked items should be working.
0
on success, negative on failurenmake
)PQCLEAN_SCHEMENAME_
LICENSE
file (see below)META
file giving details about version of the algorithm, designers, etc.#ifdef
s only for header encapsulationconst
arguments are labeled as const
stdint.h
types (including uint8_t
instead of unsigned char
)size_t
for (size_t i=...
)Currently, the continuous-integration and testing environment of PQClean is still work in progress and as a consequence PQClean does not yet have any implementations.
PQClean is essentially using the same API as required for the NIST reference implementations, which is also used by SUPERCOP and by libpqcrypto. The only two differences to that API are the following:
size_t
instead of unsigned long long
; andint crypto_sign_signature(uint8_t *sig, size_t *siglen, const uint8_t *m, size_t mlen, const uint8_t *sk);
int crypto_sign_verify(const uint8_t *sig, size_t siglen, const uint8_t *m, size_t mlen, const uint8_t *pk);
Each subdirectory containing implementations contains a LICENSE file stating under what license that specific implementation is released. All other code for testing etc. in this repository is released under the conditions of CC0.