// Copyright (C) 2015 Jérôme Leclercq // This file is part of the "Nazara Engine - Core module" // For conditions of distribution and use, see copyright notice in Config.hpp #include #include #include #include #include #include #include #include #include #include #include #include namespace Nz { AbstractHash::~AbstractHash() = default; std::unique_ptr AbstractHash::Get(HashType type) { NazaraAssert(type <= HashType_Max, "Hash type value out of enum"); switch (type) { case HashType_Fletcher16: return std::unique_ptr(new HashFletcher16); case HashType_CRC32: return std::unique_ptr(new HashCRC32); case HashType_MD5: return std::unique_ptr(new HashMD5); case HashType_SHA1: return std::unique_ptr(new HashSHA1); case HashType_SHA224: return std::unique_ptr(new HashSHA224); case HashType_SHA256: return std::unique_ptr(new HashSHA256); case HashType_SHA384: return std::unique_ptr(new HashSHA384); case HashType_SHA512: return std::unique_ptr(new HashSHA512); case HashType_Whirlpool: return std::unique_ptr(new HashWhirlpool); } NazaraInternalError("Hash type not handled (0x" + String::Number(type, 16) + ')'); return std::unique_ptr(); } }