Protection PLUS 5 SDK release notes

This file was last updated on October 4, 2018.

This document contains release notes for Protection PLUS 5 SDK. Information in this document is more current than that in the installed manual or online help.

Important: New requirements for Android

As of version 5.18.3.0 and later, Protection PLUS 5 SDK requires Android devices installed with Android 6.0 and later to run, and no longer supports older versions of this operating system. If you are developing with a minimum Android version previous to 6.0, you may need to take measures to update your application for compatibility, or use a previous version of Protection PLUS 5 SDK until you can apply the required updates.

Important: New requirements for macOS

As of version 5.17.3.0 and later, Protection PLUS 5 SDK requires macOS (formerly OS X) 10.8 and later to run, and no longer supports older versions of this operating system. If you are developing with a minimum OS version previous to 10.8, you may need to take measures to update your application for compatibility, or use a previous version of Protection PLUS 5 SDK until you can apply the required updates.

Important: New requirements for Linux

As of version 5.17.3.0 and later, Protection PLUS 5 SDK requires Linux kernel 3.10.0 and later to run, and no longer supports older versions of this operating system. If you are developing with a minimum OS version previous to 3.10.0, you may need to take measures to update your application for compatibility, or use a previous version of Protection PLUS 5 SDK until you can apply the required updates.

Release Notes

Details on the incremental changes included with each new release of Protection PLUS 5 SDK.
Protection PLUS 5 SDK version 5.18.3.0
Released October 8, 2018

General

  • Fixed an issue causing License Manager to fail to run on some newer versions/distributions of Linux.

Protection PLUS 5 SDK .NET Edition

  • New! ASP.NET MVC sample application.
  • New! PLUSManagedGui now gives users the option to specify a custom proxy server address.
  • The Cloud-Controlled Network Floating Licensing sample now gives users the option to specify a custom proxy server address.
  • Various tweaks and improvements to the sample applications.

Protection PLUS 5 SDK Native Edition

  • Important! Dependencies were updated, each of which may contain critical security updates.
    • Updated OpenSSL to 1.0.2p
    • Updated libcurl to 7.61.1

Protection PLUS 5 SDK Android Edition

  • Important: Updated to use Android NDK 17, which requires Android 6.0 or later to operate. This may require you or your developer to update your application for compatibility. If you require support for older versions of Android, you will need to use prior versions of Protection PLUS 5 SDK Android Edition until you can update your application to make Android 6.0 the lowest supported version.
  • Protection PLUS 5 SDK Android Edition now supports the following processor architectures:
    • ARMv7 (32-bit, armeabi-v7a)
    • ARMv8 (64-bit, arm64-v8a)
    • x86 (32-bit)
    • x86_64 (64-bit)
  • Added a manual topic for "Adding PLUSNative to Android Studio Project", with step-by-step instructions.
  • Fixed a text relocation warning/error on some devices running Android 6.0 or newer.
  • Removed all C++ STL usage in the Android JNI interface, which fixes a possible crash when using Qt to develop an Android application.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.18.2.0
Released August 13, 2018

General

  • Fixed an issue with License Manager where an invalid license could prevent License Manager from starting.
  • Various manual updates.

Protection PLUS 5 SDK .NET Edition

  • New! A preview build of PLUSManaged for .NET Standard 2.0 is available upon request.
  • New! Most of the .NET sample applications now demonstrate how to allow users to specify a custom proxy server address. (This feature was already demonstrated in the PLUSNative samples.)
  • New! Cloud-Controlled Network Floating Licensing in PLUSManaged and relevant samples now allows the session certificate to be saved to a file without requiring the session to be checked out. This has some beneifts, such as allowing the application to close a previously abandoned session due to something like abnormal termination of the application.
  • Various tweaks and improvements to the sample applications.

Protection PLUS 5 SDK Native Edition

  • Important! Dependencies were updated, each of which may contain critical security updates.
    • Updated libxml2 to 2.9.8
    • Updated libcurl to 7.61.0
  • Fixed an issue when using the SK_FLAGS_REQUIRE_SSL with SK_ApiContextInitialize that could cause an exception.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.18.1.0
Released April 2, 2018

General

  • Fixed an issue when activating License Manager where it could fail to update its license on rare occasions.

Protection PLUS 5 SDK .NET Edition

  • The sample applications now include a "LicenseType" check. This demonstrates how the application may check the type of license (perpetual, subscription, etc.), handle any licensing for the specified type, and display the license information based on the type of license.
  • The Cloud-Controlled Network Floating Licensing sample applications now use the WebServiceHelper class which includes proxy support.

Protection PLUS 5 SDK Native Edition

  • Important! Two dependencies were updated, each of which may contain critical security updates.
    • Updated OpenSSL to 1.0.2o
    • Updated libcurl to 7.59.0
  • New! Libraries for 64 bit ARMv8 (aarch64) applications are now available upon request.
  • Fixed a possible segfault when retrieving hard drive volume information in Linux.
  • Improved the Background Checking and Refreshing Licenses manual topic to demonstrate how to handle errors and save a refreshed license.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.17.4.0
Released December 20, 2017

Protection PLUS 5 SDK .NET Edition

  • Fixed an issue in PLUSManagedGui where the description text above the Copy Request section of the manual activation form occasionally would not fit properly.
  • Cleaned up outdated documentation regarding beta releases.

Protection PLUS 5 SDK Native Edition

  • Important! All dependencies were updated, each of which may contain critical security updates.
    • Updated OpenSSL to 1.0.2n
    • Updated libcurl to 7.57.0
    • Updated libxml2 to 2.9.7
  • New! Qt LicensingSample sample application has been added. This sample includes a Qt project file configured to build for Windows, macOS, and Linux.
  • New! A Readme.txt file has been added to the Protection PLUS 5 SDK installation's Library folder. This text file describes each library file in the folder, includes basic build information for each platform, and has links to the Protection PLUS 5 SDK manual topics pertaining to specific build information for each platform.
  • Sample application proxy code has been reworked to fix issues and better handle proxy authentication. The proxy authentication dialogs have been tweaked to improve the appearance.
  • Removed an unneeded JavaVM dependency in the PLUSNative.framework for macOS. When running an application using the framework, this dependency would cause a pop-up message asking to install a specific version of Java if not already installed.
  • Clarified the documentation for SK_PLUS_SystemIdentifierCompare. When specifying an identifier type in the type parameter and no identifiers of the specified type are found, the function will return SK_ERROR_INVALID_DATA.
  • Disabled unused protocols in the libcurl build. This slightly reduces the Protection PLUS 5 SDK DLL and static library sizes.
  • Fixed the relative paths for the macOS sample application make files. Some paths were not previously updated when naming was changed from OSX to macOS.
  • Updated outdated links in the manual.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.17.3.0
Released October 24, 2017

Protection PLUS 5 SDK .NET Edition

  • Fixed an issue with Cloud-Controlled Network Floating Licensing introduced in version 5.17.2.0. When opening a session and passing in a web service object, an error 5005 could be returned due to a new web service object being created.
  • Added attributes to PLUSManaged.dll's internal web service proxy classes to prevent the possibility of them being displayed in the Visual Studio toolbox. This only applies to customers who used assembly merging (with a third-party obfuscation utility) Protection PLUS 5 SDK .NET Edition on a licensed component DLL.
  • Fixed an issue where the C# and VB.NET SimpleTextEditor samples that caused the licensed features to show as enabled when copying the sample to another machine.

