| OLD | NEW |
| 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 <windows.h> | 5 #include <windows.h> |
| 6 #include <stdint.h> |
| 6 #include <wincrypt.h> | 7 #include <wincrypt.h> |
| 7 | 8 |
| 8 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 9 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
| 11 #include "base/macros.h" |
| 10 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
| 11 #include "chrome/installer/util/self_cleaning_temp_dir.h" | 13 #include "chrome/installer/util/self_cleaning_temp_dir.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 13 | 15 |
| 14 namespace { | 16 namespace { |
| 15 | 17 |
| 16 // Returns a string of 8 characters consisting of the letter 'R' followed by | 18 // Returns a string of 8 characters consisting of the letter 'R' followed by |
| 17 // seven random hex digits. | 19 // seven random hex digits. |
| 18 std::string GetRandomFilename() { | 20 std::string GetRandomFilename() { |
| 19 uint8 data[4]; | 21 uint8_t data[4]; |
| 20 HCRYPTPROV crypt_ctx = NULL; | 22 HCRYPTPROV crypt_ctx = NULL; |
| 21 | 23 |
| 22 // Get four bytes of randomness. Use CAPI rather than the CRT since I've | 24 // Get four bytes of randomness. Use CAPI rather than the CRT since I've |
| 23 // seen the latter trivially repeat. | 25 // seen the latter trivially repeat. |
| 24 EXPECT_NE(FALSE, CryptAcquireContext(&crypt_ctx, NULL, NULL, PROV_RSA_FULL, | 26 EXPECT_NE(FALSE, CryptAcquireContext(&crypt_ctx, NULL, NULL, PROV_RSA_FULL, |
| 25 CRYPT_VERIFYCONTEXT)); | 27 CRYPT_VERIFYCONTEXT)); |
| 26 EXPECT_NE(FALSE, CryptGenRandom(crypt_ctx, arraysize(data), &data[0])); | 28 EXPECT_NE(FALSE, CryptGenRandom(crypt_ctx, arraysize(data), &data[0])); |
| 27 EXPECT_NE(FALSE, CryptReleaseContext(crypt_ctx, 0)); | 29 EXPECT_NE(FALSE, CryptReleaseContext(crypt_ctx, 0)); |
| 28 | 30 |
| 29 // Hexify the value. | 31 // Hexify the value. |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 base::WriteFile(parent_temp_dir.AppendASCII(GetRandomFilename()), | 165 base::WriteFile(parent_temp_dir.AppendASCII(GetRandomFilename()), |
| 164 kHiHon, arraysize(kHiHon) - 1)); | 166 kHiHon, arraysize(kHiHon) - 1)); |
| 165 } | 167 } |
| 166 EXPECT_FALSE(base::DirectoryExists(parent_temp_dir.Append(L"Three"))); | 168 EXPECT_FALSE(base::DirectoryExists(parent_temp_dir.Append(L"Three"))); |
| 167 EXPECT_TRUE(base::DirectoryExists(parent_temp_dir)); | 169 EXPECT_TRUE(base::DirectoryExists(parent_temp_dir)); |
| 168 EXPECT_TRUE(work_dir.Delete()); | 170 EXPECT_TRUE(work_dir.Delete()); |
| 169 EXPECT_FALSE(base::DirectoryExists(parent_temp_dir.DirName().DirName())); | 171 EXPECT_FALSE(base::DirectoryExists(parent_temp_dir.DirName().DirName())); |
| 170 } | 172 } |
| 171 | 173 |
| 172 } // namespace installer | 174 } // namespace installer |
| OLD | NEW |