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

Side by Side Diff: crypto/p224_spake_unittest.cc

Issue 889663003: Renamed GetMessage into GetNextMessage. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 | « crypto/p224_spake.cc ('k') | remoting/protocol/v2_authenticator.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 "crypto/p224_spake.h" 5 #include "crypto/p224_spake.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 namespace crypto { 13 namespace crypto {
14 14
15 namespace { 15 namespace {
16 16
17 std::string HexEncodeString(const std::string& binary_data) { 17 std::string HexEncodeString(const std::string& binary_data) {
18 return base::HexEncode(binary_data.c_str(), binary_data.size()); 18 return base::HexEncode(binary_data.c_str(), binary_data.size());
19 } 19 }
20 20
21 bool RunExchange(P224EncryptedKeyExchange* client, 21 bool RunExchange(P224EncryptedKeyExchange* client,
22 P224EncryptedKeyExchange* server, 22 P224EncryptedKeyExchange* server,
23 bool is_password_same) { 23 bool is_password_same) {
24 for (;;) { 24 for (;;) {
25 std::string client_message, server_message; 25 std::string client_message, server_message;
26 client_message = client->GetMessage(); 26 client_message = client->GetNextMessage();
27 server_message = server->GetMessage(); 27 server_message = server->GetNextMessage();
28 28
29 P224EncryptedKeyExchange::Result client_result, server_result; 29 P224EncryptedKeyExchange::Result client_result, server_result;
30 client_result = client->ProcessMessage(server_message); 30 client_result = client->ProcessMessage(server_message);
31 server_result = server->ProcessMessage(client_message); 31 server_result = server->ProcessMessage(client_message);
32 32
33 // Check that we never hit the case where only one succeeds. 33 // Check that we never hit the case where only one succeeds.
34 EXPECT_EQ(client_result == P224EncryptedKeyExchange::kResultSuccess, 34 EXPECT_EQ(client_result == P224EncryptedKeyExchange::kResultSuccess,
35 server_result == P224EncryptedKeyExchange::kResultSuccess); 35 server_result == P224EncryptedKeyExchange::kResultSuccess);
36 36
37 if (client_result == P224EncryptedKeyExchange::kResultFailed || 37 if (client_result == P224EncryptedKeyExchange::kResultFailed ||
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 } 78 }
79 79
80 TEST(MutualAuth, ExpectedValues) { 80 TEST(MutualAuth, ExpectedValues) {
81 P224EncryptedKeyExchange client(P224EncryptedKeyExchange::kPeerTypeClient, 81 P224EncryptedKeyExchange client(P224EncryptedKeyExchange::kPeerTypeClient,
82 kPassword); 82 kPassword);
83 client.SetXForTesting("Client x"); 83 client.SetXForTesting("Client x");
84 P224EncryptedKeyExchange server(P224EncryptedKeyExchange::kPeerTypeServer, 84 P224EncryptedKeyExchange server(P224EncryptedKeyExchange::kPeerTypeServer,
85 kPassword); 85 kPassword);
86 server.SetXForTesting("Server x"); 86 server.SetXForTesting("Server x");
87 87
88 std::string client_message = client.GetMessage(); 88 std::string client_message = client.GetNextMessage();
89 EXPECT_EQ( 89 EXPECT_EQ(
90 "3508EF7DECC8AB9F9C439FBB0154288BBECC0A82E8448F4CF29554EB" 90 "3508EF7DECC8AB9F9C439FBB0154288BBECC0A82E8448F4CF29554EB"
91 "BE9D486686226255EAD1D077C635B1A41F46AC91D7F7F32CED9EC3E0", 91 "BE9D486686226255EAD1D077C635B1A41F46AC91D7F7F32CED9EC3E0",
92 HexEncodeString(client_message)); 92 HexEncodeString(client_message));
93 93
94 std::string server_message = server.GetMessage(); 94 std::string server_message = server.GetNextMessage();
95 EXPECT_EQ( 95 EXPECT_EQ(
96 "A3088C18B75D2C2B107105661AEC85424777475EB29F1DDFB8C14AFB" 96 "A3088C18B75D2C2B107105661AEC85424777475EB29F1DDFB8C14AFB"
97 "F1603D0DF38413A00F420ACF2059E7997C935F5A957A193D09A2B584", 97 "F1603D0DF38413A00F420ACF2059E7997C935F5A957A193D09A2B584",
98 HexEncodeString(server_message)); 98 HexEncodeString(server_message));
99 99
100 EXPECT_EQ(P224EncryptedKeyExchange::kResultPending, 100 EXPECT_EQ(P224EncryptedKeyExchange::kResultPending,
101 client.ProcessMessage(server_message)); 101 client.ProcessMessage(server_message));
102 EXPECT_EQ(P224EncryptedKeyExchange::kResultPending, 102 EXPECT_EQ(P224EncryptedKeyExchange::kResultPending,
103 server.ProcessMessage(client_message)); 103 server.ProcessMessage(client_message));
104 104
(...skipping 17 matching lines...) Expand all
122 P224EncryptedKeyExchange server( 122 P224EncryptedKeyExchange server(
123 P224EncryptedKeyExchange::kPeerTypeServer, kPassword); 123 P224EncryptedKeyExchange::kPeerTypeServer, kPassword);
124 124
125 // We'll only be testing small values of i, but we don't want that to bias 125 // We'll only be testing small values of i, but we don't want that to bias
126 // the test coverage. So we disperse the value of i by multiplying by the 126 // the test coverage. So we disperse the value of i by multiplying by the
127 // FNV, 32-bit prime, producing a poor-man's PRNG. 127 // FNV, 32-bit prime, producing a poor-man's PRNG.
128 const uint32 rand = i * 16777619; 128 const uint32 rand = i * 16777619;
129 129
130 for (unsigned round = 0;; round++) { 130 for (unsigned round = 0;; round++) {
131 std::string client_message, server_message; 131 std::string client_message, server_message;
132 client_message = client.GetMessage(); 132 client_message = client.GetNextMessage();
133 server_message = server.GetMessage(); 133 server_message = server.GetNextMessage();
134 134
135 if ((rand & 1) == round) { 135 if ((rand & 1) == round) {
136 const bool server_or_client = rand & 2; 136 const bool server_or_client = rand & 2;
137 std::string* m = server_or_client ? &server_message : &client_message; 137 std::string* m = server_or_client ? &server_message : &client_message;
138 if (rand & 4) { 138 if (rand & 4) {
139 // Truncate 139 // Truncate
140 *m = m->substr(0, (i >> 3) % m->size()); 140 *m = m->substr(0, (i >> 3) % m->size());
141 } else { 141 } else {
142 // Corrupt 142 // Corrupt
143 const size_t bits = m->size() * 8; 143 const size_t bits = m->size() * 8;
(...skipping 21 matching lines...) Expand all
165 165
166 ASSERT_EQ(P224EncryptedKeyExchange::kResultPending, 166 ASSERT_EQ(P224EncryptedKeyExchange::kResultPending,
167 client_result); 167 client_result);
168 ASSERT_EQ(P224EncryptedKeyExchange::kResultPending, 168 ASSERT_EQ(P224EncryptedKeyExchange::kResultPending,
169 server_result); 169 server_result);
170 } 170 }
171 } 171 }
172 } 172 }
173 173
174 } // namespace crypto 174 } // namespace crypto
OLDNEW
« no previous file with comments | « crypto/p224_spake.cc ('k') | remoting/protocol/v2_authenticator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698