Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: base/sha1_portable.cc

Issue 6661025: Add base::SHA1HashBytes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing wtc's comments Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/sha1.h ('k') | base/sha1_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/sha1.h" 5 #include "base/sha1.h"
6 6
7 #include <string.h>
8
7 #include "base/basictypes.h" 9 #include "base/basictypes.h"
8 10
9 namespace base { 11 namespace base {
10 12
11 // Implementation of SHA-1. Only handles data in byte-sized blocks, 13 // Implementation of SHA-1. Only handles data in byte-sized blocks,
12 // which simplifies the code a fair bit. 14 // which simplifies the code a fair bit.
13 15
14 // Identifier names follow notation in FIPS PUB 180-3, where you'll 16 // Identifier names follow notation in FIPS PUB 180-3, where you'll
15 // also find a description of the algorithm: 17 // also find a description of the algorithm:
16 // http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf 18 // http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 H[0] += A; 190 H[0] += A;
189 H[1] += B; 191 H[1] += B;
190 H[2] += C; 192 H[2] += C;
191 H[3] += D; 193 H[3] += D;
192 H[4] += E; 194 H[4] += E;
193 195
194 cursor = 0; 196 cursor = 0;
195 } 197 }
196 198
197 std::string SHA1HashString(const std::string& str) { 199 std::string SHA1HashString(const std::string& str) {
200 char hash[SecureHashAlgorithm::kDigestSizeBytes];
201 SHA1HashBytes(reinterpret_cast<const unsigned char*>(str.c_str()),
202 str.length(), reinterpret_cast<unsigned char*>(hash));
203 return std::string(hash, SecureHashAlgorithm::kDigestSizeBytes);
204 }
205
206 void SHA1HashBytes(const unsigned char* data, size_t len,
207 unsigned char* hash) {
198 SecureHashAlgorithm sha; 208 SecureHashAlgorithm sha;
199 sha.Update(str.c_str(), str.length()); 209 sha.Update(data, len);
200 sha.Final(); 210 sha.Final();
201 std::string out(reinterpret_cast<const char*>(sha.Digest()), 211
202 SecureHashAlgorithm::kDigestSizeBytes); 212 memcpy(hash, sha.Digest(), SecureHashAlgorithm::kDigestSizeBytes);
203 return out;
204 } 213 }
205 214
206 } // namespace base 215 } // namespace base
OLDNEW
« no previous file with comments | « base/sha1.h ('k') | base/sha1_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698