#pragma once #include #include #include namespace gateway::openknx { struct FactoryFdskInfo { bool available{false}; std::string serialNumber; std::string label; std::string qrCode; }; struct FactoryCertificatePayload { bool available{false}; std::string productIdentity; std::string manufacturerId; std::string applicationNumber; std::string applicationVersion; std::string serialNumber; std::string fdskLabel; std::string fdskQrCode; std::string storage; std::string createdAt; std::string checksum; }; bool LoadFactoryFdsk(uint8_t* data, size_t len); FactoryFdskInfo LoadFactoryFdskInfo(); bool GenerateFactoryFdsk(FactoryFdskInfo* info = nullptr); bool WriteFactoryFdskHex(const std::string& hex_key, FactoryFdskInfo* info = nullptr); bool ResetFactoryFdskCache(FactoryFdskInfo* info = nullptr); FactoryCertificatePayload BuildFactoryCertificatePayload(); } // namespace gateway::openknx