Code Protection and Obfuscator For .Net, Licensing And Copy Protection for .Net, ActiveX and MFC

Version history - CryptoLicensing For ActiveX


Build 180220 ( 20 February 2018 )

  • Added support for Microsoft ACE Database Engine.


Build 180210 ( 10 February 2018 ) **v2018 released**

  • v2018 released.


Build 171116 ( 16 Nov 2017 )

  • FIX: 'Verify Local Time' did not work in some circumstances.
  • FIX: Data returned by the license service was not interpreted correctly in come conditions.
  • FIX: Features names were not saved in some circumstances.
  • NEW: The threads used for the Leased and heartbeat licenses are not started as a background threads.
  • FIX: Customer Deployed license service did not start under some circumstances on OSes later than Windows 7.
  • NEW: Stricter validation of serial codes - earlier serial codes which differed in the last character (which was not a part of the serial code in some circumstances) were validated. This is now not the case.
  • Minor UI improvements.
  • Updated documentation.


Build 170316 ( 16 Mar 2017 )

  • FIX: Communication with the license service failed in some circumstances.


Build 170207 ( 07 Feb 2017 )

  • FIX: The CryptoLicense.GetRemainingActivationCount did not return the correct value if an activation context is specified.


Build 160922 ( 22 Sep 2016 )

  • Minor UI improvements.


Build 160718 ( 27 Aug 2016 )

  • Updated documentation.


Build 160718 ( 18 July 2016 )

  • Minor UI improvements.


Build 160715 ( 15 July 2016 )

  • IMPROVED: Preview in Data Fields plugin is updated when active profile is changed.
  • NEW: Data Fields plugin now allows you to enter/paste pre-formatted data fields.
  • FIX: When project file was saved, the "Return Same License For Same Machine" profile setting was not saved.
  • FIX: CheckMachineCodeValid did not work under some circumstances if license was locked to multiple machine codes.
  • FIX: Overriding OnIsMachineCodeValid did not work in some circumstances.
  • FIX: 'Max Instances' settings did not work in some permission settings.
  • FIX: QueryWebService did not return the correct value under some circumstances when extra long data was returned by the license service.


Build 151112 ( 12 November 2015 )

  • Minor UI improvements.
  • Updated documentation.


Build 151102 ( 02 November 2015 )

  • NEW: The license textbox now supports CTRL+A key-stroke typically used to select all text in the textbox.
  • FIX: If a 'Limit Machines To' license was activated, the returned license did not have the correct profile name embedded inside it.
  • Updated documentation.


Build 150818 ( 18 August 2015 )

  • FIX: Regression bug introduced due to HTTPS support for license service.


Build 150722 ( 22 July 2015 )

  • Minor UI improvements.


Build 150715 ( 15 July 2015 )

  • Minor UI improvements.
  • Updated documentation.


Build 150714 ( 14 July 2015 )

  • Updated documentation.


Build 150711 ( 11 July 2015 )

  • NEW: Ability to specify additional data (for example, a custom lease duration) when activating a license.


Build 150708 ( 08 July 2015 )

  • FIX: HTTP POST license processor does not fail if the URL returns a status code of OK (200).


Build 150707 ( 07 July 2015 )

  • IMPROVED: Activation fails if the newly returned license cannot be saved.
  • CHANGE: Load, Save and Remove methods now return a diagnostic message if StorageMode is set to None, which can be retrieved via GetStatusException.
  • Documentation updates.


Build 150616 ( 16 June 2015 )

  • IMPROVED: Improved handling and developer-friendliness of 'activations with grace period' scenario.
  • NEW: Exceptions thrown during CryptoLicense.Dispose can now be accessed via CryptoLicense.GetStatusException method.


Build 150601 ( 01 June 2015 )

  • Updated documentation.


Build 150327 ( 27 March 2015 )

  • FIX: Crash occurred in some circumstances when a new license code was set on the same CryptoLicense instance.


Build 150323 ( 23 March 2015 )

  • NEW: Ability to disable adding license generated when serial is validated to the license management table.


Build 150317 ( 17 March 2015 )

  • NEW: New CryptolicenseGenerator.SetFeature method which allows more straightforward way to set/unset license features than the SetFeaturesEx methods.


Build 150316 ( 16 March 2015 )

  • CHANGE: If the license does not specify 'Number Of Users', then default value of short.MaxValue is used instead of the 1 used earlier.


Build 150304 ( 04 March 2015 )

  • NEW: Added LicenseManagement.InitializeDatabase method.
  • FIX: CryptoLicenseGenerator.Generate method threw an exception in some cases if a 'Data Field' was not specified.


Build 150219 ( 19 February 2015 )

  • FIX: Machine code checking failed under some circumstances.


Build 150210 ( 10 February 2015 )

  • CHANGE: License codes generated with trial version of CryptoLicensing do not automatically get the 'Date Expires' setting of 30 days hence. However, they will still fail to validate after 30 days.


Build 150110 ( 10 January 2015 )

  • NEW: LicenseService.LogExceptions property can now be specified via the settings.xml file.


Build 150108 ( 08 January 2015 )

  • NEW: Ability to control whether stale activations are cleaned during activations. Turning this OFF may speed up the activation process.


Build 141230 ( 30 December 2014 )

  • NEW: It is now possible to pass user-data to the active user-data plugin when validating serials or when calling CryptoLicense.GetLicenseFromProfile.


