Hasher: static contract checking, context reuse
- Store EVP_MD_CTX in a separate struct. - Add with_context() constructor that uses an existing context. - Switch to EVP_Digest(Init|Final)_ex for efficient context reuse. - Make update() borrow &mut self. - Make finalize() consume self. Add finalize_reuse() that also returns the context which can be passed to from_context() constructor for reuse. These changes let the type system prevent illegal calls to update() and finalize().
Loading
Please register or sign in to comment