| // Copyright 2019 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "login_manager/fake_secret_util.h" | |
| #include <fcntl.h> | |
| #include <sys/types.h> | |
| namespace login_manager { | |
| namespace secret_util { | |
| base::ScopedFD FakeSharedMemoryUtil::WriteDataToSharedMemory( | |
| const std::vector<uint8_t>& data) { | |
| // Return an invalid file descriptor if the input is empty to match | |
| // the behavior of base::SharedMemory::Create. | |
| if (data.empty()) { | |
| return base::ScopedFD(); | |
| } | |
| base::ScopedFD fd(open("/dev/null", O_RDONLY)); | |
| data_[fd.get()] = data; | |
| return fd; | |
| } | |
| bool FakeSharedMemoryUtil::ReadDataFromSharedMemory( | |
| const base::ScopedFD& in_data_fd, | |
| size_t data_size, | |
| std::vector<uint8_t>* out_data) { | |
| if (!data_.count(in_data_fd.get())) | |
| return false; | |
| *out_data = data_[in_data_fd.get()]; | |
| return true; | |
| } | |
| } // namespace secret_util | |
| } // namespace login_manager |