summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmCryptoHash.cxx20
-rw-r--r--Source/cmCryptoHash.h6
2 files changed, 13 insertions, 13 deletions
diff --git a/Source/cmCryptoHash.cxx b/Source/cmCryptoHash.cxx
index 59b9abd..8d96421 100644
--- a/Source/cmCryptoHash.cxx
+++ b/Source/cmCryptoHash.cxx
@@ -70,7 +70,7 @@ std::string cmCryptoHash::HashString(const std::string& input)
this->Initialize();
this->Append(reinterpret_cast<unsigned char const*>(input.c_str()),
static_cast<int>(input.size()));
- return this->Finalize();
+ return ByteHashToString(this->Finalize());
}
std::string cmCryptoHash::HashFile(const std::string& file)
@@ -99,7 +99,7 @@ std::string cmCryptoHash::HashFile(const std::string& file)
}
}
if (fin.eof()) {
- return this->Finalize();
+ return ByteHashToString(this->Finalize());
}
return "";
}
@@ -124,11 +124,11 @@ void cmCryptoHashMD5::Append(unsigned char const* buf, int sz)
cmsysMD5_Append(this->MD5, buf, sz);
}
-std::string cmCryptoHashMD5::Finalize()
+std::vector<unsigned char> cmCryptoHashMD5::Finalize()
{
- char md5out[32];
- cmsysMD5_FinalizeHex(this->MD5, md5out);
- return std::string(md5out, 32);
+ std::vector<unsigned char> hash(16, 0);
+ cmsysMD5_Finalize(this->MD5, &hash[0]);
+ return hash;
}
#define cmCryptoHash_SHA_CLASS_IMPL(SHA) \
@@ -142,11 +142,11 @@ std::string cmCryptoHashMD5::Finalize()
{ \
SHA##_Update(this->SHA, buf, sz); \
} \
- std::string cmCryptoHash##SHA::Finalize() \
+ std::vector<unsigned char> cmCryptoHash##SHA::Finalize() \
{ \
- char out[SHA##_DIGEST_STRING_LENGTH]; \
- SHA##_End(this->SHA, out); \
- return std::string(out, SHA##_DIGEST_STRING_LENGTH - 1); \
+ std::vector<unsigned char> hash(SHA##_DIGEST_LENGTH, 0); \
+ SHA##_Final(&hash[0], this->SHA); \
+ return hash; \
}
cmCryptoHash_SHA_CLASS_IMPL(SHA1) cmCryptoHash_SHA_CLASS_IMPL(SHA224)
diff --git a/Source/cmCryptoHash.h b/Source/cmCryptoHash.h
index 80ab269..ab50e82 100644
--- a/Source/cmCryptoHash.h
+++ b/Source/cmCryptoHash.h
@@ -48,7 +48,7 @@ public:
protected:
virtual void Initialize() = 0;
virtual void Append(unsigned char const*, int) = 0;
- virtual std::string Finalize() = 0;
+ virtual std::vector<unsigned char> Finalize() = 0;
};
class cmCryptoHashMD5 : public cmCryptoHash
@@ -62,7 +62,7 @@ public:
protected:
void Initialize() CM_OVERRIDE;
void Append(unsigned char const* buf, int sz) CM_OVERRIDE;
- std::string Finalize() CM_OVERRIDE;
+ std::vector<unsigned char> Finalize() CM_OVERRIDE;
};
#define cmCryptoHash_SHA_CLASS_DECL(SHA) \
@@ -77,7 +77,7 @@ protected:
protected: \
virtual void Initialize(); \
virtual void Append(unsigned char const* buf, int sz); \
- virtual std::string Finalize(); \
+ virtual std::vector<unsigned char> Finalize(); \
}
cmCryptoHash_SHA_CLASS_DECL(SHA1);