38 virtual void update(
const void *data,
size_t len) = 0;
40 virtual void extend(uint8_t *data,
size_t len) = 0;
41 virtual void encrypt(uint8_t *output,
const uint8_t *input,
size_t len) = 0;
43 inline void decrypt(uint8_t *output,
const uint8_t *input,
size_t len)
Abstract base class for Extendable-Output Functions (XOFs).
virtual void extend(uint8_t *data, size_t len)=0
Generates extendable output from this XOF.
void decrypt(uint8_t *output, const uint8_t *input, size_t len)
Decrypts an input buffer with extendable output from this XOF.
virtual void update(const void *data, size_t len)=0
Updates the XOF with more data.
virtual size_t blockSize() const =0
Size of the internal block used by the XOF algorithm, in bytes.
virtual ~XOF()
Destroys this XOF object.
virtual void reset()=0
Resets the XOF ready for a new session.
XOF()
Constructs a new XOF object.
virtual void encrypt(uint8_t *output, const uint8_t *input, size_t len)=0
Encrypts an input buffer with extendable output from this XOF.
virtual void clear()=0
Clears the hash state, removing all sensitive data, and then resets the XOF ready for a new session.