Beruflich Dokumente
Kultur Dokumente
Global
Vi l l a g e
Programmer's Guide
Programmer's Guide
Version 12
COPYRIGHTS AND TRADEMARKS
The HASP® system and its documentation are copyrighted (C)
1985 to present by Aladdin Knowledge Systems Ltd. All rights
reserved.
HASP®, MacHASP® and MemoHASP® are registered trademarks
of Aladdin Knowledge Systems Ltd.
NetHASP™, TimeHASP™, HASP36™, MemoHASP36™,
NetHASP36™, USBHasp™, and AladdinCARD™ are trademarks
of Aladdin Knowledge Systems Ltd.
All other trademarks, brands, and product names used in this guide
are trademarks of their respective owners.
2. License
Subject to payment of applicable license fees, Aladdin hereby
grants to you, and you accept, a personal, non exclusive and fully
revocable limited License to use the Software, in executable form
only, as described in the Software accompanying user
documentation and only according to the terms of this
Agreement:
(i) you may install the Software and use it on computers located in
your place of business, as described in Aladdin's related
documentation;
(ii) you may merge and link the Software into your computer
programs for the sole purpose described in the Developer's Guide;
however, any portion of the Software merged into another
computer program shall be deemed as derivative work and will
continue to be subject to the terms of this Agreement; and
3. Sub-Licensing
After merging the Software in your computer program(s)
according to section 2 above, you may sub-license, pursuant to the
terms of this Agreement, the merged Software and resell the
hardware components of the HASP® keys which you purchased
from Aladdin, to distributors and/or users. Preceding such a sale
and sub-licensing, you shall incorporate by reference in your
contracts with such distributors and/or users, and otherwise
provide for all distributors and/or users to be bound by, the
warranties, disclaimers, and license terms specified by Aladdin in
this Agreement.
4. Prohibited Uses
Except as specifically permitted in Sections 1, 2 and 3 above, you
agree not to
(i) use, modify, merge or sub-license the Software or any other of
Aladdin's products except as expressly authorized in this
Agreement and in the Developer's Guide; and
(ii) sell, license (or sub-license), lease, assign, transfer, pledge, or
share your rights under this License with/to anyone else; and
(iii) modify, disassemble, decompile, reverse engineer, revise or
enhance the Software or attempt to discover the Software's source
code; and
(iv) place the Software onto a server so that it is accessible via a
public network; and
5. Limited Warranty
Aladdin warrants, for your benefit alone, that
(i) the Software, when and as delivered to you, and for a period of
three (3) months after the date of delivery to you, will perform in
substantial compliance with the Developer's Guide, provided that
it is used on the computer hardware and with the operating system
for which it was designed; and
(ii) that the HASP® key, for a period of twelve (12) months after
the date of delivery to you, will be substantially free from
significant defects in materials and workmanship.
6. Warranty Disclaimer
ALADDIN DOES NOT WARRANT THAT ANY OF ITS
PRODUCT(S) WILL MEET YOUR REQUIRMENTS OR
THAT ITS OPERATION WILL BE UNINTERRUPTED OR
ERROR-FREE. TO THE EXTENT ALLOWED BY LAW,
ALADDIN EXPRESSLY DISCLAIMS ALL EXPRESS
WARRANTIES NOT STATED HERE AND ALL IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. NO ALADDIN'S
DEALER, DISTRIBUTOR, RESELLER, AGENT OR
EMPLOYEE IS AUTHORIZED TO MAKE ANY
MODIFICATIONS, EXTENSIONS, OR ADDITIONS TO
THIS WARRANTY. If any modifications are made to the
Software or to any other part of the Product by you during the
warranty period; if the media and the HASP® key is subjected to
7. Limitation of Remedies
In the event of a breach of the warranty set forth above, Aladdin's
sole obligation shall be, at Aladdin's sole discretion:
(i) to replace or repair the Product, or component thereof, that
does not meet the foregoing limited warranty, free of charge;
(ii) to refund the price paid by you for the Product, or component
thereof. Any replacement or repaired component will be
warranted for the remainder of the original warranty period or 30
days, whichever is longer. Warranty claims must be made in writing
during the warranty period and within seven (7) days of the
observation of the defect accompanied by evidence satisfactory to
Aladdin. All Products should be returned to the distributor from
which they were purchased (if not purchased directly from
Aladdin) and shall be shipped by the returning party with freight
and insurance paid. The Product or component thereof must be
returned with a copy of your receipt.
9. Limitation Of Liability
IN THE EVENT THAT, NOTWITHSTANDING THE
TERMS OF THIS AGREEMENT, ALADDIN IS FOUND
LIABLE FOR DAMAGES BASED ON ANY DEFECT OR
NONCONFORMITY OF ITS PRODUCT(S), ITS TOTAL
LIABILITY FOR EACH DEFECTIVE PRODUCT SHALL
NOT EXCEED THE PRICE PAID TO ALADDIN FOR
SUCH DEFECTIVE PRODUCT.
11. Termination
Your failure to comply with the terms of this Agreement shall
terminate your license and this Agreement. Upon termination of
this License Agreement by Aladdin:
(i) the License granted to you in this Agreement shall expire and
you, upon termination, shall discontinue all further use (including
without limitation sub-licensing) of the Software and other
licensed Product(s); and
14. Miscellaneous
This Agreement represents the complete agreement concerning
this License and may be amended only by a written agreement
executed by both parties. If any provision of this Agreement is
held to be unenforceable, such provision shall be reformed only to
the extent necessary to make it enforceable.
I HAVE READ AND UNDERSTOOD THIS LICENSE
AGREEMENT AND AGREE TO BE BOUND BY ALL OF
THE TERMS.
FCC Compliance
FCC authorities have determined that HASP is not a Class B
Computing Device Peripheral and therefore does not require FCC
regulation.
UL Certification
The HASP product line successfully completed UL 94 Tests for
Flammability of Plastic Materials for Parts in Devices and
Appliances. HASP products comply with UL 1950 Safety of
Information Technology Equipment regulations.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
About HASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Advantages of the HASP System . . . . . . . . . . . . . . . . . . . . . . . 4
HASP Protection Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
HASP Developer Kit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
HASP Starter Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Troubleshooting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Check List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Problems and Solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
The fifth part, "Using the Remote Update System" (page 293),
provides you with information on tools and the API which enable
you to update your customers’ HASP keys remotely.
Throughout this guide noteworthy comments, suggestions,
cautions and warnings are displayed in special framed inserts with
the following symbols.
! Warning or caution.
Noteworthy comment.
Suggestion to enhance
HASP performance.
Introduction
Welcome to Aladdin’s HASP – the professional software
protection system. This chapter describes the HASP protection
system, its security features and its advantages. It introduces the
family of HASP protection keys and describes the contents of the
HASP Developer’s and Starter’s Kits.
About HASP
HASP is a state-of-the-art hardware-based system that protects
software from illegal use by preventing unauthorized access to and
execution of protected applications.
At runtime, the protected application queries the HASP connected
to the computer. If the response returned by the HASP is as it
should be and if the correct HASP algorithm is identified, the
application executes. If the response is incorrect, the application
may not load, may switch to a demo version, or limit certain
features.
Implementing HASP security is easy, yet the level of security it
provides is extremely high. Once your application is protected, it
can be activated only when the HASP key originally supplied with
your software is attached to the computer.
Maximum ease-of-use
A short learning curve and a standard application programming
interface (API) for all products ensures easy and rapid
incorporation of the HASP software into the application.
Cross-platform solution
HASP (USB version) provides a platform-independent solution.
One HASP key can be used to protect Windows, Mac and Linux
applications, thus saving you development time in integrating
protection, and on shipping logistics and costs.
State-of-the-art security
Full-custom ASIC Chip or Advanced Micro-
Controller
All HASP keys (except USB models) are based on a proprietary,
full-custom ASIC (Application Specific Integrated Circuit) chip.
The 2800-gate, 1.2-micron HASP ASIC, designed in-house by
Aladdin engineers, prevents reverse engineering and makes HASP
hardware virtually impossible to crack.
USB models are unique in that they contain an advanced micro
controller that provides an inherently high level of security.
Scrambled Communication
Cost-Effective Software
As HASP protection increases your sales and revenues, you can
budget more money to the ongoing development and support of
your product. In turn, your paying customers can enjoy more
advanced products, faster development times and higher-quality
technical support.
Aladdin Consulting
For more detailed advice and training on HASP implementation
issues, contact our team of international consultants. They can
provide you with tailored training sessions on the following:
• Integration of HASP production and distribution in your
company
• Analysis of the best protection strategy for your applications
• Help with algorithm design and even implementation of HASP
protection in your software
HASP4 Net 100 496 bytes 112 applications encoding/decoding parallel, USB
on 100 stations HASP ID
network access
Software
The HASP software is contained on a single CD-ROM.
Hardware
Your HASP Developer Kit comes with a demo HASP key. The
demo HASP key is either a HASP4 M1, HASP4 M4,
HASP4 Time, or HASP4 Net depending on the type of HASP key
you requested when ordering the HASP Developer Kit.
Documentation
Your HASP Developer Kit includes one copy of the HASP4
Programmer’s Guide.
Basic Concept
To implement HASP protection effectively, we recommend that
you familiarize yourself with the concepts and terms described in
this chapter.
If you are protecting with HASP4 Net, you should also read
"HASP4 Net Basic Concept" (page 229) to familiarize yourself
with specific terms and concepts for HASP4 Net.
Developer-Specific Information
When you order keys from Aladdin, you receive keys which
contain information specific to your company. This information is
used to differentiate your keys from other developers’ keys.
Developer Code
The developer code is a unique code Aladdin assigns to each
software developer. The developer code is burnt into the ASIC
component of the HASP to prevent reverse engineering, thus
ensuring total protection.
You use the same developer code when you order additional
HASP keys. The developer code is represented by the set of five to
seven letters printed on the label of each HASP.
HASP Passwords
The HASP passwords are two integers assigned to each software
developer. The passwords are based on your unique developer
code and ensure that only you can access your HASP keys.
HASP Envelope
The simplest and quickest way to protect an application is to use
the HASP Envelope. HASP Envelope provides very effective and
powerful protection. This method does note require access to the
target application’s source code. HASP Envelope adds a protective
shield around executable files. The HASP Envelope scrambles
your file, and incorporates HASP checks and anti-debugging
features. After having protected your application with HASP
Envelope, it cannot run without the correct HASP.
As using the Envelope does not require access to the application
source code, it is a quick and easy method of protection. At the
same time, it provides a very high level of protection, making it
virtually impossible to debug or disassemble your applications.
For information on using HASP Envelope refer to "Protecting
with HASP Envelope" (page 51).
FAS Options
With FAS, you can limit the use of your application by:
• Setting the number of activations (HASP4 M1, HASP4 M4 and
HASP4 Net).
This feature is useful for supplying demo versions of your
application.
• Setting an expiration date (HASP4 Time).
This feature is useful for leasing and renting your software.
• Setting the number of stations which can run the program
simultaneously (HASP4 Net).
FAS is an optional feature of the Envelope when you protect with
a HASP stand-alone memory key. With HASP4 Net, on the other
hand, FAS is not optional. FAS is an integral part of the HASP4
Net protection system, whether you protect with the Envelope or
the HASP API.
Answer Yes. For this purpose, we recommend using HASP memory keys
which contain a unique ID number for each key. In addition, you
can program the memory of HASP memory keys individually for
each of your customers.
Answer The HASP4 Time battery has a lifetime of 3-5 years, which by all
measures is a long time in terms of software licensing. When the
battery dies, HASP4 Time behaves in the same way as a HASP4
M4. Battery life is increased if the HASP4 Time key remains
connected to an operating computer.
Answer Yes. There are two options for using HASP in a network. The
first is to connect a HASP to every station on which the
protected application is running. The second – and more efficient
option – is to protect your application with HASP4 Net, a
sophisticated protection system designed especially for network
environments.
HASP4 Net allows you to activate a protected application on
several stations using a single key. To learn more about HASP4
Net, see "HASP4 Net Basic Concept" (page 229).
Answer Yes. Multiple HASP keys can be daisy-chained without any special
connecting equipment.
Use an USB hub to connect multiple USB devices to the same
port.
Answer HASP keys are fully transparent. You can chain them before or
behind other keys, provided these keys are also transparent.
Question Can data files or applications written with software tools such as
Lotus and AutoLISP be protected with HASP?
Answer Yes. There is a special system for data file protection called
DataHASP. Easily implemented, DataHASP protects files by
encoding their data and allowing only authorized applications to
access them. DataHASP can be used with Win32 applications
and works with all HASP keys.
For more information, see "Protecting with HASP Envelope"
(page 51).
Answer There are three very good reasons to choose a HASP memory key
to protect your application:
• To distribute a demo version of your application, or lease your
software.
• To protect multiple applications using a single HASP.
• To use the HASP memory to save data and subsequently
enhance the security of your protected application.
Installing HASP
This chapter gives an overview of the HASP software, the main
stages of software protection and the basic installation procedures
for the various operating systems.
HASP Software
The HASP software consists of the following parts:
• Device drivers to access HASP keys
• HaspEdit to prepare HASP keys for distribution
• Aladdin DiagnostiX to assist vendors and end-users
• HASP API and HASP Envelope to integrate application
protection
• HASP Demo to demonstrate and test the HASP functionality
• HASP License Manager and Aladdin Monitor to provide,
administer and monitor HASP4 Net licenses
Device Drivers
The HASP device drivers as the link between the HASP key and
the protected application. Both you and your customer need to
install the appropriate driver in order to run the protected
application.
HASP device drivers are available for the following operating
systems: Windows 95/98/ME/NT/2000/XP/Server 2003,
Mac OS 8.6, Mac OS 9.x, Mac OS X Linux.
HASP device drivers also enable you to use HASP keys on 64-bit
IA64 processors for Windows XP and Linux applications.
You can also integrate driver installation into the installation of
your protected application.
Protecting Applications
HASP Envelope
HASP Envelope is a tool which enables you to protect your
application by wrapping it in a protective shield.
You can use HASP Envelope as a command-line tool or with a
graphical user interface. For more information refer to "Protecting
with HASP Envelope" (page 43).
HASP API
The HASP application programming interface (API) enables you
to protect your application by inserting calls to the HASP key
throughout your source code.
The root directory on the HASP CD is subdivided according to
operating systems, development environment and compiler. The
directory for each compiler includes the following:
• Libraries that must be linked to your application
• A sample application that demonstrates the use of the API with
all HASP keys
For more information refer to "Protecting with the HASP API"
(page 115).
HASP Demo
Utilities which let you test HASP services. For more information
refer to "HASP Test Utility" (page 128).
Aladdin Monitor
A tool used to track the use of protected applications and HASP
License Managers in a network.
Driver Description
Once installed, the above drivers enable both Win64 and Win32
applications to run on Itanium systems using the HASP API.
Switch Meaning
Switch Meaning
Switch Meaning
It reports its version, the version of the API used for USB and the
version of the API inside the kernel driver (for parallel port keys).
If the kernel driver happens to be unavailable when aksusbd is
launched, parallel port keys cannot be accessed, but USB keys are
still accessible. The system log reflects this status.
If /proc/bus/usb is not mounted when launching aksusbd, USB keys
cannot be accessed.
Preferably the daemon should be started at system boot up time
with some script located in /etc/rc.d/init.d or /etc/init.d (depending
on Linux distribution).
Switch Meaning
Installing Daemon
To access the HASP key, the daemon aksusbd has to be started.
<path>/aksusbd
The daemon will fork and put itself into the background.
The status message is generated in the system log informing you if
the installation has been successful or not.
It reports the daemon version, the API version used for USB keys.
If /proc/bus/usb is not mounted when launching aksusbd, HASP
USB keys cannot be accessed. Preferably the daemon should be
started when the system is booted with a requisite startup script
stored in /etc/rc.d/init.d or /etc/init.d (depending on Linux
distribution).
Protecting with
HASP Envelope
Using HASP Envelope is the fastest way to protect your software
from unauthorized use. Implementing HASP Envelope protection
is easy, as you do not need to alter the application’s source code.
HASP Envelope is available as command-line tool (DOS, Win16,
Win32) and as graphical user interface (Win32).
Using a configuration file to define and store protection
parameters, HASP Envelope is also available for Mac and Linux
applications.
The HASP Envelope interface provides a convenient way to
perform any of the following operations:
• Protect applications
• Protect Win32 data files
• Save FAS protection parameters to the HASP memory
Protecting an Application
This chapter describes the protection process using the New or
Open Envelope configuration options.
1. In the Envelope’s Main tab, enter the path and name of the
application to protect in the Unprotected File box.
2. Type the HASP passwords into the correct boxes.
3. If you are implementing FAS, fill in the FAS parameters
according to the model of HASP you are using:
For HASP4 M1 and HASP4 M4, enter the program number
and the number of activations on the Options tab.
For HASP4 Time, enter the program number and the
expiration date on the Options tab.
For HASP4 Net, enter the program number on the Main tab.
You can enter either the number of activations, the number of
licenses, or both.
4. Fill in the remaining boxes in the Main, Options, and Error
Messages tabs according to your specific protection needs. See
the following sections for detailed descriptions of the tabs and
their boxes.
5. Click the Protect icon or choose Protect Application from
the Envelope Tools menu.
A window appears, informing you that the application was
successfully protected.
6. Click OK.
If you assigned FAS protection parameters, you are now asked
if you want to save them. See "The Full Authorization System
(FAS)" on page 22 for more details.
The protected application cannot function unless the requisite
HASP key is present.
You can protect Win32 data files using a graphical user interface
(GUI) as described here, or from the command line as described
on page 73.
When you protect Win32 data files, you also need to protect the
application that loads these files and decodes them. This section
provides instructions on how to protect both the data files and the
application that accesses them.
Preparing Protection
1. Place a copy of the application which accesses the data file (for
example Notepad.exe) in a temporary directory.
2. Create a data file and save it in the same directory (for example
text.txt).
3. Connect the HASP key(s) with which you want to protect your
data files to the computer and make sure that the HASP device
driver is properly installed.
Performing Protection
1. Click the Protect icon or choose Protect Application from
the Envelope Tools menu.
A window appears, informing you that the application was
successfully protected and that you can encrypt the data files
now.
2. Click OK and then click on the Encrypt Selected Files button
at the bottom of the window.
A message appears, informing you that all selected files were
encrypted successfully. Successful protection allows you to
ensure that the document can only be opened with the
protected application and not with any other copy of the
executable.
If you assigned FAS protection parameters, you are now asked
if you want to save them. See "Saving FAS Parameters"
(page 59) for more details.
The protected application now cannot work without the correct
HASP and only this application can access the protected data files.
The FAS protection parameters which you can save to the HASP
memory are:
• For HASP4 M1 and M4 the application program number and
number of application activations.
• For HASP4 Time the application program number and
application expiration date.
• For HASP4 Net the program number, number of licenses and
number of activations.
You have the choice of using HaspEdit or the Envelope to set FAS
protection parameters and save them to the HASP memory.
However, you must use the Envelope to set the program number.
By assigning the program number using HASP Envelope, you
establish the link between the HASP key and your program’s
protection parameters, which are saved to the HASP memory. It is
this link that enables the protected application, when loaded, to
retrieve the correct protection parameters from the HASP
memory.
You can save FAS parameters to the HASP key immediately after
implementing HASP Envelope protection, or independent of the
Envelope protection process.
Main Tab
You must specify parameters in the Main tab in order to protect
your application. If you are using a stand-alone HASP key only, fill
in all the boxes except for those in the HASP4 Net Parameters
frame. If you are using a HASP4 Net key only, fill in all the boxes
except for those in the HASP Passwords frame. If you are using
both a stand-alone HASP key and a HASP4 Net key, fill in all the
relevant boxes.
Option Description
Unprotected File Enter the path and name of the application file to protect. Each file must
(source) have the extension.exe or .dll. Click Browse to search your disks for a
specific file.
Protected File Default: The filename entered in the Unprotected File box.
(destination) By default, the HASP Envelope utility overwrites the original unprotected
file when saving the protected version of your application. To avoid
overwriting your original file, give the protected application a different
filename. Type this filename in the Protected File box.
HASP Password Enter the HASP passwords of all HASP stand-alone keys with which you
want to protect your application. You can enter up to 3 sets of HASP
passwords to protect a single application with up to 3 HASP keys.
HASP Demo Key Check this box to enter the passwords of a HASP demo key
automatically.
Use HASP4 Check this box to use the enhanced security features of HASP4
Security Features If you need to maintain compatibility with the HASP-3 generation of
keys, you should not use this feature.
Executable Type The HASP Envelope tries to detect the executable type automatically. If it
cannot detect the type of executable, this box will have the value
Unknown Type.
Overlay File Check this box if the file to be protected contains overlays or extra data
appended to the executable. Also creates a loader for DOS applications
that exceed the maximum DOS size memory.
NetHASP When protecting with HASP4 Net, enter the passwords you received
Passwords with your HASP4 Net key.
NetHASP Demo Check this box to enter the passwords of a HASP4 Net demo key
Key automatically.
Option Description
Number of When protecting with HASP4 Net, assign the number of application
Licenses licenses in this box. This number is saved to the HASP4 Net memory.
Type a number in this box or use the arrow keys to set it. Check the
Unlimited option to assign an unlimited number of licenses.
Possible values are dependent on the HASP4 Net model. You can assign
every value from 0 up to the number of the model, for example 0 to 5 for
a HASP4 Net 5 key.
To save the number of licenses in the HASP4 Net memory, click Save
Parameters when prompted after implementing Envelope protection.
Number of When protecting with HASP4 Net, assign the number of application
Activations activations in this box. This number is saved to the HASP4 Net memory.
Type a number in this box or set it with the arrow keys. Check the
Unlimited option to assign an unlimited number of activations.
To save the number of activations in the HASP4 Net memory, click Save
Parameters when prompted after implementing Envelope protection.
Options Tab
The Options tab contains additional protection settings.
Option Description
Application Default: 1
Program Number If you are using a HASP stand-alone memory key to protect multiple
applications with FAS, assign a unique number to the application. Make
a note of this number. You will need it later to save program protection
parameters when programming HASP keys for your client.
Possible values are 1 to 16 for HASP4 M1, 1 to 112 for HASP4 M4 and 1
to 8 for HASP4 Time.
Application If you are using a HASP4 Time in conjunction with FAS, enter the date
Expiration Date after which the application will stop running.
Click Date and select the month, day and year.
To save the expiration date in the HASP4 Time memory, click Save
Parameters when prompted after implementing Envelope protection.
Option Description
Interval in Seconds When you use the Background HASP Checks option, you must
specify at what interval the system checks for the key. Type a value
representing the interval in seconds.
Option Description
Encryption Key The scrambling process requires several encoding keys chosen at
(decimal) random by the HASP Envelope utility. To ensure maximum security, you
can set one of these scrambling keys to a number of your choice
between 0 and 65535
Encryption Level You can specify the frequency of HASP key access for scrambling. Move
the Encryption Level slider to the right to increase the frequency.
Switches In the Switches field you can enter additional protection parameters by
using HASP Envelope command-line switches.
DataHASP Tab
Use the DataHASP tab to protect data files. On the DataHASP
tab, you can do the following:
• Specify the data files you want to encode
• Specify which encoded data files should be decoded during run
time by your protected application
• Encode the data files
In addition to encoding the data files, you need to specify which
application is authorized to decode them and protect that
application. Do this by entering values in the appropriate boxes on
the Main tab and other relevant tabs and protecting the
application.
Option Description
Data Files to Enter the filename or file patterns of data files that your application
Decrypt at Run should decode at run time. Also enter exceptional data files (from
Time among those files specified for decoding) which your application
should not decode.
For example, consider an application that accesses all your encoded
data files having an *.adb format. Suppose that the same application
needs to access the file xyz.adb, which is not one of your encoded data
files, but rather a file supplied by your application’s environment. In
this case, in the Decrypt box enter *.adb. In the Do Not Decrypt box,
enter xyz.adb. This instructs your protected application to decode all
data files with an adb extension, except for the file xyz.adb.
Decrypt Type the files to decode at run time (represent them in the standard
way, or using wildcards, i.e. *.*, or aa??.txt)
Do not decrypt Type the files (from among those files specified for decoding) not to
decode at run time (represent them in the standard way, or using
wildcards, i.e. *.*, or aa??.txt)
Protection By entering protection parameters, you set the encoding key used to
Parameters encode data files
Encryption Key Enter up to 8 characters in the Encryption Key box. These will
become part of the encoding algorithm.
HASP Passwords The passwords of your HASP key, which you enter in the Main tab,
for Encryption automatically appear in the HASP Passwords for Encryption box.
Only the HASP key to which these passwords belong will open the
protected data files.
Option Description
Data Files to Before encoding data files, make sure you have set the Protection
Encrypt Parameters in the DataHASP tab.
Never encode the same file twice. If you inadvertently do
! so, the software will not be able to restore the settings.
Input Data Files to Type the files (with their paths) to encode or click Add to choose files
Encrypt from directories.
Output Encrypted DataHASP copies the filenames listed in the Input Data Files to
Data Files Encrypt box and places them in a new directory. The new default file
path automatically appears here.
Switch Operation
Switch Operation
Switch Operation
Switch Operation
You can run the HASP Envelope only on SuSE 7.X and
8.0 terminals. The resultant executables can only run on
X86 and Itanium (32-bit emulation mode) platforms.
Question Does the HASP Envelope check for the key during the
application’s run time?
Answer With HASP4 Net, always! With HASP4 M1 or HASP4 M4, only
when you implement the Full Authorization System.
Activating HaspEdit
To load HaspEdit:
1. Connect the HASP key to your computer.
When you activate HaspEdit, you can either start a new HaspEdit
session, or load a previous session by opening a configuration file.
Encoding Data
This function allows you to encode data using a HASP4 key. After
encoding, you can use the encoded data in your application and
decode it during runtime using the appropriate HASP API
function.
To encode data:
1. Choose Encoding from the HASP Tools menu or click the
Encode icon. The Encode window appears:
2. Enter or select the source of the data you would like to encode.
You can encode data from the windows clipboard or a file, or
you can type a string directly at the keyboard.
To decode data:
1. Choose Decoding from the HASP Tools menu or click the
Decode icon. The HASP Decode window appears:
2. Click Add to add the program(s) you want to protect. The Add
Program window appears.
All 248 words make up the user area and can be used to store any
data.
Program Key
When you use the Program Key option, you program each HASP
key with the data from the current HaspEdit utility session.
Getting Started
To start HASP Edit for Mac:
1. Connect a HASP key to your computer.
Do not connect more than one HASP key to the computer
while using HaspEdit. The HaspEdit utility can only handle
one key at a time.
2. Start HaspEdit. The Password window is displayed.
3. Enter the passwords and confirm with OK.
The passwords for HASP demo keys are inserted automatically by
default. To change this setting, choose Preferences from the
HaspEdit menu and activate/deactivate the option.
Setting Preferences
You have the following options when setting preferences for
HaspEdit for Mac:
• Change the value with which the memory will be filled when
clearing the memory
• Set a root directory for your template files
• Display a warning if the time and date assigned to a HASP4
Time key differ significantly from the system time setting
• Facilitate the use of HASP demo keys by having their
passwords inserted automatically
Encoding Data
This function allows you to encode data using a HASP4 key. After
encoding, you can use the encoded data in your application and
decode it during runtime using the appropriate HASP API
function.
To encode data:
1. Select Encode/Decode in the navigation tree.
2. Make sure the right HASP key is connected.
3. Enter data or click Load to load a file.
4. Select a format for your output data.
5. Use the mouse or the keyboard to select the section of data you
want to encode (at least 8 bytes). Click Encode to encode the
data and click Save As to save the encoded data to a file.
You have the option to edit the file and select sections
to encode. If the file size exceeds 1024 bytes you can
encode the file but you cannot edit it or select sections.
You use template files to program several HASP keys of the same
type with the same memory content.
You have the following options when working with templates:
• Create, rename and delete templates
• Write to a currently connected key from the template view
To create a template:
1. Choose New from the File menu.
2. Choose Save as from the File menu.
3. Enter a name for the template and select a folder.
Answer The remaining 224 words of HASP4 Net memory are reserved
for the protection parameters of the 112 applications you can
protect with a single HASP4 Net. Since you are protecting only
one application, you can use part of this reserved memory for
other purposes.
Question Is HaspEdit the only utility with which I can program my HASP
keys?
Answer No. You have several other options for doing so. The first is to
create an automatic programming utility with pre-defined
protection parameters which you set in the HaspEdit utility. For
more information about the programming utility, see page 104.
The second option is to write your own program that implements
the HASP API and writes data to the HASP memory. For more
information about the HASP API, see page 129. Finally, an
option called “Program HASP”, which involves saving FAS
parameters, is found in the Win32 Envelope utility. For more
information about using the HASP Envelope in conjunction with
FAS, see "Saving FAS Parameters" (page 59).
Question Can I use HASP keys programmed with HaspEdit for Mac or
HaspEdit for Windows on the other platform?
Answer Yes. The keys programmed with one of the HASP Edit
applications can be used on all supported platforms.
Alternatively, you can use the HASP API to program your HASP
keys.
Assisting End-Users
& Vendors
Aladdin DiagnostiX
The Aladdin DiagnostiX utility collects information on deployed
keys and the systems on which they are running. This feedback
mechanism will help you provide solutions to customers
encountering problems related to the protected application.
Your customers can use the Aladdin DiagnostiX utility:
• To check for a HASP key.
• To create a report file that contains data for Aladdin devices
and other relevant system information.
• To configure the HASP nethasp .ini file.
• To download an updated driver.
Aladdin DiagnostiX is available for the following environments:
Windows 95/98/ME and Windows NT/2000/XP/Server 2003.
When your customers run the Aladdin DiagnostiX utility, instruct
them to select the Check HASP tool to check for a HASP key. In
addition to HASP device data, customers can use Aladdin
DiagnostiX to generate reports containing vital information about
their systems.
The Aladdin DiagnostiX utility is divided into three parts:
4. If you want data in the HASP memory read and then encoded
with a cryptographic algorithm, check Save memory to
reports file. This option is not available when you define
Access Mode to Check any HASP key.
5. Click OK.
6. Details for the access display in the Key Access History panel
of the Aladdin DiagnostiX window.
Creating Reports
Your customers can use Aladdin DiagnostiX to create reports
containing information on the following:
• HASP devices
• System information including Win16 and DOS subsystems
• Information pooled by external reporting tools
• Memory read from HASP keys (encrypted)
If your customers are experiencing a problem with their HASP
device or have difficulties in accessing the protected application,
they can e-mail the reports to you or to the local HASP technical
support staff.
To create a report:
1. Review the settings outlined in the preceding section.
2. Use one of the following methods to create a report.
• Click the Create Reports icon.
• Select Create Report from the Edit menu.
• [Ctrl] + R
• Create Report button under the System Info screen.
A message box appears indicating the contents of the report file
and its location.
Parameter Description
Parameter Description
Parameter Description
1 LPT1 only
2 LPT2 only
3 LPT3 only
HASP Services
Refer to Table 7.4 for information on which service to use with
the various HASP models.
Table 7.4 HASP Models and Relevant Services
HaspDemo Utility
With the HaspDemo utility, you can test the HASP API services
and the operation of HASP4 Net.
The test utility available is haspdemo.exe for Windows and Win32.
With this utility, you can test HASP keys of all models. The
haspdemo.exe is a multi-object sample program that you use to test
keys with different versions of the HASP API. Access it by
clicking HaspDemo for Win16 or Win32 on the HASP CD
menu. You can find the executable under
Utility\Haspdemo\Windows\Win16 or Win32
Answer With HASP stand-alone keys, a call to the hasp( ) routine takes
about 20 milliseconds. A HASP4 Net login takes
approximately two seconds, depending on network traffic.
Calls to the other HASP4 Net services require approximately
half a second. As is clear from these figures, you can issue as
many calls to the HASP as you like.
Answer You can use the Win32 Envelope utility to protect Win32
DLLs, the Win16 Envelope to protect Win16 DLLs, and the
HASP API to protect Windows and Win32 DLLs.
There are two options when protecting DLLs with the API:
• Use the object files supplied with the HASP software and
link them to your DLL. Incorporate calls to the hasp( )
routine into your application.
• Call the hasp( ) routine from your DLL. The hasp( )
routine is defined in the HASP DLL we supply. Include
both your DLL and the HASP DLL when you distribute
your application.
Question I’ve used the API to check the HASP ID number. Sometimes,
HaspID returns a negative number in IDLow. When I calculate
the ID number, I get a different one than that which appears in
HaspEdit.
Protection
Strategies
The HASP protection system includes the best hardware and
software protection tools available on the market today. However,
a HASP-based software protection system is only as secure as the
way in which you implement it. The calls to the hasp( ) routine that
you insert into your code ultimately control access to your
application. Because the HASP hardware is virtually impossible to
break or duplicate, attacks usually focus on tracing the protection
code and eliminating the protection routines.
To achieve maximum protection with HASP, use both the
Envelope and API protection methods. Each method has its
unique features and complements and enhances the other.
To increase software security when protecting with the API, use
the techniques outlined in this chapter. This chapter describes the
following:
• Attacks on software protection schemes that can be avoided by
implementing proper protection techniques.
• Tips for maximizing the security of your protected application.
If you would like assistance in strengthening your application
against possible attacks, we can offer a more personalized support
service from our team of Aladdin Consultants. They will be able to
provide help on a wide range of issues, including protection
strategies and implementation techniques.
Hide Passwords
Hide passwords in the protected application by:
• Scramble them
• Saving them in different parts of the source code
Generate Noise
Call the hasp( ) routine and pass it parameters that have irrelevant
values. These values can be produced by random number
generators, time values, intermediate results of calculations and
more. Of course, these calls to the hasp( ) routine should not lead
to any meaningful results and actions. Generating noise causes
distractions and poses additional obstacles for anyone who tries to
attack your protected application.
HaspStatus (5)
CheckHaspGen-
NetHaspStatus(9)
Basic HASP Services
R
R
R
R
C
C
C
Seed Code
Service (no.)
Seed Code
Password2
Password1
PortNum
Par2
Par3
Par4
Par1
HaspEncodeData (60) C
Password1
Password2
PortNum
Segment
Offset
Buffer
Buffer
Buffer
Size
0
R
Status
HaspDecodeData(61) C
Password1
Password2
PortNum
Segment
Buffer
Buffer
Buffer
Offset
Size
0
R
Status
The Buffer Segment parameter is only relevant for
16-bit applications.
Service 1: IsHasp
Description Check if a HASP is connected to the computer.
Relevant Keys HASP4 Std., HASP4 M1, HASP4 M4, HASP4 Time
Syntax
hasp (Service, SeedCode, PortNum,
Password1,Password2,Par1, Par2, Par3,
Par4)
Parameters
Used Service 1
PortNum Value indicating the ports to search, see “Specifying
the Port” on page 133.
Return Values
Par1 A value indicating if a HASP key was found
0 No HASP is connected to the computer.
1 A HASP is connected to the computer
Par 2 Actual port address, see “Specifying the Port” on
page 133.
Par 3 A code indicating the status of the operation. See
"HASP API Status Codes" on page 217.
Service 5: HaspStatus
Description Check the type of HASP connected to the computer. Also check
to which port the key is connected.
Relevant Keys HASP4 Std., HASP4 M1, HASP4 M4, HASP4 Time
Syntax
hasp (Service, SeedCode, PortNum,
Password1,Password2,Par1, Par2, Par3,
Par4)
Parameters
Used Service 5
PortNum Value indicating the port to search for the HASP.
Password1 First HASP password.
Password2 Second HASP password.
Return Values
Par1 Memory Size
1 HASP4 M1
4 HASP4 M4
0 other keys
Par2 HASP Type
0 HASP4 Std.
1 HASP4 M1 or HASP4 M4
5 HASP4 Time
Par 3 Actual port number, see “Specifying the
Port” on page 133.
Par4 HASP Object Version – The current API
version.
Comments • To minimize search time, use the value of the Actual PortNum
received in Par3, and pass it via the PortNum parameter in
subsequent calls to the hasp( ) routine.
• If a HASP4 Net key is connected to a local port, this service
identifies it as HASP4 M4. The memory size returned in Par1
is 4, the HASP model returned in Par2 is 1.
• Older TimeHASP-1 keys used to return 3 in Par2. Applications
which use such keys should be updated to handle a status of 3
or 5.
• Return values relate to the first key found with the specified
passwords.
Service 8: CheckHaspGeneration
Description Checks if connected key is a HASP4 generation key.
Relevant Keys HASP4 Std., HASP4 M1, HASP4 M4, HASP4 Time, HASP4 Net
Syntax
hasp (Service, SeedCode, LptNum,
Password1,Password2,Par1, Par2, Par3,
Par4)
Parameters
Used Service 8
LptNum Value indicating the port to search for the HASP.
Password1 First HASP password.
Password2 Second HASP password.
Par1 0 (reserved).
Par2 0 (reserved).
Par3 0 (reserved).
Par4 0 (reserved).
Comments This service only works if reserved input parameters Par1, Par2,
Par3, Par4 are set to 0. When Par1 and Par3 returns are 0, a
HASP3 with specific passwords is connected.
Service 9: HaspNetStatus
Description Determines what kind of HASP4 Net key is connected.
Syntax
hasp (Service, SeedCode, LptNum,
Password1,Password2,Par1, Par2, Par3,
Par4)
Parameters
Used Service 9
LptNum Value indicating the port to search for the HASP.
Password1 First HASP password.
Password2 Second HASP password.
Par1- Par4 0 (reserved).
Return Values
Par1 Type of HASP4 Net key connected:
0 No HASP4 Net key attached
5 HASP4 Net 5 users
10 HASP4 Net 10 users
20 HASP4 Net 20 users
50 HASP4 Net 50 users
100 HASP4 Net 100 users
0xffff HASP4 Net unlimited
Par 3 A code indicating the status of the operation.
Comments This service only works if reserved input parameters Par1, Par2,
Par3, Par4 are set to 0.
Relevant Keys HASP4 Std., HASP4 M1, HASP4 M4, HASP4 Time
Syntax
hasp (Service, SeedCode, PortNum,
Password1,Password2,Par1, Par2, Par3,
Par4)
Parameters
Used Service 60
PortNum Value indicating the port to search for the HASP.
Password1 First HASP password.
Password2 Second HASP password.
Par1 0 (reserved).
Par2 Buffer size. The size in bytes of the buffer to be
encoded. The buffer must be at least 8 bytes in size.
Par3 Buffer segment. The segment address of the buffer.
Only relevant for 16-bit applications.
Par4 Buffer offset. The offset address of the buffer.
Return Values
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Comments The contents of the program buffer are encoded via the connected
HASP and updated in place.
This service can only be used with the HASP4 generation of
HASP keys. If a key prior to the HASP4 generation is attached, no
data will be encoded and the service will return an error code.
Relevant Keys HASP4 Std., HASP4 M1, HASP4 M4, HASP4 Time
Syntax
hasp (Service, SeedCode, PortNum,
Password1,Password2,Par1, Par2, Par3,
Par4)
Parameters
Used Service 61
PortNum Value indicating the port to search for the HASP.
Password1 First HASP password.
Password2 Second HASP password.
Par1 0 (reserved).
Par2 Buffer size. The size in bytes of the buffer to be
decoded. The buffer must be at least 8 bytes in size.
Par3 Buffer segment. The segment address of the buffer.
Only relevant for 16-bit applications.
Par4 Buffer offset. The offset address of the buffer.
Return Values
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Comments The contents of the program buffer are decoded via the connected
HASP and updated in place.
This service can only be used with the HASP4 generation of
HASP keys. If a key prior to the HASP4 generation is attached, no
data will be decoded and the service will return an error code.
HASP4 Memory
Services
This chapter describes the HASP API services for HASP4 M1,
HASP4 M4, and HASP4 Time. Each of the services are described
in detail.
Table 10.1 on page 168 lists the hasp( ) routine parameters for
each service. Each service listed in the following table is assigned
two rows:
• The call row, C, lists parameters you pass to the hasp( ) routine.
• The return row, R, lists parameters that the hasp( ) routine
returns.
Every call to the HASP routine receives nine input parameters, but
not all the parameters are used. Par1, Par2, Par3 and Par 4 are
pointers to 32-bit integers in 32-bit systems, and 16-bit integers in
16-bit systems. All other parameters are integers. The values of
Par1, Par2, Par3, and Par4 change according to the service. A
‘word’ of data contains 8 bytes or 16 bits.
Service (no.)
Seed Code
Password2
Password1
PortNum
Par2
Par3
Par4
Par1
ReadWord (3) C
Password1
Password2
PortNum
Address
R Status
Data
WriteWord (4) C
Password1
Password2
PortNum
Address
Data
R
Status
HaspID (6) C
Password1
Password2
PortNum
R
IDHigh
IDLow
Status
Service (no.)
Seed Code
Password2
Password1
PortNum
Par2
Par3
Par4
Par1
ReadBlock (50) C
Password1
Password2
PortNum
Segment
Address
Length
Offset
Buffer
Buffer
Block
Start
R
Status
WriteBlock (51) C
Password1
Password2
PortNum
Segment
Address
Length
Buffer
Buffer
Offset
Block
Start
Status
The Buffer Segment parameter is only relevant for
16-bit applications.
Service 3: ReadWord
Description Read one word of data from the HASP memory.
Syntax
hasp (Service, SeedCode, PortNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 3
PortNum Value indicating the ports to search, see “Specifying
the Port” on page 133.
Password1 First HASP password.
Password2 Second HASP password.
Par1 Address – The HASP memory address you want to
read from:
0 to 55 – HASP4 M1
0 to 247 – HASP4 M4
0 to 247 – HASP4 Time
Return Values
Par2 Data – One word of data read from HASP memory.
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Service 4: WriteWord
Description Write one word of data to the HASP memory.
Syntax
hasp (Service, SeedCode, PortNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 4
PortNum Value indicating the port to search for the HASP.
Password1 First HASP password.
Password2 Second HASP password.
Par1 Address – The HASP memory address you want to
write to:
0 to 55 – HASP4 M1
0 to 247 – HASP4 M4
0 to 247 – HASP4 Time
Par2 Data – One word of data.
Return Values
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Service 6: HaspID
Description Determine the HASP ID number.
Syntax
hasp (Service, SeedCode, PortNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 6
PortNum Value indicating the port to search for the HASP.
Password1 First HASP password.
Password2 Second HASP password.
Return Values
Par1 IDLow – Low (least significant) word of the ID
number.
Par2 IDHigh – High (most significant) word of the ID
number.
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Syntax
hasp (Service, SeedCode, PortNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 50
PortNum Value indicating the port to search for the HASP.
Password1 First HASP password.
Password2 Second HASP password.
Par1 Start Address – Defines the initial HASP memory
address for reading the block:
0 to 55 – HASP4 M1
0 to 247 – HASP4 M4
0 to 247 – HASP4 Time
Par2 Block Length – The block size, in words.
Par3 Buffer Segment – The segment address of the buffer.
Only relevant for 16-bit applications.
Par4 Buffer Offset – Offset address of a program buffer
(variable). The buffer size must be at least as large as
the block size.
Return Values
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Result The HASP memory content is read into the program buffer.
Syntax
hasp (Service, SeedCode, PortNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 51
PortNum Value indicating the port to search for the HASP.
Password1 The first HASP password.
Password2 The second HASP password.
Par1 Start Address – Defines the initial HASP memory
address for writing the block:
0 to 55 – HASP4 M1
0 to 247 – HASP4 M4
0 to 247 – HASP4 Time
Par2 Block Length – The block size, in words.
Par3 Buffer Segment – The segment dress of the buffer.
Only relevant for 16-bit applications.
Par4 Buffer Offset – Offset address of a program buffer
(variable). The buffer size must be at least as large as
the block size.
Return Values
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Comments The contents of the program buffer are written to the HASP
memory.
GetDate (73)
GetTime (71)
Service (no.)
WriteByte (74)
HASP4 Time Services
R
R
R
R
C
C
C
C
Seed Code
ReadByte (75)
ReadBlock (77)
WriteBlock (76)
Using the HASP API
R
R
R
R
C
C
C
Seed Code
16-bit applications.
IDLow Start Start Address Par1
Address Address
177
HASP4 Time Services
HASP4 Time Services Part 3 - Chapter 11
Syntax
hasp (Service, SeedCode, PortNum,Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 70
PortNum Value indicating the port to search for the HASP key.
Password1 First HASP4 Time password.
Return Values
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Syntax
hasp (Service, SeedCode, PortNum,Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 71
PortNum Value indicating the port to search for the HASP.
Password1 First HASP4 Time password.
Password2 Second HASP4 Time password.
Return Values
Par1 Second – Seconds read from the HASP4 Time clock.
Par2 Minute – Minutes read from the HASP4 Time clock.
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Par4 Hours – Hours read from the HASP4 Time clock.
Syntax
hasp (Service, SeedCode, PortNum,Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 72
PortNum Value indicating the port to search for the HASP.
Password1 First HASP4 Time password.
Password2 Second HASP4 Time password.
Par1 Day – Day to set on the HASP4 Time clock (1 to 31).
Par2 Month – Month to set on the HASP4 Time clock (1
to 12).
Par4 Year – Year to set on the HASP4 Time clock (0 to
99).
Return Values
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Syntax
hasp (Service, SeedCode, PortNum,Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 73
PortNum Value indicating the port to search for the HASP.
Password1 First HASP4 Time password.
Password2 Second HASP4 Time password.
Return Values
Par1 Day – Day read from the HASP4 Time clock (1 to
31).
Par2 Month – Month read from the HASP4 Time clock
(1 to 12).
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Par4 Year – Year read from the HASP4 Time clock (0 to
99).
Syntax
hasp (Service, SeedCode, PortNum,Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 74
PortNum Value indicating the port to search for the HASP.
Password1 First HASP4 Time password.
Password2 Second HASP4 Time password.
Par1 Address – The HASP4 Time memory address to
which you want to write (0 to 15).
Par2 Data – One byte of data.
Return Values
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Syntax
hasp (Service, SeedCode, PortNum,Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 75
PortNum Value indicating the port to search for the HASP.
Password1 First HASP4 Time password.
Password2 Second HASP4 Time password.
Par1 Address – The HASP4 Time memory address to
which you want to read (0 to 15).
Return Values
Par2 Data – One byte of data read from the HASP4 Time
memory.
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Comments This service reads from the 16-byte memory of a HASP4 Time. To
read from the 248-word memory of a HASP4 Time, use Service 3
(page 170).
Syntax
hasp (Service, SeedCode, PortNum,Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 76
PortNum Value indicating the port to search for the HASP.
Password1 First HASP4 Time password.
Password2 Second HASP4 Time password.
Par1 Start Address – Defines the initial HASP4 Time
memory address for writing the block (0 to 15).
Par2 Block Length – Size, in bytes, of the data block (the
maximum is 16).
Par3 Buffer Segment – The segment address of the buffer.
Only relevant for 16-bit applications.
Par4 Buffer Offset – Offset address of a program buffer
(variable). The buffer size must be at least as large as
the block size.
Return Values
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Syntax
hasp (Service, SeedCode, PortNum,Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 77
PortNum Value indicating the port to search for the HASP.
Password1 First HASP4 Time password.
Password2 Second HASP4 Time password.
Par1 Start Address – Defines the initial HASP4 Time
memory address for reading the block (0 to 15).
Par2 Block Length – The size, in bytes, of the data block
(maximum 16).
Par3 Buffer Segment – The segment address of the buffer.
Only relevant for 16-bit applications.
Par4 Buffer Offset – Offset address of a program buffer
(variable). The buffer size must be at least as large as
the block size.
Return Values
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Syntax
hasp (Service, SeedCode, PortNum,
Password1,Password2,Par1, Par2, Par3,
Par4)
Parameters
Used Service 78
PortNum Value indicating the port to search for the HASP.
Password1 First HASP4 Time password.
Password2 Second HASP4 Time password.
Return Values
Par1 IDLow – Low (least significant) word of the ID
number.
Par2 IDHigh – High (most significant) word of the ID
number.
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Service (No.)
Seed Code
Password2
Password1
PortNum
Par2
Par3
Par4
Par1
LastStatus (40) C
Warning
System
Error
Status
Code
Net
Login (42) C
Password1
Password2
Seed Code
ProgNum
Logout (43) C
Password1
Password2
ProgNum
ReadWord (44) C
Password1
Password2
ProgNum
Address
IdleTime (48)
Service (No.)
ReadBlock (52)
WriteWord (45)
WriteBlock (53)
HASP4 Net Services
R
R
R
R
R
C
C
C
C
C
Idle Time Seed Code
(104)
Service (No.)
SetConfigFilename
HaspQueryLicense
HaspEncodeData(88)
HaspDecodeData(89)
SetServerByName (96)
Using the HASP API
R
R
R
R
R
C
C
C
C
C
Seed Code
Par1
191
HASP4 Net Services
HASP4 Net Services Part 3 - Chapter 12
Service (No.)
Seed Code
Password2
Password1
PortNum
Par2
Par3
Par4
Par1
R
Activations
remaining
Key Type
Licenses
Licenses
Active
Max.
LoginProcess (110) C
Password1
Password2
ProgNum
GetCurrentServer C Status
Offset
Buffer
Buffer
(230)
Size
R
Buffer size
Status
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 40
Return Values
Par1 Net Status – A code indicating the status of the
previous call to the hasp( ) routine. If the last call was
successful, 0 is returned.
If not an error code is returned. See Table 13.3
"HASP4 Net Status Codes" on page 220.
Par2 System Error – A context-dependent error code. For
example:
• A NetBIOS communication error returns the
specific NetBIOS error code.
• A HASP4 Net configuration file error returns the
configuration file line number where the error
occurred
Par3 Warning – A warning code. See Table 13.4 "HASP4
Net Warning Codes" on page 224
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 42
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 43
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Comments If you do not perform a HASP4 Net logout, the station and
application remain listed in the HASP4 Net log table. In this case
the behavior is as follows:
• The number of stations running the application at the same
time remains unchanged and a license is not freed. If you have
licensed a protected application to run on n stations, and n
stations have performed a HASP4 Net login, no other station
can run the application until one of these n stations performs a
HASP4 Net logout.
• If the same station re-activates the application, the application
runs using the license that is already granted.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 44
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Par1 Address – The HASP4 Net memory address you
want to read from (0 to 247).
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 45
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Par1 Address – The HASP4 Net memory address you
want to write to (0 to 247).
Par2 Data – One word of data.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Comments Word offsets 24 and higher in the HASP4 Net memory are
reserved for the HASP4 Net Program List. If you write to any of
these offsets, you may overwrite application protection parameters
that you have previously saved in this memory area.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 46
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Syntax
hasp (Service, IdleTime, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 48
IdleTime The time frame in minutes (0 to 65535).
A station which does not access the key within this
time frame is considered idle.
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 52
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Par1 Start Address – Defines the initial HASP4 Net
memory address for reading the block (0 to 247).
Par2 Block Size – Data block size in words (maximum 24
words).
Par3 Buffer Segment – Segment address of a program
buffer (variable). Only relevant for 16-bit
applications.
Par4 Buffer Offset – Offset address of a program buffer
(variable). The buffer size must be at least as large as
the block size.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Par 3 Status – A code indicating the status of the
operation. See "HASP API Status Codes" on
page 217.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 53
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Par1 Start Address – Defines the initial HASP4 Net
memory address for writing the block (0 to 247).
Par2 Block Size – Data block size in words (maximum 24
words).
Par3 Buffer Segment – Segment address of a program
buffer (variable).
Only relevant for 16-bit applications.
Par4 Buffer Offset – Offset address of a program buffer
(variable). The buffer size must be at least as large as
the block size.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Comments Word offsets 24 and higher in the HASP4 Net memory are
reserved for the HASP4 Net program list.
If you write to any of these offsets, you may overwrite application
protection parameters that you have previously saved in this
memory area.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 85
Par2 Buffer Size – The byte size of the buffer containing
the name of the HASP4 Net configuration file.
Par3 Buffer Segment – The segment address of the buffer
containing the name of the HASP4 Net
configuration file. Only relevant for 16-bit
applications.
Par4 Buffer Offset – The offset address of the buffer
containing the name of the HASP4 Net
configuration file.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 88
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Par1 0 (reserved).
Par2 Buffer size. The size in bytes of the buffer to be
encoded. The buffer must be at least 8 bytes in size.
Par3 Buffer segment. The segment address of the buffer.
Only relevant for 16-bit applications.
Par4 Buffer offset. The offset address of the buffer.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Comments The contents of the program buffer are encoded via the connected
HASP and updated in place.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 89
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Par1 0 (reserved).
Par2 Buffer size. The size in bytes of the buffer to be
decoded. The buffer must be at least 8 bytes in size.
Par3 Buffer segment. The segment address of the buffer.
Only relevant for 16-bit applications.
Par4 Buffer offset. The offset address of the buffer.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Comments The contents of the program buffer are decoded via the connected
HASP and updated in place.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 96
Par2 Buffer size. The size in bytes of the buffer to be
decoded. The buffer size can be a maximum 7 bytes.
Par3 Buffer segment. The segment address of the buffer
containing the name of the HASP LM. Only relevant
for 16-bit applications.
Par4 Buffer offset. The offset address of the buffer.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Comments If you call the hasp( ) routine with the SetServerByName service,
do so before performing a HASP4 Net login.
To name a HASP License Manager, load it with the -srvname
switch, see "Switches for the HASP License Manager" (page 258).
When an application calls the hasp( ) routine with
SetServerByName, the routine searches for a HASP License
Manager loaded with the specified name. If it finds one, the hasp( )
routine stores the HASP License Manager location. When the
application performs a HASP4 Net login, the HASP License
Manager at the stored location is accessed.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 42
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility. See
"Accessing Keys with HaspEdit" on page 83.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Return Values Use Service 40: LastStatus (page 193) to check if the call has been
performed successfully.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 110
ProgNum The number assigned to the application in HASP4
Net memory, using the HaspEdit utility.
Password1 First HASP4 Net password.
Password2 Second HASP4 Net password.
Par1 0 decrement activations per station
1 decrement activations per process
Par2 0 (reserved).
Par3 0 (reserved).
Par4 0 (reserved).
Return Values .
Comments When Par1 is set to 0, LoginProcess behaves like Login Service 42.
This service only works if reserved input parameters Par2, Par3,
Par4 are set to 0.
Syntax
hasp (Service, SeedCode, ProgNum, Password1,
Password2,Par1, Par2, Par3, Par4)
Parameters
Used Service 230
Par 1 0 (reserved)
Par 2 Size of data buffer
Par 3 0 (reserved)
Par 4 Pointer to data buffer
Return Values .
You can use Service 40 (see page 193) to check if the call has been
performed successfully.
HASP API
Status Codes
Status Codes for All HASP Keys
When you use the API to access HASP, the hasp( ) routine returns
a status code in Par3. The following tables list the status codes
returned according to the type of HASP you use.
Table 13.1 Status Codes for All HASP Keys
Code Description
0 Successful operation.
Code Description
-7 The size of the buffer is too small. This error only occurs
with services that have a minimum buffer size requirement.
Code Description
Code Description
0 Successful operation.
Code Description
0 Operation successful.
3 Communication error.
NetBIOS – unable to establish the session.
IPX – unable to get the immediate address of the HASP
License Manager. Verify that the protocol is installed
properly.
TCP/IP – unable to connect to the server. Verify that the
server address is correct.
Code Description
Code Description
Code Description
135 You called the hasp( ) routine with the Logout service
without first calling the Login service. This may occur due
to the LM reloading, or after logging out from the LM.
139 The computer with the HASP4 Net crashed and was
reactivated, or you called the hasp( ) routine with a service
(not including 40, 85, or 96) without first calling the login
service.
140 The HASP License Manager does not serve the network of
your station.
152 The encode operation failed because the hardware does not
support the service.
Code Description
153 The decode operation failed because the hardware does not
support the service.
Code Description
Code Description
Preparing Protection
Protecting applications with HASP4 Net
When protecting your application, you can choose between
protecting your application for local use, for network use or for
both. To enable HASP4 Net, use one of the following methods:
• Enable HASP4 Net when using HASP Envelope
• Use HASP4 Net API services instead of or in addition to other
API services
For more information refer to "Protecting Applications with
HASP4 Net" (page 235).
Aladdin available
Monitor
IPX supported
NetBIOS supported
Answer No. You can install the HASP4 Net key and the HASP License
Manager on any station in the network. The designated station
must be active and the HASP License Manager loaded for as
long as any application protected with HASP4 Net is running.
Question Can I see which stations are accessing a HASP4 Net key?
Answer Yes. The Aladdin Monitor utility shows you all the stations
activating an application that has performed a HASP4 Net login
to the HASP License Manager. See "Monitoring
HASP4 Net Licenses" (page 273) for details.
Question If I connect two HASP4 Net5 keys of the same developer code
to a single station, will I receive 10 licenses?
Answer No. When two HASP4 Net keys with the same developer code
are connected to the same computer, only one HASP4 Net key
responds. To enable ten licenses with two HASP4 Net5 keys,
connect each key to a separate station and run the correct HASP
License Manager. Alternatively, use a HASP4 Net10.
Answer All your customer needs to do is connect your HASP4 Net key to
the same computer. The already loaded HASP License Manager
serves both HASP4 Net keys.
Answer Yes. HASP4 Net works over the Internet with TCP/IP.
Question If, for example, I have a HASP4 Net20 can I grant access to just
17 users?
Answer Yes, using HaspEdit you can specify any number of users up to
20.
Protecting
Applications with
HASP4 Net
This chapter describes how you can protect your application with
HASP4 Net.
When protecting your application, you can choose between
protecting your application for local use, for network use or for
both. To enable HASP4 Net, use one of the following methods:
• Enable HASP4 Net when using HASP Envelope
• Use HASP4 Net API services instead of or in addition to other
API services
Switch Function
LoginProcess Functionality
LoginProcess Service 110 offers a more efficient approach to
managing HASP4 Net licenses. This service activates a tracking
mechanism that counts number of “process” logins to an
application via a HASP4 Net key.
Managing
HASP4 Net Licenses
This chapter describes how to manage HASP4 Net licenses with
the HASP License Manager.
The HASP License Manager is the application that communicates
with the protected application and the HASP4 Net key,
functioning as a link between the two. It can communicate with
several protected applications running on the network and with
multiple HASP4 Net keys connected to the computer.
The HASP License Manager is available for the following
environments: Windows 95/98/ME, Windows NT/2000/XP/
Server 2003, Mac OSX and Linux.
Loading Protocols
To enable a protocol, select it in the Load menu. You can only
enable protocols which have been installed on the machine.
Unloading Protocols
To disable a protocol, select it in the Remove menu.
Switch Explanation
Windows
Linux
-c Specify the location of the configuration file for the yes no Mac
yes
HASP License Manager.
Search Order
You can place nhsrv.ini and the executable of the HASP License
Manager in the same directory or in any other location in
accordance with the nhsrv.ini search order described in the table
below.
Table 16.2 Search Order for nhsrv.ini
Server settings
Server parameters are specified in the nhsrv.ini.file and not on the
command line. This way, parameter specification for the License
Manager service is made easier, and configuration is simplified and
consolidated within a single file.
For Win32 platforms, the nhsrv.ini. should reside in the same
directory from where the program executable is deployed. For
Linux and Mac platforms there is no default storage place for the
file; you must specify which configuration file to use. For example:
./hasplm -c /etc/nhsrv.ini
nhsrv.ini. Settings
The Win32 NetHASP License Manager configuration file requires
HASP LM version 8.2 or higher to function. Boolean switches
may have the following values:
0 no false disabled
Global LM Settings
You can fine tune settings for the HASP License Manager in its
configuration file. The HASP License Manager configuration file,
nhsrv.ini, contains the [NHS_SERVER] section which is used to
set global License Manager settings. The following is a list of
keywords in the [NHS_SERVER] section:
Keyword NHS_IP_USERLIST
Default 1000
Keyword NHS_IP_SERVERNAMES
Default none
Keyword NHS_HIGHPRIORITY
Example NHS_IP_HIGHPRIORITY= no
Keyword NHS_USE_UDP
Default enabled
Example NHS_USE_UDP=enabled
Keyword NHS_USE_TCP
Default enabled
Example NHS_USE_TCP=enabled
Keyword NHS_IP_PORTNUM
Description IP port number. This switch applies only to Win32. Port number
475 is the exclusively registered IANA number for Aladdin LM.
Default 475
Example NHS_IP_PORTNUM=475
Clients must use the same port!
!
Keyword NHS_IP_LIMIT
Description Specifies the range stations which are allowed to access the
currently activated HASP LM. The last byte may be a range.
Multiple entries should be separated by commas.The list may be
split through several lines. The following wildcard (asterisk) byte
combinations are possible:4th,4th,3rd or 4th,3rd,2nd. An
additional bitmask can be specified as the number of one-bits (e.g.
10.0.0.0/8).
Default none
Keyword NHS_USE_IPX
Default enabled
Keyword NHS_ADDRPATH
Description Path to haspaddr.dat file. The IPX address of the current LM will
be written to haspaddr.dat in the specified directory. Clients can
specify this file in their nethasp.ini file.
Example NHS_ADDRPATH=c:\temp
Keyword NHS_APPENDADDR
Default replace
Example NHS_APPENDADDR=no
Keyword NHS_USESAP
Default enabled
Example NHS_USESAP=enabled
Keyword NHS_IPX_SOCKETNUM
Description The IPX socket number. All clients must use the same default
socket number. The number should not be altered. Note: clients
must use the same port!
Default 0x7483
Keyword NHS_USE_NETBIOS
Description Setting can be enabled or disabled. If you are certain that you do
not need NetBIOS for LM communication, disable the switch to
save network and memory resources.
Default enabled
Example NHS_USE_NETBIOS=enabled
Keyword NHS_NBNAME
Description Use switch to alter name. Note: Clients must use the same name
which must be unused in your NetBIOS name space. Names must
follow NetBIOS naming conventions.
Default enabled
Example NHS_NBNAME=MyNBName
Keyword NHS_USE_LUNA_NUMS
Description Included only for the sake of compatibility with older versions.
Example NHS_USE_LUNA_NUMS=3,0,7,2
Purpose Installs and/or enters the correct registry settings for the HASP
License Manager Windows NT service.
);
Parameters
InstallMode Sets the characteristics of the installation
process.
LMPath Full path to the location where the HASP
License Manager program file nhsrvice.exe
resides. It is used by the Service Control
Manager to locate the HASP License Manager.
If you pass a Null string, then the function uses
the path to the DLL, appending the default
name of the HASP License Manager executable,
"nhservw32.exe".
It is recommended that the path be to the file
which on the HASP CD is found at:
Utilities\Servers\Win32\Service\nhsrvice.exe.
CmdLineSwitches Empty string or other string containing
command-line switches used in loading the
HASP License Manager. See "Switches for the
HASP License Manager" (page 258).
InstallMode
Options LM_SERVICE_INSTALL Installs the HASP License Manager as
a Windows NT service.
LM_SERVICE_START While LM_SERVICE_INSTALL
installs the HASP License Manager as
a Windows NT service, this option
enables you to run the HASP License
Manager without reboot. Call
HaspLMInstall() with this parameter
after you first call with
LM_SERVICE_INSTALL, or call this
parameter ORED
LM_SERVICE_INSTALL.
Special This function does not copy HASP License Manager files.
Considerations
Purpose Removes the registry settings for the HASP License Manager
service or uninstalls the service.
);
Parameters
RemoveMode Sets the characteristic of removal process.
LMPath For future use. Currently, the value is NULL.
RemoveMode
Options LM_REMOVE_ Removes the HASP License Manager
SERVICE Windows NT service.
LM_REMOVE_ Removes the HASP License Manager
SERVICE_UNLOAD Windows NT service from memory. The
service remains installed and will run again
upon the next restart.
);
Parameters
lpLMInfo Points to a LMINFO structure that receives
information relating to the installed HASP
License Manager service.
);
Parameters
*System Error Points to a variable containing the system
error number.
ErrorStr Points to a buffer to receive the last error
description of the HASP License Manager
Windows NT service.
ErrorStrSize Size of ErrorStr buffer (in bytes).
Error Messages
The HASP LM Installation functions return the following error
messages:
Table 16.4 HASP LM Installation API Error Codes
Error Description
Error Description
Configuring
HASP4 Net Clients
This chapter describes how an application protected for
HASP4 Net - the HASP4 Net client - can be configured with a
configuration file.
If the client finds its respective configuration file, it reads the file
and uses the information. If not, default values are used.
In the HASP4 Net client configuration file you can fine-tune how
the HASP4 Net client searches for the HASP License Manager.
The default filename of the HASP4 Net configuration file is
nethasp.ini. A copy of nethasp.ini is included with the HASP utilities
and also with each HASP API. If you want to change the name,
you need to implement the new name when protecting the
application with HASP Envelope or the HASP API.
Specifying Keywords
In each section, you can specify either general or section-specific
keywords. If you set a general keyword in one of the three protocol
sections, you override the setting in the [NH_COMMON] section
(for that protocol only).
Use the section-specific keywords to adjust additional settings for
a particular protocol.
API and Envelope settings override configuration file settings.
Every line of the HASP configuration file you receive with the
HASP software is preceded by a semicolon (;). To use a line,
remove the semicolon. If you want to add comments, precede
them with a semicolon.
[NH_COMMON]
Section-Specific Keywords for [NH_COMMON]
nh_ipx
Possible values enabled, disabled
Description Use the IPX protocol.
nh_netbios
Possible values enabled, disabled
Description Use the NetBIOS protocol.
nh_tcpip
Possible value enabled, disabled
Description Use the TCP/IP protocol.
nh_session
Possible values <number>
Description Set the maximum length of time during which
the protected application tries to establish
communication with the HASP License
Manager.
Default 2 seconds
nh_send_rcv
Possible values <number>
Description Set the maximum length of time for the HASP
License Manager to send or receive a packet.
Default 1 second
[NH_IPX]
Section-Specific Keywords for [NH_IPX]
nh_use_bindery
Possible values enabled, disabled
Description: Use IPX with bindery. Ignored under Win32
API. This switch replaces the older switch
named NH_USE_SAP.
Default: disabled
nh_use_broadcast
Possible values enabled, disabled
Description Use the IPX Broadcast mechanism.
Default enabled
nh_bc_socket_num
Possible values <number>
Description Set the socket number for the broadcast
mechanism. The number is hexadecimal.
Default 7483H
nh_use_int
Possible values 2F_NEW, 7A_OLD
Description 2F_NEW means that the IPX protocol will use
interrupt 2Fh ONLY. 7F_OLD means that the
IPX protocol will use interrupt 7Ah ONLY.
disabled
Default 2F_NEW
nh_server_name
Possible values <name1>, <name2>,...
Description Communicate with the HASP License Manager
with the specified name.
Maximum: 6 names, up to 7 case insensitive
characters each.
nh_search_method
Possible values localnet, internet
Description Determine whether the protected application
communicates with only HASP License
Managers on the local network, or with any
HASP License Manager on the internetwork.
Default internet
nh_datfile_path
Possible values <path>
Description Specify the location of the HASP License
Manager’s address file.
nh_session
Possible values <number>
Description Set the maximum length of time during which
the protected application tries to establish
communication with the HASP License
Manager.
Default 2 seconds
nh_send_rcv
Possible values <number>
Description Set the maximum length of time for the HASP
License Manager to send or receive a packet.
Default 1 second
[NH_NETBIOS]
Section-Specific Keywords for [NH_NETBIOS]
nh_nbname
Possible values <name>
Description Assign a name to the HASP License
Manager.Maximum: 1 name, up to 8 characters
(not case-sensitive).
nh_uselananum
Possible values <number>
Description Assign a lana number to be used as a
communication channel.
nh_session
Possible values <number>
Description Set the maximum length of time during which
the protected application tries to establish
communication with the HASP License
Manager.
Default 2 seconds
nh_send_rcv
Possible values <number>
Description Set the maximum length of time for the HASP
License Manager to send or receive a packet.
Default 1 second
[NH_TCPIP]
Section-Specific Keywords for [NH_TCPIP]
nh_server_addr
Possible values <address1>, <address2>
Description Set IP addresses of all the HASP License
Managers you want to search. Unlimited
addresses and multiple lines are possible.
Possible address format examples include:
IP address: 192.114.176.65
Local hostname: ftp.aladdin.co.il
nh_server_name
Possible values <name1>, <name2>,...
Description Communicate with the HASP License Manager
with the specified name(s). Maximum: 6 names,
up to 7 characters each (not case-sensitive).
nh_port_number
Possible values <number>
Description Set the TCP/IP port number (optional).
Default 475
nh_tcpip_method
Possible values TCP, UDP
Description Send a TCP packet or a UDP packet.
Default UDP
nh_use_broadcast
Possible values enabled, disabled
Description Use the UDP Broadcast mechanism.
Default enabled
nh_session
Possible values <number>
Description Set the maximum length of time during which
the protected application tries to establish
communication with the HASP License
Manager.
Default 2 seconds
nh_send_rcv
Possible values <number>
Description Set the maximum length of time for the HASP
License Manager to send or receive a packet.
Default 1 second
Monitoring
HASP4 Net Licenses
Aladdin Monitor permits centralized administration of the
HASP License Manager applications and the HASP4 Net keys.
The following options are available:
• Checking the properties of the HASP License Manager.
• Checking HASP4 Net keys.
• Starting and stopping the HASP License Manager service.
Aladdin Monitor is available for the following environments:
Windows 98/ME, Windows NT/2000/XP/Server 2003. It can
communicate via TCP/IP and IPX.
Box Meaning
Box Meaning
Box Meaning
Box Meaning
Box Meaning
Box Meaning
The HASP License Manager serves only the station with the
specified IP address.
• 10.1.2.*
The HASP License Manager serves only stations that match the
specified IP address mask, i.e. 10.1.2.0 through 10.1.2.255.
• 10.1.*.*
The HASP License Manager serves only stations that match the
specified IP address mask, i.e. 10.1.0.0 through 10.1.255.255.
Remote Update
System
The HASP Remote Update System (RUS) is an advanced utility
for secure, remote updating of a customer’s HASP key(s).
RUS enables you to update the memory of HASP keys already in
your customers’ possession. You encrypt the additions and
changes you make to the memory and then send them to your
customer via telephone, fax or e-mail.
Your revisions to the memory enable or modify the execution of
software modules. For example, with the new parameters you set,
the customers can upgrade a demo application to a fully licensed
version.
With RUS, you are able to update the memory of the HASP4 M1,
HASP4 M4, HASP4 Time and HASP4 Net models.
Implementing RUS
Implementation of RUS involves the two following stages:
• Creating the RUS Utilities
• Updating your customer’s HASP
RUS Utilities
With RUS, you create two utilities:
• Vendor utility
• Customer utility
Keep the Vendor utility for use at your site and supply the
Customer utility to your customer.
To update the HASP, you and your customer each use your
respective RUS utilities to update the HASP memory.
Update Procedure
To update the HASP memory:
1. The customer uses the Customer utility to retrieve the ID
number of the key which requires updating and informs you of
the number.
2. Enter the ID number and the updated data in the Vendor
utility.
3. Generate the RUS passwords in the Vendor utility, and supply
them to your customer.
4. Your customer enters the RUS passwords into the Customer
utility and updates the memory of the HASP key.
password1, password2
The passwords of the required HASP key.
target pc
An optional switch which specifies the type of computer on which
the RUS utility is to run:
Switch Function
2. Click the arrow to the right of the HASP Type field and select
your customer’s HASP model from the drop-down list.
3. Enter the HASP ID number of your customer’s key in the ID
Number field.
Now supply the RUS passwords to your customer, who can then
update the HASP key by using them with the Customer utility.
Program Number
Each program is assigned its own number. If you are updating the
protection parameters of a program, specify the number you
previously assigned it. If you are adding a new program, give it a
new number.
Expiry Date
This parameter, which is relevant only for the HASP4 Time keys,
indicates the date after which the protected program cannot run.
Enter two-digit numbers for the day, month and year of the
application’s expiry date. Type “00-00-00” if you want to set an
unlimited expiry date.
Start Address
At this address, you begin updating the HASP memory. Enter a
decimal value. Do not leave this field empty.
Data Cells
The 16 data cells are displayed in three modes (Characters,
Decimal, and Hexadecimal), each in a separate pane. Enter data
in any one of the three panes in the format of that pane.
Entering data in one pane updates simultaneously the
corresponding cells in the other panes with analogous values.
To move between panes, click the mouse on any one of the cells in
the desired pane.
Switch Function
-HaspType <HASP type> Enter the type of HASP key your customer uses.
Possible values are:
memo For HASP4 M1, M4 keys
time For HASP4 Time
netFor HASP4 Net keys
-CfgFile <configuration The full path and name of a configuration file in which some or
filename> all of the parameters set in the Vendor utility were previously
saved.
-GenPassFile <filename> The name of the file to which you save the RUS passwords.
Switch Function
-ExpDate <mm-dd-yy> The program’s expiry date. Enter 00-00-00 to set an unlimited
expiry date. This FAS parameter is relevant only to HASP4 Time.
-StartAddr <start address> The start address for editing memory in Direct mode.
-DataD Up to 16 decimal values with which you edit the HASP memory.
<dataD1>.<dataD16>
-DataS <"string" > The number of characters (up to 32 for HASP4 M1, M4 and
HASP4 Net keys, and up to 16 for HASP4 Time) with which to
update the HASP memory. Enter the string using quotation
marks.
-BatcH Runs the Vendor utility in batch mode without entering the utility
screens.
Code Description
2, 5 Invalid/missing ID number
Code Description
41 Invalid switch
52 Invalid ID number
55, 56 Cannot use FAS switches for direct mode and vice
versa
Switch Function
-VenFile <filename> Name of a file to which the HASP ID number will be saved.
-UPdate <pass1>.<pass11> Updates the HASP key by means of the specified RUS
passwords. There can be up to 11 passwords.
-CfgFile <configuration Name of the configuration file containing the RUS passwords.
filename>
-BatcH Runs the Customer utility in batch mode without entering the
utility screens.
-NoBatch Disables batch mode (for instance, when loading the RUS
passwords from a configuration file).
Code Description
Remote Update
System API
Win32 Remote Update System API
With RUS Win32 API you can remotely update the memory of
HASP4 M1, M4, HASP4 Time and HASP4 Net keys. The update
generates a secure set of strings which can be sent to the user, to
be interpreted in conjunction with a specified key. The following
components are relevant when updating HASP keys using this
interface. The RUS API directory on the HASP CD contains the
following files:
haspclnt.dll
Dynamic Link Library for the customer. This library offers two
different functions that are relevant for updating HASP keys: one
for integrating memory updates into the customer's HASP keys,
the second for retrieving the IDs of HASP keys.
Customization Utility
The customization utility (confdll.exe) is a command line
application for integrating HASP passwords into the customer
DLL, haspclnt.dll, and spawning the HASP Envelope.
Sample Applications
The Win32 API is released with sample applications to help you
implement the Win32 RUS into your application.
The following sections describe how to implement the Win32 API
into your application and how to perform updates using the
Win32 API.
Implementing RUS
Before updating HASP keys using the Win32 RUS API, you
should familiarize with the RUS concepts. To do this, take a closer
look at the sample applications provided.
Implementation of Win32 RUS involves the following stages:
RUS_CreateUpdateDirect
Description When using this function, no HASP key has to be connected.
This function creates a string for general memory updates
using a memory image.
Syntax signed int RUS_CreateUpdateDirect (
DWORD IdNum,
int Password1,
int Password2,
int KeyType,
int Address,
int NumOfBytesToUpdate,
char *MemoryImage,
int CodeBufferSize,
char *Code,
void *sKey)
Parameters Used
IdNum ID number of the customer's HASP key. Enter the unique 32-
bit ID number of your customer's HASP key. If you want to
generate data for keys without checking the ID number during
the update process, enter 0. This will update all keys with the
passwords specified below.
Password1, Passwords of the HASP keys to be updated.
Password2
KeyType Type of HASP key. Possible key types are HASP4 M1, M4,
HASP4 Net or HASP4 Time.
Address Start address of HASP memory at which you begin updating
the HASP memory.
NumOfBytesToUpdate Number of bytes to be updated in the HASP memory.
MemoryImage Pointer to the data you want to write to the HASP memory.
CodeBufferSize Length of buffer provided.
Code Pointer to the data area which is to hold the ASCIIZ (ASCII
zero terminated string) string of generated codes.
RUS_CreateUpdateFAS
Description When using this function, no HASP key has to be connected.
The function is available for HASP4 Net, HASP4 Time and
HASP4 M1, M4 keys. This function creates a string for general
memory updates using FAS licensing parameters.
Syntax signed int RUS_CreateUpdateFAS (
DWORD Idnum,
int Password1,
int Password2,
int KeyType,
int ProgramNumber,
int Activations,
int Year,
int Month,
int Day,
int Stations,
int CodeBufferSize,
char *Code,
void *sKey)
Parameters Used
IdNum ID number of the customer's HASP key. Enter the unique 32-
bit ID number of your customer's HASP key. If you want to
generate data for keys without checking the ID number during
the update process, enter 0. This will update all keys with the
passwords specified below.
Password1, Passwords of the HASP keys to be updated.
Password2
KeyType Type of HASP key. Possible key types are HASP4 M1, M4,
HASP4 Net or HASP4 Time.
ProgramNumber Each program is assigned its own number. If you are updating
the protection parameters of a program, specify the number
you previously assigned it. If you are adding a new program,
give it a new number.
RUS_PerformUpdate
Description This function updates the memory of one or more HASP keys.
In case the update is ID-number dependent, the ID number,
the key type and the passwords are checked for correctness.
Otherwise, only the key type and the passwords are checked.
Syntax signed int RUS_PerformUpdate (char *Code)
Parameters Used
Code ASCIIZ data string for update (generated using the
corresponding function of the vendor DLL).
Return Values Please refer to the chapter “Return Values” below.
Get_KeyID
Description
This function retrieves the ID number of the connected key.
This function is similar to the corresponding HASP API
function, but is provided in the DLL for completeness.
Syntax
signed int Get_KeyID (unsigned int *KeyID)
Parameters Used
KeyID Returns the ID of the key currently connected.
Return Values
General
l
RUS ID
HASP_NOT_FOUND The key could not be found.
UNDEFINED_HASP The HASP key could not be identified.
HASP_3_DETECTED A HASP 3 key has been detected.
BATTERY_DEAD_OR_MEMORY_ The battery of the key doesn’t work or the memory
CORRUPT is corrupt.
RUS Update
INVALID_CODE The string specified in the Code parameter is not
valid.
INVALID_KEY_ID The update is ID-number dependent; the ID of the
connected key does not match.
KEY_NOT_FOUND No HASP key found with this password.
KEY_TYPE_MISMATCH The connected HASP key does not match the
specified key type.
Memory Update
BUFFER_TOO_SMALL The length of the buffer specified in the
CodeBufferSize parameter is too small.
ILLEGAL_MODULE_NUMBER The program number is out of range for the
specified key type.
INVALID_PARAMETER At least one input parameter is invalid, e.g.
passwords not specified.
ILLEGAL_KEYTYPE The type of key specified in the KeyType parameter
is unknown.
DETECTED_TAMPERING A manipulation of the license information has been
detected.
HASH_MEMORY_OVERFLOW The buffer which holds the hash is too small.
Customization Utility
Each vendor generates a unique DLL with the necessary functions
for remote key updates. This DLL contains the HASP passwords
and is protected with the HASP Win32 Envelope against reverse
engineering. To customize the DLL, a simple command line utility
(confdll.exe) must used:
Syntax
confdll <DLL name> <Password 1> <Password2>
<Envelope>
Example
confdll.exe C:\demo\haspclnt.dll 15417 9632
D:\demo\instw32.exe
In the above example, the DLL will be customized with the HASP
Demo passwords and secured using the win32 HASP Envelope
engine, instw32.exe from the CD. Another option is to edit the
convert.bat batch file with your key’s passwords and run it from
the command line.
Customization Utility
The customization utility (confdll) is a command line application
for integrating HASP passwords into the customer shared library.
Troubleshooting
The first part of this appendix offers a check-list that can help you
solve some of the most common problems you might encounter
when using HASP. The second part helps you by listing specific
problems you or your customers may experience, along with the
solutions.
The HASP product line conforms to the highest standards of
quality assurance. However, like any other PC peripheral device, it
might not operate on certain PC configurations due to faulty
equipment or improper installation. This appendix on
troubleshooting can assist you if you encounter such a situation.
In addition to the information contained in this chapter,
customers can access the Aladdin Knowledge Base at:
http://www.hasp.com/kb2
The Knowledge Base contains a comprehensive listing of
solutions to general and specific problems. Please contact your
local HASP representative for access passwords and further
details. To avoid difficulties, make sure you are using current
HASP software versions. Contact your local HASP representative
for the latest updates or refer to Aladdin’s international downloads
page at:
http://www.hasp.com/download
If problems persist, check if the HASP sample, test and
DiagnostiX applications work. Then, communicate the results to
your local HASP representative.
Check List
If one of your customers reports a problem, check the following
list:.
• When applicable, note the returned error code or message. For
more information see "Status Codes for All HASP Keys" on
page 217.
• Does the same problem occur with another HASP?
If not, then replace the faulty key with a new one.
• Is the HASP key connected properly to the parallel port?
• Is a printer connected to the HASP?
If yes, and it works properly, disconnect the printer and check
whether the HASP works without it.
If it does, check the quality of the cable, and ensure it conforms
to IEEE standards. This is often printed on to the cable itself.
If the cable conforms to standards, but the HASP does not
work properly, try to use or install a second parallel port for the
HASP to circumvent any problem the printer may be causing.
If the problem still occurs, try to replace the original printer
card or use another parallel port.
• Is there a printing problem? If so, test with another printer on
the same computer to determine whether the problem is
printer-specific. Run hinstall with the switches -i -cnt=yes.
• Is your customer’s PC or system experiencing technical
difficulties such as device manager collisions, system events,
bootlog failures, etc.?
• Can Aladdin DiagnostiX access the HASP key? Try to create a
diagnostic report. See "Assisting End-Users & Vendors" on
page 117.
• Does the problem occur when the protected application runs
on another PC of the same model?
Solution Although every effort has been made to ensure the highest level
of communication, on rare occasions a call to the hasp( ) routine
might not be activated or transmitted well. We recommend that
you call the hasp( ) routine with a service several times before
assuming the HASP is not connected.
Problem You get printer errors when trying to print from a protected
Windows application.
Problem A HASP is connected to the printer and Windows 3.x warns that
the printer is inaccessible or that there is a device conflict.
Problem You try to use hinstall.exe to install the HASP device driver under
Windows NT/2000/XP/2003 but receive error 9121.
Solution If you try to activate the Hinstall utility under Windows NT/
2000/XP/2003 without administrator privileges, you receive this
error. Make sure you have administrator privileges.
Solution Make sure the HASP device driver is installed. If the problem
persists when the HASP device driver is installed, run:
hinstall -info
The Hinstall utility displays the version number, installation date,
and computer type. Contact your local HASP representative with
the details of these parameters.
Problem Your 16-bit application is protected with HASP4 Net and the
Envelope. Although the number of stations activating the
application is less than the number of licenses issued, when an
additional station tries to activate it, you receive a “too many
users” error.
Solution A 16-bit application, protected only with HASP4 Net and the
Envelope, does not perform a HASP4 Net logout. When such an
application terminates, it remains listed in the log table, and
therefore the license is not released.
Protect your application again using either the HASP API alone
or together with HASP Envelope to perform a HASP4 Net
logout. This removes the application from the log table and frees
the license.
Solution This happens when the HASP4 Net configuration file enables a
specific protocol. The HASP4 Net system tries to use the
specified protocol without checking if it is actually present. If the
station does not have the protocol drivers installed, it stops
responding.
The solution is to delete the HASP4 Net configuration file. Or, if
you need the HASP4 Net configuration file, load the network
drivers.
Solution Parallel ports of IBM PCs and compatibles are assigned to one of
the following I/O ports: 3BCh, 378h, or 278h.
Network cards usually take up 10h or 20h I/O ports
consecutively from their base address.
When the I/O port of a network card overlaps that of a parallel
card, accessing the parallel port can cause the computer to stop
responding. For example: printing, accessing software protection
keys, and accessing peripherals connected to the parallel port may
all cause the computer to hang.
It is therefore essential to avoid overlapping the I/O ports by
changing the I/O base of the network card.
There are two ways to change a network card I/O base:
• Some network cards let you assign the I/O base with jumpers.
See the documentation supplied with the card for a
description of the jumper positions for a given I/O base.
• With newer cards, you can change the I/O base using the
software supplied with the cards.
Problem Your application takes a long time to find the HASP4 Net on a
large TCPIP network.
Solution Error 8 means that query reached the HASP License Manager, but
that the HASP4 Net client did not receive an answer back. To
solve this, try increasing the time frame in which the HASP4 Net
client waits for the answer. Do so by increasing the time-out
length in the HASP4 Net configuration file.
Problem You receive error 15 with HASP4 Net under TCPIP or IPX?
Solution Error 15 under TCPIP/IPX occurs only when you use the
broadcast search mechanism. Error 15 means that a broadcast
was made by the HASP4 Net client, but no HASP License
Manager was found.
Increase the timeout length in the nethasp.ini file to 8 seconds. If
after doing so, Error 15 still returns, it is due to one of the
following:
• A HASP License Manager was not loaded.
• If the TCPIP protocol was used, then the HASP License
Manager is in a different subnetwork.
• If the IPX protocol was used, then SAP is not supported.
If you repeatedly receive Error 15, try using another search
mechanism.
Problem You are using a HASP4 Net5 and authorized your application five
licenses, but only three users can activate the application.
Solution First use HaspEdit and make sure that your application is
programmed for five licenses in the HASP4 Net. If it is, it is
possible that it escaped your notice that all five licenses are being
used. Use the Aladdin Monitor to confirm which stations are
actually using licenses.
HASP Demo
Passwords
When you order HASP keys, you are assigned a unique developer
code and unique HASP passwords. You receive the passwords
together with your HASP keys.
The following tables list the passwords you use with the HASP
demo key you receive in your HASP Developer’s Kit.
Table B.1 Passwords of HASP Demo Memory Keys
Technical
Specifications
Table C.1 General Specifications for All HASP keys
Table C.2 Specifications for HASP4 Std, HASP4 M1, HASP4 M4, HASP4 Net
Dimensions 39 x 53 x 17 mm
Weight ~33 g
Connectors DB25
Lines used D0-D7, INIT, ATFDXT, PE
Read/write memory
HASP4 without memory none
HASP4 M1 112 bytes
HASP4 M4 496 bytes
HASP4 Net 496 bytes
Batteries/external power none
Dimensions 52 x 53 x 16 mm
Weight ~50 g
Connectors DB25
Lines used D0-D7, INIT, ATFDXT, PE
Read/write memory 512 bytes
HASP4 Time clock counts hour, minute, second, year, month, day
HASP4 Time clock accuracy 2 hours per year
Battery lifetime 4+ years
Dimensions Type II
Weight ~25g
Operating temperature 0° - 70° C (32° - 158° F)
Humidity rating 20 - 80% relative humidity
Power consumption < 100 mA (typically 50 mA)
Operating voltage 5V
Batteries / external power none
ASIC technology CMOS 2µA with E2 cells
Number of programming cycles > 100 000
Data retention > 10 years
Address File A search mechanism in which the HASP4 Net client accesses a file
Search to retrieve the address of the HASP Net License Manager.
Mechanism
Aladdin A tool used to check and report all information in your system
DiagnostiX related to HASP.
Background Ongoing checks for the presence of the HASP key performed by
HASP Checks the HASP Envelope during application run time.
Bindery Search A search mechanism in which the HASP4 Net client searches the
Mechanism Novell bindery to find the HASP Net License Manager.
Broadcast A search mechanism in which the HASP4 Net client uses a SAP
Search broadcast to find the HASP Net License Manager.
Mechanism
Daisy-chaining The connecting of HASP keys one after the other. Only applicable
to parallel-port HASP keys that have different passwords.
DataHASP A feature of the HASP Envelope utility that you use to protect
data files.
Developer Code A unique code assigned to each software developer and burnt into
the ASIC component of the HASP.
Expiration Date The date after which the protected application can no longer run.
HaspEdit A utility used to access the HASP and edit the memory of HASP
memory keys.
HASP An interface to a HASP object file or DLL that you link to your
Application application, allowing you to insert calls to the HASP throughout
Programming your code.
Interface (API)
HASP Demo Key A HASP key with demo passwords (15147 and 9632 for DemoMA
keys) and developer code DemoMA that you use to evaluate the
HASP protection system.
HASP Device A property of the HASP Device Driver which enables it to load
Driver Dynamic without the need to reboot your system.
Load
HASP Envelope A HASP a patcher utility that injects code into a compiled
executable file. The HASP Envelope wraps an application in a
protective shield and ensures that the protected application cannot
run unless the correct HASP is connected to the computer.
HASP Envelope A step-by-step guide through the protection process using the
Wizard HASP Envelope.
HASP ID A unique number assigned to each HASP memory key during the
Number manufacturing process.
HASP Memory Internal read/write memory contained in the HASP, the amount
of which depends upon the particular HASP model.
HASP Memory HASP memory keys have internal read/write memory, the size of
Key which varies depending on the model. The following HASP
models contain a memory: HASP4 M1 (112 bytes), HASP4 M4
(496 bytes), HASP4 Time (496 + 16 bytes), HASP4 Net
(496 bytes)
HASP Passwords Two unique passwords assigned to each developer code, enabling
access to the HASP key. A software developer would normally
require a single developer code, but more codes can be ordered if
required.
hasp( ) Routine The HASP API routine that accesses the HASP key.
HASP Stand- HASP keys, sometimes referred to as local keys, designed for
Alone Key stand-alone computers.
HASP Test Utilities for testing the HASP API and HASP4 Net operations.
Utilities
HASP4 Time A HASP stand-alone key containing an ASIC chip, an internal real-
time clock, and depending on the model, up to 512 bytes of
internal/write memory.
Idle Time The period after which a station is considered inactive in accessing
a HASP4 Net.
HASP4 Net The default method by which the HASP4 Net protected
Automatic application searches for the HASP Net License Manager.
Search
HASP4 Net Files that contain settings for the fine-tuning of HASP4 Net client
Configuration and HASP Net License Manager behavior on the network.
Files
HASP4 Net A customized method by which the HASP4 Net client searches
Custom Search for the HASP Net License Manager.
HASP4 Net Log A list of all protected applications that have performed a HASP4
Table Net Login and the stations from which they were activated.
HASP4 Net The series of HASP4 Net keys which allow different maximum
Models numbers of licenses for a protected application.
HASP4 Net A tool used to track the use of HASP4 Net-protected applications
Monitor on a network. (monitor.exe)
Memory Beamer The Memory Beamer is a vendor utility that serves as a channel for
transferring secured data between vendors and their customers.
The utility is used to prepare customized DLLs for end users, and
to decrypt the memory of deployed HASP keys.
nethasp.ini The HASP4 Net configuration file for the protected application. It
contains settings for fine-tuning HASP4 Net behavior on the
network.
nhsrv.ini The configuration file for the HASP Net License Manager. It
contains settings for fine-tuning the HASP Net License Manager.
Number of The number of stations that can run the protected application at
Licenses the same time.
DLL for vendor ....................... 315, 327 Service 230 ........................................ 215
editing memory ........................ 302, 304 Service 3............................................. 170
Full Authorization System.... 302 - 303 Service 4............................................. 171
passwords......................... 296, 301, 311 Service 40 .......................................... 193
performing updates .......................... 316 Service 42 .......................................... 194
preparing your application .............. 316 Service 43 .......................................... 196
sample applications .......................... 316 Service 44 .......................................... 198
switches .............................................. 312 Service 45 .......................................... 199
vendor DLL....................................... 318 Service 46 .......................................... 200
Vendor utility ....... 296 - 297, 301 - 309 Service 48 .......................................... 201
Retrieve HASP ID ............................ 89, 108 Service 5............................................. 161
Return codes Service 50 .......................................... 173
hiding.................................................. 153 Service 51 .......................................... 174
Rmote Update System Service 52 .......................................... 203
preparing your application .............. 316 Service 53 .......................................... 205
RUS API Service 6............................................. 172
for Mac ............................................... 327 Service 60 .......................................... 165
haspclnt shared libary ............... 327 Service 61 .......................................... 166
haspdev shared library .............. 327 Service 70 .......................................... 178
RUS API for Mac Applications Service 71 .......................................... 179
Customization Utility ....................... 327 Service 72 .......................................... 180
haspdev shared library ..................... 327 Service 73 .......................................... 181
RUS. See Remote Update System Service 74 .......................................... 182
Service 75 .......................................... 183
S Service 76 .......................................... 184
Service 77 .......................................... 185
Sample applications ................................. 129
Service 78 .......................................... 186
Scanning for connected keys.................. 108
Service 8............................................. 163
Searching, parallel port ............................ 133
Service 85 .......................................... 207
Security, enhancing ....................... 147 - 155
Service 88 .......................................... 208
Serial number.See HASP ID
Service 89 .......................................... 210
Services
Service 9............................................. 164
basic .................................................... 157
Service 96 .......................................... 212
HASP Memory....................... 167 - 174
SetConfigFilename .................................. 207
HASP4 Net........................................ 187
SetDate...................................................... 180
HASP4 Time .......................... 175 - 186
SetServerByName.................................... 212
LoginProcess functionality.............. 246
SetTime ..................................................... 178
Service 1 ............................................. 160
Setting
Service 104......................................... 213
clock date........................................... 180