summaryrefslogtreecommitdiffstats
path: root/Source/cmCryptoHash.h
diff options
context:
space:
mode:
authorSebastian Holtermann <sebholt@xwmw.org>2016-08-10 09:30:06 (GMT)
committerBrad King <brad.king@kitware.com>2016-08-10 17:21:32 (GMT)
commit3a5f609cbb4ae63fca1eb87918767a4296d16e5f (patch)
tree9903bda16d8811eee65e9610cddf16b0f2dfaf6a /Source/cmCryptoHash.h
parentf582dba6664e5ea814f3b33c71ae4d83db17b996 (diff)
downloadCMake-3a5f609cbb4ae63fca1eb87918767a4296d16e5f.zip
CMake-3a5f609cbb4ae63fca1eb87918767a4296d16e5f.tar.gz
CMake-3a5f609cbb4ae63fca1eb87918767a4296d16e5f.tar.bz2
cmCryptoHash: New ByteHash methods that return a byte vector
Diffstat (limited to 'Source/cmCryptoHash.h')
-rw-r--r--Source/cmCryptoHash.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/cmCryptoHash.h b/Source/cmCryptoHash.h
index ab50e82..4e92b06 100644
--- a/Source/cmCryptoHash.h
+++ b/Source/cmCryptoHash.h
@@ -23,22 +23,37 @@ class cmCryptoHash
{
public:
virtual ~cmCryptoHash() {}
+
/// @brief Returns a new hash generator of the requested type
/// @arg algo Hash type name. Supported hash types are
/// MD5, SHA1, SHA224, SHA256, SHA384, SHA512
/// @return A valid auto pointer if algo is supported or
/// an invalid/NULL pointer otherwise
static CM_AUTO_PTR<cmCryptoHash> New(const char* algo);
+
/// @brief Converts a hex character to its binary value (4 bits)
/// @arg input Hex character [0-9a-fA-F].
/// @arg output Binary value of the input character (4 bits)
/// @return True if input was a valid hex character
static bool IntFromHexDigit(char input, char& output);
+
/// @brief Converts a byte hash to a sequence of hex character pairs
static std::string ByteHashToString(const std::vector<unsigned char>& hash);
+
+ /// @brief Calculates a binary hash from string input data
+ /// @return Binary hash vector
+ std::vector<unsigned char> ByteHashString(const std::string& input);
+
+ /// @brief Calculates a binary hash from file content
+ /// @see ByteHashString()
+ /// @return Non empty binary hash vector if the file was read successfully.
+ /// An empty vector otherwise.
+ std::vector<unsigned char> ByteHashFile(const std::string& file);
+
/// @brief Calculates a hash string from string input data
/// @return Sequence of hex characters pairs for each byte of the binary hash
std::string HashString(const std::string& input);
+
/// @brief Calculates a hash string from file content
/// @see HashString()
/// @return Non empty hash string if the file was read successfully.