Eigenverft.NetLib.Security.MachineBinding
1.0.0.5
dotnet add package Eigenverft.NetLib.Security.MachineBinding --version 1.0.0.5
NuGet\Install-Package Eigenverft.NetLib.Security.MachineBinding -Version 1.0.0.5
<PackageReference Include="Eigenverft.NetLib.Security.MachineBinding" Version="1.0.0.5" />
<PackageVersion Include="Eigenverft.NetLib.Security.MachineBinding" Version="1.0.0.5" />
<PackageReference Include="Eigenverft.NetLib.Security.MachineBinding" />
paket add Eigenverft.NetLib.Security.MachineBinding --version 1.0.0.5
#r "nuget: Eigenverft.NetLib.Security.MachineBinding, 1.0.0.5"
#:package Eigenverft.NetLib.Security.MachineBinding@1.0.0.5
#addin nuget:?package=Eigenverft.NetLib.Security.MachineBinding&version=1.0.0.5
#tool nuget:?package=Eigenverft.NetLib.Security.MachineBinding&version=1.0.0.5
Eigenverft.NetLib.Security.MachineBinding
Read a supported system/platform UUID and derive a stable, non-secret fingerprint for lightweight machine binding.
✨ At a glance
| Capability | What it does | Starting point |
|---|---|---|
| Platform identity | Read a normalized system UUID on Windows, Linux, or macOS | TryGetSystemPlatformUuid(...) |
| Machine fingerprint | Derive a versioned uppercase SHA-256 hexadecimal value | TryGetFingerprint(...) or GetFingerprint() |
📦 Installation
dotnet add package Eigenverft.NetLib.Security.MachineBinding
🚀 Quick start
Use the non-throwing API when the platform may not expose a valid UUID:
using System;
using Eigenverft.NetLib.Security.MachineBinding;
if (PhysicalMachineBinding.TryGetFingerprint(out string fingerprint))
{
Console.WriteLine(fingerprint);
}
else
{
Console.WriteLine("No supported platform UUID is available.");
}
GetFingerprint() throws when the operating system is unsupported or no valid UUID is available. Windows uses the SMBIOS system UUID, Linux uses the DMI product UUID, and macOS uses IOPlatformUUID. The result is a 64-character uppercase SHA-256 hex string.
🛡️ Security boundary
The fingerprint and underlying platform UUID are machine information, not secret key material. This helper is not encryption or a hardware security boundary; it adds only a lightweight obstacle to copying application files to another machine. A process with access to the original platform UUID can reproduce the fingerprint.
Virtual machines generally bind to the UUID exposed by the hypervisor, so cloning or reprovisioning may preserve or change the value. This package has no dependency on other Eigenverft packages. The separate Transformations package consumes the fingerprint for PhysicalMachineBoundAes(); Configuration.Values exposes a convenience codec over that transform. Neither Data Protection key rings nor TLS certificates are automatically bound to this fingerprint, and WebLib's Kestrel.Sni uses the separate Security.Certificates package.
🎯 Target frameworks
net8.0net10.0
🔗 Project links
📄 License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Eigenverft.NetLib.Security.MachineBinding:
| Package | Downloads |
|---|---|
|
Eigenverft.NetLib.Transformations
Reversible string transforms, JSON-safe Base92 encoding, and machine-bound DPAPI support. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial capability package extracted from Eigenverft.NetLib.Infrastructure.