| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef RLZ_LIB_MACHINE_ID_H_ |
| #define RLZ_LIB_MACHINE_ID_H_ |
| |
| #include "base/strings/string16.h" |
| |
| #include <string> |
| |
| namespace rlz_lib { |
| |
| // Gets the unique ID for the machine used for RLZ tracking purposes. On |
| // Windows, this ID is derived from the Windows machine SID, and is the string |
| // representation of a 20 byte hash + 4 bytes volum id + a 1 byte checksum. |
| // Included in financial pings with events, unless explicitly forbidden by the |
| // calling application. |
| bool GetMachineId(std::string* machine_id); |
| |
| // Retrieves a raw machine identifier string and a machine-specific |
| // 4 byte value. GetMachineId() will SHA1 |data|, append |more_data|, compute |
| // the Crc8 of that, and return a hex-encoded string of that data. |
| bool GetRawMachineId(base::string16* data, int* more_data); |
| |
| namespace testing { |
| bool GetMachineIdImpl(const base::string16& sid_string, |
| int volume_id, |
| std::string* machine_id); |
| } // namespace testing |
| |
| } // namespace rlz_lib |
| |
| #endif // RLZ_LIB_MACHINE_ID_H_ |