fix(SHA2Engine): cannot use HMACEngine with SHA2Engine #3421

This commit is contained in:
Alex Fabijanic
2022-04-18 17:58:31 +02:00
parent b901e6a19f
commit 4f5b7c1891
6 changed files with 427 additions and 7 deletions

View File

@@ -45,7 +45,7 @@ public:
};
SHA2Engine(ALGORITHM algorithm = SHA_256);
~SHA2Engine();
virtual ~SHA2Engine();
std::size_t digestLength() const;
void reset();
@@ -66,6 +66,82 @@ private:
};
class Foundation_API SHA2Engine224 : public SHA2Engine
{
public:
enum
{
BLOCK_SIZE = 64,
DIGEST_SIZE = 28
};
SHA2Engine224(): Poco::SHA2Engine(Poco::SHA2Engine::ALGORITHM::SHA_224)
{
}
virtual ~SHA2Engine224()
{
}
};
class Foundation_API SHA2Engine256 : public SHA2Engine
{
public:
enum
{
BLOCK_SIZE = 64,
DIGEST_SIZE = 32
};
SHA2Engine256(): Poco::SHA2Engine(Poco::SHA2Engine::ALGORITHM::SHA_256)
{
}
virtual ~SHA2Engine256()
{
}
};
class Foundation_API SHA2Engine384 : public SHA2Engine
{
public:
enum
{
BLOCK_SIZE = 128,
DIGEST_SIZE = 48
};
SHA2Engine384(): Poco::SHA2Engine(Poco::SHA2Engine::ALGORITHM::SHA_384)
{
}
virtual ~SHA2Engine384()
{
}
};
class Foundation_API SHA2Engine512 : public SHA2Engine
{
public:
enum
{
BLOCK_SIZE = 128,
DIGEST_SIZE = 64
};
SHA2Engine512(): Poco::SHA2Engine(Poco::SHA2Engine::ALGORITHM::SHA_512)
{
}
virtual ~SHA2Engine512()
{
}
};
} // namespace Poco