Protection PLUS 5 SDK Native Edition

  • Important! All dependencies were updated, each of which may contain critical security updates.
    • Updated OpenSSL to 1.0.2l
    • Updated libcurl to 7.56.0
    • Updated libxml2 to 2.9.5
  • Important! Due to updates within the third-party libraries used by Protection PLUS 5 SDK Native Edition, the minimum macOS (formerly OS X) version required to run is now 10.8. If you are developing with a minimum OS version previous to 10.8, you may need to take measures to update your application for compatibility, or use a previous version of Protection PLUS 5 SDK until you can apply the required updates.
  • Important! Due to updates within the third-party libraries used by Protection PLUS 5 SDK Native Edition, the minimum Linux Kernel version required to run is now 3.10.0. If you are developing with a minimum kernel version previous to 3.10.0, you may need to take measures to update your application for compatibility, or use a previous version of Protection PLUS 5 SDK until you can apply the required updates.
  • SK_SOLO_GetLicenseFileGetRequest now includes the product version in the generated request data if a product version has been set.
  • Fixed the missing WinHttp.lib library in the linker settings for the 64-bit debug configuration for the Visual Studio 2015 and Visual Studio 2017 LicensingSample projects.
  • Added new vi for the SK_PLUS_LicenseAliasGetValidatedCount function to the LabVIEW library.
  • Added SK_FLAGS_APICONTEXTDISPOSE_SHUTDOWN flag to LabVIEW library.
  • LabVIEW LicensingSample now ignores warning error 9019 (SK_ERROR_PLUS_EVALUATION_WARNING) on initialization. This is a warning returned when setting the envelope key with an evalauation envelope.
  • LabVIEW LicensingSample now uses the trigger code number from the license file to detect the license type. This allows a simple way to tell if a license is evaluation, subscription, or perpetual.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.17.2.0
Released July 11, 2017

Protection PLUS 5 SDK .NET Edition

  • New! WPF MVVM sample. This sample demonstrates activating specific features of an application that utilizes a WPF UI with the MVVM standard modeling.
  • New! Visual Studio 2017 solution and sample projects.
  • New! Visual Basic .NET Cloud Controlled Network Floating Licensing sample.
  • The NetworkSession class may now optionally push a computer name string to SOLO Server to be displayed when viewing the active sessions.
  • Writing a license to an image file using steganography no longer alters any of the file dates. This makes it less obvious that Protection PLUS 5 SDK is writing to the image file containing a license.
  • Samples show a warning in their license status displays when activated with a SOLO Server test license.
  • Samples now validate the system identifiers before writing a license. This fixes an issue with writable licenses where copying the license from another computer and immediately refreshing the license would create a valid license. After the refresh retrieves the license from SOLO Server, the sample code would write this license with the current system identifiers which would allow the license to pass any further validations. The current system identifiers are now compared to the identifiers in the license file on the computer before overwriting it.
  • Visual Studio 2005 and 2008 samples have been removed from the installation. These samples are available upon request.

Protection PLUS 5 SDK Native Edition

  • Important! A dependency was updated which may contain critical security updates.
    • Updated OpenSSL to 1.0.2l
  • New! Visual Studio 2017 solution and sample projects.
  • Fixed an issue when opening a semaphore file using SK_PLUS_NetworkSemaphoreOpen where if it failed for any reason it may have caused SK_PLUS_NetworkSemaphoreStatistics to return incorrect values.
  • The SK_SYSTEM_IDENTIFIER_ALGORITHM_USER_NAME system identifier algorithm can fail on RHEL/CentOS7 Operating Systems. There is now a fallback to retrieve the needed information from USER if the current implementation fails.
  • Fixed an issue where SK_PLUS_NetworkSessionPoll created a session file when not checked out which could cause poll sessions to return an Invalid Data error.
  • SK_PLUS_NetworkSessionPoll now supports the SK_FLAGS_NETWORKSESSION_SKIPLOCKATTEMPT flag.
  • Fixed an issue with the Cloud Controlled Network Floating Licensing samples where closing a session in the SOLO Server interface would correctly close the session in the client on the next poll, but the client's poll timer was never stopped. This would cause the client to attempt a poll at each polling interval and an error message would be displayed. The poll timers in the samples are now stopped correctly.
  • Visual Studio 2005 and 2008 samples have been removed from the installation. These samples are available upon request.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.17.1.2
Released January 26, 2017

Protection PLUS 5 SDK Native Edition

  • Important! One dependency was updated which may contain critical security updates.
    • Updated OpenSSL to 1.0.2k
  • Fixed an issue with SK_PLUS_SystemIdentifierCompare which can cause an exception if the number of system identifiers in the license file is greater than the number of current identifiers. This issue can also affect customers using the Cloud-Controlled Network Floating Licensing.
  • Fixed a two-byte memory leak when certain envelopes and envelope keys are used.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.17.1.0
Released January 19, 2017

Protection PLUS 5 SDK .NET Edition

  • The LicenseProvider sample has been changed to use the CustomData field of the license rather than using the TC Fixed Value field for setting the DesignTime and RunTime modes. This simplifies the sample and allows these two modes to be enabled or disabled by editing the SOLO Server license and refreshing the client license.
  • Two new features have been added to the LicenseProvider sample to enable and disable the control when running in Debug mode or Release mode.

Protection PLUS 5 SDK Native Edition

  • Important! Two dependencies were updated, each of which may contain critical security updates.
    • Updated OpenSSL to 1.0.2j (see below)
    • Updated libcurl to 7.52.1
  • Important! In the previous release OpenSSL was updated to version 1.1.0c on Windows only. Due to an issue we discovered when shutting down the OpenSSL library we have rolled it back to version 1.0.2j until the OpenSSL contributors address the issue. Due to the new OpenSSL design, its static library should not be shut down programmatically, but instead shuts down automatically when the calling process exits. This can cause issues when closing a PLUSNative context as it calls the OpenSSL shutdown function, and a subsequent open of a PLUSNative context will use the OpenSSL library in an unstable state.
  • Added x64 build configurations to the Cloud Controlled Network Floating Licensing samples.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.16.4.0
Released December 12, 2016

General

Protection PLUS 5 SDK .NET Edition

  • New! Added a sample implementing Microsoft's LicenseProvider for Components and Controls. The sample demonstrates licensing a simple user control.
  • Fixed an issue with LicenseAliasValidation where validating the aliases before the main license could cause the main license to update with the current system identifiers if no aliases are present and WriteMissingAliases is true. This now only creates the missing aliases if there is already at least one alias present; otherwise, an error is returned.
  • The writable license samples now validate the license file after a refresh before it is written to the drive.
  • ASP.NET samples now use a static class to retrieve needed URLs rather than store them in web.config. Previously, the web.config could be modified allowing an intruder to change the URLs. Now the URLs are internal to the code making it difficult to modify them.

Protection PLUS 5 SDK Native Edition

  • Important! OpenSSL was updated to version 1.1.0c on Windows only. All other supported platforms use version 1.0.2j, and will be updated to use the 1.1.0 branch in the future.
  • The Android sample has been converted to use Gradle for building.
  • Fixed an issue where system identifiers with the same hash value could cause the number of matches found to be larger than the number of identifiers when using SK_PLUS_SystemIdentifierCompare. This could cause an error when using Cloud Controlled Network Licensing.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.16.3.0
Released September 27, 2016

General

  • The manual has been updated to use responsive HTML5 output and also includes various content tweaks.

Protection PLUS 5 SDK .NET Edition

  • New! Added high-DPI awareness to PLUSManaged and PLUSManagedGui samples.
  • New! Added support for new GetLicenseCustomData, GetLicenseCustomDataS, UpdateLicenseCustomData, and UpdateLicenseCustomDataS methods of the XMLLicenseService SOLO Server web service.
  • LicenseCounter and IsTestLicense properties added to the InfoCheck class to easily retrieve the values from the web service.
  • Fixed an issue where activating the sample applications manually with trigger codes did not save the Product ID, and caused a validation error to be displayed.

Protection PLUS 5 SDK Native Edition

  • Important! Two dependencies were updated, each of which may contain critical security updates.
    • Updated OpenSSL to 1.0.2j
    • Updated libcurl to 7.50.3
  • New! Java sample tutorial in the manual demonstrating the step-by-step use of our sample application.
  • New! Proxy support added to all samples with the exception of Android and LabVIEW samples.
  • Fixed small memory leak caused by attempting to open a License file that does not exist.
  • All wxWidgets samples have been updated to use wxWidgets 3.1.0.
  • Fixed debug warnings in the wxWidgets samples caused by invalidly combining some flags as well as using a few deprecated font enumerations.
  • Fixed a text length limit with the MFC samples that would not allow manual activations when the response text was too large due to the CEdit control's default text length.
  • Corrected the entry for SK_PLUS_LicenseAliasGetValidatedCount in the PLUSNative.bas file.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.16.2.0
Released July 26, 2016

General

  • New! IsTestLicense field in the license file, which specifies whether the license was a test license created in SOLO Server.
  • New! License Manager displays the new IsTestLicense field, which can be set in license files created by SOLO Server.
  • New! License Manager now supports using a proxy server when activating its license.

