using DeviceId; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EgwCoreLib.Utils { /// /// Classe gestione SubLicenze (attivazioni) /// public class SubLicManager { #region Public Constructors public SubLicManager() { MachineDataValidator = new MachineDataValidator(); MachineInfo = new MachineInfo(); } #endregion Public Constructors #region Public Methods public string CodImpiego() { Guid tempKey = Guid.NewGuid(); string codice = $"{tempKey}"; // impiego libreria nuget codice = new DeviceIdBuilder() .AddMachineName() .AddUserName() .AddOsVersion() .OnWindows(windows => windows .AddMacAddressFromWmi(excludeWireless: true, excludeNonPhysical: true) .AddProcessorId() .AddMotherboardSerialNumber() .AddSystemDriveSerialNumber()) .ToString(); return codice; } /// /// Genera KEY macchina in modalità encrypt /// /// /// /// public string GenKey(string passphrase, bool addGuid = false) { Guid tempKey = Guid.NewGuid(); var UserData = MachineInfo.GetInfo("USER"); string payload = addGuid ? $"|{tempKey}|" : ""; if (UserData.ContainsKey("MachineName")) { payload += $"{UserData["MachineName"]}|"; } if (UserData.ContainsKey("UserDomainName")) { payload += $"{UserData["UserDomainName"]}|"; } if (UserData.ContainsKey("UserName")) { payload += $"{UserData["UserName"]}|"; } payload += $"{DateTime.Now:yyMMdd}-{DateTime.Now:HHmmss}|"; return SteamCrypto.EncryptString(payload, passphrase); } #endregion Public Methods #region Private Properties private MachineDataValidator MachineDataValidator { get; set; } = null!; private MachineInfo MachineInfo { get; set; } = null!; #endregion Private Properties } }