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

Side by Side Diff: rlz/lib/crc8_unittest.cc

Issue 10642009: Add a regenerate button to regenerate the password in Windows. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Sync and Merge. Created 8 years, 5 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
« no previous file with comments | « rlz/lib/crc8.cc ('k') | rlz/lib/financial_ping.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 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 // Uniitest for data encryption functions.
6
7 #include "base/logging.h"
8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 #include "rlz/lib/crc8.h"
12
13 TEST(Crc8Unittest, TestCrc8) {
14 struct Data {
15 char string[10];
16 // Externally calculated checksums use
17 // http://www.zorc.breitbandkatze.de/crc.html
18 // with the ATM HEC paramters:
19 // CRC-8, Polynomial 0x07, Initial value 0x00, Final XOR value 0x55
20 // (direct, don't reverse data byes, don't reverse CRC before final XOR)
21 unsigned char external_crc;
22 int random_byte;
23 unsigned char corrupt_value;
24 } data[] = {
25 {"Google", 0x01, 2, 0x53},
26 {"GOOGLE", 0xA6, 4, 0x11},
27 {"My CRC 8!", 0xDC, 0, 0x50},
28 };
29
30 unsigned char* bytes;
31 unsigned char crc;
32 bool matches;
33 int length;
34 for (size_t i = 0; i < sizeof(data) / sizeof(data[0]); ++i) {
35 bytes = reinterpret_cast<unsigned char*>(data[i].string);
36 crc = 0;
37 matches = false;
38 length = strlen(data[i].string);
39
40 // Calculate CRC and compare against external value.
41 rlz_lib::Crc8::Generate(bytes, length, &crc);
42 EXPECT_TRUE(crc == data[i].external_crc);
43 rlz_lib::Crc8::Verify(bytes, length, crc, &matches);
44 EXPECT_TRUE(matches);
45
46 // Corrupt string and see if CRC still matches.
47 data[i].string[data[i].random_byte] = data[i].corrupt_value;
48 rlz_lib::Crc8::Verify(bytes, length, crc, &matches);
49 EXPECT_FALSE(matches);
50 }
51 }
OLDNEW
« no previous file with comments | « rlz/lib/crc8.cc ('k') | rlz/lib/financial_ping.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698