Go to the documentation of this file.
22 template <
class Engine_>
class HashContext
26 using Hash = ByteArray<Engine::hashsize>;
29 ByteArray<Engine::statesize>
value;
33 template <
typename... EngineArgs>
HashContext(EngineArgs&&... engineArgs)
35 reset(std::forward<EngineArgs>(engineArgs)...);
43 engine.init(std::forward<EngineArgs>(engineArgs)...);
54 update(std::forward<Ts>(args)...);
75 while((len = obj.
read(offset, buf,
sizeof(buf))) > 0) {
76 engine.update(buf, len);
89 engine.update(data, size);
96 return update(array.data(), array.size());
107 engine.final(hash.data());
120 state.count = engine.get_state(state.value.data());
135 engine.set_state(state.value.data(), state.count);
size_t size() const
Definition: Blob.h:52
uint64_t count
Definition: HashContext.h:46
size_t read(size_t offset, void *buffer, size_t count) const
Read contents of a String into RAM.
Definition: ObjectBase.hpp:110
Wraps a pointer to some data with size.
Definition: Blob.h:28
void setState(const State &state)
Restore intermediate hash state.
Definition: HashContext.h:149
Used when defining data structures.
Definition: ObjectBase.hpp:51
HashContext(EngineArgs &&... engineArgs)
Definition: HashContext.h:49
Class template for a Hash implementation 'Context'.
Definition: HashContext.h:30
Hash getHash()
Finalise and return the final hash value.
Definition: HashContext.h:120
Definition: HashContext.h:44
ByteArray< Engine::hashsize > Hash
Definition: HashContext.h:42
ByteArray< Engine::statesize > value
Definition: HashContext.h:45
State getState()
Get intermediate hash state.
Definition: HashContext.h:133
const uint8_t * data() const
Definition: Blob.h:47
Engine_ Engine
Definition: HashContext.h:41
HashContext & update(const Blob &blob)
Data from Blob.
Definition: HashContext.h:80
HashContext & reset(EngineArgs &&... engineArgs)
Reset the context for a new calculation.
Definition: HashContext.h:57
Hash calculate(Ts &&... args)
Calculate hash on some data.
Definition: HashContext.h:68