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.
5 #include "testing/gtest/include/gtest/gtest.h"
11 #include "base/strings/string16.h"
12 #include "components/webdata/encryptor/ie7_password.h"
14 TEST(IE7PasswordTest
, GetUserPassword
) {
15 // This is the unencrypted values of my keys under Storage2.
16 // The passwords have been manually changed to abcdef... but the size remains
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"
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"
22 "\x08\x00\x00\x00\x12\x00\x00\x00\x4e\xfa\x67\x76"
23 "\x22\x94\xc8\x01\x0c\x00\x00\x00\x61\x00\x62\x00"
24 "\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00"
25 "\x00\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00"
26 "\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00"
29 unsigned char data2
[] = "\x0c\x00\x00\x00\x38\x00\x00\x00\x24\x00\x00\x00"
30 "\x57\x49\x43\x4b\x18\x00\x00\x00\x02\x00\x00\x00"
31 "\x67\x00\x72\x00\x01\x00\x00\x00\x00\x00\x00\x00"
32 "\x00\x00\x00\x00\xa8\xea\xf4\xe5\x9f\x9a\xc8\x01"
33 "\x09\x00\x00\x00\x14\x00\x00\x00\xa8\xea\xf4\xe5"
34 "\x9f\x9a\xc8\x01\x07\x00\x00\x00\x61\x00\x62\x00"
35 "\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00"
36 "\x69\x00\x00\x00\x61\x00\x62\x00\x63\x00\x64\x00"
37 "\x65\x00\x66\x00\x67\x00\x00\x00";
41 std::vector
<unsigned char> decrypted_data1
;
42 decrypted_data1
.resize(arraysize(data1
));
43 memcpy(&decrypted_data1
.front(), data1
, sizeof(data1
));
45 std::vector
<unsigned char> decrypted_data2
;
46 decrypted_data2
.resize(arraysize(data2
));
47 memcpy(&decrypted_data2
.front(), data2
, sizeof(data2
));
51 ASSERT_TRUE(ie7_password::GetUserPassFromData(decrypted_data1
, &username
,
53 EXPECT_EQ(L
"abcdefgh", username
);
54 EXPECT_EQ(L
"abcdefghijkl", password
);
56 ASSERT_TRUE(ie7_password::GetUserPassFromData(decrypted_data2
, &username
,
58 EXPECT_EQ(L
"abcdefghi", username
);
59 EXPECT_EQ(L
"abcdefg", password
);