Sync with PQClean (#954)

* Sync with PQClean commmit e463123b92a5b315531c883d0d6b7381731e9b1c

* Sync with PQClean commit ef4ad5da02283ec0dd58b57a0684c98a1e33a531

* Reduce concurrency in CircleCI AddressSanitizer builds
This commit is contained in:
Douglas Stebila 2021-04-05 15:40:07 -04:00 committed by GitHub
parent 336488085c
commit b1e2b44888
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 34 additions and 19 deletions

View File

@ -307,7 +307,7 @@ workflows:
- /^audit.*/
CONTAINER: openquantumsafe/ci-ubuntu-focal-x86_64:latest
CMAKE_ARGS: -DCMAKE_C_COMPILER=clang-9 -DCMAKE_BUILD_TYPE=Debug -DUSE_SANITIZER=Address
PYTEST_ARGS: --ignore=tests/test_portability.py --numprocesses=auto
PYTEST_ARGS: --ignore=tests/test_portability.py --numprocesses=auto --maxprocesses=10
# Disabling test_constant_time for now
#- linux_x64:
# <<: *require_buildcheck

View File

@ -9,7 +9,7 @@
## Implementation
- **Source of implementation**: SUPERCOP-20191221, "vec" and "avx" implementations
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, 865f0bd1d1dceb6624fc27e6395b14d2d03261ad
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, ef4ad5da02283ec0dd58b57a0684c98a1e33a531
- **License**: Public domain
- **Constant-time**: Yes
- **Optimizations**: Portable C with AVX2, BMI1, POPCNT instructions (if available at run-time)

View File

@ -9,7 +9,7 @@
## Implementation
- **Source of implementation**: hqc-submission_2020-10-01 via https://github.com/jschanck/package-pqclean/tree/c9181076/hqc
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, 865f0bd1d1dceb6624fc27e6395b14d2d03261ad
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, ef4ad5da02283ec0dd58b57a0684c98a1e33a531
- **License**: Public domain
- **Constant-time**: Yes
- **Optimizations**: Portable C with AVX2, BMI1, PCLMULQDQ instructions (if available at run-time)

View File

@ -9,7 +9,7 @@
## Implementation
- **Source of implementation**: https://github.com/jschanck/ntru/tree/a43a4457
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, 865f0bd1d1dceb6624fc27e6395b14d2d03261ad
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, ef4ad5da02283ec0dd58b57a0684c98a1e33a531
- **License**: Public domain
- **Constant-time**: Yes
- **Optimizations**: Portable C with AVX2, BMI2 instructions (if available at run-time)

View File

@ -9,7 +9,7 @@
## Implementation
- **Source of implementation**: SUPERCOP-20200826
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, 865f0bd1d1dceb6624fc27e6395b14d2d03261ad
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, ef4ad5da02283ec0dd58b57a0684c98a1e33a531
- **License**: Public domain
- **Constant-time**: Yes
- **Optimizations**: Portable C with AVX2 instructions (if available at run-time)

View File

@ -9,7 +9,7 @@
## Implementation
- **Source of implementation**: https://github.com/KULeuven-COSIC/SABER/tree/509cc5ec3a7e12a751ccdd2ef5bd6e54e00bd350 via https://github.com/jschanck/package-pqclean/tree/1ae84c3c/saber
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, 865f0bd1d1dceb6624fc27e6395b14d2d03261ad
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, ef4ad5da02283ec0dd58b57a0684c98a1e33a531
- **License**: Public domain
- **Constant-time**: Yes
- **Optimizations**: Portable C with AVX2 instructions (if available at run-time)

View File

@ -9,7 +9,7 @@
## Implementation
- **Source of implementation**: supercop-20201018 via https://github.com/jschanck/package-pqclean/tree/cea1fa5a/falcon
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, 865f0bd1d1dceb6624fc27e6395b14d2d03261ad
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, ef4ad5da02283ec0dd58b57a0684c98a1e33a531
- **License**: CC0 1.0 Universal
- **Constant-time**: Yes
- **Optimizations**: Portable C with AVX2 instructions (if available at run-time)

View File

@ -8,7 +8,7 @@
## Implementation
- **Source of implementation**: https://github.com/fast-crypto-lab/rainbow-submission-round2/commit/173ada0e077e1b9dbd8e4a78994f87acc0c92263
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, 865f0bd1d1dceb6624fc27e6395b14d2d03261ad
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, ef4ad5da02283ec0dd58b57a0684c98a1e33a531
- **License**: CC0 1.0
- **Constant-time**: Yes
- **Optimizations**: Portable C

View File

@ -9,7 +9,7 @@
## Implementation
- **Source of implementation**: https://github.com/sphincs/sphincsplus
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, 865f0bd1d1dceb6624fc27e6395b14d2d03261ad
- **Implementation version**: https://github.com/PQClean/PQClean.git, master, ef4ad5da02283ec0dd58b57a0684c98a1e33a531
- **License**: CC0 1.0 Universal
- **Constant-time**: Yes
- **Optimizations**: Portable C with AES, AVX2 instructions (if available at run-time)

View File

@ -3,7 +3,7 @@ upstreams:
name: pqclean
git_url: https://github.com/PQClean/PQClean.git
git_branch: master
git_commit: 865f0bd1d1dceb6624fc27e6395b14d2d03261ad
git_commit: ef4ad5da02283ec0dd58b57a0684c98a1e33a531
kem_meta_path: 'crypto_kem/{pqclean_scheme}/META.yml'
sig_meta_path: 'crypto_sign/{pqclean_scheme}/META.yml'
kem_scheme_path: 'crypto_kem/{pqclean_scheme}'

View File

@ -13,7 +13,7 @@ OQS_KEM *OQS_KEM_hqc_128_new() {
return NULL;
}
kem->method_name = OQS_KEM_alg_hqc_128;
kem->alg_version = "hqc-submission_2020-10-01 via https://github.com/jschanck/package-pqclean/tree/c9181076/hqc";
kem->alg_version = "hqc-submission_2020-10-01 via https://github.com/jschanck/package-pqclean/tree/9c4e109d/hqc";
kem->claimed_nist_level = 1;
kem->ind_cca = true;

View File

@ -13,7 +13,7 @@ OQS_KEM *OQS_KEM_hqc_192_new() {
return NULL;
}
kem->method_name = OQS_KEM_alg_hqc_192;
kem->alg_version = "hqc-submission_2020-10-01 via https://github.com/jschanck/package-pqclean/tree/c9181076/hqc";
kem->alg_version = "hqc-submission_2020-10-01 via https://github.com/jschanck/package-pqclean/tree/9c4e109d/hqc";
kem->claimed_nist_level = 3;
kem->ind_cca = true;

View File

@ -13,7 +13,7 @@ OQS_KEM *OQS_KEM_hqc_256_new() {
return NULL;
}
kem->method_name = OQS_KEM_alg_hqc_256;
kem->alg_version = "hqc-submission_2020-10-01 via https://github.com/jschanck/package-pqclean/tree/c9181076/hqc";
kem->alg_version = "hqc-submission_2020-10-01 via https://github.com/jschanck/package-pqclean/tree/9c4e109d/hqc";
kem->claimed_nist_level = 5;
kem->ind_cca = true;

View File

@ -363,7 +363,7 @@ static inline void karat_mult9(__m256i *C, const aligned_vec_t *A, const aligned
* @param[in] a2 Pointer to a polynomial
*/
void PQCLEAN_HQCRMRS128_AVX2_vect_mul(uint64_t *o, const aligned_vec_t *a1, const aligned_vec_t *a2) {
__m256i a1_times_a2[2 * PARAM_N_MULT + 1] = {0};
__m256i a1_times_a2[CEIL_DIVIDE(2 * PARAM_N_MULT + 1, 256)] = {0};
karat_mult9(a1_times_a2, a1, a2);
reduce(o, a1_times_a2);
}

View File

@ -434,7 +434,12 @@ static void correct_errors(uint8_t *cdw, const uint16_t *error_values) {
* @param[in] cdw Array of size VEC_N1_SIZE_64 storing the received word
*/
void PQCLEAN_HQCRMRS128_AVX2_reed_solomon_decode(uint8_t *msg, uint8_t *cdw) {
uint16_t syndromes[2 * PARAM_DELTA] = {0};
union {
uint16_t arr16[16 * CEIL_DIVIDE(2 * PARAM_DELTA, 16)];
__m256i dummy;
} syndromes_aligned = {0};
uint16_t *syndromes = syndromes_aligned.arr16;
uint16_t sigma[1 << PARAM_FFT] = {0};
uint8_t error[1 << PARAM_M] = {0};
uint16_t z[PARAM_N1] = {0};

View File

@ -402,7 +402,7 @@ static inline void karat_mult9(__m256i *C, const aligned_vec_t *A, const aligned
* @param[in] a2 Pointer to a polynomial
*/
void PQCLEAN_HQCRMRS192_AVX2_vect_mul(uint64_t *o, const aligned_vec_t *a1, const aligned_vec_t *a2) {
__m256i a1_times_a2[2 * PARAM_N_MULT + 1] = {0};
__m256i a1_times_a2[CEIL_DIVIDE(2 * PARAM_N_MULT + 1, 256)] = {0};
karat_mult9(a1_times_a2, a1, a2);
reduce(o, a1_times_a2);
}

View File

@ -444,7 +444,12 @@ static void correct_errors(uint8_t *cdw, const uint16_t *error_values) {
* @param[in] cdw Array of size VEC_N1_SIZE_64 storing the received word
*/
void PQCLEAN_HQCRMRS192_AVX2_reed_solomon_decode(uint8_t *msg, uint8_t *cdw) {
uint16_t syndromes[2 * PARAM_DELTA] = {0};
union {
uint16_t arr16[16 * CEIL_DIVIDE(2 * PARAM_DELTA, 16)];
__m256i dummy;
} syndromes_aligned = {0};
uint16_t *syndromes = syndromes_aligned.arr16;
uint16_t sigma[1 << PARAM_FFT] = {0};
uint8_t error[1 << PARAM_M] = {0};
uint16_t z[PARAM_N1] = {0};

View File

@ -597,7 +597,7 @@ static void toom_3_mult(uint64_t *Out, const aligned_vec_t *A, const aligned_vec
* @param[in] a2 Pointer to a polynomial
*/
void PQCLEAN_HQCRMRS256_AVX2_vect_mul(uint64_t *o, const aligned_vec_t *a1, const aligned_vec_t *a2) {
__m256i a1_times_a2[VEC_N_256_SIZE_64 << 1] = {0};
__m256i a1_times_a2[CEIL_DIVIDE(2 * PARAM_N_MULT + 1, 256)] = {0};
toom_3_mult((uint64_t *)a1_times_a2, a1, a2);
reduce(o, a1_times_a2);
}

View File

@ -712,7 +712,12 @@ static void correct_errors(uint8_t *cdw, const uint16_t *error_values) {
* @param[in] cdw Array of size VEC_N1_SIZE_64 storing the received word
*/
void PQCLEAN_HQCRMRS256_AVX2_reed_solomon_decode(uint8_t *msg, uint8_t *cdw) {
uint16_t syndromes[2 * PARAM_DELTA] = {0};
union {
uint16_t arr16[16 * CEIL_DIVIDE(2 * PARAM_DELTA, 16)];
__m256i dummy;
} syndromes_aligned = {0};
uint16_t *syndromes = syndromes_aligned.arr16;
uint16_t sigma[1 << PARAM_FFT] = {0};
uint8_t error[1 << PARAM_M] = {0};
uint16_t z[PARAM_N1] = {0};