#pragma once #include class DeviceIdentityHelper { public: explicit DeviceIdentityHelper(const QString& installDir); bool ensureIssued(const QString& apiBaseUrl, const QString& clientToken, const QString& appId, const QString& channel, const QString& licenseKey); bool verifyLocal(const QString& appId, const QString& channel); QString deviceId() const; QString errorString() const; private: bool loadAndVerify(const QString& expectedAppId, const QString& expectedChannel); bool verifySignature(const QByteArray& payload, const QString& signatureBase64); QString m_installDir, m_deviceId, m_error; };