Build 141215 ( 15 December 2014 )

  • FIX: CurrentInstances did not return the correct value.
  • FIX: Setting the ReleaseHeartbeatSlotOnDispose property causes a run-time automation error.
  • IMRPOVED: When the CryptoLicense.GetLicenseFromProfile method is called with "<default>" as the user-data parameter, then the returned license has the default user-data plugin settings stored in the profile. For example, the 'Data Fields" plugin uses the profile specific data field values stored in the project file.


Build 141204 ( 04 December 2014 )

  • IMPROVED: RegAPI.exe now registers the Generator API in both 32-bit and 64-bit registry.


Build 141202 ( 02 December 2014 ) **v2015 released**

  • NEW: It is now possible to include a process specific ID in the machine code, so multiple instances on the same machine are counted as different activations. New API CryptoLicense.IncludeProcessIDInMachineCode property.
  • NEW: It is not possible to toggle on/off the featue number for a feature if that feature has a name.
  • NEW: A license can be machine-locked to multiple machines - it will work on any of those machines.
  • NEW: An activated license (floating or otherwise) can be locked to a specified list of machines - only those machines can be activated.
  • FIX: Leased floating licenses were not deactivated if the license had heartbeats too.
  • IMPROVED: Added helpful exception message for "Verify Local Time With Service" setting.
  • NEW: Allows embedding profile name in the license.
  • FIX: Activation console did not work in some circumstances.
  • NEW: Added LicenseService.RetriveLicenseCodeFromCustomerDeployedLicenseService and corresponding CryptoLicense method.
  • NEW: Added LicenseService.DeactivateCustomerDeployedLicenseService and corresponding CryptoLicense method.
  • NEW: Added CryotoLicense.CurrentInstances and CryotoLicense.RemainingInstances properties.
  • NEW: Ability to surrender leases via the CryptoLicense.SurrenderLease method.
  • NEW: CryptoLicense.SaveCustomInfo and CryptoLicense.LoadCustomInfo events to allow developer to override default load/save behavior of the custom info.
  • NEW: CryptoLicense.SaveEvaluationInfo and CryptoLicense.LoadEvaluationInfo events to allow developer to override default load/save behavior of the evaluation info.


Build 140916 ( 16 September 2014 )

  • FIX: Regression bug caused licenses to not be deactivated in some circumstances.


Build 140906 ( 06 September 2014 )

  • FIX: Activation Console did not delete activations or activate machines in some circumstances.


Build 140731 ( 31 July 2014 )

  • FIX: Security exception occurred on some hosting providers which causes the license service to fail.


Build 140704 ( 04 July 2014 )

  • NEW: It is now possible to pass the "interactive" flag (via command-line) when running the license service as Windows Service.


Build 140617 ( 17 June 2014 )

  • NEW: LicenseService.OnLogException method allows the developer to override the default logging behavior.
  • NEW: Ability to specify license service parameter encryption mode via the license project file.
  • FIX: The user-data was not available in some circumstances to plugins and license management.
  • Minor documentation changes.


Build 140606 ( 06 June 2014 )

  • Minor UI improvements.


Build 140604 ( 04 June 2014 )

  • FIX: GetUserDataFieldValue did not return correct value in some circumstances.
  • Minor documentation changes.


Build 140313 ( 13 March 2014 )

  • NEW: If multiple codes are generated at once, then the active user-data plugin can provide a unique user-data for each code generated. Earlier, all codes had the same user-data.
  • NEW: CryptoLicense.RenewLease method allows the developer to forcibly renew the lease for a leased license.
  • IMPROVED: Improved diagnostic reporting via GetStatusException for the DebuggerDetected status.
  • IMPROVED: Improved support for MySQL databases.
  • FIX: Even if a plugin is removed from a project, it continued to be used till the time the project was re-opened.


Build 140115 ( 15 January 2014 )

  • CHANGE: CryptoLicense.IsEvaluationExpired method now returns true if a license code is not loaded or if cryptographic validation of the license code fails.


Build 131218 ( 18 December 2013 )

  • FIX: GetUserDataFieldValue did not return correct value in some circumstances.
  • CHANGE: The "Update License Database" plugin is disabled for certain scenarios such as when a new license is generated in response to serial validation or license activation.


Build 131129 ( 29 November 2013 )

  • NEW: CryptoLicenseGenerator.GetFeatureName and CryptoLicenseGenerator.SetFeatureName methods.
  • FIX: CryptoLicense.IsCurrentMachineActivated method did not work correctly in some circumstances.


Build 130920 ( 20 September 2013 )

  • FIX: Put Local Machine Code did not work "Lock To Machine" and "Lock To License Service" if "Base 64" mode was selected.


Build 130902 ( 02 September 2013 )

  • FIX: A new license was generated in some cases during serial validation even if license was found in license service database.


Build 130830 ( 30 August 2013 )

  • NEW: Ability to limit number of deactivations in a given period.


Build 130816 ( 16 August 2013 )

  • Minor UI improvements.


