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

Side by Side Diff: components/webdata/encryptor/ie7_password_unittest_win.cc

Issue 26465006: Fix IE password import (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 2 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/strings/string16.h" 11 #include "base/strings/string16.h"
Lei Zhang 2013/10/08 17:49:46 no longer used, remove?
12 #include "components/webdata/encryptor/ie7_password.h" 12 #include "components/webdata/encryptor/ie7_password.h"
13 13
14 TEST(IE7PasswordTest, GetUserPassword) { 14 TEST(IE7PasswordTest, GetUserPassword) {
15 // This is the unencrypted values of my keys under Storage2. 15 // This is the unencrypted values of my keys under Storage2.
16 // The passwords have been manually changed to abcdef... but the size remains 16 // The passwords have been manually changed to abcdef... but the size remains
17 // the same. 17 // the same.
18 unsigned char data1[] = "\x0c\x00\x00\x00\x38\x00\x00\x00\x2c\x00\x00\x00" 18 unsigned char data1[] = "\x0c\x00\x00\x00\x38\x00\x00\x00\x2c\x00\x00\x00"
19 "\x57\x49\x43\x4b\x18\x00\x00\x00\x02\x00\x00\x00" 19 "\x57\x49\x43\x4b\x18\x00\x00\x00\x02\x00\x00\x00"
20 "\x67\x00\x72\x00\x01\x00\x00\x00\x00\x00\x00\x00" 20 "\x67\x00\x72\x00\x01\x00\x00\x00\x00\x00\x00\x00"
21 "\x00\x00\x00\x00\x4e\xfa\x67\x76\x22\x94\xc8\x01" 21 "\x00\x00\x00\x00\x4e\xfa\x67\x76\x22\x94\xc8\x01"
(...skipping 17 matching lines...) Expand all
39 39
40 40
41 std::vector<unsigned char> decrypted_data1; 41 std::vector<unsigned char> decrypted_data1;
42 decrypted_data1.resize(arraysize(data1)); 42 decrypted_data1.resize(arraysize(data1));
43 memcpy(&decrypted_data1.front(), data1, sizeof(data1)); 43 memcpy(&decrypted_data1.front(), data1, sizeof(data1));
44 44
45 std::vector<unsigned char> decrypted_data2; 45 std::vector<unsigned char> decrypted_data2;
46 decrypted_data2.resize(arraysize(data2)); 46 decrypted_data2.resize(arraysize(data2));
47 memcpy(&decrypted_data2.front(), data2, sizeof(data2)); 47 memcpy(&decrypted_data2.front(), data2, sizeof(data2));
48 48
49 string16 password; 49 std::vector<ie7_password::DecryptedCredentials> credentials;
50 string16 username; 50 ASSERT_TRUE(ie7_password::GetUserPassFromData(decrypted_data1, &credentials));
51 ASSERT_TRUE(ie7_password::GetUserPassFromData(decrypted_data1, &username, 51 ASSERT_EQ(1u, credentials.size());
52 &password)); 52 EXPECT_EQ(L"abcdefgh", credentials[0].username);
53 EXPECT_EQ(L"abcdefgh", username); 53 EXPECT_EQ(L"abcdefghijkl", credentials[0].password);
54 EXPECT_EQ(L"abcdefghijkl", password);
55 54
56 ASSERT_TRUE(ie7_password::GetUserPassFromData(decrypted_data2, &username, 55 credentials.clear();
57 &password)); 56 ASSERT_TRUE(ie7_password::GetUserPassFromData(decrypted_data2, &credentials));
58 EXPECT_EQ(L"abcdefghi", username); 57 ASSERT_EQ(1u, credentials.size());
59 EXPECT_EQ(L"abcdefg", password); 58 EXPECT_EQ(L"abcdefghi", credentials[0].username);
59 EXPECT_EQ(L"abcdefg", credentials[0].password);
60 } 60 }
61
62 TEST(IE7PasswordTest, GetThreeUserPasswords) {
63 // Unencrypted binary data holding 3 sets of credentials
64 unsigned char data[] =
Lei Zhang 2013/10/08 17:49:46 nit - This should be: const unsigned char kData[],
65 "\x0c\x00\x00\x00\x78\x00\x00\x00\x48\x00\x00\x00\x57\x49\x43\x4b\x18"
66 "\x00\x00\x00\x06\x00\x00\x00\x5c\x00\x55\x00\x01\x00\x00\x00\x00\x00"
67 "\x00\x00\x00\x00\x00\x00\xc3\xf2\x4b\xda\x1d\xc4\xce\x01\x04\x00\x00"
68 "\x00\x0a\x00\x00\x00\xc3\xf2\x4b\xda\x1d\xc4\xce\x01\x06\x00\x00\x00"
69 "\x18\x00\x00\x00\xbe\x5e\xe9\xe1\x1d\xc4\xce\x01\x04\x00\x00\x00\x22"
70 "\x00\x00\x00\xbe\x5e\xe9\xe1\x1d\xc4\xce\x01\x06\x00\x00\x00\x30\x00"
71 "\x00\x00\x07\x50\x1f\xe6\x1d\xc4\xce\x01\x04\x00\x00\x00\x3a\x00\x00"
72 "\x00\x07\x50\x1f\xe6\x1d\xc4\xce\x01\x06\x00\x00\x00\x71\x00\x77\x00"
73 "\x65\x00\x72\x00\x00\x00\x71\x00\x77\x00\x65\x00\x72\x00\x74\x00\x79"
74 "\x00\x00\x00\x61\x00\x73\x00\x64\x00\x66\x00\x00\x00\x61\x00\x73\x00"
75 "\x64\x00\x66\x00\x67\x00\x68\x00\x00\x00\x7a\x00\x78\x00\x63\x00\x76"
76 "\x00\x00\x00\x7a\x00\x78\x00\x63\x00\x76\x00\x62\x00\x6e\x00\x00\x00";
77
Lei Zhang 2013/10/08 17:49:46 nit: only 1 blank line, ditto in the above test.
78
79 std::vector<unsigned char> decrypted_data;
80 decrypted_data.resize(arraysize(data));
81 memcpy(&decrypted_data.front(), data, sizeof(data));
82
83 std::vector<ie7_password::DecryptedCredentials> credentials;
84 ASSERT_TRUE(ie7_password::GetUserPassFromData(decrypted_data, &credentials));
85 ASSERT_EQ(3u, credentials.size());
86 EXPECT_EQ(L"qwer", credentials[0].username);
87 EXPECT_EQ(L"qwerty", credentials[0].password);
88 EXPECT_EQ(L"asdf", credentials[1].username);
89 EXPECT_EQ(L"asdfgh", credentials[1].password);
90 EXPECT_EQ(L"zxcv", credentials[2].username);
91 EXPECT_EQ(L"zxcvbn", credentials[2].password);
92 }
OLDNEW
« components/webdata/encryptor/ie7_password.cc ('K') | « components/webdata/encryptor/ie7_password.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698