# # Understanding The License System

.NET Reactor's pre-built licensing system observes high-security standards, and in prevalent cases, will fulfill or exceed the proprietary security and convenience your enterprise might develop at considerable expense or difficulty.

Most needs will be met by simply deploying hardware identity locks. Nonetheless, the .NET Reactor License System is designed to readily fit practically any further need or automation.

If you deploy our prebuilt system with hardware (machine-specific) license locks, licensing of initial product releases can readily be handled manually with .NET Reactor itself at a clip of about a minute per license — allowing you to release protected wares just minutes after purchasing .NET Reactor. Later (if you want), practically any desirable degree of automation can be integrated through the .NET Reactor Software Development Kit (SDK).

You can deploy independent, proprietary license enforcement. Or you can rely on .NET Reactor's prebuilt license enforcement system to any degree you desire. You can pursue two basic licensing paths — prebuilt licensing, or extended (customized) proprietary licensing. The latter can build upon our prebuilt hardware identifying system or integrate proprietary processes with information you can embed in our binary license files. In either approach, prebuilt .NET Reactor processes make it easier to produce secure, inviolable licensing systems than native .NET SDKs.

A critical security feature of this system is that in no way and at no time does any code exist outside your premises which is necessary to determining valid licenses. .NET Reactor's binary licensing system is exceedingly secure.

## # Step 1. Protect Your Software

    graph LR
        A(Software) --> B(.NET Reactor + Master Key) --> D(Protected Software)

## # Step 2. License File Generation

    graph LR
        A(Customer) --> B(License Manager + Master Key)
        A --> C(License.dll) --> |Hardware ID| B
        B --> D(License File)
        D --> A

*(Hardware ID lock is optional)*

## # Step 2b. License File Generation Via SDK

    graph LR
        A(Customer) --> B(LicenseGen.dll + Project File/Master Key)
        A --> C(License.dll) --> |Hardware ID| B
        B --> D(License File)
        D --> A

*(Hardware ID lock is optional)*

## # Step 3. Activation

    graph LR
        A(Protected Software) --> |  +  | B(License File) --> D(Licensed/Unlocked Software)