diff options
Diffstat (limited to 'deps/boringssl/src/crypto/hrss/internal.h')
-rw-r--r-- | deps/boringssl/src/crypto/hrss/internal.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/deps/boringssl/src/crypto/hrss/internal.h b/deps/boringssl/src/crypto/hrss/internal.h index c0d9bd2..340b2e0 100644 --- a/deps/boringssl/src/crypto/hrss/internal.h +++ b/deps/boringssl/src/crypto/hrss/internal.h @@ -47,10 +47,17 @@ OPENSSL_EXPORT void HRSS_poly3_invert(struct poly3 *out, #if !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_SMALL) && \ defined(OPENSSL_X86_64) && defined(OPENSSL_LINUX) #define POLY_RQ_MUL_ASM +// POLY_MUL_RQ_SCRATCH_SPACE is the number of bytes of scratch space needed +// by the assembly function poly_Rq_mul. +#define POLY_MUL_RQ_SCRATCH_SPACE (6144 + 6144 + 12288 + 512 + 9408 + 32) + // poly_Rq_mul is defined in assembly. Inputs and outputs must be 16-byte- // aligned. -extern void poly_Rq_mul(uint16_t r[N + 3], const uint16_t a[N + 3], - const uint16_t b[N + 3]); +extern void poly_Rq_mul( + uint16_t r[N + 3], const uint16_t a[N + 3], const uint16_t b[N + 3], + // The following should be `scratch[POLY_MUL_RQ_SCRATCH_SPACE]` but + // GCC 11.1 has a bug with unions that breaks that. + uint8_t scratch[]); #endif |