Protection PLUS 5 SDK .NET Edition

  • New! Image steganography feature (beta), which hides the license file or alias file data within an image. The Protection PLUS 5 SDK will detect if the license path is a supported image format and automatically use steganography to load and save the license. The LicenseImageAlais class has been added to load and save alias files using steganography.
  • New! ASP.NET sample tutorial in the manual demonstrating the step-by-step use our sample application.
  • New! IsTestLicense property in the License class. This property specifies if the license was a test license created with SOLO Server.

Protection PLUS 5 SDK Native Edition

  • Important! All dependencies were updated, each of which may contain critical security updates.
    • Updated OpenSSL to 1.0.2h
    • Updated libcurl to 7.50.0
    • Updated libxml2 to 2.9.4
  • New! Image steganography feature (beta), which hides the license file or alias file data within an image. The Protection PLUS 5 SDK will detect if the license/alias path is a supported image format and automatically use steganography to load and save the license.
  • New! Android Studio sample tutorial in the manual demonstrating the step-by-step use of our sample application.
  • New! ARMv7 support for Linux now available on request.
  • Fixed an issue where the C++ Cloud Controlled Network Floating Licensing samples would not close properly.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.

Protection PLUS 5 SDK Java Edition

  • New! PLUSNative.jar now includes ARMv7 support.

Protection PLUS 5 SDK version 5.16.1.0
Released April 18, 2016

General

  • New! License Manager now supports opening and saving plain-text license files (which are still digitally signed). This is beneficial for anyone who needs to support environments where laws or government regulations prohibit the use of encryption.
  • New! Date picker control added to License Manager. When editing a date field in License Manager there is now an option to pop up a date picker control to assist changing the value.
  • Fixed an issue where a delay could occur when closing License Manager (especially with no or poor Internet connectivity).
  • When activating License Manager manually, request files are now saved as HTML to make the process easier.

Protection PLUS 5 SDK .NET Edition

  • New! The UpdateCheck class now supports checking for updates using either Product ID or License ID. (Previously the License ID was always required.) This means applications no longer need to be activated or know the License ID and Password to check for updates!
  • New! Added a new ExcludeClockSpeedFromProcessorName property to the ProcessorIdentifierAlgorithm class. Some processors report their clock speed with the processor name, and changes in the reported clock speed can affect system identifier validation. Setting this property to true will make newly activated licenses resilient to changes in the clock speed reported, but also note that it will potentially cause existing licenses to require reactivation if they were activated before this property was set to true.

Protection PLUS 5 SDK Native Edition

  • Important! Two dependencies were updated, each of which may contain security updates.
    • Updated OpenSSL to 1.0.2g
    • Updated libcurl to 7.48.0.
  • New! Added a new SK_PLUS_LicenseAliasGetValidatedCount, which returns the number of alias files opened and validated.
  • New! Added support for proxy servers and proxy authentication to the C++ samples.
  • New! Added a new MFC (C++) Cloud Controlled Network Floating Licensing sample.
  • New! Delphi VCL Forms Licensing sample.
  • Updated several linker settings for PLUSNative.dll to pass checks required for Microsoft's SDL.
  • Fixed an issue where it was possible for a small memory leak to occur after calling the SK_PLUS_NetworkSessionLoad function and not calling SK_PLUS_NetworkSessionDispose explicitly.
  • SK_PLUS_NetworkSessionLoad now supports a new SK_FLAGS_NETWORKSESSION_SKIPLOCKATTEMPT to skip locking the certificate file.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.15.4.0
Released December 21, 2015

General

  • New! License Manager now notifies you when an update for Protection PLUS 5 SDK is available.
  • New! License Manager now supports viewing and editing the license file fields for activation password and serial number (typically sent down from SOLO Server).
  • Tested and verified in Windows 10 1511 (November 2015) Update.
  • Tested and verified in Visual Studio 2015 (including Update 1).
  • Various documentation corrections and enhancements were applied.

Protection PLUS 5 SDK .NET Edition

  • New! Added support for Activation Password in the License and WritableLicense classes, as well as in the WebServiceCall classes used for activation.
  • New! Added support for the serial number (from SOLO Server) in the License and WritableLicense classes.

Protection PLUS 5 SDK Native Edition

  • Important! All dependencies were updated, each of which may contain security updates.
    • Updated OpenSSL to 1.0.2e
    • Updated libcurl to 7.46.0.
    • Updated libxml2 to 2.9.3.
  • New! Improved License Manager's support for high-resolution displays.
  • New! Added C++ examples for network floating via semaphores using PLUSNative.
  • Fixed an issue where SK_PLUS_NetworkSemaphoreVerify could pass verification when disconnected from a network.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.


Protection PLUS 5 SDK version 5.15.3.0
Released August 31, 2015

General

  • Tested and verified in Windows 10 RTM.
  • Tested and verified in Visual Studio 2015 RTM.
  • Tested and verified in VirtualBox 5.
  • Various documentation corrections and enhancements were applied.

Protection PLUS 5 SDK .NET Edition

  • New! Supports Visual Studio 2015! This includes the PLUSManagedGui toolbox icon, integrated Help Viewer documentation, and sample projects.
  • The Network Floating via SOLO Server sample for PLUSManaged is now included with the installed samples.
  • Fixed an issue with the PLUSManagedGui samples where, when using an expired evaluation envelope, they could display an unrelated error message after viewing the license management form after closing it and displaying it again.

Protection PLUS 5 SDK Native Edition

  • New! Visual Studio 2015 (VC14) static libraries are now available (including ones built with Windows XP support). New sample projects that target these new static libraries are also included.
  • Updated libcurl to 7.44.0.
  • Fixed an issue where SK_PLUS_NetworkSessionPoll could re-save a checked-out certificate in plain-text.
  • Fixed an issue with the wxWidgets C++ sample where it could display a second error message when closing the sample application after having used an invalid envelope or license file.
  • Fixed an issue where the Objective C sample might not initialize system identifiers when using an evaluation envelope.
  • Fixed a syntax issue with the Delphi Firemonkey sample code.

*Note that changes to the Native Edition libraries also apply to the Android Edition, Java Edition, and LabVIEW Edition.

Protection PLUS 5 SDK Android Edition

  • Fixed an issue where the Android sample might not initialize system identifiers when using an evaluation envelope.

Protection PLUS 5 SDK Java Edition

  • Fixed an encoding issue where the Java sample might fail to initialize the license file path correctly on Windows.
  • Fixed an issue where the Java sample might not initialize system identifiers when using an evaluation envelope.

Protection PLUS 5 SDK version 5.15.2.1
Released July 13, 2015

Security Patch

Important! This patch updates PLUSNative libraries to use OpenSSL 1.0.2d, which fixes a high-severity flaw in OpenSSL. Some highlights about this patch are listed below:

  • The only Protection PLUS 5 SDK release affected by this OpenSSL flaw is 5.15.2.0. Prior releases of Protection PLUS 5 SDK did not use versions of OpenSSL that were affected by this flaw.
  • If your licensed application uses the dependency-free builds of the PLUSNative static libraries, then upgrading to version 5.15.2.1 is not required. However, it is very important that you ensure the version of OpenSSL your application(s) link is either not affected or is patched as soon as reasonably possible.
  • The 5.15.2.1 release is only for the following (affected) editions of Protection PLUS 5 SDK:
    • Native Edition
    • Android Edition
    • Java Edition
    • LabVIEW Edition
  • Direct impact on Protection PLUS 5 SDK is mitigated through the use of our own layer of encryption and digital signatures. Consequently, the primary reason for a prompt patch is to mitigate the potential for impact in licensed applications that use OpenSSL for other transmissions.

Protection PLUS 5 SDK version 5.15.2.0
Released July 6, 2015

General

  • New! License Manager, while still included with Protection PLUS 5 SDK licenses, is now also available separately! This makes it easier and more cost effective for your staff to leverage License Manager to support your customers.
  • New! Protection PLUS 5 SDK Java Edition preview is now available! If you are interested in licensing your Java SE applications contact us for more information today!
  • New! Protection PLUS 5 SDK LabVIEW Edition preview is now available! If you are interested in licensing your LabVIEW applications contact us for more information today!
  • Tested and verified in Windows 10 preview.
  • Tested and verified in VirtualBox 5 beta.

