1
1
mirror of https://github.com/henrydcase/pqc.git synced 2024-12-02 04:11:26 +00:00
pqcrypto/crypto_sign/dilithium2/clean/symmetric.c

33 lines
855 B
C
Raw Normal View History

#include "symmetric.h"
#include "fips202.h"
void PQCLEAN_DILITHIUM2_CLEAN_shake128_stream_init(shake128ctx *state,
const unsigned char seed[SEEDBYTES],
uint16_t nonce) {
unsigned int i;
unsigned char buf[SEEDBYTES + 2];
for (i = 0; i < SEEDBYTES; ++i) {
buf[i] = seed[i];
}
buf[SEEDBYTES] = (uint8_t) nonce;
buf[SEEDBYTES + 1] = (uint8_t) (nonce >> 8);
shake128_absorb(state, buf, sizeof(buf));
}
void PQCLEAN_DILITHIUM2_CLEAN_shake256_stream_init(shake256ctx *state,
const unsigned char seed[CRHBYTES],
uint16_t nonce) {
unsigned int i;
unsigned char buf[CRHBYTES + 2];
for (i = 0; i < CRHBYTES; ++i) {
buf[i] = seed[i];
}
buf[CRHBYTES] = (uint8_t) nonce;
buf[CRHBYTES + 1] = (uint8_t) (nonce >> 8);
shake256_absorb(state, buf, sizeof(buf));
}