/** * Copyright (C) 2017-2018, U.S. Government */ #ifndef HIRS_PROVISIONERTPM2_INCLUDE_DEVICEINFOCOLLECTOR_H_ #define HIRS_PROVISIONERTPM2_INCLUDE_DEVICEINFOCOLLECTOR_H_ #include #include #include #include #include /** * Manages collection of device information for the client. Retrieves the OS, * network, hardware, firmware, and TPM info. */ class DeviceInfoCollector { private: DeviceInfoCollector() {} static const hirs::log::Logger LOGGER; static std::vector> getNetworks(); static hirs::pb::FirmwareInfo collectFirmwareInfo(); static hirs::pb::HardwareInfo collectHardwareInfo(); static std::string collectHostname(); static hirs::pb::NetworkInfo collectNetworkInfo(); static hirs::pb::OsInfo collectOsInfo(); public: /** * Collect all device info from the system and return it in a filled out * DeviceInfo object. */ static hirs::pb::DeviceInfo collectDeviceInfo(); }; #endif // HIRS_PROVISIONERTPM2_INCLUDE_DEVICEINFOCOLLECTOR_H_