mirror of
https://github.com/henrydcase/pqc.git
synced 2024-11-26 17:31:38 +00:00
ac2c20045c
* Add McEliece reference implementations * Add Vec implementations of McEliece * Add sse implementations * Add AVX2 implementations * Get rid of stuff not supported by Mac ABI * restrict to two cores * Ditch .data files * Remove .hidden from all .S files * speed up duplicate consistency tests by batching * make cpuinfo more robust * Hope to stabilize macos cpuinfo without ccache * Revert "Hope to stabilize macos cpuinfo without ccache" This reverts commit 6129c3cabe1abbc8b956bc87e902a698e32bf322. * Just hardcode what's available at travis * Fixed-size types in api.h * namespace all header files in mceliece * Ditch operations.h * Get rid of static inline functions * fixup! Ditch operations.h
26 lines
726 B
C
26 lines
726 B
C
#include "vec.h"
|
|
|
|
#include "params.h"
|
|
|
|
extern void PQCLEAN_MCELIECE348864_AVX_vec_mul_asm(uint64_t *, const uint64_t *, const uint64_t *);
|
|
extern void PQCLEAN_MCELIECE348864_AVX_vec_mul_sp_asm(uint64_t *, const uint64_t *, const uint64_t *);
|
|
|
|
|
|
void PQCLEAN_MCELIECE348864_AVX_vec_mul(uint64_t *h, const uint64_t *f, const uint64_t *g) {
|
|
PQCLEAN_MCELIECE348864_AVX_vec_mul_asm(h, f, g);
|
|
}
|
|
|
|
|
|
void PQCLEAN_MCELIECE348864_AVX_vec_mul_sp(uint64_t *h, const uint64_t *f, const uint64_t *g) {
|
|
PQCLEAN_MCELIECE348864_AVX_vec_mul_sp_asm(h, f, g);
|
|
}
|
|
|
|
void PQCLEAN_MCELIECE348864_AVX_vec_add(uint64_t *h, const uint64_t *f, const uint64_t *g) {
|
|
int b;
|
|
|
|
for (b = 0; b < GFBITS; b++) {
|
|
h[b] = f[b] ^ g[b];
|
|
}
|
|
}
|
|
|