OLD | NEW |
---|---|
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 Loading... | |
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 } | |
OLD | NEW |