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

Unified Diff: chrome/browser/sync/util/crypto_helpers.cc

Issue 194065: Initial commit of sync engine code to browser/sync.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Fixes to gtest include path, reverted syncapi. Created 11 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync/util/crypto_helpers.cc
===================================================================
--- chrome/browser/sync/util/crypto_helpers.cc (revision 0)
+++ chrome/browser/sync/util/crypto_helpers.cc (revision 0)
@@ -0,0 +1,62 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/sync/util/crypto_helpers.h"
+
+#include <string>
+#include <vector>
+
+#include "base/basictypes.h"
+#include "base/format_macros.h"
+#include "base/logging.h"
+#include "base/rand_util.h"
+#include "base/string_util.h"
+
+using std::string;
+using std::vector;
+
+MD5Calculator::MD5Calculator() {
+ MD5Init(&context_);
+}
+
+void MD5Calculator::AddData(const unsigned char* data, int length) {
+ CHECK(bin_digest_.empty());
+ MD5Update(&context_, data, length);
+}
+
+void MD5Calculator::CalcDigest() {
+ if (bin_digest_.empty()) {
+ MD5Digest digest;
+ MD5Final(&digest, &context_);
+ bin_digest_.assign(digest.a, digest.a + arraysize(digest.a));
+ }
+}
+
+vector<uint8> MD5Calculator::GetDigest() {
+ CalcDigest();
+ return bin_digest_;
+}
+
+PathString MD5Calculator::GetHexDigest() {
+ CalcDigest();
+ string hex = HexEncode(reinterpret_cast<char*>(&bin_digest_.front()),
+ bin_digest_.size());
+ StringToLowerASCII(&hex);
+ return PathString(hex.begin(), hex.end());
+}
+
+void GetRandomBytes(char* output, int output_length) {
+ for (int i = 0; i < output_length; i++) {
+ // TODO(chron): replace this with something less stupid.
+ output[i] = static_cast<char>(base::RandUint64());
+ }
+}
+
+string Generate128BitRandomHexString() {
+ int64 chunk1 = static_cast<int64>(base::RandUint64());
+ int64 chunk2 = static_cast<int64>(base::RandUint64());
+
+ return StringPrintf("%016" PRId64 "x%016" PRId64 "x",
+ chunk1, chunk2);
+}
Property changes on: chrome\browser\sync\util\crypto_helpers.cc
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698