Protection PLUS 5 SDK Native Edition

  • Important! Updated dependencies, all of which address security advisories. This includes updates to libcurl 7.43.0, and OpenSSL 1.0.2c.
  • Important! PLUSNative static libraries now use OpenSSL libraries built with no-ssl3 specified to ensure SSLv3 (which is no longer considered secure) support is completely disabled going forward. Consequently, this means support for TLS 1.0 or later is required for anyone self-hosting SOLO Server. If your application links PLUSNative static libraries and uses OpenSSL for other SSL/HTTPS transmissions, we recommend you test this thoroughly on all supported operating systems before distributing an updated version of your application(s). Additionally, if you link dependency-free versions of PLUSNative static libraries and supply your own build of OpenSSL, we recommend you investigate applying the same configuration option for your builds of OpenSSL if/when possible.
  • Important! PLUSNative now uses libcurl's WinSSL/Schannel implementation in Windows by default. Anyone using their own builds of libcurls that do not use WinSSL/Schannel with our dependency-free static libraries may need to specify the SK_FLAGS_VALIDATE_EXPORTED_CA_CERTS flag when calling SK_ApiContextInitiallize in Windows.
  • Fixed an issue where HTTP[S] requests (including activation) could fail on Mac OS X with parental controls enabled.
  • Fixed an issue where the PLUSNative samples could incorrectly create a fresh evaluation instead of recovering from aliases when the primary license file was missing.

Protection PLUS 5 SDK version 5.15.1.0
Released April 10, 2015

Protection PLUS 5 SDK .NET Edition

  • Important! Instant PLUS has been renamed to Instant Protection PLUS 3 (under new license terms), and has been unbundled from Protection PLUS. You can read more about this change on our blog.
  • New! NicIdentifierAlgorithm now ignores additional removable USB and Bluetooth devices. This update especially focused on adapters that may have previously affected this algorithm when a computer used a tethered connection via a mobile device.
  • New! NicIdentifierAlgorithm now supports RedHat Enterprise Linux 7 (RHEL) network device naming conventions.
  • New! Classes that inherit from SystemValidation can now set the LastError property.
  • New! LicenseWindowsRegistryAlias now supports specifying 32 bit and 64 bit registry views (when the licensed application targets .NET Framework 4.0 or later). This makes it easier to initialize permissions on license and aliases stored in the Windows registry, and it makes it easier to share them between a mix of 32 bit and 64 bit applications.
  • Updated the PLUSManaged samples to handle refreshing a deactivated installation/license more gracefully. (PLUSManagedGui samples already did this, and did not require this update.)

Protection PLUS 5 SDK Native Edition

  • Important! Updated dependencies, all of which address security advisories. This includes updates to libxml 2.9.2, libcurl 7.41.0, and OpenSSL 1.0.2a.
  • New! Additional types of proxy authentication (all types that are supported by libcurl) are now supported. This includes Windows SSPI support to allow integrated authentication, which can authenticate without prompting your users for credentials! Note that if you use a dependency-free version of PLUSNative with your own build of libcurl, you may need to define USE_WINDOWS_SSPI in libcurl's lib\config-win32.h for SSPI authentication to work with your compiles of libcurl.
  • New! Added a new SK_FLAGS_APICONTEXTINITIALIZE_MAINTHREAD flag to SK_ApiContextInitialize, which makes offers the convenience of initializing globals for dependencies when specified. (This is only relevant for multi-threaded applications.) This flag must only be used the first time SK_ApiContextInitialize is called in your program, must be called from your application's main thread.
  • New! SK_SYSTEM_IDENTIFIER_ALGORITHM_NIC now ignores additional removable USB and Bluetooth devices. This update especially focused on adapters that may have previously affected this algorithm when a computer used a tethered connection via a mobile device.
  • New! SK_SYSTEM_IDENTIFIER_ALGORITHM_NIC now supports RedHat Enterprise Linux 7 (RHEL) network device naming conventions.
  • New! Added new SK_FLAGS_64BIT_PATHS context/global flag to allow specifying the use of 64-bit registry paths. This makes it easier to initialize permissions on license and aliases stored in the Windows registry, and it makes it easier to share them between a mix of 32 bit and 64 bit applications.
  • Updated the PLUSNative samples to support activated evaluation/trial licenses.
  • Updated the value of the SK_FLAGS_DISABLE_WMI. If you use this flag, you need to update your header/include files for PLUSNative when upgrading to the new library.
  • When SK_HttpRequest or SK_CallXmlWebService posts a large request, PLUSNative now prevents the use of the Expect: 100-continue header. Since many servers (particularly proxy servers) do not support this header properly or at all, prevent its use improves reliability.
  • Improved how the NetworkFloatingSOLOServer sample handled evaluation envelopes.
  • Fixed an issue where SSL transmissions (via SK_HttpRequest or SK_CallXmlWebService) could fail to validate CA certificates on Mac OS X. Note that if you use a dependency-free version of PLUSNative, and your Mac OS X application links a build of libcurl that uses OpenSSL (--with-openssl) instead of DarwinSSL (--with-darwinssl), may need to specify a new SK_FLAGS_VALIDATE_EXPORTED_CA_CERTS flag when calling SK_ApiContextInitiallize.
  • Fixed an issue where an extra 1 second delay could be experienced the first time a license file is loaded in a process that has a very large heap. If you experience this issue, and you link the dependency-free version of PLUSNative with your own build of OpenSSL, you can address this issue by patching OpenSSL's crypto/rand/rand_win.c so it has a smaller value (in milliseconds) for the MAXDELAY definition. (This reduces the maximum amount of time that may be spent walking the program's heap to initialize the entropy pool used by cryptographic functions.)
  • Fixed an issue where using SK_SYSTEM_IDENTIFIER_ALGORITHM_HARD_DISK_VOLUME_SERIAL could cause a crash in Linux if it fell into fall-back logic that was not commonly reached.
  • Fixed an issue where SK_CallXmlWebService could sometimes leak memory when it failed.
  • Fixed an issue where some context/global flags (such as SK_FLAGS_32BIT_PATHS, SK_FLAGS_64BIT_PATHS, and SK_FLAGS_PERMISSIONS_NEVER_AUTO_SET) might not be passed through to file and registry functions internally.

Protection PLUS 5 SDK version 5.14.3.0
Released October 13, 2014

General

  • New! Protection PLUS 5 SDK Android Edition preview is now available, and support for Java SE applications is coming soon as well! If you are interested in licensing your Java SE and/or Android applications contact us for more information today!
  • Protection PLUS 5 branding has been updated to Protection PLUS 5 SDK.
  • Updated License Manager to show more friendly descriptions of the various license file fields.
  • Updated License Manager to better support extension of evaluations/trials.
  • Various documentation enhancements and corrections.

Protection PLUS 5 SDK .NET Edition

  • New! Includes Instant PLUS 3.2.0.4.
  • Updated sample source code to include mention of License Manager in addition to SOLO Server.

Protection PLUS 5 SDK Native Edition

  • New! Protection PLUS 5 SDK Native Edition is officially no longer a beta, and is generally available!
  • Important! Updated OpenSSL to 1.0.1i, which includes patches for security advisories.
  • Important! Updated libcurl to 7.38.0, which includes patches for security advisories.
  • Updated SK_PLUS_LicenseFileLoad to return SK_ERROR_COULD_NOT_LOAD_LICENSE when it fails to load a license file and cannot recover from aliases when using a writable license. Previously (in 5.14.2.0), this could return SK_ERROR_INVALID_ARGUMENTS instead.
  • Updated the PLUSNative.h header and sample applications to prefix Boolean definitions (BOOL, TRUE, FALSE) with SK_ (SK_BOOL, SK_TRUE, SK_FALSE).

Protection PLUS 5.14.2.0
Released July 28, 2014

General

  • Important! License Manager now requires activation. Existing customers may use the License ID and password on the invoice to activate.
  • New! License Manager now allows you to toggle whether a license file is writable or read-only from the File menu.
  • New! License Manager now supports loading data from a custom resource path via a new resourcePath command line argument. This can be very helpful for anyone using more than one URL/instance of SOLO Server, or using multiple author accounts in SOLO Server. Names for these alternate profiles can also be specified under the Tools/Options menu in License Manager.
  • Added additional error trapping and reporting to License Manager.
  • The Linux version of License Manager now uses GTK+ 2 instead of GTK+ 3, as the latter exhibited graphical/rendering issues.
  • All Windows binaries (EXEs and DLLs) installed with Protection PLUS 5 are now digitally signed.

