bool OnlineUnlockStatus::applyKeyFile (String keyFileContent) { KeyFileUtils::KeyFileData data; data = KeyFileUtils::getDataFromKeyFile (KeyFileUtils::getXmlFromKeyFile (keyFileContent, getPublicKey())); if (data.licensee.isNotEmpty() && data.email.isNotEmpty() && doesProductIDMatch (data.appID)) { setUserEmail (data.email); status.setProperty (keyfileDataProp, keyFileContent, nullptr); status.removeProperty (data.keyFileExpires ? expiryTimeProp : unlockedProp, nullptr); var actualResult (0), dummyResult (1.0); var v (machineNumberAllowed (data.machineNumbers, getLocalMachineIDs())); actualResult.swapWith (v); v = machineNumberAllowed (StringArray ("01"), getLocalMachineIDs()); dummyResult.swapWith (v); jassert (! dummyResult); if (data.keyFileExpires) { if ((! dummyResult) && actualResult) status.setProperty (expiryTimeProp, data.expiryTime.toMilliseconds(), nullptr); return getExpiryTime().toMilliseconds() > 0; } if ((! dummyResult) && actualResult) status.setProperty (unlockedProp, actualResult, nullptr); return isUnlocked(); } return false; }
/** Writes group fields to the stream. Returns true on success, false in case of error. */ bool PwGroupV3::writeToStream(QDataStream& stream) { stream << FIELD_GROUP_ID; PwStreamUtilsV3::writeInt32(stream, getId()); stream << FIELD_NAME; PwStreamUtilsV3::writeString(stream, getName()); stream << FIELD_CREATION_TIME; PwStreamUtilsV3::writeTimestamp(stream, getCreationTime()); stream << FIELD_LAST_MODIFIED_TIME; PwStreamUtilsV3::writeTimestamp(stream, getLastModificationTime()); stream << FIELD_LAST_ACCESS_TIME; PwStreamUtilsV3::writeTimestamp(stream, getLastAccessTime()); stream << FIELD_EXPIRATION_TIME; PwStreamUtilsV3::writeTimestamp(stream, getExpiryTime()); stream << FIELD_ICON_ID; PwStreamUtilsV3::writeInt32(stream, getIconId()); stream << FIELD_GROUP_LEVEL; PwStreamUtilsV3::writeUInt16(stream, getLevel()); stream << FIELD_GROUP_FLAGS; PwStreamUtilsV3::writeInt32(stream, getFlags()); stream << FIELD_END << (qint32)0; return (stream.status() == QDataStream::Ok); }