Skip to content

Releases: Cryptolens/cryptolens-cpp

1.2.1

12 Oct 08:28
Compare
Choose a tag to compare
  • For this and subsequent releases, third-party libraries will not be included in the release, since we want to avoid these dependencies taking up space in the git repository.
  • Added the get_key() method to fetch information about a license key without performing an activation.
  • Add a new way to compute machine codes based on information from Systemd, DBus as well as the file system.
  • Support changing the library type in CMake by setting the CRYPTOLENS_LIBRARY_TYPE cache entry in CMake.
  • Fixed a bug in the deactivate() method which caused problems when deactivating floating licenses.
  • Fixed constants belonging to the ActivateError class that were out of sync with the rest of the library.

1.2.0

02 Dec 12:44
Compare
Choose a tag to compare
  • Fix memory leak in MachineCodeComputer_COM and MachineCodeComputer_COM_Recompute
    For MachineCodeComputer_COM we leak 20 bytes of memory each time basic_Cryptolens object is created (typically a one-time event.)
    For MachineCodeComputer_COM_Recompute we leak 20 bytes each time the machine code is computed, i.e. each time we call activate().
  • Add deactivate() method.
  • Changes when using CMake on Windows.
  • Update to optional-lite 3.5.0 compared to previous release.
  • Update CA certificates bundled with the the release.

1.1.1

25 Oct 11:59
Compare
Choose a tag to compare

Minor bugfix release to make the library build when using Visual Studio.

1.1

07 Oct 21:39
Compare
Choose a tag to compare
1.1

This is a bug fix release. The only source code level change is marking many constructors explicit. The old behaviour can be restored by defining the preprocessor value CRYPTOLENS_20190701_ALLOW_IMPLICIT_CONSTRUCTORS.

The following bugs were fixed:

  • When using the namespace cryptolens_io::v20190401 the default validators were incorrectly flagging licenses as invalid when MaxNoOfMachines was set to 0 on the license key.
  • Several memory management issues were found and fixed in SignatureVerifier_OpenSSL. In particular a memory leak would occur when attempting to verify a license key with an invalid signature. In normal operations this would not occur. Several other leaks, occurring in rarely executed error branches where OpenSSL has failed to allocate memory, were fixed. Tests have been updated to include tests for these error branches.
  • Documentation for some API calls used by SignatureVerifier_CryptoAPI are unclear. We now destroy some objects that may not be necessary to destroy. To be on the safe side, users of SignatureVerifier_CryptoAPI are encouraged to upgrade and treat this as a memory leak occurring on every signature check.

1.0

24 May 10:30
Compare
Choose a tag to compare
1.0

High level overview

  • New api version v20190401 in namespace ::cryptolens_io::v20190401
  • Api version v20180502, i.e. namespace ::cryptolens_io::v20180502, remains source code compatible with previous releases. The file src/base64.cpp was moved to third_party/base64_OpenBSD/base64.cpp, third party build scripts may need to be updated.

Api version v20190401

A summary of the changes from api version v20180502 to api version v20190401:

  • Instead of directly templating basic_Cryptolens with a RequestHandler and a SignatureVerifier it now takes a single template paramter Configuration. Several default Configuration classes are provided, see README.md for more details.
  • The API now automatically performs more basic sanity checks using the ActivateValidator from the choosen configuration class. In particular, Configuration_Unix and Configuration_Windows automatically compare the expires field on the license key to the systems local clock. If one does not want to perform this check, use Configuration_Windows_IgnoreExpires or Configuration_Unix_IgnoreExpires.
  • All constructors now take a basic_Error & argument, allowing us to report failures from the constructor.
  • Machine codes are now computed in the library by selecting a MachineCodeComputer policy class. The machine_code parameters have been removed from all methods. If one desires the old behaviour one can use the MachineCodeComputer_static policy class.
  • Added support for the Cryptolens Messaging API with the last_message() method.
  • Added support for creating trial keys with create_trial_key().
  • (Mostly internal) Interface of RequestHandlers was changed.