TaltosWorks.Licensing.Core 1.1.1

dotnet add package TaltosWorks.Licensing.Core --version 1.1.1
                    
NuGet\Install-Package TaltosWorks.Licensing.Core -Version 1.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TaltosWorks.Licensing.Core" Version="1.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TaltosWorks.Licensing.Core" Version="1.1.1" />
                    
Directory.Packages.props
<PackageReference Include="TaltosWorks.Licensing.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TaltosWorks.Licensing.Core --version 1.1.1
                    
#r "nuget: TaltosWorks.Licensing.Core, 1.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=TaltosWorks.Licensing.Core&version=1.1.1
                    
Install TaltosWorks.Licensing.Core as a Cake Addin
#tool nuget:?package=TaltosWorks.Licensing.Core&version=1.1.1
                    
Install TaltosWorks.Licensing.Core as a Cake Tool

TaltosWorks.Licensing

A .NET Standard 2.0 library for license generation, validation, and management. This library provides a secure licensing system that utilizes RSA encryption for signature verification.

Features

  • Create and manage RSA key pairs for license signing
  • Generate signed license files
  • Validate licenses with expiration support
  • Embed public keys in assemblies
  • Support for trial and perpetual license types

Getting Started

Installation

'Install-Package TaltosWorks.Licensing.Core'

Key Concepts

  • LicenseManager: Used by publishers to generate keys and create licenses
  • LicenseHelper: Used by consumer applications to validate licenses
  • LicenseBase: Base class for all license models

Usage Examples

Creating a Custom License Model

Create a class that inherits from LicenseBase to define your custom license properties:

public class MyAppLicense : LicenseBase 
{ 
    public string[] Features { get; set; } 
    
    public int MaxUsers { get; set; }
    
    // You can override the validator, that gets the context from the helper
    protected override void Validate(IDictionary<string, string> validationErrors, object? validationContext)
    {
        // cast the context to your type and validate
    }
}

Creating and Saving Key Pairs

// Initialize license manager 
var licenseManager = new LicenseManager();
// Generate and save key pair 
await licenseManager.SaveKeyPair("MyAppLicense.rsa.keypair");
// Save public key separately (to be distributed with application) 
await licenseManager.SavePublicKey("MyAppLicense.rsa.public");

Creating License Files

// First load your key pair var 
licenseManager = new LicenseManager(); 
await licenseManager.LoadKeyPair("MyAppLicense.rsa.keypair");
// Create a new license 
var license = new MyAppLicense { LicenseType = LicenseType.Trial, LicensedTo = "Customer Name", Expires = DateTime.Now.AddDays(30), Features = new[] { "Basic", "Advanced", "Premium" }, MaxUsers = 5 };
// Save the license to a file 
await licenseManager.SaveLicense(license, "customer-license.lic");

Embedding Public Key in Your Application

  1. Add your public key file to your project as an embedded resource
  2. Set the Build Action to "Embedded Resource"
  3. Make sure the namespace matches your assembly structure

Loading and Validating a License

// Create license helper with public key from file 
var licenseHelper = new LicenseHelper<MyAppLicense>("MyAppLicense.rsa.public");
// Or load from embedded resource
// var licenseHelper = new LicenseHelper<MyAppLicense>(Assembly.GetExecutingAssembly());

// Load and validate the license
var license = await licenseHelper.LoadLicense("customer-license.lic");

By default only the expirationng date is validated. You can override the Validate method in your custom license class to add additional validation logic. Of course, you can use the returned license object to check the properties you set in your custom license class.

Product 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 was computed.  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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.1.1 63 5/9/2025