What's new in CryptoLicensing For MFC 2020 Build 200525

May 25, 2020
  • 2020 released with enhanacements, bug fixes and support for Visual Studio 2019.

New in CryptoLicensing For MFC 2018 Build 180516 (May 16, 2018)

  • Added support for Visual Studio 2017.

New in CryptoLicensing For MFC 2015 Build 171116 (Nov 17, 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.

New in CryptoLicensing For MFC 2015 Build 170316 (Nov 7, 2017)

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

New in CryptoLicensing For MFC 2015 Build 151116 (Nov 19, 2015)

  • Minor UI improvements.
  • Updated documentation.

New in CryptoLicensing For MFC 2015 Build 151102 (Nov 19, 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.

New in CryptoLicensing For MFC 2015 Build 150911 (Sep 12, 2015)

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

New in CryptoLicensing For MFC 2015 Build 150818 (Aug 19, 2015)

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

New in CryptoLicensing For MFC 2015 Build 150722 (Aug 19, 2015)

  • Minor UI improvements.

New in CryptoLicensing For MFC 2015 Build 150715 (Aug 19, 2015)

  • Minor UI improvements.
  • Updated documentation.

New in CryptoLicensing For MFC 2015 Build 150714 (Aug 19, 2015)

  • Updated documentation.

New in CryptoLicensing For MFC 2015 Build 150711 (Aug 19, 2015)

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

New in CryptoLicensing For MFC 2015 Build 150708 (Aug 19, 2015)

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

New in CryptoLicensing For MFC 2015 Build 150707 (Aug 19, 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.

New in CryptoLicensing For MFC 2015 Build 150616 (Aug 19, 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.

New in CryptoLicensing For MFC 2015 Build 150601 (Aug 19, 2015)

  • Updated documentation.

New in CryptoLicensing For MFC 2015 Build 150327 (Mar 27, 2015)

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

New in CryptoLicensing For MFC 2015 Build 150323 (Mar 23, 2015)

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

New in CryptoLicensing For MFC 2015 Build 150317 (Mar 17, 2015)

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

New in CryptoLicensing For MFC 2015 Build 150316 (Mar 16, 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.

New in CryptoLicensing For MFC 2015 Build 150304 (Mar 4, 2015)

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

New in CryptoLicensing For MFC 2015 Build 150219 (Feb 19, 2015)

  • FIX: Machine code checking failed under some circumstances.

New in CryptoLicensing For MFC 2015 Build 150210 (Feb 10, 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.

New in CryptoLicensing For MFC 2015 Build 150110 (Jan 10, 2015)

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

New in CryptoLicensing For MFC 2015 Build 150108 (Jan 8, 2015)

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

New in CryptoLicensing For MFC 2015 Build 141230 (Dec 30, 2014)

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

New in CryptoLicensing For MFC 2015 Build 141215 (Dec 30, 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 "" 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.

New in CryptoLicensing For MFC 2015 Build 141204 (Dec 30, 2014)

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

New in CryptoLicensing For MFC 2015 Build 141202 (Dec 30, 2014)

  • 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.

New in CryptoLicensing For MFC 2013 R2 Build 140916 (Dec 30, 2014)

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

New in CryptoLicensing For MFC 2013 R2 Build 140906 (Dec 30, 2014)

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

New in CryptoLicensing For MFC 2013 R2 Build 140731 (Dec 30, 2014)

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

New in CryptoLicensing For MFC 2013 R2 Build 140704 (Dec 30, 2014)

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

New in CryptoLicensing For MFC 2013 R2 Build 140617 (Dec 30, 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.

New in CryptoLicensing For MFC 2013 R2 Build 140606 (Dec 30, 2014)

  • Minor UI improvements.

New in CryptoLicensing For MFC 2013 R2 Build 140604 (Dec 30, 2014)

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

New in CryptoLicensing For MFC 2013 R2 Build 140313 (Dec 30, 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.

New in CryptoLicensing For MFC 2013 Build 130112 (Jan 29, 2013)

  • Minor documentation updates.

New in CryptoLicensing For MFC 2013 Build 130109 (Jan 29, 2013)

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

New in CryptoLicensing For MFC 2012 Build 621119 (Jan 19, 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.

New in CryptoLicensing For MFC 2011 R3 (Jan 19, 2012)

  • 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.

New in CryptoLicensing For MFC 2011 R2 (Jan 19, 2012)

  • 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
  • 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.

New in CryptoLicensing For MFC 2011 (Jan 19, 2012)

  • 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.

New in CryptoLicensing For MFC 2010 R2 Build 602103 (Nov 4, 2010)

  • 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 �te% and �te: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 �: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 �: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.

New in CryptoLicensing For MFC 2010 Build 592207 (Dec 8, 2009)

  • 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.