Releases: Cryptolens/cryptolens-cpp
Releases · Cryptolens/cryptolens-cpp
1.2.1
- 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
- Fix memory leak in
MachineCodeComputer_COM
andMachineCodeComputer_COM_Recompute
ForMachineCodeComputer_COM
we leak 20 bytes of memory each time basic_Cryptolens object is created (typically a one-time event.)
ForMachineCodeComputer_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
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 whenMaxNoOfMachines
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 ofSignatureVerifier_CryptoAPI
are encouraged to upgrade and treat this as a memory leak occurring on every signature check.
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 tothird_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 aRequestHandler
and aSignatureVerifier
it now takes a single template paramterConfiguration
. Several defaultConfiguration
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
andConfiguration_Windows
automatically compare the expires field on the license key to the systems local clock. If one does not want to perform this check, useConfiguration_Windows_IgnoreExpires
orConfiguration_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. Themachine_code
parameters have been removed from all methods. If one desires the old behaviour one can use theMachineCodeComputer_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.