Click to go to home page

What's New In EasyLicenser 2.5.11


Preface

New Features

Security Enhancements

License Manager Usability Enhancements

Enhanced C/C++ Platform Support

Upgrading From Previous EasyLicenser Versions

Upgrading License Manager

Upgrading eCommerce Key Generation System

Upgrading Applications For The New Runtime Library

Compatibility Considerations

Key Compatibility

Next Steps


Preface

The purpose of this document is to describe the new features in EasyLicenser 2.5.11, their benefits, how to use them, and where to look for detailed information. Note that although it is possible to directly upgrade from EasyLicenser 2.0 to EasyLicenser 2.5.11, this document is focused on features that are new in EasyLicenser 2.5.11. EasyLicenser 2.0 users should first review What's New In EasyLicenser 2.5 for information on new features that were introduced in EasyLicenser 2.5.

Target audience: existing EasyLicenser 2.5 administrators and developers upgrading to 2.5.11. Note that there is no visible impact on end users.

New Features

The key themes behind EasyLicenser 2.5.11 are:

Security Enhancements

The new security features are intended to make it more difficult to reverse engineer the license keys for all platforms and languages and to make it more difficult to reverse engineer the Java runtime library that are used by protected Java applications.

  1. Secure key functionality:

    A new key version has been introduced in order to enable generation of public key encrypted keys where the public key is based on the password defined for the product. This applies to generation of new keys, cloning from existing keys (which may be old-version keys), and (for Orion) chaining of keys to existing keys (which may also be old-version keys).

    The new key version is incompatible with prior versions of the EasyLicenser runtime library. That is, in order for a protected application to be able to accept a secure key, it needs to use an EasyLicenser runtime library at level 2.5.11 or higher. For floating license keys, an Orion server at level 2.0.11 or higher is required in order to accept and use secure keys.

    Generation of secure keys is optional. The license manager UI provides check boxes for selecting between generation of backward compatible and upgraded keys, both in the main key generation screen and the license key details / cloning screen. Correspondingly, the key generation and cloning / chaining command line tools provide additional command line parameters for controlling generation of backward compatible keys, and the key generation and chaining API's provide additional signatures for controlling generation of secure keys, while existing signatures continue to generate backward compatible keys.

    Since secure keys are based on the ISV-specified product password, the original product definition is required to be available in order to view details of a secure key and / or clone it. Prior-version keys can continue to be audited and / or cloned even if the product definition is not available.

  2. Java runtime flow control obfuscation:

    The Java runtime libraries are flow-control obfuscated in order to make them more difficult to decompile and reverse-engineer.

    Note that if you need this level of security for your application code, you still need to separately obfuscate your application code, which you can do with any available third party or open-source obfuscator such as ProGuard (available at no charge from sourceforge.net).

    Note also that obfuscation will not completely prevent binary editing of the Java binary code - it is recommended that you use EasyLicenser's digital signature based tamper detection mechanism for this purpose.

License Manager Usability Enhancements

In addition to bug fixes, the most significant improvements to the License Manager UI console are:

  1. License key work area functionality: work area population

    License key work area contents are left alone if the product or customer is changed, when at least one key in the work area is in a selected state.

    This allows you to generate keys for multiple products and then publish the different keys in a single batch.

  2. Key details synchronization with license key work area

    As a convenience, if a single row is selected in the work area and the Key Details command is selected in the main menu, details for the selected key are displayed.

  3. Streamlined EasyLicenser license recharge and delivery

    Previously, the EasyLicenser license was delivered as a raw .key file containing a single key. This presented a number of logistic problems, including the absence of tracking the associated metadata, and the logistic overhead of managing multiple individual key files, if you had multiple EasyLicenser installations.

    The License Manager GUI now accepts key files in any of the native EasyLicenser key export formats (xml, txt, etc.). A key file may contain a batch of keys; at the time of recharge, the License Manager will automatically pick the correct key from the batch.

    In particular, EasyLicenser key files generated and delivered using Agilis' Acropolis Integration Manager hosted license generation and delivery services will be accepted by the version 2.5.11 License Manager UI. The net result is a streamlined and self-service process for obtaining EasyLicenser keys from Agilis and recharging EasyLicenser License Manager installations with them.

