Protection PLUS 4 versus Protection PLUS 5 SDK

The previous generation, Protection PLUS 4, has been the licensing system of choice for thousands of software developers for well over 15 years. The initial design of Protection PLUS 5 SDK started in 2009 with the release of the PLUSManaged library for .NET, in use by many new and existing Protection PLUS 4 customers. Although Protection PLUS 5 SDK has been well received even by existing Protection PLUS 4 customers, migrating from Protection PLUS 4 to Protection PLUS 5 SDK is not seamless. Protection PLUS 5 SDK is an entirely new product built from the ground up from much of the same technologies and experiences that made Protection PLUS 4 powerful.

When we first set out to create Protection PLUS 5 SDK APIs, we had the following design goals in mind:

Comparison of Technology and Features

Feature Protection PLUS 4 Protection PLUS 5 SDK
License File Fixed-size, proprietary format, which cannot not always accommodate highly customized information. Variable-size, XML format, easily accommodates highly customized information.
Cryptographic Strength Proprietary, symmetric encryption algorithm. Uses the RSA Algorithm for strong, scalable, asymmetric (public key) cryptography and digital signatures.
Activation Based off an exchange of 32-bit numeric values (called Trigger Codes), can only accommodate a very limited license parameters, often called Payload. Based off an exchange of encrypted and digitally signed XML blobs, and can accommodate a much larger payload. Also includes high-level support for processing Protection PLUS 4 activation codes (Trigger Codes).
System Identification Uses up to 17 fixed pieces of information to authorize and verify licensed computers locally. Only a very small subset of this information is used during activation, however. Includes a variety of algorithms designed to use any combination of data to authorize and verify licensed computers. Also supports defining your own algorithms, which enables you to use your own, customized sources of information for system identification. Additionally, the XML-formatted data is used during activation, which makes it much easier to tell what pieces of information changed, if needed. Although the number of algorithms available in Protection PLUS 5 SDK is limited (because of the extra effort required to support multiple platforms), this will be expanded over time.
Copy Protection A fixed vote-weight system is used to detect changes made to a computer after activation. The amount of change allowed before a license is revoked is controlled by a numeric threshold value. Discrete algorithms give you full control over which algorithms are used, and how many algorithms must match after activation.
SOLO Server Integration APIs Includes the separate APIs, Automation Client (for native applications) and SWKClientServices (for .NET applications) for SOLO Server integration. Everything you need for SOLO Server integration is now built-in with whichever Protection PLUS 5 SDK API you use.
Native API Operating System Support Supports running 32-bit applications on 32-bit and 64-bit versions of Windows, and running 64-bit applications on 64-bit versions of Windows. Supports Windows and other POSIX-compliant operating systems (such as macOS and most popular and current Linux distributions).
.NET APIs Includes a 32-bit (only supports 32-bit applications, though 64-bit versions of Windows are supported), mixed-mode library named SKCLNET.  This has some limitations as to where it can be used (due to limitations in the .NET framework with using strong named, mixed-mode assemblies). Fully managed, .NET class library named PLUSManaged, which is architecture independent (targets "Any CPU"), and supports 32-bit and 64-bit operating systems and applications.
ActiveX/COM APIs Includes a 32-bit (only supports 32-bit applications, though 64-bit versions of Windows are supported) ActiveX component named SKCL. No ActiveX/COM library is presently available for Protection PLUS 5 SDK.
License File I/O Every time a license file field is read, the entire license file is read from the file system. Every time a license file field is written, the entire license file is read from the file system, the field is updated, and then the entire license file is written. This approach makes it easier to avoid synchronization issues in high-concurrency environments, but can also reduce performance (especially when the license file is stored in a shared folder on a network). The license file is only read and loaded in to memory, and is only written to the file system, when your application makes explicit API calls to do so. This improves performance in lower-concurrency environments, but also means you need to be mindful of this behavior and the possibility of synchronization issues in high-concurrency environments. A major reason why this approach was taken is to minimize the amount of cryptography done when working with license file data, which especially important to minimize in high-concurrency/server environments.
Network Floating Licensing Supported through the use of semaphore files hosted on a Windows shared folder on a network. .NET applications using PLUSManaged support Network Floating Licensing through the use of semaphore files hosted on a Windows shared folder on a network. PLUSManaged
Cloud-Controlled Network Floating Licensing using SOLO Server Supported through the use of SOLO Server web services that are used to manage the state of each license "session."

These web services may also be used to automate authorization of "check-outs" for temporary, off-line use of the licensed application. If you would like to use this functionality or see it demonstrated, contact us.

These features are not yet available, but are planned for, native applications using PLUSNative.
Simplified APIs Protection PLUS 4 includes EZTrial1, which simplifies licensing and trial-ware implementations; and EZTrial2, which is like EZTrial1 with a pre-defined GUI. EZTrial was replaced with the Instant Protection PLUS 3 licensing wizard. Although there are no simplified APIs similar to EZTrial, Protection PLUS 5 SDK includes sample source code which is highly configurable, and makes it easy for you to adopt licensing and trial-ware functionality in your application, while also giving you the highest level of flexibility and control. Additionally, a pre-defined GUI is available for .NET applications via the PLUSManagedGui library.
License File Editor

LFEdit can be used to view, edit, and create Protection PLUS 4 license files. An additional utility (LFRW.exe) is included to view or edit some internal fields that are not visible in LFEdit. These applications only run in Windows.

Most customers use SOLO Server to create Protection PLUS 5 SDK license files, as part of an automated activation process. Alternatively, License Manager allows you to view, edit, and create both read-only and writable license files regardless of whether or not you are using SOLO Server. License Manager runs in Windows, macOS, and most popular Linux distributions.  (See system requirements for details.)

Additional differences worth noting include: