1// Copyright (c) 2009 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/sync/util/crypto_helpers.h"
6#include "testing/gtest/include/gtest/gtest.h"
7
8TEST(ChecksumTest, MD5ChecksumTest) {
9  uint8 buffer[256];
10  for (unsigned int i = 0; i < arraysize(buffer); ++i) {
11    buffer[i] = i;
12  }
13  MD5Calculator md5;
14  md5.AddData(buffer, arraysize(buffer));
15  std::string checksum("e2c865db4162bed963bfaa9ef6ac18f0");
16  ASSERT_EQ(checksum, md5.GetHexDigest());
17}
18
19TEST(CryptoHelpers, GetRandomBytes) {
20  for (int i = 1; i < 25; ++i) {
21    std::string random_bytes(i+1, ' ');
22    do {
23      GetRandomBytes(&random_bytes[0], i);
24      ASSERT_EQ(random_bytes[i], ' ');
25    } while (random_bytes[i - 1] == ' ');
26  }
27}
28