Build 130814 ( 14 August 2013 )

  • NEW: Ability to specify grouping and padding for short license codes. So short license codes in various formats like 'W1XY-C7NA-7RS4-CUUA-673H-HUL3-DYPH-SFWZ"
    or "K35VA9NA-7RS4CUPK-CWJCJS6S-E5AWW69Z" can be generated.
  • NEW: License Service Activation Console now supports listing serial validations.
  • NEW: Added ability to limit serial validations using profile setting.CHANGE: Changed default value of LicenseService.SerialValidationLimit property to FromProfile_MaxValidationsSetting.
  • CHANGE: Marked LicenseService.MaxSerialValidations as obsolete. Use LicenseService.SerialValidationLimit=SerialValidationLimit.FromProfile_MaxValidationsSetting (the default value) instead, and specify the max validations from the Profile Settings Dialog.
  • CHANGE: Changed default value of CryptoLicense.StorageMode to ToRegistry.
  • FIX: In some circumstances, a new license was incorrectly added to the License Management table if serial validation validation limit was exceeded.


Build 130810 ( 10 August 2013 )

  • NEW: Ability to specify grouping and padding for serials. This allows serials in various formats like 'W1XY-C7NA-7RS4-CUUA-673H-HUL3-DYPH-SFWZ" or "K35VA9NA-7RS4CUPK-CWJCJS6S-E5AWW69Z" to be generated.


Build 130809 ( 09 August 2013 )

  • NEW: CryptoLicensing App now allows you to specify machine code using a string (for example, string representation of CPU ID or HDD ID) when generating hardware locked (Lock To Machine setting) licenses.
  • CHANGE: Floating license is deactivated on dispose only if license validation was successful (slot was available) in the first place.
  • CHANGE: A heartbeat is started even if a floating license with heartbeat is validated and validation fails because no license slots are available. This means, the license will continue to ping the license service at specified intervals to attempt to get a license. Earlier, the heartbeat was started only if the initial license validation was successful.
  • FIX: Deactivation of licenses sometimes did not work if license table prefix was used when configuring the license service.
  • Documentation updates.
  • Minor UI improvements.


Build 130807 ( 07 August 2013 )

  • NEW: The license service can now embed the serial being validated in the returned license.
  • FIX: Customer deployed license service did not install properly as a Windows Service if a username and password was specified.
  • Some documentation updates.


Build 130802 ( 02 August 2013 )

  • FIX: CryptoLicense.RemainingRuntime did not return the correct value.


Build 130725 ( 25 July 2013 )

  • IMPROVED: Improved support for Oracle database in the License Service and License Management.


Build 130723 ( 23 July 2013 )

  • IMPROVED: License Service and License Management now always use the DBWorker.GetLongVarcharTypeDefinition method instead of hard-coded "varchar"s.


Build 130719 ( 19 July 2013 )

  • FIX: For data fields saved per profile, they are initialized to default values when a new profile is selected.


Build 130711 ( 12 July 2013 )

  • Minor documentation changes.


Build 130710 ( 10 July 2013 )

  • It is now possible to specify http://*:port/ (example: http://*:8081/) - for a customer-deployed license service - this can be useful if the IP address of the machine which will run the license service app is dynamic and changes all the time.


Build 130703 ( 03 July 2013 )

  • Fixed regression bug related to the license service project files.


Build 130702 ( 02 July 2013 )

  • Minor documentation changes.


Build 130701 ( 01 July 2013 ) - **v2013 R2**

  • CryptoLicensing For .Net v2013 R2


Build 130629 ( 29 June 2013 )

  • NEW: Added CryptoLicense.GetRemainingActivationCount method.
  • Minor documentation changes.


Build 130628 ( 28 June 2013 )

  • NEW: UI changes and improvements related to how projects are created, opened or how recent projects are shown.
  • Minor documentation changes.


Build 130624 ( 24 June 2013 )

  • FIX: In rare circumstances, the CryptoLicensing generator app would crash on exit.


Build 130621 ( 21 June 2013 )

  • NEW: Added CryptoLicense.GetUserDataFieldValue helper method.
  • Minor UI improvements.
  • Minor documentation updates.


Build 130620 ( 20 June 2013 )

  • NEW: A new status enables you to know if load/save of evaluation data failed.
  • IMPROVED: More detailed diagnostic information is returned via the CryptoLicense.GetStatusException method, if the CryptoLicense.Load/Save/Remove methods fail.
  • Streamlined and updated documentation.


Build 130613 ( 13 June 2013 )

  • FIX: Custom info was not saved after call to CryptoLicense.RemoveCustomInfo.


Build 130423 ( 23 April 2013 )

  • FIX: Activation failed in Access db if multiple activation entries from same machine were present and they exceeded the activation limit.


Build 130319 ( 19 March 2013 )

  • NEW: Ability to use the default per-profile Data Fields values as the user-data when serial is validated.


Build 130312 ( 12 March 2013 )

  • FIX: A regression issue in the stats.aspx page which caused it to throw a compilation error when loading.


Build 130307 ( 07 March 2013 )

  • NEW: The Customer Deployed License Service "stats" page now supports multiple license project files.


Build 130222 ( 22 February 2013 )

  • IMPROVED: Improved error reporting when validating a license/serial code from the CryptoLicensing UI.
  • Minor documentation updates.


Build 130206 ( 06 February 2013 )

  • IMPROVED: Better support when using Azure database for license service or license management.
  • Minor documentation updates.


Build 130205 ( 05 February 2013 )

  • NEW: The License Service Activation Console now supports multiple license project files.