Protection PLUS 5 .NET Edition

  • Includes Instant PLUS 3.2.0.3.
  • New! Added IOHelper.FilePathIsRemote method, which is the equivalent to the pp_redir function from Protection PLUS 4.
  • New! Separate builds of PLUSManaged and PLUSManagedGui are now installed under the Library\FIPS directory in the installation folder. These new versions of the libraries require .NET Framework 3.5 or later, which allows the libraries to use FIPS certified implementations of encryption algorithms. This can be important if not required if you need to support Windows environments that enforce the FIPS algorithm policy.
  • Improved the warning message shown in the ASP.NET samples when using an expired envelope.
  • Fixed an issue where duplicate identifiers could be added for wireless network interface cards (NICs).
  • Fixed an issue with the ASP.NET Visual Basic sample, where it would incorrectly require a license refresh when it was time to try refreshing (but not yet time to require it).

Protection PLUS 5 Native Edition Beta

  • Important! Updated OpenSSL to 1.0.1h, which includes patches for security advisories.
  • New! Updated the wxWidgets sample to use dialogs similar to PLUSManagedGui for activation. This also adds support for manually refreshing and deactivating using another device's Internet connection.
  • New! Added SK_FilePathIsRemote function, which is the equivalent to the pp_redir function from Protection PLUS 4.
  • New! Added SK_XmlDocumentLoadFile function, which provides a simpler way to load an XML document from a file (which previously required calling SK_FileReadAllText, followed by SK_XmlDocumentCreateFromString).
  • Updated libcurl to 7.37.0.
  • Updated PLUSNative's internal alias validation and recovery logic so it now synchronizes older aliases with the most recent.
  • Updated wxWidgets Visual Studio sample projects to compile with the wxWidgets NuGet package.
  • Updated the Objective C sample to link the Disk Arbitration framework, which is required by the PLUSNative static libraries as of version 5.14.1.0.
  • Added the PLUSNative.h include file to the Objective C sample directory for convenience.
  • Updated the Delphi Firemonkey sample to use a read-only license file for activated licenses.
  • Fixed an issue where duplicate identifiers could be added for wireless network interface cards (NICs).
  • Fixed an issue with the MFC LicensingSample project, which would fail to compile due to an accidental mix-up with the version of files in the previous (5.14.1.0) release.
  • Fixed an issue with the wxWidgets LicensingSample project, where the application would terminate when using an evaluation envelope.

Protection PLUS 5.14.1.0
Released April 18, 2014

Protection PLUS 5 .NET Edition

  • Includes Instant PLUS 3.2.0.3.
  • New! Added support for Mac OS X to the HardDiskVolumeSerialIdentifierAlgorithm. (Note that this requires the MonoMac.dll assembly, and requires you to target the 4.0 framework or later. Attempting to use this algorithm without meeting these requirements will result in runtime errors.)
  • New! Added virtual machine guest environment detection for Linux and Mac OS X guests.
  • New! Updated the SimpleTextEditor samples to use a new, example custom license settings page in Instant SOLO Server. This illustrates how we can work with you to provide highly customizable license information and configuration in SOLO Server, and have that pushed down to your protected applications quickly and seamlessly.
  • Important! Fixed an issue where the HardDiskVolumeSerialIdentifierAlgorithm could add extraneous identifiers if it fails to get the volume inforamtion on some hidden, recovery partitions. While this only happened on some machines that had recovery partitions, the fix could result in your protected application requiring affected usersthe user to activate again.

Protection PLUS 5 Native Edition Beta

  • Important! Updated OpenSSL to 1.0.1g, which fixes the heartbleed security vulnerability. Although risk PLUSNative's transmissions are mitigated through additional encryption, this could pose a risk for protected applications that use the static PLUSNative library, and use OpenSSL for other SSL transmissions.
  • New! A Mac OS X installer is now available.
  • New! A Linux installation package is now available.
  • New! Added virtual machine guest environment detection for Linux and Mac OS X guests.
  • New! Added preliminary (the API may still be subject to some limited change) support for the XmlNetworkFloatingService, and added a NetworkFloatingSOLOServer wxWidgets C++ sample to show how to use it.
  • Important! The hard disk volume algorithm now generates an identifier based on the root volume's UUID in Mac OS X. This new approach improves our support for Mac OS X, and adds interoperability with PLUSManaged. However, if you previously used this algorithm with Mac OS X, this may (depending on your validation logic) require customers to activate again unless you specify the SK_FLAGS_SYSTEMIDENTIFIER_HARDDISKVOLUMESERIALS_LEGACYOSX flag (which tells PLUSNative to use the prior implementation) when calling SK_PLUS_SystemIdentifierAlgorithmAddCurrentIdentifiers function with the SK_SystemIdentifierAlgorithm.SK_SYSTEM_IDENTIFIER_ALGORITHM_HARD_DISK_VOLUME_SERIAL algorithm.
  • Important! Fixed a bug where the SK_SystemIdentifierAlgorithm.SK_SYSTEM_IDENTIFIER_ALGORITHM_HARD_DISK_VOLUME_SERIAL algorithm could fail to add any identifiers if it fails to get the volume inforamtion on some hidden, recovery partitions. While this only happened on some machines that had recovery partitions, the fix could result in your protected application requiring affected users to activate again.
  • Added extra internal validation of the date provided to SK_DateTimeParseString for Linux and Mac OS X.
  • Fixed an issue with the PLUSNative.pas file for Delphi applications, where SK_DateTimeAddDays and SK_DateTimeAddMinutes did not update the string value provided.
  • Addressed a potential false report of a memory leak that could sometimes occur when adding current system identifiers.
  • Updated libcurl to 7.36.0.

Protection PLUS 5.13.4.0
Released December 31, 2013

Protection PLUS 5 .NET Edition

  • New! Includes Instant PLUS 3.2.0.3.
  • Important! All obsolete members have been removed. It is strongly recommended that you upgrade PLUSManaged to version 5.13.3.0 before upgrading to 5.13.4.0 or later, as this will allow you to see friendly compiler warnings that include instructions on how to migrate away from deprecated functionality.
  • New! Added support for new SOLO Server licensee email and name fields. This includes the License and WritableLicense classes, as well as the web service helper classes for XmlLicenseService.
  • New! Added support for Visual Studio 2013, including samples, documentation, and toolbox icons.
  • New! Added support for specifying an initial License ID and password for PLUSManagedGui's license management dialog.

Protection PLUS 5 Native Edition Beta

  • New! Added SK_SYSTEM_IDENTIFIER_ALGORITHM_USER_NAME, which can be used to generate identifiers compatible with PLUSManaged's UserNameIdentifierAlgorithm. On Linux and Mac OS X, this is based on the real user (not the effective user) which launched the process. On Windows, this is the user associated with the current thread (which will usually be the same as the user which launched the process, unless some user impersonation is taking place).
  • New! Added Visual Studio 2013 samples.
  • New! Added support for the new SOLO Server licensee email and name fields to License Manager.
  • Updated libcurl to 7.34.0. Additionally, libcurl is now compiled to use Apple's native Certificate, Key, and Trust Services API (also referenced as DarwinSSL) for SSL on Mac OS X. (OpenSSL is still used for other cryptographic functions on Mac OS X.)
  • Updated wxWidgets samples to use wxWidgets 3.0.
  • Some C++ samples had the call to SK_DateTimeValidateApi commented-out. These have been un-commented from the affected samples.
  • Added documentation on how to implement support for volume licenses with PLUSNative.
  • Added additional details to the documentation for the PLUSNative "LicensingSample" samples.

Protection PLUS 5.13.3.0
Released October 13, 2013

