1
1
mirror of https://github.com/henrydcase/pqc.git synced 2024-11-22 07:35:38 +00:00
Go to file
2021-03-24 21:02:51 +00:00
.cmake Use CMake 2021-03-24 21:02:51 +00:00
.github Round 3 update for Dilithium (from github source) (#369) 2021-03-24 21:02:50 +00:00
src Use CMake 2021-03-24 21:02:51 +00:00
test Use CMake 2021-03-24 21:02:51 +00:00
.astylerc Disable AStyle line endings formatter 2019-03-06 17:15:24 +01:00
.clang-tidy skip new clang-tidy checks 2021-03-24 21:02:49 +00:00
.gitattributes Fix tidy for signing 2019-01-16 13:02:35 +01:00
.gitignore Parallel tests (#206) 2019-07-29 10:38:25 +02:00
.gitmodules Prohibit using char without explicit sign modifier 2019-04-04 13:49:15 +02:00
.mergify.yml Allow to automatically merge PRs if approved and CI agrees (#234) 2019-09-20 10:39:42 +02:00
.travis.yml Disable slowest tests on travis 2021-03-24 21:02:50 +00:00
BADGES.md Round 3 update for Dilithium (from github source) (#369) 2021-03-24 21:02:50 +00:00
CMakeLists.txt Use CMake 2021-03-24 21:02:51 +00:00
CONTRIBUTING.md Implement testing via Github actions 2021-03-24 21:02:48 +00:00
README.md Use CMake 2021-03-24 21:02:51 +00:00
requirements.txt Implement testing via Github actions 2021-03-24 21:02:48 +00:00
SECURITY.md FrodoKEM: Fix bug in the output of the ct_verify function (#367) 2021-03-24 21:02:50 +00:00

PQ Crypto Catalog

This is a repository of post-quantum schemes coppied from the submission to the NIST Post-Quantum Standarization. The sources were cloned from the PQClean project to form new library. The goal of the library is mainly experimentation.

Schemes

Key Encapsulation Mechanisms

Finalists:

  • Classic McEliece
  • Kyber
  • NTRU
  • SABER

Alternate candidates:

  • FrodoKEM
  • HQC

Signature schemes

Finalists:

  • Dilithium
  • Falcon
  • Rainbow

Alternate candidates:

  • SPHINCS+

Implementations previously available in PQClean and dropped in Round 3 of the NIST standardization effort are available in the round2 tag.

API used by PQClean

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 differences to that API are the following:

  • All functions are namespaced;
  • All lengths are passed as type size_t instead of unsigned long long; and
  • Signatures offer two additional functions that follow the "traditional" approach used in most software stacks of computing and verifying signatures instead of producing and recovering signed messages. Specifically, those functions have the following name and signature:
int PQCLEAN_SCHEME_IMPL_crypto_sign_signature(
    uint8_t *sig, size_t *siglen,
    const uint8_t *m, size_t mlen,
    const uint8_t *sk);
int PQCLEAN_SCHEME_IMPL_crypto_sign_verify(
    const uint8_t *sig, size_t siglen,
    const uint8_t *m, size_t mlen,
    const uint8_t *pk);