Build 130123 ( 23 January 2013 ) - **v2013**

  • CryptoLicensing For ActiveX v2013


Build 130112 ( 12 January 2013 )

  • Minor documentation updates.


Build 130109 ( 09 January 2013 )

  • NEW: Added new CryptoLicenseGenerator.GetProfileFromName, CryptoLicenseGenerator.AddNewProfile and CryptoLicenseGenerator.CopySettingsToProfile methods.


Build 121229 ( 29 December 2012 )

  • CHANGE: The Activation table of the license service now does not accumulate stale entries related to heartbeat/lease licenses.
  • CHANGE: When a floating license or a floating license with heartbeat is validated, no entry is added to the "License Management" database since the returned license is the same as the license being validated.


Build 121214 ( 14 December 2012 )

  • NEW: Data field values can optionally be saved along with profile setting. This gives the ability to have per-profile values for data fields.
  • NEW: The LicenseSeviceApp.exe now shows the addresses on which it is listening.


Build 121130 ( 30 November 2012 )

  • CHANGE: Change the last character of a license code before the '=' padding characters now causes license validation to fail. This was a harmless change (by-product of base-64 encoding used for encoding the license codes) which did not compromise the security of the system, but now even this is not allowed.


Build 121126 ( 26 November 2012 )

  • NEW: LicenseService.DBWorker property.
  • Updated documentation.


Build 121122 ( 22 November 2012 )

  • NEW: Enable Tamper Checking can now be used on its own.
  • CHANGE: Increased resolution of CryptoLicense.RemainingCumulativeRuntime and CryptoLicense.CurrentCumulativeRuntime properties.
  • CHANGE: CryptoLicense.RemainingRuntime and CryptoLicense.CurrentRuntime properties are now protected against system date change.


Build 121121 ( 21 November 2012 )

  • FIX: Data Fields plugin showed a trailing # in some circumstances.
  • NEW: Added CryptoLicense.RemainingRuntime and CryptoLicense.CurrentRuntime properties.
  • NEW: Usage Reporting Console now supports multiple settings files ( like the install.aspx page).


Build 121113 ( 13 November 2012 )

  • Generator API: Setting various numeric license settings like MaxActivations to zero or negative value now turns OFF the license setting.
  • The CryptoLicensing Generator App now runs correctly on machines where FIPS compliance is turned ON via security policy.
  • Minor documentation updates.


Build 121112 ( 12 November 2012 )

  • Floating license is deactivated during Dispose only if it does not have a lease period or heartbeat interval.


Build 121105 ( 05 November 2012 )

  • NEW: License Service Activation Console which allows you to list activations associated with a license code, add activations or deletes activations.
  • CHANGE: The license code returned by the license service for activated licenses is saved only if its different than the original license being activated.
  • Minor documentation updates.


Build 121030 ( 30 October 2012 )

  • Exceptions occurring during CryptoLicensing.DeactivateLocally are now recorded and accessible via CryptoLicensing.GetStatusExceptionMessage method.
  • Exceptions occurring during CryptoLicensing.Load/Save/Remove are now recorded and accessible via CryptoLicensing.GetStatusExceptionMessage method.
  • Minor documentation updates.


Build 121024 ( 24 October 2012 )

  • The same CryptoLicenseGenerator instance can now be used to load multiple licproj files if desired.


Build 121023 ( 23 October 2012 )

  • Generator API now throws an exception if you try to set user-data greater than 64KB (the limit).


Build 121017 ( 17 October 2012 )

  • Avoid throwing unnecessary internal exceptions during license validation.


Build 121009 ( 09 October 2012 )

  • Improved error reporting for licensing failures when using the Generator API.


Build 121002 ( 02 October 2012 )

  • Improved error reporting when using customer-deployed license service.


Build 121001 ( 01 October 2012 )

  • Minor documentation updates.


Build 120930 ( 30 September 2012 )

  • Minor UI changes.


Build 120927 ( 27 September 2012 )

  • Minor documentation updates.


Build 120917 ( 17 September 2012 )

  • Documentation and UI improvements.


What's New!! in Version 2012 R2

