23 #ifndef LW_INTERNAL_SUBTERRANEAN_H
24 #define LW_INTERNAL_SUBTERRANEAN_H
26 #include "internal-util.h"
71 #define subterranean_duplex_0(state) \
73 subterranean_round((state)); \
91 #define subterranean_duplex_1(state, data) \
93 subterranean_round((state)); \
94 subterranean_absorb_1((state), (data)); \
112 #define subterranean_duplex_word(state, x) \
114 subterranean_round((state)); \
115 subterranean_absorb_word((state), (x)); \
124 #define subterranean_duplex_4(state, data) \
126 subterranean_duplex_word((state), (data)); \
127 (state)->x[8] ^= 1; \
159 unsigned long long len);
Representation of the 257-bit state of Subterranean.
Definition: internal-subterranean.h:45
void subterranean_absorb(subterranean_state_t *state, const unsigned char *data, unsigned long long len)
Absorbs an arbitrary amount of data, four bytes at a time.
Definition: internal-subterranean.c:396
void subterranean_absorb_word(subterranean_state_t *state, uint32_t x)
Absorbs a 32-bit word into the Subterranean state.
Definition: internal-subterranean.c:187
void subterranean_squeeze(subterranean_state_t *state, unsigned char *data, unsigned len)
Squeezes an arbitrary amount of data out of a Subterranean state.
Definition: internal-subterranean.c:408
uint32_t subterranean_extract(subterranean_state_t *state)
Extracts 32 bits of output from the Subterranean state.
Definition: internal-subterranean.c:242
void subterranean_duplex_n(subterranean_state_t *state, const unsigned char *data, unsigned len)
Performs a single Subterranean round and absorbs between zero and four bytes.
Definition: internal-subterranean.c:362
void subterranean_blank(subterranean_state_t *state)
Performs 8 Subterranean rounds with no absorption or squeezing of data; i.e. data input and output is...
Definition: internal-subterranean.c:352
void subterranean_absorb_1(subterranean_state_t *state, unsigned char data)
Absorbs a single byte into the Subterranean state.
Definition: internal-subterranean.c:173
void subterranean_round(subterranean_state_t *state)
Performs a single Subterranean round.
Definition: internal-subterranean.c:28