-rw-r--r-- 494 libmceliece-20240513/crypto_xof/bitwrite16/ref/write.c raw
// 20240504 djb #include "crypto_uint16.h" #include "crypto_uint8.h" #include "crypto_xof.h" void crypto_xof( unsigned char *h,long long hlen, const unsigned char *m,long long mlen ) { long long i; for (i = 0;i < hlen;++i) h[i] = 0; while (mlen >= 2) { crypto_uint16 pos = crypto_uint16_load(m); crypto_uint8 byte = crypto_uint8_shlmod(1,pos); for (i = 0;i < hlen;++i) h[i] |= byte & crypto_uint16_equal_mask(i&0x1fff,pos>>3); m += 2; mlen -= 2; } }