Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/teo-tsirpanis/hexlicense-mirror

A mirror of the once public HexLicense repository
https://github.com/teo-tsirpanis/hexlicense-mirror

delphi hexlicense license-management

Last synced: 22 days ago
JSON representation

A mirror of the once public HexLicense repository

Awesome Lists containing this project

README

        

NOTE: This repository is a mirror of an once public repository formerly located at
https://bitbucket.org/cipher_diaz/hexlicense/src/master/. For unknown reasons, it was
either removed or turned private.

In https://jonlennartaasenden.wordpress.com/2018/09/06/hexlicense-patreon-and-all-that/ (archived on
https://web.archive.org/web/20191103192600/https://jonlennartaasenden.wordpress.com/2018/09/06/hexlicense-patreon-and-all-that/
and https://archive.is/zIbwx), the repository's original author released HexLicense under LGPL v3.

Because open source licenses cannot be revoked, and because this project is far too interesting to vanish like that,
I created this mirror.

Hexlicense 1.0.4
================

- "THexLicense.Automatic" property has been removed, license sessions must be
manually started in your code by calling BeginSession(). The reason for this is that
the encryption layer could not be ready when HexLicense started. Before the encryption
layer can report ready, the cipher-key must be generated; This must be done early,
and the best place is the OnCreate event in either the main-form or a datamodule.

Example:

procedure TForm1.FormCreate(Sender: TObject);
const
LCipher = '{2C2844FB-19D4-41CF-85BC-219864D460D9}';
begin
// Build cipher key first
HexKeyRC41.Build(LCipher, SizeOf(LCipher));

// Make sure cipher is ready
if not HexKeyRC41.Ready then
begin
// Start a new licensed session
HexLicense.BeginSession();
end else
raise Exception.Create('Internal error, code: 667');
// Note: You dont want to use informative exceptions when it comes to your
// license management system
end;

- THexLicense had its own encryption methods that was used on the license packet.
This has been removed since the whole point of separate encryption, was to
compartmentalize the functionality.

- THexEncoder.EncodePtr has been rewritten, now returns the size of the encoded data
- THexEncoder.DecodePtr has been rewritten, now returns the size of the decoded data
NOTE: Depending on the cipher, the data produced when encoding can be larger than the.
original. Likewise, encoded data can be smaller than the decoded result.
Hence the actual size is now returned by both.
- THexEncoder.GetResultSizeOf() has been added. Like explained above, encoded/decoded data
can have different sizes. The GetResultSizeOf() takes the encoded data-length, and returns
a safe buffer-size to house the decoded version.

- Fixed a problem where properties were omitted in the FMX unit. For some reason the VCL_TARGET
switch was used to check if generics is supported (which obviously is 100% wrong). We now use
the switch for "modern filenames" as an indicator for generics. But that is a temporary "fix".
Generics should get it's own switch.

- Various minor adjustments and refactoring.

Hexlicense 1.0.3
================

This intermediate update adds two important factors:

1. The inclusion of HexBuffers which brings a wealth of low-level data manipulation features
2. Hotfix of potential data loss [*]

* Potential data loss
Textual data should have been stored as shortstring, sadly it was stored using a vanilla string.
This causes potential loss of characters should it breach 255 characters.

Important:

This update is *NOT* binary compatible with previous generated license data.
To use this update, make sure customers activate using the new code.

We realize this is an inconvenience, and in Ironwood a secondary loader has been added that
will recognize the old format and attempt to handle it. This is optional.

Having a "backup-loader" does open up for potential weakness, we strongly suggest that you
use this new edition as much as possible. There will be no more changes to the original
HexLicense fileformat.

Ironwood has different components and it's own IO mechanisms.
Once out, Hexlicense classic (which is the current product line) is regarded as legacy.
It will be maintained ofcourse, and updated, but focus will then shift to Ironwood and server-side
solutions.

Thank you

Jon Lennart Aasenden