Build 120910 ( 10 Sep 2012 )

  • NEW: Mono specific client side validation module (LogicNP.CryptoLicensing.Mono.dll).
  • NEW: Overhauled Subscription Licenses scenario and workflow for much improved ease of use.
  • NEW: License project files can now be stored in XML format - this allows easy version control tracking as well as quick changes via a text editor.
  • NEW: Some UI changes to the CryptoLicensing Generator App, to improve ease of use and understandability.
  • NEW: Much improved support for various types of databases for use with license service and license management.
  • NEW: Improved error reporting when validating licenses or serials via the CryptoLicensing Generator App.
  • NEW: Improvement error reporting during license validation (errors accessible via CryptoLicense.GetStatusException).
  • NEW: The license service "Import" page now replaces any existing license codes in the License or DisabledLicense table, else adds a new record.
  • NEW: "Profile Name" field available in License Management.
  • NEW: "Raw User-Data " field available in LIcense Management.
  • NEW: "Date Added (To Database)" field available in LIcense Management.
  • NEW: DBWorker for PostGre SQL.
  • NEW: Support for Firebird DB.
  • NEW: ActivationContextDemo sample, which demonstrates usage of activation contexts.
  • NEW: CryptoLicense.UpdateLicense and corresponding license service methods.
  • NEW: CryptoLicense.GetRecordGUID method which allows developer to get a unique pseudo-GUID based on license code and specified key.
  • NEW: CryptoLicense.GetSerialFromProfile method and corresponding license service methods.
  • NEW: Support for date-time format for data fields of type "Date-Time".
  • NEW: Better exception handling and reporting in all e-commerce pages.
  • NEW: Silverlight specific Being/End methods for those methods which communicate with the license service.
  • NEW: Plugins can now be specified in the license project via relative paths.
  • CHANGE: CryptoLicense.IsEvaluationExpired now returns true only if the license is evaluation license and one of the evaluation limits has reached.
  • NEW: Placeholders in the "Save to File" template file setting are replaced too.
  • NEW: LicenseServiceSettings.TemplateFolder property to allow specifying optional license service template folder location.
  • IMPROVED: MySQL DBWorker now works with Usage Reporting.
  • IMPROVED: The network-deployed license service now supports serving of non-ASP.Net files (like clientaccesspolicy.xml).
  • IMPROVED: Errors that occur during loading of a license project via the CryptoLicensing Generator App are now shown in the UI.
  • FIX: Error occurred if an empty usage report was sent to the license service.
  • FIX: Deactivation not working if a table-prefix was specified when configuring the license service.
  • FIX: LicenseService.IsCurrentMachineActivated and LicenseService.GetNumberOfActivations now takes the activation context into account.
  • FIX: Usage Reporting console did not work correctly if a table-prefix was specified when configuring the license service.
  • FIX: If license service is not available for deactivation, then locally stored deactivation record is deleted immediately.
  • FIX: In Silverlight, custom license service methods which have no parameters were not called correctly.
  • FIX: "Perform Strong Name Validation" setting now works for all versions of the .Net run-time and regardless of which combination of .Net runtime(s) are installed on the system.
  • FIX: Activation contexts did not work in some circumstances.
  • FIX: Generator API - Attempting to load a license project stored in XML format via a stream did not work.
  • FIX: License service did not report the correct error back to the client-side validation module for some client-side API.


What's New!! in Version 2012

  • NEW: Support for IPv6 address when using customer deployed license service.
  • NEW: Much improved exception reporting from license service to client side API.
  • NEW: Support for Activation Contexts - supports varying activation counts from the same machine for different features in your software (example, View, Change, Print, etc).
  • NEW: Added ready-to-use e-commerce integration pages for FastSpring.
  • CHANGE: Heartbeat event is called everytime a heartbeat fails.
  • NEW: Improved psf file handling in customer deployed license service.
  • NEW: Improved speed when validating licenses.
  • NEW: Reduced memory requirements when validating licenses.
  • NEW PROPERTY: CryptoLicense.ActivationContext which specifies the context for the activation.
  • NEW METHOD: CryptoLicense.GetStatusExceptionMessage which gets the error/exception message, if any, associated with an error validation status.
  • NEW METHOD: CryptoLicense.RenewLicense allows you to get a new license from the license service based on the settings of the current license (for example, with Date Of Expiration changed).
  • NEW METHODS: LicenseService.RenewLicense and LicenseService.OnRenewLicense return a new license based on the settings of the passed license.


What's New!! in Version 2011 R3

  • NEW: Added support for any database to be used with the License Management functionality.
  • NEW: Support for MySQL and SQL CE database when using License Management and the License Service.
  • NEW: Ability to lock floating license to a specific license service via the machine code. This is used with customer-delpoyed license service -for greater security.
  • NEW: Customer deployed floating license service now supports multiple projects per service.
  • NEW: Ability to override the default behavior related to creation, deletion and checking of the locally stored deactivation record.
  • NEW: Ability to limit number of remote sessions via the "Max Instances" limit.
  • NEW: Support for SQL Azure databases when using License Management and the License Service.
  • NEW: Data Fields Plugin now displays the user data correctly even if the order of the fields in the user-data does not match the order of the defined fields.
  • NEW METHOD: Added CryptoLicense.GetLicenseStatusAsString method.
  • NEW PROPERTY: PropertiesPlugin.Properties and Property.Type properties.
  • NEW PROPERTY: LicenseManagement.LicenseManagementException property.
  • NEW: License Management can now store the Project Name and Key Name settings.
  • NEW: Added support for loading license project files via a stream.
  • NEW: Improved exception logging for the license service e-commerce pages.
  • NEW: Individual license service methods can be disabled from code.
  • NEW: Added support for Unicode data passed via the CryptoLicense.GetLicenseFromSerial method.
  • NEW METHOD: Added CryptoLicenseGenerator.SaveProject(Stream) method.
  • FIX: Serial validation now does not fail if the index of the corresponding profile in the license project file changes.
  • FIX: File Generator Plugin - "Each Code To Separate File" setting not working.
  • FIX: Deactivation functionality did not work in some limited permission environments.
  • FIX: Necessary communication with the license service during disposing in some circumstances.


