82 lines
2.5 KiB
C#
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
|
|
}
|
|
} |