Enhanced C/C++ Platform Support

Platform support for the C/C++ runtime libraries has been expanded to include 64-bit versions of the currently-supported platforms, as well as Mac OS X and an expanded set of Linux distributions. Base versions for the operating system, compiler and IDE have also been revised upward, and obsolete platform versions are no longer supported. The complete list of supported platforms is now:

  1. Windows on i86 / x64:

    The 32-bit Windows runtime libraries will run on 32-bit i86 Windows operating systems at version XP or later, as well as on all 64-bit x64 Windows operating systems under the 32bit Windows-on-Windows subsystem.

    The newly-introduced 64-bit x64 Windows runtime libraries will run natively on all x64 64-bit Windows operating systems.

  2. Red Hat Linux on i86 / x64:

    The 32-bit Red Hat Linux runtime libraries will run on 32-bit i86 and 64-bit x64 Linux distributions based on Red Hat Enterprise Linux Version 3 or later, including CentOS Version 3 or later and Fedora Core Version 3 or later.

    The corresponding newly-introduced 64-bit x64 Red Hat Enterprise Linux runtime libraries will run natively on the corresponding x64 Linux distributions.

  3. SuSE Linux on i86 / x64:

    The 32-bit SuSE Linux runtime libraries will run on 32-bit i86 and 64-bit x64 Linux distributions based on SuSE Linux Version 10 or later, including OpenSuSE Version 10 or later and Novell SLES/SLED Version 10 or later.

    The corresponding 64-bit x64 SuSE Linux runtime libraries will run natively on the corresponding x64 Linux distributions.

  4. Ubuntu Linux on i86 / x64:

    The 32-bit Ubuntu Linux runtime libraries will run on 32-bit i86 and 64-bit x64 Linux distributions based on Ubuntu Linux Version 7.10 or later.

    The corresponding 64-bit x64 Ubuntu Linux runtime libraries will run natively on the corresponding x64 Linux distributions.

  5. Solaris on i86 / x64:

    The 32-bit i86 Solaris runtime libraries will run on 32-bit i86 and 32/64-bit i86_x64 Solaris and OpenSolaris distributions version 10 or later.

    The newly-introduced 64-bit x64 Solaris runtime libraries will run natively on all i86_x64 Solaris and OpenSolaris distributions version 10 or later.

  6. 32/64 bit Solaris on SPARC:

    The 32-bit Solaris-SPARC runtime libraries will run on all SPARC Solaris distributions version 10 or later.

    The newly-introduced 64-bit Solaris-SPARC runtime libraries will run natively on all 64-bit SPARC Solaris distributions version 10 or later.

  7. Mac OS X Universal Binary:

    The newly-introduced Mac OS X universal binary runtime libraries will run natively on all Mac OS X distributions version 10.4 (Tiger) or later, on all supported platforms ie. i86, x64, 32-bit PowerPC and 64-bit PowerPC.

For complete details on platform and compiler support, please refer to the C/C++ Runtime Library Platform Specifications document.

Upgrading From Previous EasyLicenser Versions

There are three types of upgrades: upgrading the license manager installation itself, upgrading an eCommerce web site or other back office system that uses the EasyLicenser key generation API's, and upgrading your application to use the EasyLicenser 2.5.11 run time libraries.

Upgrading License Manager

You can upgrade your existing EasyLicenser 1.1, EasyLicenser 2.0 or EasyLicenser 2.5 installation to EasyLicenser 2.5.11 without affecting your balance production license units or existing data as follows:

  1. Download a fresh copy of the EasyLicenser upgrade package from the EasyLicenser web site at http://www.agilis-sw.com/ezlm/anondownload/ezlicmgrupgrd.zip or other URL provided by Agilis.

  2. Position to within the existing product installation root directory (that is, in the ezlic1.1, ezlic2.0 or ezlic2.5 subdirectory).

  3. Unzip the downloaded file into the directory. Your existing data and configuration files are preserved and are compatible with the current release.

Performing an upgrade of an existing production installation to EasyLicenser 2.5.11 has its limitations and constraints:

Upgrading eCommerce Key Generation System