What's New!! in Version 2011 R2

  • NEW - Usage Reporting - Gain insight into how your software is used. Identity feature usage trends and patterns as well as end-user software/hardware statistics. Ready-made usage reporting console to view and analyze usage reporting data.
  • NEW: Heartbeat support for floating licenses - allows gracefully recovering from an application crash and prevents tampering of the network floating license service.
  • NEW: CryptoLicensing for XBox is now supported.
  • NEW: Improved modern Generator UI look and feel.
  • NEW: Improved usability of the Generator UI.
  • NEW: Support for Oracle databases in the license service and license management.
  • NEW: Improved leased license functionality - new LeaseExpires setting specifies when the license lease expires. New LeaseExpired event fires when the lease expires.
  • NEW: Improved performance when validating and generating licenses.
  • NEW; Ability to store serials in the License Management database.
  • NEW: Disallow In Remote Machines license limit - you can specify whether licenses can be used in a remote session like Remote Desktop or Citrix.
  • NEW: The stats.aspx page for the network floating license service can now show the IP addresses of activated machines.
  • NEW: Implementation change in Deactivation logic - Each deactivation releases only one record of an activation (instead of all activation records as previously). This prevents someone from starting multiple instances of the software and then closing one instance thereby allowed unlimited activations.
  • NEW; CryptoLicense.IsCurrentMachineActivated method - allows determining whether the current machine is activated.
  • NEW; LicenseService.ImportLicensesIntoDisabledLicenseTable and LicenseService.ImportLicensesIntoLicenseTable overloads which accept an IEnumerable<string>
  • NEW: User data passed to the license service when validating serials or using GetLicenseFromProfile is used as the basis for storing data fields in the License Management table.
  • NEW: Generator UI now allows specifying the settings file to use when communicating with the license service - necessary when the service hosts multiple license project files.
  • NEW: RegistryStoragePath now allows both short (HKLM) or long (HKEY_LOCAL_MACHINE) prefixes.
  • CHANGE: All CStrings in public API changed to BSTRs for better compatibility with ATL projects.
  • FIX: Unable to load license projects in some non-English locales.
  • FIX: Network floating license service threw FileNotFoundException under some circumstances.
  • FIX: Could not add a data field which had a whitespace in its name to the License Management table.
  • FIX: NullReferenceException was raised in some circumstances when creating new license projects via the Generator API.
  • FIX: Leading and trailing whitespace is now ignored when setting the LicenseCode and ValidationKey.

