diff options
author | hans@chromium.org <hans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-13 21:17:20 +0000 |
---|---|---|
committer | hans@chromium.org <hans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-13 21:17:20 +0000 |
commit | 5035f683b6fbf8cc945a96af9598a4739a8c6f4f (patch) | |
tree | 8e0034b65759f5bcbba3de1ad8e5f368635c4743 /base/sha1_portable.cc | |
parent | dfbb6ff293dc14f646c17a42981b4645a4172e20 (diff) | |
download | chromium_src-5035f683b6fbf8cc945a96af9598a4739a8c6f4f.zip chromium_src-5035f683b6fbf8cc945a96af9598a4739a8c6f4f.tar.gz chromium_src-5035f683b6fbf8cc945a96af9598a4739a8c6f4f.tar.bz2 |
Add base::SHA1HashBytes.
We need this for LevelDB.
BUG=64078
TEST=base_unittest --gtest_filter=SHA1Test
Review URL: http://codereview.chromium.org/6661025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77973 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/sha1_portable.cc')
-rw-r--r-- | base/sha1_portable.cc | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/base/sha1_portable.cc b/base/sha1_portable.cc index cc05a5c9..529fc90 100644 --- a/base/sha1_portable.cc +++ b/base/sha1_portable.cc @@ -4,6 +4,8 @@ #include "base/sha1.h" +#include <string.h> + #include "base/basictypes.h" namespace base { @@ -195,12 +197,19 @@ void SecureHashAlgorithm::Process() { } std::string SHA1HashString(const std::string& str) { + char hash[SecureHashAlgorithm::kDigestSizeBytes]; + SHA1HashBytes(reinterpret_cast<const unsigned char*>(str.c_str()), + str.length(), reinterpret_cast<unsigned char*>(hash)); + return std::string(hash, SecureHashAlgorithm::kDigestSizeBytes); +} + +void SHA1HashBytes(const unsigned char* data, size_t len, + unsigned char* hash) { SecureHashAlgorithm sha; - sha.Update(str.c_str(), str.length()); + sha.Update(data, len); sha.Final(); - std::string out(reinterpret_cast<const char*>(sha.Digest()), - SecureHashAlgorithm::kDigestSizeBytes); - return out; + + memcpy(hash, sha.Digest(), SecureHashAlgorithm::kDigestSizeBytes); } } // namespace base |