#pragma once #include #include #include #include #include namespace hex { namespace prv { class Provider; } u16 crc16(prv::Provider* &data, u64 offset, size_t size, u16 polynomial, u16 init); u32 crc32(prv::Provider* &data, u64 offset, size_t size, u32 polynomial, u32 init); std::array md4(prv::Provider* &data, u64 offset, size_t size); std::array md5(prv::Provider* &data, u64 offset, size_t size); std::array sha1(prv::Provider* &data, u64 offset, size_t size); std::array sha224(prv::Provider* &data, u64 offset, size_t size); std::array sha256(prv::Provider* &data, u64 offset, size_t size); std::array sha384(prv::Provider* &data, u64 offset, size_t size); std::array sha512(prv::Provider* &data, u64 offset, size_t size); std::vector decode64(const std::vector &input); std::vector encode64(const std::vector &input); }