ANNOUNCE:Software protection components (HASP)

Hi, All!

If you are looking for a tool to protect your application against
software piracy - have a look on the Delphi HASP Components for
Delphi2/3 on http://members.tripod.com/~sushko/hasp/index.htm.

Delphi HASP components package is a set of components for Borland
Delphi, wrapping the API of HASP electronic keys, excellent hardware,
created by Aladdin Knowledge Systems, Ltd to help software developers
protect their application against software piracy. HASP components
package simplify the protection of your product, created in Borland
Delphi 2.x or 3.x by wrapping the HASP API in Delphi standard way -
VCL method calls. The package consists of components, covering API
functionality of HASP, MemoHASP and TimeHASP keys.

Using the Delphi HASP component package, you will significantly
improve your perfomance because all hard-understanding code is already
implemented and all you need is to call the component's method or
property.

To say more, Delphi HASP component package has extended functionality
in comparison with HASP API functions. For example, Aladdin's
excellent keys provide a good basis of protection development,
implementing functions, which can be used, for example, to encode your
data. But the  usage of these functions requires hard-coding. The
Delphi HASP component package already has  implemented one of them,
based on the XOR algorythm with key codes (integers), provided by the
HASP key.

Another example for function extenders, implemented in Delphi HASP
component package, is a smart caching of the HASP API calls. The
problem is that the HASP key driver in some cases could be rather
slow. This may happen if there is no HASP key attached to the computer
(and you want  your software to work in demo mode) or under some
national releases of MS Windows'95 (Win95 OSR2 Russian, for example).
The timeout between the API call and it's responce can take 1-2
seconds, and, called in a cicle (in TDataSource.OnDataChange event,
for example) can significantly drop perfomance of your application.
The only way to eliminate this effect is to store results of HASP API
calls in local variables and use them instead of "bulk" API calls,
what means to create your own caching mechanism of reading key values.
This mechanism is already implemented in the Delphi HASP components
package, and you can easily manipulate it via THASP.Cached property
and THASP.Refresh method.
---
Yours,
  Serge Sushko,
  sus...@iname.com
  http://members.tripod.com/~sushko/