Codechange: make the MD5 hash/digest/checksum variables a std::array

This commit is contained in:
Rubidium
2023-05-18 22:38:56 +02:00
committed by rubidium42
parent 7934418133
commit d9a04ba446
22 changed files with 91 additions and 83 deletions

View File

@@ -297,7 +297,7 @@ void Md5::Append(const void *data, const size_t nbytes)
if (left) memcpy(this->buf, p, left);
}
void Md5::Finish(uint8 digest[16])
void Md5::Finish(MD5Hash &digest)
{
static const uint8 pad[64] = {
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

View File

@@ -53,6 +53,25 @@
#ifndef MD5_INCLUDED
#define MD5_INCLUDED
/** The number of bytes in a MD5 hash. */
static const size_t MD5_HASH_BYTES = 16;
/** Container for storing a MD5 hash/checksum/digest. */
using MD5Hash = std::array<byte, MD5_HASH_BYTES>;
/**
* Exclusively-or one hash into another hash.
* @param lhs The hash to exclusively-or into.
* @param rhs The hash to exclusively-or with.
* @return Reference to \c lhs hash.
*/
inline MD5Hash &operator^=(MD5Hash &lhs, const MD5Hash &rhs)
{
for (size_t i = 0; i < lhs.size(); i++) lhs[i] ^= rhs[i];
return lhs;
}
struct Md5 {
private:
uint32 count[2]; ///< message length in bits, lsw first
@@ -64,7 +83,7 @@ private:
public:
Md5();
void Append(const void *data, const size_t nbytes);
void Finish(uint8 digest[16]);
void Finish(MD5Hash &digest);
};
#endif /* MD5_INCLUDED */