public static MixCastData.SecureData ReadSecureData() { RegistryKey reg = Registry.CurrentUser.CreateSubKey(MixCastPath.REGISTRY_PATH); Assert.IsNotNull(reg); MixCastData.SecureData data = ReadSecureSettingsFromRegistry(reg); if (data == null) { data = new MixCastData.SecureData(); } else { MachineId thisComputerId = new MachineId(); if (!IsSameComputer(data, thisComputerId)) { Debug.LogError("machine identifier mismatch detected"); if (data != null) { data.licenseType = MixCastData.LicenseType.Free; } } } return(data); }
private static bool IsSameComputer(MixCastData.SecureData data, MachineId machineId) { if (machineId == null || data == null || string.IsNullOrEmpty(data.machineId)) { return(false); } return(MixCastCryptoUtils.BytesEqual( machineId.ComputeHash(), Convert.FromBase64String(data.machineId))); }