pqc/crypto_kem/kyber768-90s/avx2/symmetric.h

24 lines
773 B
C
Raw Normal View History

2019-09-17 13:02:01 +01:00
#ifndef SYMMETRIC_H
#define SYMMETRIC_H
#include "params.h"
#include "aes256ctr.h"
#include "sha2.h"
#define hash_h(OUT, IN, INBYTES) sha256((OUT), (IN), (INBYTES))
#define hash_g(OUT, IN, INBYTES) sha512((OUT), (IN), (INBYTES))
#define xof_absorb(STATE, IN, X, Y) PQCLEAN_KYBER76890S_AVX2_aes256ctr_init((STATE), (IN), (Y) + ((uint16_t)(X) << 8))
#define xof_squeezeblocks(OUT, OUTBLOCKS, STATE) PQCLEAN_KYBER76890S_AVX2_aes256ctr_squeezeblocks((OUT), (OUTBLOCKS), (STATE))
#define xof_ctx_release(STATE)
2019-09-17 13:02:01 +01:00
#define prf(OUT, OUTBYTES, KEY, NONCE) PQCLEAN_KYBER76890S_AVX2_aes256ctr_prf((OUT), (OUTBYTES), (KEY), (NONCE))
#define kdf(OUT, IN, INBYTES) sha256((OUT), (IN), (INBYTES))
#define XOF_BLOCKBYTES 128
typedef aes256ctr_ctx xof_state;
#endif /* SYMMETRIC_H */