#pragma once #include #include #include #include #include namespace hex::prv { class Provider; } namespace hex::crypt { void initialize(); void exit(); 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 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); std::vector aesCtrDecrypt(const std::vector &key, std::array nonce, std::array iv, const std::vector &input); }