#pragma once #include #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; QString m_deviceId; QString m_error; };