Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/coding
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2018-08-15 16:20:37 +0300
committerDaria Volvenkova <d.volvenkova@corp.mail.ru>2018-08-17 15:26:10 +0300
commit515abeed2a658d13864d15c80463f53845738912 (patch)
tree8f1b718ba312ed47a60cbc64f34d9f4b2f31a8cc /coding
parent93d41ed31836c9302b4589e1f7c0521e748c87ef (diff)
[Core] Added subscription
Diffstat (limited to 'coding')
-rw-r--r--coding/sha1.cpp24
-rw-r--r--coding/sha1.hpp3
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