UnifiedLicensing 4.0.0
dotnet add package UnifiedLicensing --version 4.0.0
NuGet\Install-Package UnifiedLicensing -Version 4.0.0
<PackageReference Include="UnifiedLicensing" Version="4.0.0" />
<PackageVersion Include="UnifiedLicensing" Version="4.0.0" />
<PackageReference Include="UnifiedLicensing" />
paket add UnifiedLicensing --version 4.0.0
#r "nuget: UnifiedLicensing, 4.0.0"
#:package UnifiedLicensing@4.0.0
#addin nuget:?package=UnifiedLicensing&version=4.0.0
#tool nuget:?package=UnifiedLicensing&version=4.0.0
UnifiedLicensing .NET SDK v4.0
Modular, Secure, Feature-Complete License Management
🎯 Features
Core Features
- ✅ AES-256-GCM Encryption - Secure local license storage
- ✅ RSA Signature Verification - Tamper-proof licenses
- ✅ Hardware Binding - None/Loose/Strict modes
- ✅ Clock Tamper Detection - Prevent time manipulation
- ✅ Hybrid Validation - Offline-first with background sync
Advanced Protection
- ✅ IntegrityGuard - Runtime protection with multiple validation timers
- ✅ Anti-Debugging - Detect debuggers and analysis tools
- ✅ Anti-Tampering - DLL integrity checks and memory patching detection
- ✅ Blacklist Detection - Identify debugging/hacking tools
Validation Strategies
- ✅ Online-Only - Always validate with server
- ✅ Offline-Only - Use cached licenses only
- ✅ Hybrid - Offline-first with background validation
- ✅ Adaptive - Automatically choose best strategy
Additional Features
- ✅ Trial Activation - Start trials programmatically
- ✅ Analytics Tracking - Feature usage and conversion tracking
- ✅ Grace Periods - Continue working after validation failures
- ✅ License File Installation - Import licenses from files
- ✅ Event System - React to license events
📦 Installation
dotnet add package UnifiedLicensing
🚀 Quick Start
using UnifiedLicensing.v4;
using UnifiedLicensing.v4.Core;
// Configure SDK
var config = new UnifiedLicenseConfig
{
VendorApiKey = "your-api-key",
ProductKey = "your-product-key",
Strategy = ValidationStrategy.Hybrid,
Encryption = true,
SignatureVerification = true,
HardwareBinding = HardwareBindingMode.Loose,
EnableIntegrityGuard = true,
EnableAnalytics = true
};
// Initialize manager
var licenseManager = new UnifiedLicenseManager(config);
// Validate license
var result = await licenseManager.ValidateLicenseAsync("LICENSE-KEY-HERE");
if (result.Valid)
{
Console.WriteLine($"✅ License valid! Tier: {result.LicenseInfo.Tier}");
}
else
{
Console.WriteLine($"❌ License invalid: {result.Error}");
}
🏗️ Architecture
v4/
├── Core/
│ ├── UnifiedLicenseConfig.cs # Configuration
│ └── Models.cs # Data models
├── Security/
│ ├── SecureStorage.cs # AES-256-GCM encryption
│ ├── SignatureVerifier.cs # RSA signature verification
│ ├── HardwareFingerprint.cs # Advanced hardware detection
│ └── ClockTamperDetector.cs # Clock tampering detection
├── Protection/
│ └── IntegrityGuard.cs # Runtime protection
├── Services/
│ ├── LicenseApiClient.cs # API communication
│ ├── OfflineValidator.cs # Offline validation
│ ├── ValidationStrategies.cs # Multiple strategies
│ └── AnalyticsTracker.cs # Analytics tracking
└── UnifiedLicenseManager.cs # Main entry point
📖 Usage Examples
Start a Trial
var result = await licenseManager.StartTrialAsync(
"customer@example.com",
metadata: new Dictionary<string, object>
{
["source"] = "website",
["campaign"] = "summer2025"
}
);
if (result.Success)
{
Console.WriteLine($"Trial started! License: {result.LicenseKey}");
}
Track Feature Usage
await licenseManager.TrackFeatureUsageAsync(
"LICENSE-KEY",
"advanced_filter",
metadata: new Dictionary<string, object>
{
["filter_type"] = "blur",
["intensity"] = 75
}
);
Enable Protection
var config = new UnifiedLicenseConfig
{
// ... other config
EnableIntegrityGuard = true,
EnableAntiDebug = true,
EnableAntiTamper = true
};
var manager = new UnifiedLicenseManager(config);
// Protection starts automatically
// Or manually control:
manager.StartProtection();
manager.StopProtection();
Handle Events
licenseManager.OnLicenseExpired += (sender, result) =>
{
Console.WriteLine("License expired! Show renewal dialog.");
};
licenseManager.OnQuotaExceeded += (sender, result) =>
{
Console.WriteLine("API quota exceeded! Show upgrade prompt.");
};
licenseManager.OnTamperDetected += (sender, args) =>
{
Console.WriteLine("Tampering detected! Taking action...");
Environment.Exit(1);
};
Validation Strategies
// Online-only (always check server)
var config = new UnifiedLicenseConfig
{
Strategy = ValidationStrategy.OnlineOnly
};
// Offline-only (use cache only)
var config = new UnifiedLicenseConfig
{
Strategy = ValidationStrategy.OfflineOnly
};
// Hybrid (offline-first, background sync)
var config = new UnifiedLicenseConfig
{
Strategy = ValidationStrategy.Hybrid,
BackgroundValidation = true
};
// Adaptive (automatically choose best)
var config = new UnifiedLicenseConfig
{
Strategy = ValidationStrategy.Adaptive
};
🔒 Security Features
Hardware Binding Modes
// None - No hardware binding
HardwareBinding = HardwareBindingMode.None
// Loose - 70% similarity required (allows minor hardware changes)
HardwareBinding = HardwareBindingMode.Loose
// Strict - Exact match required
HardwareBinding = HardwareBindingMode.Strict
IntegrityGuard Protection
The IntegrityGuard runs multiple validation timers:
- Timer A (5-8s): Debugger detection
- Timer B (10-15s): Blacklisted process detection
- Timer C (15-25s): Hardware fingerprint validation
- Timer D (20-30s): DLL integrity checks
- Timer E (30-45s): Stored hash validation
Random intervals make timing attacks harder.
🎯 Comparison: v2 vs v4
| Feature | v2 (Multi-file) | v4 (Modular) |
|---|---|---|
| Architecture | Scattered files | Organized folders |
| Maintainability | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| Protection | ✅ | ✅ Enhanced |
| Validation Strategies | Limited | 4 strategies |
| Analytics | ❌ | ✅ |
| Trial Activation | Manual | ✅ Built-in |
| Documentation | Scattered | Centralized |
| Build Process | Complex | Simple |
📝 License
MIT License - See LICENSE file for details
🤝 Support
- Documentation: https://docs.unifiedlicensing.com
- Issues: https://github.com/unifiedlicensing/sdk/issues
- Email: support@unifiedlicensing.com
🚀 Roadmap
- Mobile platform support (iOS/Android)
- Floating license support
- License server (self-hosted)
- Advanced obfuscation
- Cloud license sync
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.8
- Newtonsoft.Json (>= 13.0.3)
- System.Management (>= 8.0.0)
- System.Net.Http (>= 4.3.4)
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
-
net8.0
- System.Management (>= 8.0.0)
- System.Text.Json (>= 8.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.0 | 130 | 9/9/2026 |
v4.0.0 - Major Release (Modular Architecture)
- ✅ Modular folder structure for maintainability
- ✅ AES-256-GCM encryption for secure local storage
- ✅ RSA signature verification (RSASSA-PKCS1-v1_5 with SHA-256)
- ✅ Advanced hardware binding (none/loose/strict modes)
- ✅ Clock tampering detection
- ✅ Hybrid validation (offline-first with background checks)
- ✅ IntegrityGuard with anti-debugging and anti-tampering
- ✅ Multiple validation strategies (online-only, offline-only, hybrid, adaptive)
- ✅ Trial activation methods
- ✅ Analytics and feature usage tracking
- ✅ License installation from file
- ✅ Improved grace period handling
- ✅ Cross-framework support (.NET 8.0, Framework 4.8, Standard 2.0)