12345678910111213141516171819202122232425262728293031323334353637383940 |
- using System;
- using System.Security.Cryptography;
- using DeviceId;
- using DeviceId.Components;
- using DeviceId.Encoders;
- using DeviceId.Formatters;
- namespace InABox.DeviceIdentifier
- {
- public static class DeviceID
- {
- public static string Value(string token, Action<string>? ondebug)
- {
- var deviceId = new DeviceIdBuilder()
- .AddMachineName()
- .OnWindows(w => w
- .AddProcessorId()
- .AddMotherboardSerialNumber()
- .AddSystemDriveSerialNumber()
- .AddSystemUuid()
- .AddComponent("Port", new DeviceIdComponent(token))
- )
- .UseFormatter(new HashDeviceIdFormatter(() => SHA256.Create(), new Base64UrlByteArrayEncoder()))
- .ToString();
- if (ondebug is not null)
- {
- ondebug(string.Format("N: {0}", new DeviceIdBuilder().AddMachineName()));
- ondebug(string.Format("P: {0}", new DeviceIdBuilder().OnWindows(w => w.AddProcessorId())));
- ondebug(string.Format("B: {0}", new DeviceIdBuilder().OnWindows(w => w.AddMotherboardSerialNumber())));
- ondebug(string.Format("D: {0}", new DeviceIdBuilder().OnWindows(w => w.AddSystemDriveSerialNumber())));
- ondebug(string.Format("U: {0}", new DeviceIdBuilder().OnWindows(w => w.AddSystemUuid())));
- ondebug(string.Format("T: {0}", new DeviceIdBuilder().AddComponent("Port", new DeviceIdComponent(token))));
- ondebug(string.Format("L: {0}", deviceId));
- }
- return deviceId;
- }
- }
- }
|