Protection PLUS 5 .NET Edition

  • Includes Instant PLUS 3.2.0.1.
  • New! Includes a new License Manager application (beta), which can be used to create and modify license files (including read-only and writable license files) without using SOLO Server. (This is comparable to Protection PLUS 4's LFEdit application.)
  • New! When using writable licenses and aliases in Linux or OS X (via Mono), PLUSManaged now automatically updates permissions on these files to avoid potential issues with using license file and alias locations that are shared by all users.
  • New! Added a RemoteSessionValidation class to PLUSManaged, which allows you to detect when your protected application is running under a Terminal Services/Remote Desktop session.
  • New! Added several new classes (under the com.softwarekey.Client.Compatibility.ProtectionPLUS4 namespace) to make it much easier to call Automation Client scripts from PLUSManaged. This makes it easier to use SOLO Server's trial tracking service, and it makes it easier to use SOLO Server Lite with PLUSManaged.
  • Important! If you are upgrading PLUSManaged, and you see compiler warnings about using members or methods marked as obsolete, you are required to update your code as suggested by each warning. The following release of PLUSManaged will make many of these members and methods inaccessible, or will remove them entirely.
  • Important! The 4-character limitation for semaphore file name prefixes has been removed. In previous versions of PLUSManaged, providing a prefix that was longer than 4 characters would result in it truncating the value to only 4 characters. If you previously specified values longer than 4 characters, this update could cause your application to allow extra seats after upgrading PLUSManaged (only if different versions of PLUSManaged are mixed).
  • Updated the ASP.NET samples to include support for downloading manual activation request files, and uploading manual activation response files.
  • Older PLUSManaged samples have been updated to more closely resemble the structure of the PLUSManagedGui samples, which makes the sample code much easier for you to re-use in and configure for your own applications.
  • Improved the sample documentation to include additional details about each of the source code files included.
  • Fixed an issue where calling RefreshLicense did not pass the application's version number to SOLO Server.
  • Fixed some issues with the ValidateRegistration class. It was not retreiving the company name, and the int data type was changed to string for the PostalCode, Phone, and Fax properties.
  • Fixed an issue where the Protection PLUS 5 .NET Edition installer did not set permissions on the Samples folder correctly.

Protection PLUS 5 Native Edition Beta

  • New! Includes a new License Manager application (beta), which can be used to create and modify license files (including read-only and writable license files) without using SOLO Server. (This is comparable to Protection PLUS 4's LFEdit application.)
  • New! Added several new functions (prefixed with SK_PLUS4) to make it much easier to call Automation Client scripts from PLUSNative. This makes it easier to use SOLO Server's trial tracking service, and it makes it easier to use PLUSNative with SOLO Server Lite.
  • New! Added support for network floating via semaphore files. The new functions for these features are named like SK_PLUS_NetworkSemaphore*.
  • New! Added SK_SYSTEM_IDENTIFIER_ALGORITHM_NETWORK_NAME, which can be used to generate system identifiers compatible with PLUSManaged's NetworkNameIdentifierAlgorithm. This is intended for use with licenses that rely on network floating via semaphore files.
  • New! The new SK_SystemVirtualMachineDetect function can be used to detect when the protected application is running in a virtual machine guest environment.
  • New! The new SK_SystemRemoteSessionDetect function can be used to detect when the protected application is running in a terminal services/remote desktop session.
  • Made several, minor performance improvements to PLUSNative internally.
  • Updated the wxWidgets samples so they compile against wxWidgets 2.8 or wxWidgets 2.9, without requiring any source code changes.
  • Updated libcurl to version 7.32.0, and updated libxml2 to version 2.9.1.
  • Improved internal date validation in SK_DateTimeParseString. Previously, this function would interpret a bad date (e.g. it could interpret Februray 31 as March 3), but it now returns an error when it sees any invalid date.
  • Fixed an issue where SK_PLUS_SystemIdentifierAlgorithmAddNics could crash when multiple Network Interface Cards (NICs) were present and enabled on a device running Microsoft Windows.

Protection PLUS 5.13.2.0
Released May 7, 2013

Protection PLUS 5 .NET Edition

  • New! Includes Instant PLUS 3.2.0.1.
  • New! PLUSManagedGui has graduated to Released status, and is no longer in beta.
  • New! Added sample showing how to use network floating semaphores with PLUSManagedGui.
  • The Samples directory structure has been updated to use a similar structure used with the new PLUSNative samples. The sample Visual Studio solution files have been updated to reflect this new directory structure as well.
  • Fixed an issue where the VirtualMachineValidation class could incorrectly identify a Microsoft Surface tablet as a virtual machine.

New! Protection PLUS 5 Native Edition Beta

The new PLUSNative library provides an extensive, flexible, and well-refined API that offers the latest-generation licensing technologies from the SoftwareKey System. This library is interoperable with license files created and used by PLUSManaged and SOLO Server, and is supported on a wide variety of platforms and architectures. For our customers more familiar with Protection PLUS 4, PLUSNative library is a punctuated evolution from previous-generation libraries such as KeyLib and SKCL.

Some experienced developers who see the "Beta" label affixed to a software product are reflexively prone to summarily dismiss it as an unproven commodity. In the case of PLUSNative Beta, however, we believe that would be a wildly premature miscalculation. While the widespread availability of PLUSNative Beta is indeed new, the simple fact of the matter is that over the past year, PLUSNative Beta has been successfully implemented within the production (yes, production!) environments of several of our top-tier corporate customers. We judiciously chose to apply the "Beta" tag because we eagerly anticipate adding many new features and enhancements (without, of course, sacrificing full backwards-compatibility) as PLUSNative continues to evolve as our most dynamic next-generation technology and ultimately pivotal component of the SoftwareKey Licensing System!

Here are some highlights about the new library:

  • 32 bit (x86) and 64 bit (x64) versions are available for Microsoft Windows, Mac OS X, and Linux. Refer to the system requirements for additional details on platforms and environments supported.
  • A variety of sample applications are included for many popular programming languages and frameworks, including:
    • Eclipse C++ (CDT) project using wxWidgets (Mac OS X and Linux).
    • Visual C++ (Visual Studio 2005 and later) using wxWidgets (Windows).
    • RAD Studio XE2 project using Delphi and Firemonkey. (Windows and Mac OS X).
    • Visual Basic 6.0 project (Windows).
    • XCode project using Objective C and Cocoa (Mac OS X).
  • PLUSNative uses several open source libraries which are well-known and trusted, including libcurl, libxml2, and OpenSSL. Refer to the third-party licenses to review the licenses for these dependencies.
Updates since the Protection PLUS 5 Native Developer Preview

For those who have been using the PLUSNative Developer Preview, here is a list of changes that have been made since the previous release.

  • New! All third-party dependencies have been upgraded. (OpenSSL 1.0.1e, libcurl 7.30.0, libxml2 2.9.0)
  • New! SK_HttpConnectionTest function has been added to PLUSNative, which makes it easier to verify Internet connectivity by making a test HTTP request and verifying the response contains expected content.
  • New! SK_DateTimeValidateApi function has been added, which makes it much easier to prevent third-party utilities (which essentially "hack" the operating system APIs) from being used to compromise your evaluation/trial periods.
  • New! SK_PLUS_SystemIdentifierAlgorithmAddNics has been updated to support both IPv4 and IPv6 adapters. After upgrading your library, this could result in some additional identifiers showing up on some systems.
  • The SK_HttpRequest function's url parameter must begin with the server's host name, and may not begin with http:// or https://. This function now validates the value passed in through the url parameter to make sure it is not prefixed with the protocol.
  • A variety of new sample applications (including new, Objective C and Visual Basic 6 samples) have been added, and prior samples have undergone a variety of fixes and enhancements.

Protection PLUS 5.13.1.0
Released February 12, 2013
  • New! Includes Instant PLUS 3.2.0.0.
  • New! Added a LicenseProductValidation class to simplify Product ID validation (which, when protecting multiple products, helps prevent licenses for one product from being used for another product).
  • New! Supports Windows 8, Visual Studio 2012.
  • Updated PLUSManagedGui to eliminate potential GUI threading issues (using InvokeRequired is no longer necessary).
  • Updated the PLUSManaged web service call implementations to allow using digital signatures without encryption.
  • Updated the NetworkSession class to make encryption optional.
  • Fixed an issue with PLUSManagedGui where it would fail to include the specified Installation Name during activation.
  • Fixed an issue where using writable licenses when attached to a domain controller could result in a long delay.
  • Fixed an issue where VirtualMachineValidation could falsely identify a physical computer as a virtual machine when virtual devices (used to mount ISO files as drives) are present.
  • Fixed an issue where the License.ActivateOnline method (which has been superseded by the ActivateInstallationLicenseFile method) always failed.
  • Various enhancements and corrections to the documentation and samples.

Protection PLUS 5.12.3.1
Released September 14, 2012 - NATIVE EDITION DEVELOPER PREVIEW 2
  • PLUSNative library enhancements and fixes:
    • Fixed issue where 32 bit static libraries could cause a linker error (like LNK2026: module unsafe for SAFESEH image) when requiring SafeSEH support in a C/C++ project's linker settings.
    • Fixed issue with SK_PLUS_LicenseLoad where it could silently fail to load a license file if a license file was previously loaded without being disposed first.
  • The installer now creates an environment variable that contains the path to the PLUSNative installation folder.
  • Sample project enhancements and fixes:
    • New! Added Visual Studio 2012 MFC sample project.
    • Updated the Windows samples to use the new environment variable for additional include and library directory paths.
    • Updated the License class destructor in the sample source code to be virtual, which will prevent memory leaks if the class is inherited.
    • Fixed issue where the wxWidgets sample would fail to display the license's status on the main dialog in OS X.
    • Fixed an issue where pasting a response document for a manual request did not enable the Activate button in the wxWidgets samples.
  • Documentation enhancements and fixes:
    • Added documentation on using wide string functions (regarding the need to check that the compiler you are using uses the same encoding).
    • Added notes in the documentation regarding how to best handle file synchronization when storing license files in shared/network locations.
    • Added the PLUSNative API topics to the index.

Protection PLUS 5.12.3.0
Released August 9, 2012
  • Includes Instant PLUS 3.1.0.9.
  • New! Beta version of the all-new PLUSManagedGui visual component simplifies the process of integrating licensing via PLUSManaged into applications that use or can use System.Windows.Forms GUIs.
    • In your Visual Studio project, add a reference to the library, drag the component onto your application's main form, and configure properties and settings visually.
    • Easily display license status and even multiple license parameters in a clean interface.
    • Offer multiple ways of activating your software (direct online, indirect online through another computer, Volume License File support) with a professional user interface. Full support for disconnected systems which allow the same powerful license features as direct online activation processing.
    • Even Legacy Trigger Code support is available for existing customers who prefer to use this mechanism for easy telephone-based activation.
    • Fully integrates with SOLO Server's web services, based upon which action the user chooses.
    • Built in support for proxy servers and proxy authentication.
    • Customizable and professional splash screen to entertain the user during license validation (both local and online).
  • New! Completely re-structured sample applications are included that demonstrate the use of the PLUSManagedGui library:
    • These new samples make it easier to understand the sample source code, and makes it easier to reuse this code in your applications.
    • Less sample code needs to be reviewed / copied since the user interface is included in PLUSMangagedGui.
  • New! Added SystemIdentifierAlgorithm implemenations that use motherboard BIOS UUID (BiosUuidIdentifierAlgorithm) and processor/CPU (ProcessorIdentifierAlgorithm) information. These new algorithms improve support for identifying virtual machines, and are also great for identifying physical machines.
  • New! Support for detecting when protected applications are running in a XenServer virtual machine guest.
  • New! LicenseUpdate field, which contains a small, arbitrary string of information that may be used for any purpose, such as sending down a string that contains a list of features to be enabled.
  • New! Added support for additional XmlLicenseService web service methods with the newly-added InfoCheck, Register, UpdateRegistration, and ValidateRegistration classes.
  • New! Added support for evaluation Encryption Key Envelopes, which makes it possible to test with your own SOLO Server account during your evaluation of Protection PLUS 5 and SOLO Server.
  • PLUSManaged is now marked as being Common Language Specification (CLS) Compliant.
  • Updated the NicIdentifierAlgorithm to ignore virtual adapters created by OpenVPN.
  • When using Network Floating Licensing with SOLO Server, it is now possible to specify a threshold for allowing the system clock to be slower than or behind SOLO Server's clock.
  • Fixed an issue where attempting to call an encrypted SOLO Server web service method with missing, required data could result in an unhandled exception.

Protection PLUS 5.12.2.4
Released August 3, 2012 - NATIVE EDITION DEVELOPER PREVIEW 1

Features

Read about the high level Protection PLUS 5 design goals in this manual topic.

  • Fully compatible with the new, extensible XML License File format (which is also used by PLUSManaged for .NET applications).
    • XML License Files are issued by SOLO Server and are secured with public-key cryptography via the RSA Algorithm.
    • Through the extensibility of the API, XML License Files can be stored in any desirable location.
  • Supports modern versions of Windows (2000 and later), OS X (10.5 and later), and popular Linux (2.6 kernel or later) distributions.
  • Extensible system identification algorithms with built-in Network Interface Card (NIC) MAC Address and Computer Name Computer ID Algorithms.
  • Uses public-key cryptography via the RSA Algorithm for encryption and verification of web service calls.
  • Simple yet flexible and extensible procedural API.
    • The PLUSNative library has an extensive set of functions to make it easy for you to decrypt license data from your code. All data, including user-defined/custom data is sent down in the license from SOLO Server is available in this manner.
    • PLUSNative also includes a comprehensive set of functions designed to assist with implementation of custom web services if they are needed for your implementation, which makes it easy to achieve the same level of flexibility and security with custom web services.
  • Includes a variety of samples:
    • MFC user interface sample, compatible with Visual Studio 2005, 2008, and 2010.
    • wxWidgets user interface sample, compatible with Eclipse CDT and GCC on Linux and OS X (wxWidgets source and binaries not included).
    • Visual Basic 6 samples.
    • RAD Studio XE2, FireMonkey user interface sample, which supports Windows and OS X.
  • Includes the Protection PLUS 5 manual in CHM format.

Protection PLUS 5.12.1.0
Released February 27, 2012
  • New! Includes Instant PLUS 3.1.0.9.
  • New! Encryption Envelopes are a new way to simplify and secure encryption key data stored in your applications.
  • New! UpdateCheck is a new class that facilitates checking for product updates against SOLO Server. The IOHelper class now also has a GetAssemblyFileVersion method, which simplifies obtaining a properly formatted version number to use with this new feature.
  • New! Thoroughly refreshed the documentation:
    • Added high-level details about the SoftwareKey System and licensing.
    • Added more information about using PLUSManaged in your applications.
    • Added documentation and an API reference for PLUSNative (not available in this release).
  • New! Added support for volume and downloadable licenses
  • New! Support for additional SOLO Server data in the license files:
    • Details about the distributor (or one of your resellers or affiliates) associated with the license are now available in the new Distributor property (in License and WritableLicense).
    • The ProductOption.OptionType property (in License and WritableLicense) can now be used to help determine the type of license issued. This is how you can detect when SOLO Server has issued a volume or downloadable license.
  • New! PLUSManaged now supports detecting when your protected applications are running in a Parallels virtual machine guest environment.
  • New! New validation classes available to help simplify validation of application licenses:
    • LicenseAliasValidation makes it painless to validate your license file aliases (recommended when your application uses a writable license file).
    • LicenseEffectiveDateValidation makes it easier for you to validate the date properties of a time-limited license (to determine whether or not the license has expired).
  • New! The HardDiskVolumeSerialIdentifierAlgorithm now supports Linux (Windows and Linux are presently the only platforms supported by this algorithm).
  • The NicIdentifierAlgorithm has been updated to filter-out VirtualBox host adapters, and other tunneling/virtual adapters on Mac OS X and Linux.
  • The sample applications now use a new "Protection PLUS 5 Sample" product in the SOLO Server test account by default (the samples previously used the "XML License Test" product).
  • Fixed an issue where the SystemClockValidation class (added in 5.11.4.0) was too precise for some computers.
  • Marked a number of members in License and WritableLicense as obsolete to indicate a few older fields, properties, and methods that will eventually be removed from PLUSManaged.

Protection PLUS 5.11.4.0
Released December 7, 2011
  • New! Includes Instant PLUS 3.1.0.8.
  • New! Customer property in License and WritableLicense, which contains additional customer registration data (such as address information, phone number, etc...).
  • New! LicenseCustomData property in License and WritableLicense, which can be edited in SOLO Server's "License Details" screen (the "Custom Data" field). This field can contain arbitrary string/XML data that is nested in the license file.
  • New! LicenseCounter property, which corresponds with a new "License Counter" field in SOLO Server License IDs and Product Option configurations. This property is meant to hold quantity/counter data (which may be used in protected applications for data such as network seats, number of users allowed, etc...).
  • New! logic added to samples to better show how to include and automate proxy server support.
  • New! XmlSerializers assembly now ships with PLUSManaged, which you can include when shipping your application to improve application start-up performance.
  • Fixed bug where digital signature generation and verification could cause intermittent hangs in some environments using Active Directory authentication.
  • Fixed bug where checking out a network floating session with SOLO Server would always use the minimum checkout duration.
  • Updated samples so they no longer requiring phoning-home by default (although they still have support and instructional source code comments for adding this requirement).
  • Updated ActivateInstallation, CheckInstallationStatus, and DeactivateInstallation to support the random session code validation. (This prevents a response obtained manually from being reused later.)
  • Updated PLUSManaged so that if a web service call made through a WebServiceCall implementation fails while trying to use SSL, the request is automatically retried using plain-HTTP. This is still secure since the XML used in web service requests is typically encrypted; however, it is possible to prevent this automatic fallback by setting the RequireSsl property to true.
  • PLUSManaged now shows up in the ".NET" tab in the "Add References" screen in Visual Studio 2005 and later.
  • The uninstaller is now digitally signed.

Protection PLUS 5.11.3.0
Released July 29, 2011
  • New! Protection PLUS 5 .NET Edition installer, which includes PLUSManaged 5.11.3.0 and Instant PLUS 3.1.0.7.
  • New! Manual available in compiled help, web, and PDF formats, which documents how to use the PLUSManaged API in your application.
  • New! Rich API Reference to compliment the new manual, which is available in compiled help and web formats.
  • New! Additional filtering options are now available in the HardDiskVolumeSerialIdentifierAlgorithm class. This was primarily added because some USB drives report themselves as fixed drives instead of removable drives.
  • New! Samples and sample updates.
  • Updated the WritableLicense class to support unencrypted License Files.

PLUSManaged 1.10.4.2
Released December 16, 2010
  • New! Virtual machine validation to detect if the application is running in a virtual machine.
  • New! ServerHostNameIdentifierAlgorithm added to allow you to use the server hostname for computer identification.
  • New! Protection PLUS 4 compatibility class for validating trigger codes.
  • New! System information classes to easily access information on various system components.
  • Fixed a bug introduced in 1.10.4.1 where processing of manual requests would fail if a Session Code was used when generating the request.

PLUSManaged 1.10.4.1
Released November 24, 2010
  • New! The PLUSManaged library is now obfuscated and strong named. If you wish to merge the assembly into yours for deeper obfuscation, please contact us.
  • New! DomainNameIdentifierAlgorithm and UserNameIdentifierAlgorithm System Identifier Algorithms added to make it easy to license by the username and domain name of the currently authenticated Windows user running the application.
  • Fixed potential encoding issues when special characters were used in the license file.
  • Fixed issue with setting permissions on the license file and aliases on non-US versions of Windows.
  • Fixed a bug where reloading a license file could add duplicate authorized system identifier entries in memory.

PLUSManaged 1.10.4.0
Released October 6, 2010
  • New! Support for CustomData fields on the Author and Product from SOLO Server. This will allow you to embed your own string/XML data in the License File.
  • New! ASP.NET samples
  • Updated documentation on using proxy servers with web service calls.
  • Fixed localization issues with license file parsing (decimal values were problematic with formats other than U.S. English).

PLUSManaged 1.10.3.0
Released September 17, 2010
  • New! Support for Network Floating via Protection PLUS style semaphore files. This type of licensing requires read/write access to a common network share and is intended for use on a local area network (LAN).
  • New! Preliminary support for Network Floating via SOLO Server (uses SOLO Server web services which are still under testing and development). Contact us to request more information and the SimpleNetworkFloating prototype that shows how to use these new features.
  • New! ClientLicense sample for ASP.NET.
  • New! HardDiskVolumeSerialIdentifierAlgorithm added as a new, built-in SystemIdentifierAlgorithm.
  • New! System Validation classes for using and customizing common types of validations.
  • Changed to a SOLO Server style versioning scheme that includes the release year and quarter in the version number (e.g. Major.Year.Quarter.Build).

PLUSManaged 1.1.0.1
Released June 1, 2010
  • New! WritableLicense class allows for more flexible licensing implementations by allowing the application to write to the license file.
    • New! UnmanagedTrial sample added to show how you can use the WritableLicense class only for trial licenses while still using the more secure license only issuable by SOLO Server for full licenses.
    • New! UnmanagedLicense sample added to show you how you can use the WritableLicense class to license your entire application.
  • New! License File Alias support added for WritableLicense implementations.
  • Added support for additional fields from SOLO Server to the License File, including the Quantity Ordered, Trigger Code, and TC Fixed Value.

PLUSManaged 1.0.0.7
Released February 18, 2010
  • New! Now allows redundant SNTP (network time) queries (in case a given server is unreachable).
  • New! Visual Studio 2010 samples.
  • New! Visual Studio 2008 Visual Basic.NET sample, and Visual Studio 2005 C# and VB.NET samples.
  • New! Strong-named build now included.
  • New! Support for manual processing of web-service requests (without direct connectivity to the web services), which now also support session ID's to prevent replay-attacks that would otherwise be possible with the added support for more requests.
  • New! Support for specifying a user-specified/user-friendly Installation Name submitting an activation request.
  • New! Support for User Defined Float fields as available in SOLO's Licenses.
  • New! Added support for SOLO Server's new XMLLicenseFileService web service (previously only available as a custom web service).
    • Added support for a newer SystemIdentifier XML format used by SOLO Server.
    • Added support for SOLO Server's XmlActivationService's new ActivateInstallationLicenseFile, which activates and retrieves an XML License File in a single call (previously the activation and retrieval of the License File was done in 2 web service calls).

PLUSManaged 1.0.0.0
Released June 11, 2009
  • New, extensible XML License File format.
    • XML License Files are issued by SOLO Server and are secured with the RSA Algorithm.
    • Through the extensibility of the API, XML license files can be stored in any desirable location.
  • Extensible system identification algorithms with built-in Network Interface Card (NIC) MAC Address and Computer Name Computer ID Algorithms
  • Uses the RSA Algorithm for encryption and verification of web service calls.
  • Simple yet flexible and extensible object-oriented API.
    • The built-in License class of the PLUSManaged library has an extensive set of properties to make decrypted license data easy for you to access from your code. All data, including user-defined/custom data is sent down in the license from SOLO Server is available in this manner.
    • Classes and methods for assisting with implementation of custom web services if they are needed for your implementation, making it easy to achieve the same level of flexibility and security with custom web services.
  • Support for verifying system time to prevent back-dating via SNTP (network time) queries.
  • Visual Studio 2008 C# and Visual Basic.NET samples included.
  • PDF documentation included.
    • API documentation
    • Sample documentation
    • Detailed table comparing and contrasting this new API to the PLUSManaged Interface (SKCLNET).

Known Issues

Known issues with the latest release...
  • In Mac OS X 10.5 (Leopard) and 10.6 (Snow Leopard), the License Manager application may display an error about being unable to load the toolbar icons, and it may also display older and less aesthetically appealing tool bar icons.
  • In Mac OS X, the samples may fail to activate manually when pasting in a manual response generated in SOLO Server or License Manager. This is because Mac OS X may automatically replace certain characters, such as replacing TM with a trademark superscript character (™), replacing double quotes (") with left quote (“) or right quotes (”), etc... This can be resolved by going to the Mac OS X System Preferences, Language & Region, Keyboard Preferences dialog, and disabling the "Use smart quotes and dashes" option (under the Text tab).

Contact Information

Find out how to contact us for questions, comments, and technical support.

Concept Software, Inc.

Contact us through our web site: https://www.softwarekey.com/contact/

Online Support

We have several online support options available to you, including:

  • Online Searchable Knowledgebase
  • News History and Newsletter signup
  • Online Forum
  • Downloads

Online support can be reached at https://www.softwarekey.com/support/

Downloading updates and renewing subscriptions

Both downloading updates and renewing subscriptions may be done online in the Customer License Portal.

  • Go to www.SoftwareKey.com
  • Click Customer Login at the top.
  • Once logged in, click on the Downloads button to download software updates.
  • To renew software maintenance, click Renewals & Upgrades button. Choose either the appropriate software maintenance renewal or an upgrade option. Review the EULA and complete the purchase via the Shopping Cart facility.