Files
2024-09-26 07:50:20 +02:00

82 lines
2.5 KiB
C#

using DeviceId;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Utils
{
/// <summary>
/// Classe gestione SubLicenze (attivazioni)
/// </summary>
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;
}
/// <summary>
/// Genera KEY macchina in modalità encrypt
/// </summary>
/// <param name="passphrase"></param>
/// <param name="addGuid"></param>
/// <returns></returns>
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
}
}