teo-tsirpanis / hexlicense-mirror

A mirror of the once public HexLicense repository

Home Page:https://jonlennartaasenden.wordpress.com/products/hexlicense-for-delphi/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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://web.archive.org/web/20191103192600/https://jonlennartaasenden.wordpress.com/2018/09/06/hexlicense-patreon-and-all-that/,
the repository's original author expressed his intent to make it a "public repository that everyone has access to", and
to be licensed under LGPL v3.

Because open source licenses cannot be revoked, and because this project is far too interesting to be vanished 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

About

A mirror of the once public HexLicense repository

https://jonlennartaasenden.wordpress.com/products/hexlicense-for-delphi/

License:GNU Lesser General Public License v3.0


Languages

Language:Pascal 74.5%Language:HTML 22.7%Language:PHP 1.2%Language:CSS 1.1%Language:JavaScript 0.6%