summaryrefslogtreecommitdiffstats
path: root/Source/cmCryptoHash.cxx
diff options
context:
space:
mode:
authorSebastian Holtermann <sebholt@xwmw.org>2016-08-10 09:08:15 (GMT)
committerBrad King <brad.king@kitware.com>2016-08-10 17:21:32 (GMT)
commitf582dba6664e5ea814f3b33c71ae4d83db17b996 (patch)
treedcbf4b80dc825496733212ab8c23c06aa19555cf /Source/cmCryptoHash.cxx
parent74f0d4abcd8de84283858fe144772e688669e46a (diff)
downloadCMake-f582dba6664e5ea814f3b33c71ae4d83db17b996.zip
CMake-f582dba6664e5ea814f3b33c71ae4d83db17b996.tar.gz
CMake-f582dba6664e5ea814f3b33c71ae4d83db17b996.tar.bz2
cmCryptoHash: Return byte vector from internal Finalize method
Some callers may want the raw byte vector instead of the hex character string. Convert the internal implementation to use this so that we can later add public APIs to get it.
Diffstat (limited to 'Source/cmCryptoHash.cxx')
-rw-r--r--Source/cmCryptoHash.cxx20
1 files changed, 10 insertions, 10 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)