1 // SPDX-License-Identifier: MIT
2 
3 #ifndef FIPS202X4_H
4 #define FIPS202X4_H
shake128x4_absorb_once(shake128x4incctx * state,const uint8_t * in0,const uint8_t * in1,const uint8_t * in2,const uint8_t * in3,size_t inlen)5 
6 #include <oqs/sha3x4.h>
7 
8 #define shake128x4incctx OQS_SHA3_shake128_x4_inc_ctx
9 #define shake128x4_inc_init OQS_SHA3_shake128_x4_inc_init
10 #define shake128x4_inc_absorb OQS_SHA3_shake128_x4_inc_absorb
11 #define shake128x4_inc_finalize OQS_SHA3_shake128_x4_inc_finalize
12 #define shake128x4_inc_squeeze OQS_SHA3_shake128_x4_inc_squeeze
13 #define shake128x4_inc_ctx_release OQS_SHA3_shake128_x4_inc_ctx_release
14 #define shake128x4_inc_ctx_clone OQS_SHA3_shake128_x4_inc_ctx_clone
15 #define shake128x4_inc_ctx_reset OQS_SHA3_shake128_x4_inc_ctx_reset
16 
17 #define shake256x4incctx OQS_SHA3_shake256_x4_inc_ctx
18 #define shake256x4_inc_init OQS_SHA3_shake256_x4_inc_init
19 #define shake256x4_inc_absorb OQS_SHA3_shake256_x4_inc_absorb
20 #define shake256x4_inc_finalize OQS_SHA3_shake256_x4_inc_finalize
21 #define shake256x4_inc_squeeze OQS_SHA3_shake256_x4_inc_squeeze
22 #define shake256x4_inc_ctx_release OQS_SHA3_shake256_x4_inc_ctx_release
23 #define shake256x4_inc_ctx_clone OQS_SHA3_shake256_x4_inc_ctx_clone
24 #define shake256x4_inc_ctx_reset OQS_SHA3_shake256_x4_inc_ctx_reset
25 
26 #define PQCLEAN_SPHINCSSHAKE256128FROBUST_AVX2_shake256x4 OQS_SHA3_shake256_x4
27 #define PQCLEAN_SPHINCSSHAKE256128FSIMPLE_AVX2_shake256x4 OQS_SHA3_shake256_x4
28 #define PQCLEAN_SPHINCSSHAKE256128SROBUST_AVX2_shake256x4 OQS_SHA3_shake256_x4
29 #define PQCLEAN_SPHINCSSHAKE256128SSIMPLE_AVX2_shake256x4 OQS_SHA3_shake256_x4
30 #define PQCLEAN_SPHINCSSHAKE256192FROBUST_AVX2_shake256x4 OQS_SHA3_shake256_x4
31 #define PQCLEAN_SPHINCSSHAKE256192FSIMPLE_AVX2_shake256x4 OQS_SHA3_shake256_x4
32 #define PQCLEAN_SPHINCSSHAKE256192SROBUST_AVX2_shake256x4 OQS_SHA3_shake256_x4
33 #define PQCLEAN_SPHINCSSHAKE256192SSIMPLE_AVX2_shake256x4 OQS_SHA3_shake256_x4
34 #define PQCLEAN_SPHINCSSHAKE256256FROBUST_AVX2_shake256x4 OQS_SHA3_shake256_x4
35 #define PQCLEAN_SPHINCSSHAKE256256FSIMPLE_AVX2_shake256x4 OQS_SHA3_shake256_x4
36 #define PQCLEAN_SPHINCSSHAKE256256SROBUST_AVX2_shake256x4 OQS_SHA3_shake256_x4
37 #define PQCLEAN_SPHINCSSHAKE256256SSIMPLE_AVX2_shake256x4 OQS_SHA3_shake256_x4
38 
39 #define shake128x4_absorb_once OQS_SHA3_shake128_x4_absorb_once
40 void OQS_SHA3_shake128_x4_absorb_once(shake128x4incctx *state, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen);
41 
42 #define shake256x4_absorb_once OQS_SHA3_shake256_x4_absorb_once
43 void OQS_SHA3_shake256_x4_absorb_once(shake256x4incctx *state, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen);
44 
45 #define shake128x4_squeezeblocks(OUT0, OUT1, OUT2, OUT3, NBLOCKS, STATE) \
46         OQS_SHA3_shake128_x4_inc_squeeze(OUT0, OUT1, OUT2, OUT3, (NBLOCKS)*OQS_SHA3_SHAKE128_RATE, STATE)
47 
48 #define shake256x4_squeezeblocks(OUT0, OUT1, OUT2, OUT3, NBLOCKS, STATE) \
49         OQS_SHA3_shake256_x4_inc_squeeze(OUT0, OUT1, OUT2, OUT3, (NBLOCKS)*OQS_SHA3_SHAKE256_RATE, STATE)
50 
51 #endif
52