diff options
author | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2018-08-15 16:20:37 +0300 |
---|---|---|
committer | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2018-08-17 15:26:10 +0300 |
commit | 515abeed2a658d13864d15c80463f53845738912 (patch) | |
tree | 8f1b718ba312ed47a60cbc64f34d9f4b2f31a8cc /coding | |
parent | 93d41ed31836c9302b4589e1f7c0521e748c87ef (diff) |
[Core] Added subscription
Diffstat (limited to 'coding')
-rw-r--r-- | coding/sha1.cpp | 24 | ||||
-rw-r--r-- | coding/sha1.hpp | 3 |
2 files changed, 26 insertions, 1 deletions
diff --git a/coding/sha1.cpp b/coding/sha1.cpp index 4a072e3fc2..7a6c2515db 100644 --- a/coding/sha1.cpp +++ b/coding/sha1.cpp @@ -11,6 +11,7 @@ #include "3party/liboauthcpp/src/base64.h" #include <algorithm> +#include <vector> namespace coding { @@ -50,7 +51,28 @@ SHA1::Hash SHA1::Calculate(std::string const & filePath) // static std::string SHA1::CalculateBase64(std::string const & filePath) { - auto sha1 = Calculate(filePath); + auto const sha1 = Calculate(filePath); + return base64_encode(sha1.data(), sha1.size()); +} + +// static +SHA1::Hash SHA1::CalculateForString(std::string const & str) +{ + CSHA1 sha1; + std::vector<unsigned char> dat(str.begin(), str.end()); + sha1.Update(dat.data(), static_cast<uint32_t>(dat.size())); + sha1.Final(); + + Hash result; + ASSERT_EQUAL(result.size(), ARRAY_SIZE(sha1.m_digest), ()); + std::copy(std::begin(sha1.m_digest), std::end(sha1.m_digest), std::begin(result)); + return result; +} + +// static +std::string SHA1::CalculateBase64ForString(std::string const & str) +{ + auto const sha1 = CalculateForString(str); return base64_encode(sha1.data(), sha1.size()); } } // coding diff --git a/coding/sha1.hpp b/coding/sha1.hpp index d46a718028..e0ad4ad225 100644 --- a/coding/sha1.hpp +++ b/coding/sha1.hpp @@ -13,5 +13,8 @@ public: static Hash Calculate(std::string const & filePath); static std::string CalculateBase64(std::string const & filePath); + + static Hash CalculateForString(std::string const & str); + static std::string CalculateBase64ForString(std::string const & str); }; } // coding |