You can upgrade your existing EasyLicenser 1.1, 2.0 or 2.5 based eCommerce site to EasyLicenser 2.5.11 without affecting your balance production license units or existing data as follows:

  1. Download a fresh copy of the EasyLicenser eCommerce package from the EasyLicenser web site at http://www.agilis-sw.com/ezlm/anondownload/ezlicmgrecom.zip or other URL provided to you by Agilis.

  2. Position to within the existing EasyLicenser eCommerce product installation root directory (which may not necessarily be the ezlic1.1, ezlic2.0 or ezlic2.5 subdirectory).

  3. Unzip the downloaded file into the directory. Your existing data and configuration files are preserved and are compatible with the current release.

Performing an upgrade of an existing eCommerce production installation to EasyLicenser 2.5.11 has the following implications:

Upgrading Applications For The New Runtime Library

Subject to meeting minimum platform requirements, you should upgrade your existing EasyLicenser 1.1, 2.0 and 2.5 based applications to the EasyLicenser 2.5.11 run time libraries even if you do not take advantage of the new features, in order to benefit from bug fixes and internal functionality improvements. Perform the upgrade as follows:

  1. Java applications:

    In your product packaging, replace ezlicrun11.jar, ezlicrun20.jar, or ezlicrun25.jar, as well as ilscrypt10.jar, with the two libraries:

    • ezlicrun25.jar located at the lib subdirectory of the product installation.

    • ilscrypt10.jar located at the extlib subdirectory of the product installation.

    If you are upgrading from EasyLicenser 1.1 or 2.0, modify your application's classpath to refer to the above libraries instead of ezlicrun11.jar / ezlicrun20.jar. If you are upgrading from EasyLicenser 1.1 and you are using the digital signature mechanism, it is recommended that you specify the library name qualified by a path when invoking the signature API call. Otherwise, there are two additional considerations:

    • The classpath also needs to include the directory containing the jar libraries.

    • The directory path containing the jar libraries cannot contain URL-encodable characters, in particular white spaces. All directory names are required to consist of alphanumeric characters, '-', '_' and '.'.

    It is recommended (but not required) that you upgrade your end customers' keys with replacement 2.5.11 secure keys in order to benefit from the new secure key mechanism. The license key checking API's that accept product name and application passwords are required to be used if you will be generating application password protected keys. See below for a full discussion of key compatibility considerations.

  2. C/C++ applications:

    In your product packaging, replace your platform-specific ezLicenserlib11.so/dll/a or ezLicenserlib20.so/dll/a shared library with the ezLicenserlib20.so/dll/a shared library located at the platform-specific subdirectory under the cpp/lib subdirectory of the product installation. Note that the shared library versioning is frozen at "20" and will not change in future versions.

    Modify your application's makefiles to refer to the new shared library (Windows: import library ezLicenserlib20.lib) instead of the current library. It is recommended (but not required) that you upgrade your end customers' keys with replacement 2.5.11 secure keys in order to benefit from the new secure key mechanism. The license key checking API's that accept product name and application passwords are required to be used if you will be generating application password protected keys. See below for a full discussion of key compatibility considerations.

Performing an upgrade of your application to the new EasyLicenser 2.5.11 runtime libraries has the following implications:

Compatibility Considerations

Backward compatibility is preserved between the four versions: EasyLicenser 1.1, 2.0, 2.5 and 2.5.11. In addition, forward compatibility is maintained to the maximum extent possible. The specific rules governing compatibility between the versions are enumerated below.

Key Compatibility

Key compatibility has two aspects: the License Manager user interface and the run time libraries.

Next Steps

For information on considerations in upgrading from EasyLicenser 1.1 that are pertinent to EasyLicenser 2.0, refer to the What Was New In EasyLicenser 2.0 document.

For information on considerations in upgrading from EasyLicenser 1.1 or EasyLicenser 2.0 that are pertinent to EasyLicenser 2.5, refer to the What's New In EasyLicenser 2.5 document.

For information on how to use the new License Manager user interface, refer to the License Manager User Guide document.

The C/C++ runtime library platform, compiler and build specifications are described in C/C++ Runtime Library Platform Specifications.


Copyright © 2002+ Agilis Software LLC, Santa Clara, CA, USA. All rights reserved.