What's New!! in Version 2011

  • NEW: License management functionality - Now generated licenses and their settings, and any associated userdata can be automatically added to a user specified database.
  • NEW: CryptoLicensing for Windows Phone 7 is now supported.
  • NEW: CryptoLicensing for Silverlight is now supported.
  • NEW: Support for SQL Server CE databases.
  • NEW: E-commerce integration with Clickbank is now supported.
  • NEW: CryptoLicenseProvider now supports extracted a license found in a .licenses resource from any dll or exe assembly.
  • NEW: Added placeholders (used in various "License Post-Generation Processors) for different license settings like "Date Expires", "Max Usage Days", etc.
  • NEW: The license service can now operate in unencrypted mode in which data passed to and from the service is unencrypted. This can be useful when you need to invoke the license service from PHP or Python or Ruby.
  • IMPROVED: Import licenses page now provides descriptive errors if the import process fails.
  • NEW METHOD: LicenseService.OnInitialize called everytime the license service is invoked.
  • FIX: Network deployed license service did not work in some circumstances when the URL included a port value.


What's New!! in Version 2010 R2

  • NEW: Support for leased floating licenses which allow licenses to be borrowed for a specified amount of time.
  • NEW: Support for upto 2040 features (up from 32 supported previously) in every license. You can use these features to enable/disable specific modules/functionality in your software.
  • NEW: Support for multiple keys per license project. The same license project can now be used for newer versions or for altogether different products.
  • NEW: Support for persisted per-license custom information. This can be used to track license usage beyond the in-built scenarios like max usage days, max executions, etc. For example, this can be used to track usage of each individual feature embedded in license.
  • NEW: Native support for MySQL databases in the license service.
  • NEW: Support for any database to be used in the license service.
  • NEW: Ability to verify local time with the license service.
  • NEW: Ability to test if the license service is reachable and working properly.
  • NEW: Ability to enable/disable licenses in the license service from your software via API.
  • NEW: Ability to limit serial validations using various modes.
  • NEW: Date Rollback Detection in licenses.
  • NEW: Ability to automatically log exceptions if any are thrown during operation of the license service.


CryptoLicensing Generator UI

  • NEW: New placeholder %date% and %date:format% available during post-generation license processing.
  • NEW: Ability to specify certain data fields in the "Properties User Data Plugin" as excluded from the generated license. This allows you to specify extra information during license generation for your own records.
  • NEW: New placeholder %df:xyz% available during post-generation license processing which gives you access to the values specified for various data fields via the"Properties User Data Plugin".
  • NEW: The %list...% placeholder now allows any other valid placeholder inside it including %df:xyz%.
  • NEW: Saves the active user-data plugin, processor plugin, and machine code provider plugin and sets them to be active the next time the license project is loaded.
  • NEW: The "Project Properties Dialog" now allows you to test if the license service is reachable and working properly.
  • NEW: Various machine code providers (normal, explicit, test mode) allow you to test machine-code and activation related functionality.
  • FIX: "Export To File" functionality did not work in some circumstances.


Software-side API and Generator API

  • NEW: CryptoLicenseGenerator.GetUserDataPluginFromName method.
  • NEW: CryptoLicense.GetCurrentActivationCount method and LicenseService.GetCurrentActivationCount method.
  • NEW: CryptoLicenseGenerator.LoadProject(Stream stream) method.
  • CHANGE: Verbose exceptions thrown when validation of serials fails in the license service.
  • NEW: CryptoLicense.VerifyLocalTimeWithService method and LicenseService.VerifyLocalTimeWithService.
  • NEW: CryptoLicense.PingLicenseService method and LicenseService.PingLicenseService method.
  • NEW: CryptoLicense.Enable/DisableInLicenseService methods and LicenseService.Enable/DisableInLicenseService methods.
  • NEW: LicenseService.CreateLicenseInstance method to allow customer-deployed license service to use custom licenses (for example for locking service to dongle-based machine code).
  • CHANGE: All limits are checked even if one or more limits fail.
  • NEW: CryptoLicense.ResetStatus method to force revalidation.
  • NEW: Custom information related methods CryptoLicense.SetCustomInfo, CryptoLicense.TryGetCustomInfo, CryptoLicense.ResetCustomInfo and CryptoLicense.RemoveCustomInfo.
  • CHANGE: CryptoLicense.IsFeaturePresent and CryptoLicense.IsFeaturePresentEx methods now only check cryptographic signature and not validate the license limits.
  • CHANGE: By the time LicenseService.OnActivate is called, generator settings such as 'Lock to machine' are set.
  • NEW: Overloads of LicenseService.ImportLicensesIntoDisabledLicenseTable and LicenseService.ImportLicensesIntoLicenseTable with connectionString parameter.
  • NEW: ShareIt and Plimus e-commerce integration now checks remote IP address to verify that request is coming from genuine servers.
  • NEW: CryptoLicense.DetectDateRollback property.
  • NEW: CryptoLicenseGenerator.LoadLicenseCode method to load generator settings from license code. Allows you quickly initialize the generator to have the same settings as the license code, change some settings and generate a new license code.
  • NEW: LicenseService.LogExceptions property.
  • FIX: CryptoLicense.Status always returned Deactivated in certain circumstances.



What's New!! in Version 2010

  • NEW: The license service now works in Medium Trust and does not require Full Trust privileges on the web server.
  • NEW: The validation component (LogicNP.CryptoLicensing.dll) and the generator API (LogicNP.CryptoLicensing.Generator.dll) now works on Mono.
  • NEW: The same license service can now be used for multiple license project files.
  • NEW: Added Network floating licenses (customer-deployed license service) support. The service can be run as a Tray app or Windows service.
  • NEW: The minimum cryptographic key strength is now 64-bits instead of 384-bits. This enables shorter license codes. For example, when using 64-bit key strength, only a 32 character license code is generated even when using Base32 encoding.
  • NEW: CryptoLicense.GetLicenseFromProfile will now add the returned license to the 'License' table.
  • NEW: Service notifications caused by the 'Notify License Service When Validated' setting are now recorded in the license service database.
  • NEW: SerialValidation database table now stores the user-data embedded in the returned license.
  • NEW: Added Anti-Debug / Anti-Tracing setting to protect against running under debuggers, profilers or tracers.
  • FIX: Customer deployed floating license server would sometimes stop working after 5-10 minutes.


CryptoLicensing Generator UI

  • NEW: Added 'Double' data field type in 'Data Fields' plugin.
  • NEW: It is now possible to specify in the UI the machine code and user data to use when activating license or validating serial. One use of this is to activate licenses or validated serials on behalf of the customer.
  • NEW: Deactivation codes can now be validated via UI and API.


Software-side API and Generator API

  • NEW: Ability to create new project files via generator API.
  • NEW: Ability to create/modify/remove profiles to a project via the generator API.
  • NEW METHOD: Virtual CryptoLicense.LoadEvaluationInfo and CryptoLicense.SaveEvaluationInfo methods which can be overridden to provide your own storage for persisting evaluation info.
  • NEW: CryptoLicense.GetLicenseFromProfile now stores the source MachineCode in the license service database.
  • NEW: Added LicenseService.DefaultSettingsFilePath property.
  • NEW: Added CryptoLicense.LicenseServiceSettingsFilePath property.
  • NEW: Added LicenseService.DBConnection property.
  • NEW: Added CryptoLicense.DeleteDeactivationRecord method.
  • NEW: Added LicenseService.GetIPAddress method.
  • NEW: Added CryptoLicenseGenerator.GetActiveProfile method.
  • NEW: Added CryptoLicenseGenerator.GetActiveUserDataPlugin method. Use this method, it is now possible to get a specific data field value specified via Generator UI.
  • NEW: Added CryptoLicenseGenerator.ValidateDeactivationCode method.
  • NEW: Added CryptoLicense.DeactivateLocally method.
  • FIX: CryptoLicense.GetLicenseFromSerial and CryptoLicense.GetLicenseFromProfile did not return specified user data in returned license.
  • FIX: If a machine has been deactivated, the same machine can now be activated again.



What's New!! in Version 2009 (v2.0)

CryptoLicensing Generator UI

  • NEW: Support for e-commerce integration with various providers like PayPal, ShareIt, Plimus, etc. Includes ready-to-use license generators for these e-commerce providers which can automatically perform order-fulfillment and license delivery when using your preferred e-commerce provider.
  • NEW: Ability to enable/disable tamper checking (date rollback) when using trial licenses.
  • NEW:String and number data fields can now have standard values that can be selected via a dropdown list.
  • NEW:Last specified values for 'Data fields' are now restored when project is loaded.
  • 'Insert code in template' now replaces placeholders when generating serials also.
  • NEW:It is now possible to record IP addresses when licenses/serials are activated/validated.
  • NEW:It is now possible to explicitly specify License ID when generating license - this is mainly used when changing the settings of an already issued license.
  • NEW:Validation of licenses can now be done in two modes: cryptographically validation only or cryptographically and limit validation.
  • NEW:When generating machine-locked licenses, machine code can be now be specified using Base64 or Base32 encoding.
  • CHANGE: Minor CryptoLicensing Generator changes to make it more user-friendly.

Software-side API and Generator API

  • NEW: Added 'userData' parameter to CryptoLicense.GetLicenseFromSerial and LicenseService.ValidateSerial - this allows setting custom user-data in returned license.
  • NEW: Added CryptoLicense.EnableTamperChecking property and CryptoLicenseGenerator.EnableTamperChecking property.
  • NEW: Added CryptoLicense.UseHashedMachineCode property.
  • NEW: New CryptoLicense.IsSerial, CryptoLicense.GetLicenseFromSerial methods.
  • NEW: New LicenseService.LogException method to enable troubleshooting of a live license service.
  • NEW: Added CryptoLicense.EncodeToBase32String, CryptoLicense.DecodeFromBase32String, CryptoLicense.Base64StringToBase32String and CryptoLicense.Base32StringToBase64String methods.
  • CHANGE: CryptoLicense.CurrentUsageDays and CryptoLicense.RemainingUsageDays and the underlying trial engine now consider whole days so it doesn't matter which time of day you are validating.
  • CHANGE: Reworked OnValidateSerial so that it is now easy to customize the serial validation process.
  • CHANGE: LicenseService.Deactivate, DeregisterFloatingLicense, IsLicenseDisabled and NotifyValidated now return encrypted boolean strings for better security.
  • CHANGE: CryptoLicenseGenerator.ID property is now read-write.
  • FIX: Bug in CryptoLicense.IsEvaluationLicense.


What's New!! in Version 2009 (Build 591519)

CryptoLicensing Generator UI

  • NEW: It is now possible to validate activated licenses using the 'Validate' button. For this, you need to specify the URL of your license service in the Project Properties Dialog (Ctrl+P).
  • NEW: A new low-priced 'Sales Edition' is now available for purchase if your license generation is handled by resellers or other 3rd parties.
  • NEW: Project file is automatically copied to the local path where you last created the license service files. When testing on the local host, this can be useful to keep the project file used by the license service updated.
  • NEW: 'Import Licenses' functionality of the license service can now use just the license codes directly and does not require the license ids.
  • NEW: 'Import Licenses' functionality of the license service can now import license codes in the 'Disabled License' table. This can be used to keep a list of disabled licensed which should be revoked.
  • NEW: When a license code is validated, the embedded user data, if any, is displayed in the active user data provider.
  • FIX: Project file failed to load when 'Floating' activations was specified for a profile.
  • FIX: 'Max Instances' profile setting did not save and load properly.
  • FIX: 'Insert In Template' setting was not getting saved in the project file.
  • FIX: Error occurred when trying to generate a license service before a newly created project is saved. You are now prompted to save the project file first if this happens.

Software-side API and Generator API

  • NEW: Added CryptoLicense.Deactivate method.
  • NEW: Added CryptoLicense.ValidateSignature method.
  • NEW: Added CryptoLicense.IsLicenseDisabledInService method.
  • NEW: CryptoLicense.CurrentUsageDays, CurrentUniqueUsageDays, CurrentExecutions and CurrentCumulativeRuntime properties are now read-write.
  • NEW: Added CryptoLicense.RemainingUsageDays, RemainingUniqueUsageDays, RemainingExecutions and RemainingCumulativeRuntime properties.
  • NEW: Added CryptoLicense.IsEvaluationTampered method.
  • NEW: Added CryptoLicense.ResetEvaluationInfo method.
  • NEW: Added CryptoLicenseUserDataPlugin.SetUserData method.
  • NEW: Added CryptoLicenseGenerator.SetActiveProfile method.
  • NEW: Added LicenseService.IsLicenseDisabled license service method.
  • NEW: CryptoLicense.IsEvaluationLicense can be used to determine whether license is an evaluation license even before it is validated.
  • FIX: Licenses not loaded and saved correctly to registry or file.
  • FIX: CryptoLicense.GetLicenseFromProfile not working
  • FIX: Cannot activate activated licenses ('Limit activations to') from ShowEvaluationInfoDialog. (.Net).
  • CryptoLicense.GetLicenseFromProfile not working correctly.


What's New!! in Version 2009

  • Initial release! CryptoLicensing for ActiveX provides a robust, yet easy way to add licensing, copy-protection and activation capabilities to your VB6, VBA, RealBasic, Delphi, Borland, MFC, ATL, C++, etc applications, libraries, components and controls. CryptoLicensing for ActiveX uses the latest military strength, state-of-the-art cryptographic technology to ensure that your software and intellectual property is protected.