SDKs
C++ SDK
78min
integrating software licensing into your c/c++ application is straightforward with the licensespring sdk simply import our sdk into your project, and you're ready to go if you don't find the binaries for your specific environment, contact our sales department deprecation warning for any questions contact support or sales mac future releases of the c++ sdk will lose support for legacy os versions <10 15 specific cut off version will be published at a later date linux centos 7 will be removed in 7 33 0 supported operating systems windows windows 7 and later, we provide sdk builds created with visual studio 2015, 2017, 2019 and 2022 (vc140, vc141, vc142, vc143) mac macos 10 12 sierra and later for the x86 64 version and macos 11 0 big sur and later for the arm version, sdk was built with clang 9 0 linux at least ubuntu 18 04 and 20 04 lts are supported, sdk should work fine with any linux distribution that can run gcc 7 5 with c++11/14 we provide sdk builds created with gcc 7 5 and 9 2 1 c/c++ sdks for windows licensespringcppsdk v7 37 0 vc140 zip licensespringcppsdk v7 37 0 vc141 zip licensespringcppsdk v7 37 0 vc142 zip licensespringcppsdk v7 37 0 vc143 zip licensespringcppsdk v7 37 0 mingw64 zip c/c++ sdks for mac the x86 64 version of the macos sdk was built with macos sdk 10 12 the arm version of the macos licensespring sdk was built with macos sdk 11 3 and it's compatible with macos sdk 11 0 and above the macuniversal build contains both the x86 64 and arm binaries combined with lipo licensespringcppsdk v7 37 0 macuniversal zip licensespringcppsdk v7 37 0 mac zip licensespringcppsdk v7 37 0 macarm zip c/c++ sdks for linux armhf stands for arm hard float, hardware floating point support licensespringcppsdk v7 37 0 linux clang14 zip licensespringcppsdk v7 37 0 linux clang11 zip licensespringcppsdk v7 37 0 linux gcc9 2 zip licensespringcppsdk v7 37 0 linux gcc7 5 zip licensespringcppsdk v7 37 0 linux gcc7 5 oldabi zip licensespringcppsdk v7 37 0 linux arm zip licensespringcppsdk v7 37 0 linux armhf zip licensespringcppsdk v7 37 0 linux aarch64 zip licensespringcppsdk v7 37 0 linux centos8 zip licensespringcppsdk v7 37 0 linux powerpc64le zip licensespringcppsdk v7 37 0 linux musl openssl3 x86 64 zip the build for centos 7 required installation of a newer version of a compiler (gcc) than one supplied in default system repositories gcc 7 is used from the centos release scl repository instead of a default 4 8 5 installation of a cmake3 is also required instead of 2 8 found in system repositories the "epel" repository was used to obtain it these updates are also required in order to build samples the build for centos 7 is deprecated as of v7 33 0 when using a static lib, the code should define ls static (in preprocessor definitions in vs for example see sample project for static lib) we provide 2 separate sdks for linux licensespringcppsdkvx x x linux oldabi zip has glibcxx use cxx11 abi compiler flag set to 0, and should be used to link against some older libraries release notes april 18, 2025, v7 37 0 changed rpath for linux libraries to $origin , which fixes liblicensespring not finding its dependencies provided by licensespring added yubikey support for licenses that require hardware key dongles on linux and macos targets, new libraries are placed in bin/shared hardwarekey and bin/static hardwarekey libraries in bin/shared and bin/static work as expected without linking to libykpiv linux versions targeting arm and ppc64le don't link to ykpiv on msvc targets, new libraries are placed in bin/dynamic hardwarekey we don't support static linking to libykpiv added a new class licensespring hardwarekeyoptions used for fetching yubikey serial numbers, and setting the yubikey pin and serial added a licensespring hardwarekeyoptions setter and getter to licensespring extendedoptions added the corresponding c inteface for licensespring hardwarekeyoptions added a new exception licensespring hardwarekeyexception and corresponding licensespring error codes added an optional password parameter to license borrow and licensehandler borrow that allows borrowing user based licenses added borrowfloatinglicensewithpassword and borrowfloatinglicensetillwithpassword functions to the licensehandler c interface april 8, 2025, v7 36 0 update openssl to version 3 4 1 update curl to version 8 12 1 the sdk now throws licensespring oauthexception when sending an unknown client id oauth parameter the sdk now throws licensespring oauthexception when sending a malformed oauth token added einvalidclient error code to lserrorcode added eoauthtokenmalformed error code to lserrorcode prolonged lifetime of the internal logger singleton and the internal openssl crypto provider by marking their constructor invocations with \[\[gnu constructor]] this change is relevant only for gcc and clang compilers added overload for basemanager getproductdetails that retreives product level custom fields and filters products by environment string added overload for licensehandler getproductdetails that retreives product level custom fields and filters products by environment string added getproductdetailswithcustomfieldsandenv function in c interface for licensehandler added productdetails customfields getter added customfields getter in c interface for productfields see csample for usage instructions updated cppsample and csample changed code formatting rules in header files february 20, 2025, v7 35 0 added oauth client credentials authentication to the license api added a factory function configuration createoauth for oauth authentication added a factory function createlsconfigurationoauth to the c interface added configuration isoauth , configuration getclientid and configuration getclientsecret added the same getters to the c interface updated samples with oauth, see appconfig cpp and appconfig c added setcryptoproviderkey and setcryptoprovidersalt setters to the c interface for extendedoptions using the key setter is required for oauth authentication february 14, 2025, v7 34 0 added a new licensing agreement for the sdk added overloads for online and offline activation functions, which enables sending device variables on licnese activation added license isnegativeconsumptionallowed , licensehandler islicensenegativeconsumptionallowed and corresponding c interface getters fixed memory leak in windows hardware id algorithm added license orderstoreid and licensehandler getorderstoreid and corresponding c interface getters for the order store id fixed a crash when calling license registerfloatingfeature and license releasefloatingfeature with the offline floating server changed certificate bundle ssl verification to check multiple bundles on the filesystem improved logging on failed ssl verification september 03, 2024, v7 33 0 fixed license object not updating after license relink in cppsample fixed license validitywithgraceperiod and license validitywithgraceperiodutc adding extra hour in case of dst added more verbose error messages for license file writing added extendedoptions enablelicensecorruptioncheck , extendedoptions islicensecorruptioncheckenabled and configuration islicensecorruptioncheckenabled and associated c interface functions, see sdk documentation for more details added basemanager islicensefilecorrupted and associated licensehandler and c interface functions fixed hardware id validation on cloud provider algorithms added license signature validation to license localcheck added curl connection timeout setter and getter to extendedoptions , configuration , and corresponding c interfaces added new userlicense and userlicensesdata classes to encapsulate information about multiple licenses of the same product assigned to a single user added licensemanager getuserlicenses and licensehandler getuserlicenses to retrieve userlicensesdata objects from the license api added a new licenseid fromuser constructor that takes a server side license id parameter from userlicensesdata added license serverid and licensehandler getlicenseserverid updated the user based c++ sample changed return values of licensehandler licensefilename and licensehandler licensefilepath to const std wstring& for c interface compatibility deprecated the centos 7 sdk build may 24, 2024, v7 32 0 fixed generating hardware id on aws instances improved memory handling of license api wrapper added air gapped license pre provisioning through online activation added getdatalocation , setdatalocation , getlicensefilename , setlicensefilename functions to the c licensehandler interface fixed offline license update throwing productmismatchexception implemented proxysettings fetchproxysettings that tries to automatically fetch current user proxy settings april 19, 2024, v7 31 0 fixed certificate lookup on macos fixed documentation for license feature added license trialperiod member function, which returns the trial duration of the current license fixed deviceidalgorithm wincsproductid failing on windows startup added more robust check of tampered vm detection dll froze the msvc compiler version to 1936 (runtime library version 14 36 32532) in the v143 toolset windows build february 24, 2024, v7 30 0 added new hardware id algorithm deviceidalgorithm autoidwincloud that tries to compute cloudplatformsid with wincsproductid as the fallback fixed basemanager reconfigure crashing the sdk february 09, 2024, v7 29 0 added license transferlimit member function, which returns the limit of license transfers between devices added license isdevicetransferallowed and license isdevicetransferlimited member functions license syncfeatureconsumption now correctly throws the notenoughconsumptionexception exception added optional includeexpiredfeatures parameter to license check updated cppsample and csample to print device transfer info updated cppsample and csample to get expired features january 08, 2024, v7 28 1 fixed handling older non floating features fixed getting product details in the c sdk sample december 12, 2023, v7 28 0 added handler for license user activated max times error code, the sdk throws licensenoavailableactivationsexception in case of this error on license activation fixed floating in use count parsing for offline floating licenses added floating feature registration and releasing added floating feature watchdog added optional flag includelatestversion to licensemanager getproductdetails implemented productdetails latestversion() getter updated cppsample and csample to handle floating features, floating feature watchdog and latest version october 11, 2023, v7 27 1 curl updated to v8 4 0 august 31, 2023, v7 27 0 fixed issues in xcodeproj files for c and cpp sdk samples improved mingw sdk build, added vm detection dll updated certificates bundle file updated static libraries for windows msvc august 25, 2023, v7 26 1 fixed false positive malware detection in virtual machine detection module fixed false positives and improved detection of hyper v august 21, 2023, v7 25 0 added cmake build for cppsample on windows(msvc) added logging to air gap activation implemented grace period feature added isgraceperiodstarted , graceperiodenddatetime , graceperiodenddatetimeutc , graceperiodhoursremaining methods to license class added setgraceperiod , getgraceperiod methods to extendedoptions class added requestdateinvalidexception and erequestdateheaderinvalid error code renamed methods related to subscription grace period to license issubscriptiongraceperiodstarted , license subscriptiongraceperiod fixed handling of absolute paths on macos and linux fixed issues with false positive vm detection, improved logging for vm detection module fixed incorrect metadata deserialization issue openssl updated to v3 1 2 curl updated to v8 1 2 july 14, 2023, v7 25 0 ssl certificate verification now enabled by default moved verification of confirmation code to the activateairgaplicense method added airgapactivationexception , it occurs when confirmation code verification fails added licensehandler islicenseairgapped and license isairgapped methods added licensehandler getlicensepolicyid and license policyid methods added improvement loading license if exist when changing license data location, see setdatalocation added signature verification when handling license borrowing response added missing options to configuration and extendedoptions structs for c interface added to c interface lsextendedoptions setalternatekey function that accepts c string added subset of embedded certificates, improved logic for ssl certificate verification and lookup added support for schannel tls backend for curl on windows added support for secure transport tls backend for curl on macos implemented feature of loading ca certificates from os and ca bundle file implemented caching of product details, added license productdetails method implemented air gap license deactivation, added license deactivateairgap and license getairgapdeactivationcode methods updated airgapqtsample to handle air gap deactivation fixed air gap trial license detection issue fixed confirmation code verification issue for air gap licenses fixed signature verification issue when using older versions of libcurl fixed signature verification issue for older api fixed prepending slash path issue when setting license data location fixed issues with unicode symbols in license file path for macos and linux improved exception handling improved alternative device id creation on linux improved air gap activation security june 12, 2023, v7 24 0 added metadata field for productdetails , customer , license and licensefeature classes added logging and handling exceptions to license watchdog added watchdogexception , it occurs in case creating watchdog thread failed added extendedoptions setalternatekey method that accepts string added minor improvements and logging for offline activation openssl updated to v1 1 1 21(u) curl updated to v8 1 2 fixed issue of creating a log file when logging is disabled security patch, that address vulnerability of bypassing license signature verification may 17, 2023, v7 23 0 updated sdk demo samples implemented better handling of floating licenses in winsample, csample and cppsample implemented unlimited consumption feature added license isunlimitedconsumptionallowed , licensefeature isunlimitedconsumptionallowed and licensehandler islicenseunlimitedconsumptionallowed methods fixed issue of saving local license after revoking floating license fixed issues with error handling for offline and air gap activation fixed os version detection issue for windows 11 april 27, 2023, v7 22 0 improved security check for offline license activation and refresh, implemented offline signature verification improved error handling for offline license activation and refresh, the sdk will throw more specific exceptions in case of errors openssl updated to v1 1 1 20(t) curl updated to v8 0 1 updated json for modern c++ to v3 11 2 fixed issue of json serialization when license data contains invalid utf 8 bytes april 04, 2023, v7 21 0 included curl and openssl header and lib files added readme file with curl and openssl version information added sdk version to log file added new device id algorithms deviceidalgorithm gen2 and deviceidalgorithm autoidgen2 improved security for license updateoffline method fixed several issues with offline activation fixed licensemanager relinklicense method fixed issue of encrypting long strings february 08, 2023, v7 20 0 added apikeyexception and corresponding error codes einvalidapikey , ereadonlyapikey , erevokedapikey and eapikeyproductnotallowed added floatingtimeoutexpiredexception implemented license maxborrowtime method implemented grace period feature for subscription licenses see license graceperiod and license validitywithgraceperiod implemented license isgraceperiodstarted method fixed issue of auto revoking floating license at app exit when using static licensehandler object fixed error handling for successful responses during license activation and online check fixed issue of missing mac sdk version information improved floating expiration logic and local license check removed license signature , implemented faster loading and saving of local license january 09, 2023, v7 19 0 implement support for duration fields in license policy file for air gap activation implemented a couple of alternative device id algorithms for windows see deviceidalgorithm wincsproductid and wincryptographyid implemented relinklicense method added license stoplicensewatchdog method, same added for licensehandler and c interface fixed issue with incorrect rpath for mac universal dynamic libs improved error handling in case license transfer is limited or not allowed october 24, 2022, v7 18 0 improved security, implemented license signature v2 verification implemented setuplicensewatchdog function for c interface implemented sso activation using auth code for windows builds vm detection code is moved to satellite dll fixed issue of incorrect return value for licensehandler getmaintenancedaysremaining method fixed several problems with linux machine id in some of the distributions and docker containers updated ssosample and csample updated documentation note starting from v7 18 0 the vm detection module for windows has been moved to lsvmd dll this dll is present in the sdk zips customers need to distribute this dll with their applications only if they use the virtual machine detection detection for windows, it can be simply ignored otherwise and not distributred the licensespring c++ sdk loads this dll at runtime when checking if current windows is a virtual machine there is no need to link against it when building your application lsvmd dll cannot be used outside of licensespring and the sdk checks whether the dll is tampered before using functions from it august 15, 2022, v7 17 0 floatingclient borrow renamed to floatingclient borrowlicense implemented getting instance id for cloud platforms aws, azure, and gcp added deviceidalgorithm cloudplatformsid and deviceidalgorithm autoid fixed issue of virtual methods in licensefeature class implemented error handling for 401, 403, 407 http errors see authorizationexception and eauthorizationerror error code added device variables to offline deactivation file july 22, 2022, v7 16 0 implemented methods getairgapactivationcode , verifyconfirmationcode and activateairgaplicense in licensemanager and licensehandler classes for activation of air gap licenses added deviceidalgorithm enum and extendedoptions setdeviceidalgorithm function deviceidalgorithm gen1 option can be useful for air gap activation added configuration issslcheckenabled and extendedoptions enablesslcheck , see sdk documentation for more details added source sdk header added floatingclient borrow method added airgapqtsample project improved ssosample, added support for authorization with default browser implemented sending optional param sdk lang implemented license isborrowed and licensehandler islicenseborrowed methods fixed virtual destructors and header files for cryptoprovider and licensestorage fixed setting license file path and name through the licensehandler fixed instantiating locale issue for older libcxx versions fixed several issues and improved sdk < > floatingserver integration updated sdk documentation may 31, 2022, v7 15 0 improved integration with floating server updated sdk documentation added licenseid setpassword method added methods for consumption licenses license consumptionperiod , license isresetconsumptionenabled , licensehandler isresetlicenseconsumptionenabled , licensehandler getlicenseconsumptionperiod added methods for consumption license features licensefeature maxoverages , licensefeature isoveragesallowed , licensefeature consumptionperiod , licensefeature isresetconsumptionenabled fixed typo in configuration isloggingenabled method fixed detection of os name for windows 11 may 12, 2022, v7 14 0 implemented license borrowing feature see license borrow , licensehandler borrowfloatinglicense added license floatingenddatetime , now floating license expires when floating period ends added licensehandler registerfloatinglicense method, it is equivalent to online license check for cloud floating license added borrowlicenseexception and eborrowlicenseerror , eborrowingnotallowed error codes added configuration setuserinfo and configuration getuserinfo methods for passing generic user defined data to the backend added licenseid trim , license identifier will be automatically trimmed if you use licenseid from function fixed several minor bugs and w4 warnings, stability and performance improvements april 19, 2022, v7 13 0 implemented new api set for managing device variables see devicevariable , license getdevicevariables , license adddevicevariable etc now device variables a being stored along with local license, managing device variables available both locally and on the backend see sdk documentation for more details fixed problem of auto revoking floating license implemented adding consumption for offline floating license added license registerfloatinglicense method updated testfloatingserver function for cppsample fixed name conflict with google test framework in encryptstring h march 31, 2022, v7 12 0 added sdk build for vc143 (visual studio 2022) improved network communication security added address info data to the customer class (address, city, state, country, postcode) implemented ability to set desired license policy when requesting trial license see licensemanager gettriallicense fixed issues with floatingclient registerlicense and floatingclient isonline march 16, 2022, v7 11 0 implemented single sign on (sso) feature see licensemanager getssourl and licensemanager activatelicense using token implemented extendedoptions setalternatekey , extendedoptions setalternateserviceurl methods added ssosample added filestoragewithlock implementation for linux and macos added license startdate method and cannotbeactivatednowexception , see sdk docs for more details added new exceptions ssoexception , ssotokenexception and trialnotallowedexception fixed issue of incorrect license status in case license is copied from other device (in case of device id mismatch) november 17, 2021, v7 10 0 added licenseuser isinitialpassword method fixed issue with license file path on linux and macos improved performance of api requests november 3, 2021, v7 9 0 added new class filestoragewithlock for license synchronization between threads and processes added data check when sending device variables improved support of handling multiple licenses, added basemanager reloadlicense method improved loading and saving local license to file, updated documentation improved mutex management in licensefilestorageex class fixed bad locale name issue on some platforms october 04, 2021, v7 8 0 added new methods license isautoreleaseset and license setautorelease , the same for licensehandler added new class licenseuser , see also license licenseuser implemented getting license user info when activating or checking a license implemented new api request licensemanager getlicenseusers added sdk sample for qt framework ( https //qt io https //qt io ), see samples/qtsample added sdk sample for juce framework ( https //juce com https //juce com ), see samples/jucesample fixed issue with removing local license, clearlocalstorage method now also removes license data from memory fixed issue with localized dates in requests signature september 15, 2021, v7 7 0 added new methods to licensehandler class, see licensehandler datalocation and licensehandler setlicensefilename added new documentation for basemanager class improved licensestorage classes, added new class licensefilestoragebase fixed logging issues september 01, 2021, v7 6 0 added new classes cryptoprovider and defaultcryptoprovider now it is possible to set crypto key or salt, or implement custom cryptoprovider added new license data fields, see license transfercount and license floatinginusecount added ability to reset local consumption when updating license offline, see license updateoffline implemented new license storage model see licensestorage abstract class and licensememorystorage , licensefilestorage classes now it possible to store local license in custom locations like your db, windows registry, etc, by implementing licensestorage implemented interprocess synchronization for local license, see licensefilestorageex class implemented security improvements for offline activation (offline activation guards) see extendedoptions enableguardfile improved floatingclient , see changes in floatingclient register/unregister and license floatingclientid improved handling of installationfiles , added helper struct installfilefilter , updated licensehandler and c interface improved vm detection, fixed false positive detections august 02, 2021, v7 5 0 licensemanager gettriallicense now returns licenseid , that incudes initial password for user based products implemented license updateoffline and licensehandler updateoffline functions, that allow offline license updates added new fields to installationfile class environment, eula link, release notes link, size and channel implemented filtering of installation files by environment and channel added local consumption information to offline deactivation files added clocktamperedexception instead of datetimecheatingexception fixed issue when deleting floating license june 9, 2021, v7 4 0 implemented new classes for interaction with on premise floating server see floatingclient , floatingserverinfo added new members to installationfile class, that allows implementing of intermediate updates see installationfile releasedate and installationfile requiredversion security improvements, encrypted internal sdk data, added header file for strings encryption see encryptstring h added sdk build for mac arm64 target architecture improved error handling updated json for modern c++ to v3 9 1 openssl updated to v1 1 1k curl updated to v7 77 0 march 17, 2021, v7 3 0 implemented feature for requesting overage for consumption licenses, see license syncconsumption added new class networkinfo and implemented feature allowing override ip, mac and host name determined by default see extendedoptions overridenetworkinfo fixed false positive detection of windows vms improved and optimized vm detection for windows fixed memory leak issue in static library due to missing openssl resources cleanup in curl improved winsample removed optionalproperties class february 26, 2021, v7 2 0 implemented expiry date for licensefeature class, see licensefeature expirydate and licensefeature isexpired fixed com initialization issue in vm detection module sdk build for linux with gcc 7 5 now has no dependency to std filesystem fixed static linkage issue in csample improved winsample february 15, 2021, v7 1 0 added new feature for storing user data inside license file, see license adduserdata , license removeuserdata and license userdata added new class optionalproperties for sending optional parameters when checking license allowed decreasing consumption, see new methods license updateconsumption and license updatefeatureconsumption curl updated to v7 75 0 created sdk build for linux compiled with gcc 7 5 added xcode proj files for sdk samples build for macos now supports macos 10 12 sierra and latter january 19, 2021, v7 0 0 implemented c interface , see header files inside include folder and csample main namespace was renamed to licensespring most of the classes have been reworked and improved fixed license daysremaining counter added new class licenseid , generalized api calls for user based and key based products added documentation removed management api (classes managementservice , licensedetails , orderdetails ) from the sdk, if you need access to management functionality please use api directly or through the java sdk november 20, 2020, v6 2 0 implemented change password feature for user based products see licensemanager changepassword and license changepassword added helper method license maintenancedaysremaining improved error handling when reading/writing license dynamic libraries have been digitally signed fixed minor linking issues on linux fixed static libraries for windows, disabled /gl compiler switch fixed redirection issue curl updated to v7 72 0 june 16, 2020, v6 1 0 implemented new licensehandler class, it is now part of the licensespring library fixed licensewatchdog timeout issue fixed license data update during online check experimental filesystem replaced with std filesystem for linux build a few methods of the licensemanager class were renamed june 8, 2020, v6 0 0 implemented vm detection feature see license isvmallowed , licensespringextendedoptions enablevmdetection and licensespringconfiguration isvm implemented floating licensing and licensewatchdog see license isfloating and license setuplicensewatchdog implemented overages feature for consumption license type see license isoveragesallowed and license maxoverages added new classes basemanager and managementservice functionality divided into management and en user license handling added new exception types vmisnotallowedexception , maxfloatingreachedexception and deviceblacklistedexception updated licensedetails and orderdetails classes, added new data fields thread safety and reliability improvements architecture changes and enhancements, licensemanager no longer a singleton fixed tls version issue third party libs updated to latest stable versions (openssl 1 0 2u, curl 7 70+) may 5, 2020, v5 5 2 fixed hostname issue for windows systems fixed problem with proxysettings added new exception type licensenoavailableactivationsexception april 28, 2020, v5 5 1 fixed consumption features update improved error handling april 24, 2020, v5 5 0 implemented increase feature consumption in offline mode improved consumption handling added new methods license updatefeatureconsumption , licensefeature localconsumption added helper method license feature , it returns feature by code improved error handling and added new exception class invalidlicensefeatureexception april 10, 2020, v5 4 4 improved error handling and fixed a few minor bugs added new exceptions missingemailexception and invalidorderidexception march 31, 2020, v5 4 3 added new helper method licensemanager isonline , for more details see header file improved license increasefeatureconsumption , removed redundant check and increased performance for windows default license file path changed to %localappdata%\licensespring%productcode%\license key if you use default license path in your app license will be transferred to new location by the sdk automatically added unknownlicensespringexception class improved licensehandler class license\ sendcustomdata renamed to license senddevicedata added new build for linux that compatible with old abi march 25, 2020, v5 4 1 added licensefeature name , now it's possible to get license feature name not only code added helper method license ismaintenanceperiodexpired fixed deactivation bug, timesactivated value wasn't updated properly improved online deactivation, see license deactivate fixed hardware id issue for windows systems where system disk or other piece of hardware could not be determined fixed linking errors for linux build march 04, 2020, v5 4 0 added new licensemanager gettriallicense method it accepts customer ptr, when issuing trial license also new customer will be created or license will be assigned to existing customer added license lastcheckdateutc and fixed license daysremaining method, see header file for more details added logging, see licensespringextendedoptions enablelogging improved hardware id detection for linux systems fixed issue of consumption features consumption changes were not stored to local license file properly fixed unreal engine compatibility issues, proxysettings and licensespringextendedoptions became classes instead of structs stability and performance improvements january 28, 2020, v5 3 1 fixed issue with company data member in customer class added orderdetails setorderid method january 27, 2020, v5 3 0 added license owner information, see license owner and console sample fixed hardware id issue in case of foreign (not english) locale fixed issue of consumption license features added exception in case home system variable is unavailable (applicable for linux and mac os x) december 27, 2019 v5 1 0 added new api request licensemanager getproductdetails , new class productdetails added licensespringconfiguration getlicensespringapiversion method it returns api version that sdk uses api version field added to offline activation/deactivation licensemanager gettrialkey replaced with licensemanager gettriallicense improved licensemanager createorder , new class licensedetails improved console sample, now demonstrates both user based and key based licensing approaches december 11, 2019, v5 0 0 user based licensing new classes customer and orderdetails added requests for creating licenses and orders see licensemanager createlicense and licensemanager createorder consumption license features see license features , license increasefeatureconsumption and licensefeature class added new methods license maxactivations and license timesactivated added ability to track mac address collecthostnameandlocalip renamed to collectnetworkinfo licensehandler sdk wrapper class, it helps handle sdk exceptions in one place new classes for managing app versions, see version h improved samples stability and performance improvements september 24, 2019, v4 6 0 new api request license sendcustomdata , it allows sending custom data to the platform data will be linked to a device, so on the platform see device variables changed license status logic, now it's possible to check whether license is active even if it was disabled see license isactive , license isenabled and license status september 19, 2019, v4 5 3 fixed online license check and hardware id issue new helper class version , helps compare app versions, during update for example minor performance improvements and improved wtl sample september 15, 2019, v4 5 2 fixed license isofflineactivated method improved sdk sample apps september 12, 2019, v4 5 1 improved error handling, added new error codes elicensedisabled and elicenseinactive licenseexpiredexception has been removed now in case of expired license the sdk throws licensestateexception with elicenseexpired error code fixed online license check fixed offline activation in ui sample september 9, 2019, v4 5 0 added new feature custom product (license) data fields, see license customfields and customfield h all exceptions now have error code, see licensespringerrorcodes h added new sample with gui, it's native windows app based on wtl (windows template library) added license maxdaysremainingvalue constant fixed sending of optional parameters app name and version august 19, 2019, v4 4 7 added new api method license isofflineactivated , returns true if license was activated in offline mode added new api method license isactive for convenience, equivalent to status() == licensestatus active fixed a few minor bugs, license isexpired now returns correct value for inactive or disabled license july 31, 2019, v 4 4 6 added ability to control network timeout interval added ability to set up proxy using proxysettings july 26, 2019, v 4 4 5 fixed expiry policy for subscription license type fixed license re enabling issue fixed missing config h/config cpp for linux and mac samples licensemanager dispose renamed to deinitialize july 9, 2019, v 4 4 4 fixed minor memory leak in errorhandler class fixed a few compiler and linker warnings stability and performance improvements july 8, 2019, v4 4 3 added static md configuration fixed a few memory leaks stability and performance improvements june 20, 2019, v4 4 2 fixed access violation crash when using sdk as a plugin for unreal engine fixed hardware id issue, now it's accessible for reading build for vc142 (visual studio 2019) openssl and curl updated to latest stable builds stability and performance improvements june 12, 2019, v4 4 1 new api method licensemanager dispose , it helps free up sdk resources on demand stability and performance improvements may 11, 2019, v4 3 0 new hardware id calculation algorithm, much more faster and secure consumption licensing, new methods increaseconsumptioncounter , totalconsumptions , maxconsumptions and new exception type notenoughconsumptionexception see sample app for details fixed bug of handling license check response may 8, 2019, linux v4 2 1 removed redundant dependencies fixed cmake scripts fixed relative path for shared libs april 23, 2019, v4 2 1 ability to set custom hardware id licensespringextendedoptions , all optional sdk configuration properties now brought together in extendedoptions class, see licensespringconfiguration h for details lib and dll folders changed to static and dynamic accordingly improved networking and error handling april 15, 2019, v4 2 0 license status, isactive now replaced with status for the license class, for more details see licensestatus h implemented getting of local ip address new and faster method of getting os version info improvements for licensetype class, new comparison operators and constructor april 8, 2019, v4 1 2 separate release for vc140 (visual studio 2015) fixed handling of max date time (applicable to validity period of perpetual license or not set maintenance period) fixed project files for the sdk and sample apps sdk dependencies (openssl and curl) updated to latest stable versions added script for building dependencies from sources