HL-Server Hardlock in a Network © 1984-2002 Aladdin Document: HL-Server HL-mn (11/2002) 1.1-A03909 Revision: 7.2 Date: November 28, 2002 Hardlock Documentation Hardlock Documentation The Hardlock documentation gives you comprehensive information about the components of the Hardlock product range and about the possibilities for protecting your software. The documentation is made up of the following parts: • The Hardlock Technical Manual shows you the principles according to which software protection functions with Hardlock and informs you about the entire Hardlock product range. In this way, you can find the right protection for your application. • The for HL-Bistro Manual provides you with an introduction to the HL-Bistro program package. This enables you to work with the Windows functionality you are familiar with when protecting your software. • The HL-Server Manual shows you how to proceed when you want to use Hardlock in a network. • The HL-Crypt Manual provides you with an introduction to automatically encrypting your programs. • The HL-API Manual provides you with an overview of the HL-API functions for manual implementation in your programs. • The Terminology Manual gives you an explanation of the core terms used in Hardlock. The manuals are supplemented by online help for the various programs. In each case, you will find the most up-to-date information in the readme files supplied with the programs. The following formatting types are used in the manuals and the online help: Formatting Function Example Bold Interface terminology and menu commands File/CTV from Hardlock Products Hardlock Twin Files and paths HLDRV.EXE Syntax hlpatchup -m 29809 CAPITAL LETTERS COURIER HL-Server 1-2 HL-Server: Hardlock in a Network The Hardlock documentation describes the most important features of the Hardlock protection system. We have taken a great deal of care to ensure that this documentation is complete and accurate. However, Aladdin Knowledge Systems Germany is unable to accept any liability for damage or loss resulting from omissions or mistakes in the documentation. HL-Server Contents Contents 1 HL-Server: Hardlock in a Network ...................................................................... 1-1 1.1 General ......................................................................................................... 1-1 1.2 Testing HL-Server......................................................................................... 1-1 1.3 Mode of Working and Resources.................................................................. 1-2 1.3.1 On the Client........................................................................................ 1-2 1.3.2 On the Server ...................................................................................... 1-2 1.3.3 Supported LANs .................................................................................. 1-3 1.4 HL-Server Types........................................................................................... 1-3 1.5 Installation..................................................................................................... 1-4 1.6 Testing the HL-Server Installation................................................................. 1-4 1.7 Aladdin Monitor ............................................................................................. 1-5 1.8 Aladdin DiagnostiX........................................................................................ 1-6 1.9 Hardlock End-Users’ Manual ........................................................................ 1-6 2 Implementation and Licensing............................................................................ 2-1 2.1 Licensing with HL-Server and HL-LiMaS ...................................................... 2-1 2.2 Licensing without HL-LiMaS.......................................................................... 2-2 2.3 Automatic Implementation with Espresso/HL-Crypt...................................... 2-3 2.4 Manual Implementation with Hardlock API ................................................... 2-3 3 HL-Server as Win32 Application (HLS32) .......................................................... 3-1 3.1 General ......................................................................................................... 3-1 3.2 Command Line Switches .............................................................................. 3-1 3.3 The HL-Server Interface (HLS32.EXE)......................................................... 3-2 4 HL-Server as NT Service (HLS32SVC)................................................................ 4-1 4.1 General ......................................................................................................... 4-1 HL-Server 1-2 HL-Server: Hardlock in a Network 4.2 Command Line Switches for Installation .......................................................4-1 4.3 Command Line Switches for Control (HLS32CMD.EXE)..............................4-2 4.4 Control Using the Aladdin Monitor.................................................................4-2 5 HL-Server for Linux ..............................................................................................5-1 5.1 General..........................................................................................................5-1 5.2 Installation .....................................................................................................5-1 5.3 Command Line Switches...............................................................................5-1 5.4 Stopping the HL-Server.................................................................................5-2 6 HL-Server as Netware NLM Application .............................................................6-1 6.1 General..........................................................................................................6-1 6.2 Installation .....................................................................................................6-1 6.3 Command Line Switches...............................................................................6-2 7 HL-Server as DOS TSR ........................................................................................7-1 7.1 General..........................................................................................................7-1 7.2 Installation .....................................................................................................7-1 7.3 Command Lines for DOS TSR......................................................................7-2 7.4 Interfaces for DOS TSR ................................................................................7-3 7.4.1 Using the Menu Interface.....................................................................7-3 7.4.2 Description of Menus and Functions....................................................7-4 7.4.3 Status Menu.........................................................................................7-4 7.4.4 Install Menu..........................................................................................7-5 7.4.5 System Menu .......................................................................................7-5 7.4.6 Local Menu ..........................................................................................7-6 7.4.7 Remote Menu ......................................................................................7-9 7.4.8 Exit Menu ...........................................................................................7-10 8 Command Line Switches .....................................................................................8-1 -Switch:[Arguments] HL-Server (Version)............................................................................8-4 Contents -application (L)................................................................................................... 8-5 -auto (N) ………………………………………………………………………………..8-6 -boxsize:NUMBER (D) ....................................................................................... 8-7 -comm:PROT[,PROT] (D,W,N) .......................................................................... 8-8 -daemon (L)....................................................................................................... 8-9 -display (D)...................................................................................................... 8-10 -enable:PROT -forceNT -install (W)........................................................................................... 8-11 (W).................................................................................................... 8-12 (D)...................................................................................................... 8-13 -logindisable (D,N,W).................................................................................... 8-14 -module:MOD[,LIZENZ] -name:SNAME -password:PASS (D,N,W,L) .................................................................. 8-15 (D,N)........................................................................................ 8-16 (D,N,W) ................................................................................ 8-17 -quickoff (D) .................................................................................................... 8-18 -remove (WSVC).............................................................................................. 8-19 -search:PORT[,PORT] (N) ............................................................................... 8-20 -start (WSVC)....................................................................................................... 8-21 -stop (WSVC)....................................................................................................... 8-22 -timeout:MIN -uninstall (D,N,W).................................................................................... 8-23 (D,N)................................................................................................. 8-24 9 Utility Programs.................................................................................................... 9-1 9.1 HLOGIN ........................................................................................................ 9-1 9.2 HLOGOUT .................................................................................................... 9-1 9.3 EDITEEP....................................................................................................... 9-2 9.4 HHT 9-3 10 Brief Explanation of Terms................................................................................ 10-1 HL-Server 1-4 HL-Server: Hardlock in a Network 11 Error Messages...................................................................................................11-1 12 Troubleshooting, Tips and Notes .....................................................................12-1 12.1 Searching for the HL-RUS License File (ALF) ............................................12-1 12.2 Specifying the Search Sequence ................................................................12-2 12.2.1 Background..............................................................................12-2 12.2.2 Syntax......................................................................................12-2 12.2.3 HL-Server Client for TCP/IP ....................................................12-4 12.2.4 Search Strategy .......................................................................12-5 12.2.5 Comments ...............................................................................12-6 12.3 Ports, Sockets and Filters ...........................................................................12-7 12.4 What to Do When the Computer Crashes?.................................................12-7 12.5 HL-Server TSR and Other TSR Programs..................................................12-7 12.6 Multitasking, Windows & OS/2 and DOS TSR ............................................12-8 12.6.1 Windows 3.x and DOS TSR ....................................................12-8 12.6.2 Windows for Workgroups and DOS TSR.................................12-8 12.6.3 Windows 9.x/ME, Windows NT/2000/XP.................................12-9 12.6.4 OS/2 DOS Box, LAN Server and DOS TSR ............................12-9 12.7 Several HL-Server Systems in a Network.................................................12-10 12.7.1 One “Hidden” Additional License ...........................................12-10 12.7.2 Novell NetBios Emulation ......................................................12-10 12.7.3 Extreme Network Load ..........................................................12-11 12.7.4 Time (DOS)............................................................................12-11 13 Index ....................................................................................................................13-1 HL-Server HL-Server: Hardlock in a Network 1 1-1 HL-Server: Hardlock in a Network 1.1 General HL-Server makes it possible to use the Hardlock protection system in a network. The Hardlock module which enables your protected applications to be run, is connected to a central server computer. The protected applications then access this protection module via the network. You can define how many accesses to the Hardlock module (without HL-LiMaS) or the individual slots (with HL-LiMaS) can take place at the same time. In order to use HL-Server, your customers need to have • a functioning network, • a parallel, USB, or internal Hardlock Server module, • installed HL-Server software to control access to the Hardlock module as a Win32 application or a Windows NT/2000/XP Service, Linux application or daemon, and the classic variants for NetWare (NLM) and DOS (TSR).), • optional Aladdin Monitor for central administration of several HL-Server in the network. Please refer to chapter 1.3 for information about possible operating systems and protocols. Relevant terminology is explained in chapter 10. Network access to the Hardlock module must be allowed for during implementation (manual or automatic). However, you do not then have to decide on only one access type; you can also allow both access types. In that case, the system first searches for the Hardlock module locally and then on the network. Please refer to chapter 2 for more information about implementation when using HL-Server and the licensing options with and without LiMaS. 1.2 Testing HL-Server You can test all HL-Server functions in demo mode. HL-Server automatically activates demo mode (can handle 10 login entries) if you specified you were using the demo Hardlock during installation. The demo Hardlock required has been assigned module address 29809. All examples in this manual are based on this module address. HL-Server 1-2 HL-Server: Hardlock in a Network 1.3 Mode of Working and Resources 1.3.1 On the Client Applications which use a Hardlock supplied by the HL-Server log themselves on to the HL-Server (Login) and can then use this remote Hardlock as they would a local Hardlock connected directly to the computer. Libraries for remote access are integrated in the application to be protected either automatically with HL-Crypt (see the HL-Crypt Manual) or manually (see the Hardlock API Manual). All other stations in the network that want to use one of the Hardlocks supplied by HLServer do not require any additional software other than the necessary protocol drivers. The following protocols are possible for the various applications: Possible client protocols Protocol DOS W16 W32 IPX X x x Netbios X TCP/IP Linux x x x x When the protected application accesses the Hardlock module, it is entered in a login table on the server which offers space for the same number of entries as you have assigned for your software licenses. When the maximum number of simultaneous users has been reached, no more applications can be started until an entry is freed up by a logout. The entry can be released automatically if the application does not access the Hardlock module for a certain length of time. The timeout time is defined during implementation. 1.3.2 On the Server HL-Server directly accesses the network protocol layer. Consequently, to use HLServer, the system must be wired as a network and a network protocol (e.g. TCP/IP, IPX, or NetBios) must be installed. HL-Server can only be loaded once on each computer. Possible server protocols Protocol DOS W16 W32 NLM IPX X x x x Netbios X HL-Server x Linux HL-Server: Hardlock in a Network Protocol DOS TCP/IP 1-3 W16 W32 NLM Linux x x x x HL-Server modules are available as an external plug, both USB and parallel, and as an internal plug-in card (ISA, MCA and PCI). For further see the Hardlock Technical Manual. A HL-Server can support up to ten (DOS: up to three) HL-Server modules on one computer at the same time. A separate login table is created for each of these modules. The maximum number of login entries is limited to 250 licenses per module. However, you can limit the total number of login entries permitted to between one and the maximum number of 250 in practical operation. 1.3.3 Supported LANs There is an almost infinite number of possible combinations between LAN type, protocol and network topology. Consequently, we have deliberately decided not to list all LAN environments which are compatible with HL-Server. If your LAN does not meet these criteria, please contact our support team for special tips on using your particular network or for information on whether your HL-Server supports your network. 1.4 HL-Server Types HL-Server can be run under various operating systems. Refer to the following table to see which type of HL-Server you need for which operating system and in which chapter this type of server is described. Operating system HL-Server Protocols Description DOS HLSERVER.EXE IPX, NetBios Chapter 5 OS/2 HLSERVER.EXE IPX, NetBios Chapter 5 Netware 3.1x, 4.x, 5.x HLSERVER.NLM IPX, TCP/IP Chapter 6 Windows 3.1x HLSERVER.EXE IPX, NetBios Chapter 5 Windows 95/98/ME HLS32.EXE IPX, TCP/IP, NetBios Chapter 3 Windows NT 3.51, 4.0/2000/XP HLS32SVC.EXE HLS32.EXE IPX, TCP/IP, NetBios Chapter 4 Linux Hlserver TPC/IP Chapter 5 HL-Server 1-4 HL-Server: Hardlock in a Network 1.5 Installation Under Windows 9.x/ME and NT/2000/XP For the installation of the HL-Server application and service we provide the file HLSW32.EXE. With this file, your customer can install the following: • HL-Server for Win32 (HLS32.EXE) • HL-Server as a NT service (HLSVC.EXE) • Drivers for Hardlock In addition to the file HLSW32.EXE you should also provide your customer with Aladdin Monitor for the central adinistration of all HL-Server in the network. As an alternative, you can also integrate routines for installing HL-Server and the required Hardlock drivers into your programs. To do this, use the driver installation API and the Hardlock Server installation API. For a more detailed description, please refer to the HINSTALL.HLP file (driver installation API) and the HSIAPI.PDF file (server installation API). See also the HL-API Manual. Under Linux The installation of HL-Server for Linux is described in chapter 5. Under Novell The installation of HL-Server for Novell is described in chapter 6. Under DOS and OS/2 The installation of HL-Server for Novell is described in chapter 7. 1.6 Testing the HL-Server Installation After installation HL-Server is loaded. The registered module can now be used by all computers in the network (in the examples, this module is the demo module with module address 29809). All stations can now test accessing of the Hardlock being served. To do so, start the HLOGIN.EXE program and enter the module address: HLOGIN 29809 HL-Server HL-Server: Hardlock in a Network 1-5 The following message should be displayed indicating that the command has been carried out correctly: Login to HL-Server Hardlock 29809 successful. A station is given authorized access until the following command is entered, at which point the station is no longer registered in the login table: HLOGOUT 29809 The following message appears indicating that this has been performed correctly: Logout from HL-Server Hardlock 29809 successful. Please refer to chapter 9 for a detailed description of the two utility programs. 1.7 Aladdin Monitor The new Aladdin Monitor (AKSMON) replaces the HLSAdmin program. The program enables end-users to • check all HL-Servers in the network, • access a local service under NT, • perform license updates (HL-LiMaS). Language setting The Aladdin Monitor is available in German and English by linking language DLLs. The end-user can change the language setting. The default setting depends on the corresponding system setting. New Functions for Hardlock LiMaS The program makes it easier for end-users to administer Hardlock modules which have been encoded for Hardlock LiMaS: • The occupation of the individual slots is displayed. • Data for updates of the Hardlock modules can be exported and imported directly via the Aladdin Monitor. HL-Server 1-6 HL-Server: Hardlock in a Network 1.8 Aladdin DiagnostiX The new Aladdin DiagnostiX tool replaces the HLDiag program. It makes it easier to solve problems encountered by your customers. Aladdin DiagnostiX enables end-users to • check Hardlock modules, • generate reports containing relevant information (driver version, network information, etc.) • configure Hardlock Environment settings. The generated reports which you receive from your customers assist you to provide solutions to problems affecting your customers use of deployed Hardlock modules. Aladdin DiagnostiX is shipped with an online Help system. There is also a special section on the tool in the Hardlock End User Manual. See below for more information. 1.9 Hardlock End-Users’ Manual We provide you with an end-users’ manual which helps to avoid problems during utilization of the Hardlock protection system. The manual contains information about • the Aladdin DiagnostiX utility, • the update mechanisms and programs when using HL-LiMaS, • the HL-Server System including the new Aladdin Monitor, • possible ways of avoiding and rectifying problems, in particular when using Hardlock in a network. The end-users’ manual can be downloaded from our website. HL-Server Implementation and Licensing 2 2-1 Implementation and Licensing 2.1 Licensing with HL-Server and HL-LiMaS If you are using HL-LiMaS when encoding Hardlock-Server modules, you can set up licenses for different components by means of slots (see also the HL-LiMaS Addendum). You can use up to 32768 slots and assign up to 32767 licenses per slot. Licensing involving users per slot replaces licensing involving users per HL-Server module and therefore makes it possible to achieve a greater granularity in assigning licenses. With HL-LiMaS, you define the conditions required for each program file to start when you are protecting the program files. You can use a counter, slots and expiration dates individually and in combination when doing this. The first matching condition is used for each program start. The license information is stored both in the memory of the Hardlock module and in a license file with the file name extension ALF (Aladdin License File), see chapter 12.1. The following steps are required for licensing: • When protecting your programs, define under which conditions the program starts. When doing this, you can make the program start dependent on the license for a slot, on valid expiration dates and on a global counter (with Espresso, HL-Crypt or with manual implementation using HL-API). • When you are encoding the HL-Server module for your customer, define how many licenses there are for each slot, which expiration dates apply globally or for the individual slots and what is the top limit of the counter (e.g. using Cappuccino). The higher granularity means the licensing procedure is slightly more complicated when HL-LiMaS is used. As a result, take particular care when assigning the conditions and run through the various possibilities afforded by your licensing system in a precise fashion. Example for using slots Conditions for the program to start: • TEXT program runs if there is a license free for slot 1 or slot 2. • TABLE program runs if there is a license free for slot 2. HL-Server 2-2 Implementation and Licensing Hardlock encoding for the customer: • Slot 1 has one license • Slot 2 has three licenses Application: 1. A user starts TEXT and TABLE. One license for slot 1 (first condition) and one license for slot 2 are used. 2. A second user starts TABLE. A license for slot 2 is used. 3. A third user starts TEXT. Since there is no longer a license free for slot 1, the second condition is used: A license for slot 2 is used. 2.2 Licensing without HL-LiMaS Without HL-LiMaS, you can define the number of licenses for accessing the Hardlock module when using HL-Server. Up to 250 licenses are possible. You can limit the number of licenses by storing a signature in the RAM area or in the ROM area of the Hardlock memory. The format of the signature is Logins:nnnn. The four-digit number is entered in decimal notation. A signature in the RAM area is fundamentally non-secure because it can be altered using software. The only advantage is that you can alter the licensing without having to re-encode the module. If you want to keep this option open, then we recommend that you use HL-LiMaS, because this provides just such an update option in a more convenient and secure way. A signature in the ROM area is defined when the Hardlock module is encoded. This licensing cannot be bypassed by altering it using software. You can define the memory content during encoding with Cappuccino (see the HL-Bistro Manual) or using the EDITEEP utility program (see chapter 9.3). Note: If you are working with the standard loader (HL-Crypt for DOS programs, option -n), you cannot assign licenses. The standard loader is only logged on to HL-Server while the application is being loaded. Afterwards, it automatically logs back out and is completely deleted from memory. While the program is running, no login permanently remains in HL-Server. This permits any number of applications to be run as long as an HL-Server with the correct module address was found when the system was started. HL-Server Implementation and Licensing 2-3 This feature is useful if you want to license your application without any limit on the number of users per network. 2.3 Automatic Implementation with Espresso/HL-Crypt You have to enable network access to the Hardlock module during automatic implementation with HL-Crypt (see the HL-Crypt Manual) or Espresso (see the HLBistro Manual). You can also enable both types of access (local and via a network). In that case, the program first searches for an appropriate Hardlock module locally and then on the network. Espresso: Call up Hardlock Settings and select the Search for HL-Server via the Network option. You can also specify the timeout here. This value defines the period of time after which an entry in the login table is deleted if the client no longer accesses the Hardlock module. HL-Crypt: Use –acc:lr (local or via the network) or –acc:r (exclusively via the network), e.g.: [HL-Crypt] myprogram.exe –m 29809 –acc:lr If you are using HL-LiMaS, you must also define during automatic implementation what are the conditions which have to be met in order for the protected program file to start (see chapter 2.1). 2.4 Manual Implementation with Hardlock API Enabling network access When logging in using HL_LOGIN or HLM_LOGIN, enter I_CARE (local or via the network) or NET_DEVICE (only network access) as the access mode, e.g.: hlresult = HL_LOGIN(29809,NET_DEVICE,RefKey,VerKey); Checking licenses (without HL-LiMaS) In addition to the login, you can also check how many entries are possible in the table and how many entries there currently are. You can do this while the program is running. To do this, use the HL_MAXUSER (possible entries) and HL_USERINF (current entries) functions. This only makes sense if you are not using HL-LiMaS, because with LiMaS, licenses are only assigned per slot and not per Hardlock module. HL-Server 2-4 Implementation and Licensing Assigning slots and checking licenses (with HL-LiMaS) If you are using HL-LiMaS, you can make the ability of program sections to run dependent on certain conditions. Use the HLM_OCCUPYSLOT, HLM_FREESLOT; HLM_CHECKALLSLOTS, HLM_CHECKSLOT, HLM_CHECKCOUNTER, HLM_CHECKEXPDATE functions, etc. to occupy, release and check slots. Defined behavior You should program the manual implementation so that your application behaves in a defined manner if HL-Server is not available (e.g. network interruption). This can be done, for example, by sending a message to the user or by terminating the program in a normal manner. For more information on this subject, refer to the HL-API Manual. HL-Server HL-Server as Win32 Application (HLS32) 3 3-1 HL-Server as Win32 Application (HLS32) 3.1 General HL-Server for 32-bit Windows comprises three parts: a service that runs under Windows NT/2000/XP (see chapter 4), an application for Windows 9x/ME, and the Aladdin Monitor (AKSMON) for central administration of several HL-Server in the network that can be used both under Windows 9x/ME and under Windows NT/2000/XP. Please note that none of the programs mentioned runs under Win32s, the 32-bit upgrade for Windows 3.x. HL-Server can only be loaded once on each computer. Up to ten Hardlock modules are supported on each HL-Server. At the protocol level, the Win32 HL-Server supports IPX, Netbios, and TCP/IP. The IPX page can be addressed by all IPX clients. The clients provide IP support for Win16 and Win32. TCP/IP must be accessible through Windows sockets (WINSOCK.DLL or WSOCK32.DLL). This is the case, for example in Windows NT/2000/XP, Windows 9x/ME and WfW 3.11 with MS-TCP/IP. Other WINSOCK implementations should also run. We have successfully tested, e.g. the CompuServe Internet Dialer and Trumpet WinSock. HL-Server can be controlled directly from the command line layer. This makes it possible to implement HL-Server functions in batch programs. The various functions are input in the form of switches when the program is activated. Please refer to chapter 3.2 for an overview of the possible switches. HL-Server 32 can be operated both with a menu interface and using the command line. The functions are more or less identical. The Win32 interface offers a range of additional functions, e.g. for displaying system data and testing the security modules. 3.2 Command Line Switches By default, HL-Server can be called as a Win32 application as follows: HLS32 It is not essential to specify a module address. The system searches for the module addresses of located Hardlock modules when there are checks and adds them (autoadd). HL-Server 3-2 HL-Server as Win32 Application (HLS32) The table below contains further switches which can either be used written out in full or in their abbreviated form. Please refer to chapter 8 for a detailed description of the individual switches. Switch Meaning -? Displays switches that can be used with HL-Server. Remark Abbreviated form -? -install Installs HL-Server. You must always specify Can be omitted a module address (-module:n[,m]). -i -module:n[,m] Module address of the Hardlock to be served (you can enter up to three addresses with one call). “n” refers to a decimal module address. “m” is an optional switch for limiting the number of login entries to the number specified (other limitations, such as the number of licenses purchased cannot be exceeded). -comm:s[,s] Used for specifying one or more network protocols. If you do not set this switch, HLServer supports all protocols available on the computer simultaneously. “s” refers to the “IPX” or “NetBios” protocols. -c:s,[,s] -timeout:n Used for specifying the amount of time (minutes) after which a login entry of a station that has crashed should be deleted from the login table. The default timeout value is 15. Values between 0 (= timeout deactivated) and 9999 may be entered. -t:n -password:s Defines a password for deleting a remote login entry. The system will prompt you to enter this password if you try to delete a login entry using the user interface. -p:s -forceNT Forces HLS32 to start even under Windows If not specified, a -f NT/2000/XP. reference to the service is displayed under NT/2000 Can be omitted, -m:n[,m] the HLS automatically searches for Hardlocks when there are checks 3.3 The HL-Server Interface (HLS32.EXE) The HL-Server interface offers a list of all active HL-Server modules and their properties: • Module: Module address of the HL-Server Hardlock • Logins: Current number of users logged on • Peak: Peak value of logged on users (since the server started) HL-Server HL-Server as Win32 Application (HLS32) 3-3 • Limit: Number of released licenses • Req.: Number of server requests (checks) • Errors: Number of failed server requests Double-click the corresponding HL-Server Hardlock address to open a window displaying all available login locations with their current assignment (node or IP address of the client and Task ID), timeout counter reading, as well as login date. To retrieve more information about the current status of your HL-Server, double-click the Hardlock icon in the upper left corner of the HL-Server interface. This opens another window, containing more detailed information about events presently occurring on HLServer. It is here you will find information about every single API function called, the sender (node or IP address), current execution status, as well as the transfer protocol used. HL-Server HL-Server as NT Service (HLS32SVC) 4 4-1 HL-Server as NT Service (HLS32SVC) 4.1 General HL-Server for 32-bit Windows comprises three parts: a service that runs under Windows NT/2000/XP, an application for Windows 9x/ME, and the Aladdin Monitor for central administration of several HL-Server in the network that can be used both under Windows 9x/ME and under Windows NT/2000/XP. Please note that none of the programs mentioned runs under Win32s, the 32-bit upgrade for Windows 3.x. HL-Server can only be loaded once on each computer. Up to ten Hardlock modules are supported on each HL-Server. At the protocol level, the 32-bit HL-Server supports IPX, Netbios, and TCP/IP. The IPX page can be addressed by all IPX clients. The clients provide IP support for Win16 and Win32. TCP/IP must be accessible through Windows sockets (WINSOCK.DLL or WSOCK32.DLL). This is the case, for example in Windows NT/2000/XP, Windows 9x/ME, and WfW 3.11 with MS-TCP/IP. Other WINSOCK implementations should also run. We have successfully tested, e.g. the CompuServe Internet Dialer and Trumpet WinSock. HL-Server can be controlled directly from the command line layer. This makes it possible to implement HL-Server functions in batch programs. The various functions are input in the form of switches when the program is activated. Please refer to chapters 4.2 and 4.3 for an overview of the possible switches. 4.2 Command Line Switches for Installation By default, HL-Server can be installed and started as an NT Service as follows: hls32svc –install hls32svc –start It is not essential to specify the module address. The system searches for the module addresses of located Hardlock modules when there are checks and adds them. The table below contains further switches. Please refer to chapter 8 for a detailed description of the individual switches. Switch Meaning Abbreviated form -? Displays switches that can be used with HLServer -? HL-Server 4-2 HL-Server as NT Service (HLS32SVC) Switch Meaning Abbreviated form -install Installs HL-Server. You must always specify a module address (-module:n[,m]) (None) -start Starts the HL-Server Service (None) -stop Stops the HL-Server Service (None) -remove Removes the HL-Server Service (None) 4.3 Command Line Switches for Control (HLS32CMD.EXE) You can use HLS32CMD.EXE if you want to control the NT Service via a command line rather than with the Aladdin Monitor. Switch Meaning -add [mouleaddr] Adds a Hardlock module to a running server -remove [moduleaddr] Removes a Hardlock module from a running server -timeout [minutes] Defines the server timeout -enable [protocol] Activates the protocol (TCP, IPX, NetBios) -disable [protocol] Deactivates the protocol (TCP, IPX, NetBios), NetBios is only selected and not deactivated until after a restart. 4.4 Control Using the Aladdin Monitor You can install, remove, start and stop the HL-Server Service using the Aladdin Monitor. Use the commands in the Service menu in order to do this. Please refer to the online help. HL-Server HL-Server for Linux 5 5-1 HL-Server for Linux 5.1 General HL-Server for Linux provides the same functionality as the HL-Server for Win32 including LiMaS support. An application using the HL-Server cannot recognize any difference between a server earmarked for Linux applications and one designed for Win32 or NLM. The Hardlocks used to protect applications are the same, therefore when selecting a HL-Server, opt for a system that best fits your customers network environment. HL-Server for Linux supports IP/UDP protocol and uses port 3047 (IANAregistered) for communication. When using a demo Hardlock, specify module address 29809, and therefore you can test the HL-Server without requiring a specific HL-Server-Hardlock. 5.2 Installation HL-Server can be started either as a daemon (-d), or as a console application (-a). The console application mode can be used to track possible problems; as it shows a trace of all client requests, similar to the trace window displayed by HLS32.EXE on Win32, when double clicking the Hardlock Icon. HL-Server for Linux can be monitored and administered by the AKSMON (Aladdin Monitor) utility running on a Win32 terminal. HL-Server for Linux fully supports the Hardlock LiMaS license management functions and the Hardlock classic functions, for USB, parallel and internal Hardlocks. Before HL-Server for Linux can be started, the Hardlock drivers (aksparlnx.o and aksusbd) must be installed. Please refer to the install.txt file of the Hardlock driver for further information. 5.3 Command Line Switches HL-Server is started from the console with hlserver [options] HL-Server 5-2 HL-Server for Linux The following command line switches are supported: -h Display help -a Run as application -d Run as daemon -module:n[,m] Module address [,max logins] of Hardlock (up to 10 times). Optional: modules are auto-added when requested. -timeout:n Timeout value in minutes. Values between 1 and 9999, 0=no timeout. Default value is 15. -zombie Enable zombie mode for timed out logins All parameters may be abbreviated according to their first letter. You must specify either the –a or –d options. Examples: hlserver –d HL-Server starts as a daemon without registering any Hardlock. Whenever a client application requests an unknown Hardlock, HL-Server searches for the Hardlock and automatically adds it when available. It is recommended that you insert “hlserver –d” into the appropriate startup script of the machine. The daemon writes its start/stop events and adds/removes a hardlock in the syslognormally in /var/log/messages. Hlserver –m:29809 –d HL-Server starts as a daemon and tries to register Hardlock 29809. If the Hardlock is not found, the daemon immediately stops. 5.4 Stopping the HL-Server The daemon is stopped by the “kill <processid>” command. HL-Server uses Posix threads, so it appears several times in the process list. Therefore when you kill the first thread, the others willl stop automatically. The application can be stopped with ^C. HL-Server HL-Server as Netware NLM Application 6 6-1 HL-Server as Netware NLM Application 6.1 General The NLM program HLSERVER.NLM can be installed directly on the Novell file server and runs under NetWare version 3.1x and higher. It cannot be used with Netware SFT. HL-Server can only be loaded once on each computer. Be sure to use a recent version of the files CLIB.NLM and STREAMS.NLM to ensure trouble-free operation. These files should at least be from 1993. Updates are available free from the website of the distributors. Be sure to always load all files included in an update package. Unfortunately HL-Server can not detect whether CLIB.NLM is new enough before using it. If you notice that public symbols are missing (most often IsColorMonitor), this is a sign for a very old CLIB.NLM. HL-Server can be controlled directly from the command line layer using straightforward entries. This makes it possible to implement HL-Server functions in batch programs (*.NCF). The various functions are input in the form of switches when the program is activated. The switches are listed in section 6.3. HL-Server for NLM can also be operated using a standard Novell user interface. 6.2 Installation The relevant files for HL-Server as an NLM are located in the HARDLOCK\HLSERVER\NLM folder on the Hardlock CD. The following files are needed for installation on the customer’s computer: HLSERVER.NLM and optional HLSERVER.CFG and HLSERVER.NFC. Only the HLSERVER.NLM file is required for command line operation. To start the HL-Server easily as an NLM, we recommend that you also use the files HLSERVER.CFG (configuration file) and HLSERVER.NCF (simple batch file). The following steps have to be taken at the customer’s site: • You need to access the server console. Make sure that you have authorized access under Netware. • To start the NLM, make sure the HLSERVER.NLM file is on the network drive. Copy the file in the [Servername]/SYS:SYSTEM folder of your NetWare server so that you do not have to enter the path when starting the NLM. HL-Server 6-2 HL-Server as Netware NLM Application • Connect the Hardlock module to any printer port (LPT port) on the computer, or install HL-Server Internal (see the Hardlcock Technical Manual). HL-Server can now be installed and started from the system console of the server: LOAD HLSERVER Following this, the installation can be tested from a client computer (see chapter 1.5). 6.3 Command Line Switches By default, HL-Server can be called as an NLM as follows: load HLSERVER It is not essential to specify the module address. The system searches for the module addresses of located Hardlock modules when there are checks and adds them. Uninstall as follows: unload HLSERVER The table below contains further switches which can either be used written out in full or in their abbreviated form. Please refer to chapter 8 for a detailed description of the individual switches. Switch Meaning -? Displays switches that can be used with HLServer. -install Installs HL-Server. You must always specify a module address (-module:n[,m]). Can be omitted -i -module:n[,m] Module address of the Hardlock to be served (you can enter up to three addresses with one call). “n” refers to a decimal module address. “m” is an optional switch for limiting the number of login entries to the number specified (other limitations, such as the number of licenses purchased cannot be exceeded). Can be omitted, the HLS automatically searches for Hardlocks when there are checks -m:n[,m] -comm:s[,s] Used for specifying one or more network protocols. If you do not set this switch, HLServer supports all protocols available on the computer simultaneously. “s” refers to the “IPX” or “NetBios” protocols. HL-Server Remark Abbreviated form -? -c:s,[,s] HL-Server as Netware NLM Application 6-3 Switch Meaning Remark Abbreviated form -name:s Defines a name for HL-Server (no blanks, maximum of 12 characters). Assigning a name to HL-Server makes it easier to differentiate between HL-Servers for administrative purposes. Default name is the -n:s name of the NetWare server -logindisable Prevents further logins to HL-Server. -l -timeout:n Used for specifying the amount of time after which a login entry of a station that has crashed should be deleted from the login table. The default timeout value is 15. Values between 0 (= timeout deactivated) and 9999 may be entered. -t:n -password:s Defines a password for deleting a remote login entry. The system will prompt you to enter this password if you try to delete a login entry using the user interface. -p:s -auto Automatically returns to the console screen after installation. -a -search:n[,n] Specifies port addresses for the Hardlock search sequence. -s:n[,n] HL-Server HL-Server as DOS TSR 7 7-1 HL-Server as DOS TSR 7.1 General HL-Server software runs under MS-DOS or PC-DOS version 3.0 or higher. The HLSERVER.EXE TSR program requires, depending on the number of Hardlocks and login entries managed and active protocols, approximately 70 KB of main memory. It can be loaded into the high memory area (DOS 5.0 UMBs, QEMM, etc.). HL-Server can only be loaded once on each computer. For it to be used in a network, HL-Server software must be loaded as a resident program with the necessary switches. HL-Server software can only be loaded once on each computer. Only stable applications that are not liable to crash the computer due to errors should be used on the HL-Server computer. If the server computer crashes, applications which depend on HL-Server also cease to operate correctly. The computer gives priority to background programs responsible for controlling the network. These programs demand a great deal of computing time. As a result, application programs running in the foreground may be slowed down considerably (depends on the size of the network and frequency of network checks). HL-Server can be controlled directly from the command line layer. This makes it possible to implement HL-Server functions in batch programs. The various functions are input in the form of switches when the program is activated. The switches are listed in section 7.3. HL-Server can also be used with a menu interface. The functions are more or less identical. The DOS menu interface offers a range of additional functions (not required for actually operating HL-Server) for displaying system data and testing the security modules. NLMs can also be administered (managed) through this interface. 7.2 Installation The relevant files for HL-Server as a DOS TSR are located in the HLSERVER\DOS folder on the Hardlock CD. The following files are needed for installation on the customer’s computer: HLSERVER.EXE, HLSERVER.OVL and HLSERVER.HLP. Only the HLSERVER.EXE file is absolutely essential for command line operation. If you also want to use the menu interface and online help incorporated in it, the HLSERVER.OVL and HLSERVER.HLP files must also be available. The customer has to take the following steps: HL-Server 7-2 HL-Server as DOS TSR • Copy HLSERVER.EXE and HLSERVER.OVL. • Load the protocol driver (e.g. IPX and/or NetBios). • Connect the Hardlock module to any printer port (LPT port) on the computer, or install HL-Server Internal (see the Hardlock Technical Manual). HL-Server can now be started, e.g. in command line mode: 1. Change to the folder in which you installed the HL-Server software. 2. Start the software by entering the program name and the module address (in this example, the module address of the demo module): HLSERVER –I –m:29809 Following this, the installation can be tested from a client computer. 7.3 Command Lines for DOS TSR By default, HL-Server can be called as an NLM as follows: HLSERVER –module:29809 The table below contains further switches which can either be used written out in full or in their abbreviated form. Please refer to chapter 8 for a detailed description of the individual switches. Switch Meaning -? Displays switches that can be used with HL-Server. -? -install Installs HL-Server. You must always specify Can be omitted a module address (-module:n[,m]). -i -module:n[,m] Module address of the Hardlock to be served (you can enter up to three addresses with one call). “n” refers to a decimal module address. “m” is an optional switch for limiting the number of login entries to the number specified (other limitations, such as the number of licenses purchased cannot be exceeded). -uninstall Exits HL-Server and removes it from the main memory. If there are any entries still in the login table, the system will ask you if you are sure you want to uninstall HLServer. The –uf switch is designed to let programmers suppress this check. HL-Server Remark HL-Server for DOS does not support automatic adding of Hardlocks! Abbreviated form -m:n[,m] -u, -uf (without check) HL-Server as DOS TSR 7-3 Switch Meaning Remark -display Generates status information on Hardlocks being served, logins, data packets at the top of the screen (must be set before booting Windows 3.x). -d -comm:s[,s] Used for specifying one or more network protocols. If you do not set this switch, HLServer supports all protocols available on the computer simultaneously. “s” refers to the “IPX” or “NetBios” protocols. -c:s,[,s] -name:s Defines a name for HL-Server (no blanks, maximum of 12 characters). Assigning a name to HL-Server makes it easier to differentiate between HL-Servers for administrative purposes. Default name is “HL-Server” Abbreviated form -n:s -logindisable Prevents further logins to HL-Server. -l -timeout:n Used for specifying the amount of time after which a login entry of a station that has crashed should be deleted from the login table. The default timeout value is 15. Values between 0 (= timeout deactivated) and 9999 may be entered. -t:n -password:s Defines a password for deleting a remote login entry. The system will prompt you to enter this password if you try to delete a login entry using the user interface. -p:s -boxsize:n Defines the number of receive buffers to be used. -quickoff Deactivates the cache when the Hardlock memory is being accessed. Only required in extreme cases -b:n -q 7.4 Interfaces for DOS TSR 7.4.1 Using the Menu Interface The TSR menu interface offers several test functions for HL-Server administration. Installed NLMs can also be managed with these test functions. TSRs can be installed completely via the menu interface. The TSR menu interface is organized as follows: • The individual menus are arranged one under the other at the left side of the screen (in the menu field). The menu currently active is marked by small triangles and a black shadow. HL-Server 7-4 HL-Server as DOS TSR • The individual menu functions (options) that can be selected from the currently active menu are displayed across the top of the screen (in the function bar). The currently active function is displayed with a yellow background. • The menu interface can be controlled both via the keyboard and mouse. • Use CTRL + arrow keys to select a menu or function with the keyboard. • Use the arrow keys to select individual options within a function window. • Press the F1 function key or the right mouse button to obtain online help information on the current menu function. Press ESC to return to the active menu function. 7.4.2 Description of Menus and Functions Most of the menu commands of the HL-Server menu interface are self-explanatory. Since many function are the same as the switches described earlier in the section on command line switches, we will not describe them again here. In the following sections, the HL-Server menus (those which are displayed in the vertical bar) and their sub-menus (horizontal bar) are explained. 7.4.3 Status Menu The functions of this menu provide you with information on the current status of the local HL-Server. The functions include: About: Provides you with information on the current version number of the HL-Server, version number of the Hardlock API being used and the operating status of HL-Server (resident or not, can be recognized through the “HL-Server network icon”). Main: Provides information on local Hardlocks (if installed), indicates to what extent HLServer is being used and offers other data on the operational status of the Hardlocks. The “# of Overloads” information is particularly important. It indicates how often HLServer was overloaded (regardless of how long it has been running). If overloads occur frequently during normal operation, install HL-Server on a faster computer that can process incoming checks more quickly. Tasks: Provides information on the internal multitasking system of HL-Server. This information is primarily used for service purposes. Below is an explanation of the individual tasks: Task Function Main Installation, initialization, uninstallation Hardlock Hardlock accesses Supervisor HL-Server administration HL-Server HL-Server as DOS TSR 7-5 IPX IPX network driver NetBios NetBios network driver Listen Interrupt tasks for receiving checks via the network (protocol-specific) Network: Provides information on the current status of the network, such as socket numbers, buffer size and counter for received and sent packets. 7.4.4 Install Menu Use this menu to install HL-Server directly from the menu interface. This menu provides you with all the options you need for installation. Install: Press ENTER to initiate installation of HL-Server with the displayed command line switches. See the “Command Line Switches” chapter for a description of the individual switches. This sub-menu lets you specify a name for the server. If you wish to serve other Hardlocks, in the Local submenu specify in Select up to three HL-Server boards (these boards must, of course, be present). Uninstall: Use this menu to remove a resident HL-Server from the main memory. Be sure to read the information on the –uninstall switch. Options: This sub-menu provides additional program functions. For more information see the appropriate sections in chapter 8: -display switch -password switch -logindisable switch -comm switch The verbose debug display option is used for internal maintenance purposes and can only be activated with the password of our support team. It is usually not necessary to use this function. Change Timeout: This option is used for specifying the amount of time after which a login entry of a station that has crashed should be deleted. For more information see the –timeout switch in the “Command Line Switches” chapter 8. 7.4.5 System Menu Use this menu to display the memory allocations of the local computer and to disable this computer with an installed HL-Server. HL-Server 7-6 HL-Server as DOS TSR Memory Map: Used for displaying the memory allocation of the main memory. The areas occupied by HL-Server are indicated. This function is only available if you are working with MS-DOS version 4.0 or higher. Lock Console: This menu function protects the computer on which you have installed HL-Server from inputs by unauthorized users. If an unauthorized person attempts to make an entry, the keyboard locks once the password has been entered and the screen is cleared (to avoid burn-in effects). All that is displayed on the screen is the HL-Server “worm” to show that the computer is running and that the HL-Server program is activated. After selecting the Lock Console option, the system immediately prompts you to enter a password. You can enter alphanumeric characters (capital or lower-case letters and the numbers 0 to 9). To reactivate the keyboard, simply reenter the Lock Console password. Note: Do not confuse this password with the –password switch used for deleting login table entries. 7.4.6 Local Menu This menu is used for selecting the module address you want to use and performing test functions for local Hardlocks and HL-Server Hardlocks. This menu is very important and covered thoroughly in the sections below. Select: Use this menu option to perform the following three tasks: • To enter 1 to 3 local Hardlocks to be made available by HL-Server for use in the network. • To select one of the three active local Hardlocks for the EyeTest and Logins options in the Local menu. • To limit the number of login entries for certain Hardlocks. • Entering Module Addresses The default setting for the first Hardlock in the list is the demo Hardlock address 29809. Use the arrow keys to move the bar to one of the three lines to enter other module addresses (or use the mouse). Press ENTER. Change the module address or enter a new address. Confirm with ENTER. You also have the option of limiting the number of entries permitted to the login table (optional). “0” indicates no limitation (cf. description of the –module switch in the “Command Line Switches” chapter 8). HL-Server HL-Server as DOS TSR 7-7 Selecting a Hardlock: If, as described above, several local Hardlocks are activated, one of these Hardlocks can be selected for the EyeTest and Logins functions described below. Note: An HL-Server computer cannot support more than one HL-Server board with identical module addresses but different subcodes. If this is the case, the HL-Server licenses are added together, but only the first Hardlock found in the port sequence LPT1 – LPT2 – LPT3 is used for encryption. Adding up the HL-Server licenses can, of course, also be used deliberately to enhance an HL-Server. Combining Hardlocks with the same module address is possible on different HL-Server computers. However, Hardlocks with the same module address must be encrypted differently (company code, subcode) in order for them to be correctly identified (also see the HL-API Manual). If several HL-Servers serving the same Hardlocks are installed in one network, the licenses are added together. The operation principle is that login checks are answered by the fastest HL-Server which still has free entries in its login table. HL-Severs with login tables that are already full do not respond. EyeTest: Use this function to test the local Hardlock specified in Select. This test identifies and displays the corresponding port address, performs a test encryption (the initial character string base string and the encryption result encrypted are displayed), and displays the contents of the ROM and RAM. You can either display the contents of the EEPROM and RAM in “Big Endian” (high bytes left, low bytes right) or “Little Endian” (Intel standard: low bytes left, high bytes right). Use either the TAB key or click the switching field marked by square brackets to toggle between the two display modes. A check mark (√) appears when “Big Endian” is activated. You can switch to other module addresses directly, without having to leave the EyeTest menu function. Click the module address input field or move the selection bar to the input field with the cursor keys. Press ENTER. This deletes the old module address. You can now enter a new module address. Logins: Operational data for the Hardlock specified under Select is displayed in the window of this menu function. This data includes: Login Count: The following count values for the login table are shown in this line: • active: Current number of login entries. • peak: Highest number of login entries at any one time (beginning from when HLServer was loaded as a resident program). HL-Server 7-8 HL-Server as DOS TSR • max: Maximum number of login entries permitted for the given Hardlock. E-Y-E Requests: Number of times the Hardlock has been accessed since HL-Server was started. Note: The counter for accesses to the security module also counts accesses made for administrative purposes (such as LOGIN and LOGOUT) since they also involve checking the Hardlock. The current entries of the Hardlocks login table are also shown. The following data is provided for each login entry: • No.: Running table number • Address: The 12-character hexadecimal hardware address of the network adapter of the logged-in client is displayed in this column. • Task ID: The task ID of the logged-in client is displayed in this column. This ID is either generated automatically by HL-Crypt or by the application developer during manual implementation with Hardlock API. The task ID enables several programs to use HL-Server simultaneously from one computer, without affecting one another (e.g. in several Windows, Windows 9.x/ME, Windows NT/2000/XP, OS/2 or DESQview DOS boxes). • Timeout: The time still remaining until the timeout period expires for each login entry is displayed in this column. Login table entries are automatically deleted when this time is up. • Date/Time: The date and time when the individual entries were made to the login table are displayed in these two columns. Deleting a Login Table Entry: Use this function to delete existing entries from the table. This is done as follows: 1. Mark the entry you want to delete by clicking it with the mouse or moving the marker bar to it with the cursor keys. 2. Press the DEL key or click on the [Del] field in the bottom line of the function window to delete the table entry. 3. (This step only applies to remote table entries.) If you protected the login table entries with a password using the options function in the setup menu, the system will prompt you to enter a password. 4. A warning message is displayed. The login table entry is not deleted until you have confirmed deletion by pressing the Y key. Press any other key to cancel the procedure. HL-Server HL-Server as DOS TSR 7-9 Note: Once you have deleted the login entry for a given workstation, the Hardlock is no longer available to this workstation. How the program running on that workstation will react depends on the way in which the Hardlock was implemented (e.g. Hardlock checking only when the program starts or with background checking). Your application should attempt to reestablish contact with HL-Server if this occurs. In any event, it should behave in a defined manner. (See section 2.4). Stress: Use this menu function to subject local Hardlocks that have been specified in Select to a stress test. The system randomly performs read and encryption accesses for the selected Hardlocks. Successful and incorrect events are tallied and displayed (successful events in yellow, incorrect events in red). In addition, the total number of accessing procedures and accessing speed (in packet units/second) are displayed in the function window at the bottom. Note: The indicated value for accessing speed is incorrect due to the time required for the current counter status to be displayed in the graphic interface. The maximum accessing speed actually achievable without the menu interface is significantly higher than the displayed value. Normally, no incorrect events should occur, i.e. the red numbers should be zero. If incorrect events are registered, the source of the error should be identified and eliminated. Otherwise applications that access HL-Server may not run correctly. An exception to this rule is when you place one single HL-Server “under stress” from several workstations simultaneously (with the Stress function in the Remote menu). This results in a checking frequency many times higher than normal. This may overload the network. (When applications are being operated under normal conditions, the additional network load produced by HL-Server is not noticeable.) 7.4.7 Remote Menu The functions of this menu address remote Hardlocks rather than local Hardlocks. Select / EyeTest / Logins / Stress: These menu functions are used and operate almost exactly the same as those (with the same name) described in the Remote menu. The Hardlocks of all work stations within a network served by HL-Server programs are addressed. (When running the stress test, only the first 10 Hardlocks located are used.) When the Remote menu is selected for the first time after the graphic interface is activated, the entire network is scanned for available remote Hardlocks. Since, depending on the size of the network, this procedure can take some time, it is only carried out the first time this menu is called. HL-Server 7-10 HL-Server as DOS TSR All available remote Hardlocks are displayed and can be selected for the EyeTest and Stress menu functions. To page through long tables that do not fit on a single screen, use the arrow keys or click the mouse on the arrows in the left margin of the table. Note: The functions EyeTest and Logins in the Remote menu can only be used if there is still space available in the login tables of the respective Hardlocks. This test must also log on to gain access to Hardlock. As do all logins, this affects the peak value. If no entries are available in the login table, you will not be granted access and a message to this effect will be displayed. Rescan: In the Remote menu, choose Rescan to perform another search for all remote Hardlocks available in the network and update the internal tables of the HL-Server menu interface. This function lets you update the table of available remote Hardlocks whenever necessary. The module addresses, (optional) names of HL-Server, network addresses and network protocols (in abbreviated form) with which the menu interface accessed the HL-Servers are displayed. All network protocols specified in the Setup menu under Options are used in the search. Use this function if you think that something may have changed in the network or in the HL-Server configuration since the Remote menu was selected for the first time (e.g. a new HL-Server, uninstallation of HL-Server, computer down, bridge deactivated, etc.). 7.4.8 Exit Menu There are several ways to exit the HL-Server menu interface and return to DOS: • Use the menu with the keyboard or mouse: Choose the Exit menu (with CTRL + arrow key) and press the ESC key. • Use the keyboard without the menu: You can leave HL-Server directly at any time and from any menu by using the ALT+X key combination or by pressing the ESC key. HL-Server Command Line Switches 8 8-1 Command Line Switches This chapter describes the command line switches with which HL-Server can be started. Not all switches can be used with the different versions (TSR, NLM, Win32). Please refer to a description of the relevant HL-Server types in chapters 3 to 6 for an overview of which switches are available in each case. Availability is identified as follows in the descriptions below: D HL-Server as DOS TSR N HL-Server as Netware NLM W HL-Server as 32-bit Windows application WSVC HL-Server as NT Service (Win32) L HL-Server for Linux Prefix the individual switches with a – or / symbol without a following space. Use spaces to separate the individual switches from one another. Use a colon (☺ to link together switches and their arguments. Do not insert a space in this case. You can either enter the full name of a switch or (in the case of several switches) just the first letter. The two command lines below, for example, function exactly the same: Examples HLSERVER –module:29809,5 –timeout:10 HLSERVER –m:29809,5 –t:10 HL-Server 8-2 Command Line Switches Command line switches Switch Function Use with Abbr. -? Displays switches that can be used with HLServer. D, N, W, WSVC -? -application Starts HL-Server as an application. L -a -auto Automatically returns to the console screen after installation. N -a -boxsize:n Defines the number of receive buffers to be used. D -b:n -comm:s[,s] Used for specifying one or more network protocols. If you do not set this switch, HLServer supports all protocols available on the computer simultaneously. “s” refers to the “IPX” or “NetBios” protocols. D, W, N -c:s,[,s] -daemon Starts HL-Server as a daemon. L -d -display Generates status information on Hardlocks being served, logins, data packets at the top of the screen (must be set before booting Windows 3.x). D -d -enable;s Activates a protocol. W -e;s -forceNT Forces HLS32 to start even under Windows NT/2000/XP. W -f -install Installs HL-Server. You must always specify a module address (-module:n[,m]). D -I -logindisable Prevents further logins to HL-Server. D, N -module:n[,m] D Module address of the Hardlock to be served (N, W, L) (you can enter up to three (DOS) / ten (Win/NLM/Linux) addresses with one call). “n” refers to a decimal module address. “m” is an optional switch for limiting the number of login entries to the number specified (other limitations, such as the number of licenses purchased cannot be exceeded). This parameter is only required for DOS, other implementations support “autoadd” whereby a hardlock is automatically added upon the first client request. -m:n[,m] -name:s Defines a name for HL-Server (no blanks, maximum of 12 characters). Assigning a name to HL-Server makes it easier to differentiate between HL-Servers for administrative purposes. D, N -n:s -password:s Defines a password for deleting a remote login entry. The system will prompt you to enter this password if you try to delete a login entry using the user interface. D, N, W -p:s HL-Server -l Command Line Switches 8-3 Switch Function Use with Abbr. -quickoff Deactivates the cache when the Hardlock memory is being accessed. D -q -remove Removes the HL-Server Service. WSVC -search:n[,n] Specifies port addresses for the Hardlock search N sequence. -s:n[,n] -start Starts the HL-Server Service. WSVC (None) -stop Stops the HL-Server Service. WSVC (None) -timeout:n Used for specifying the amount of time after which a login entry of a station that has crashed should be deleted from the login table. The default timeout value is 15. Values between 0 (= timeout deactivated) and 9999 may be entered. D,N,W,L -t:n -uninstall Exits HL-Server and removes it from the main memory. If there are any entries still in the login table, the system will ask you if you are sure you want to uninstall HL-Server. The –uf switch is designed to let programmers suppress this check. D -u, -uf (suppresses checking) (None) Switch descriptions The switch descriptions are structured as follows: HL-Server 8-4 Command Line Switches -Switch:[Arguments] (Version) Brief description of switch. Arguments List of arguments that can be used with this switch. Use More detailed description of switch. Information on how it is used. Example Example and brief description of how the switch is used. If the command line is preceded by [LOAD], this switch can also be used with HL-Server NLMs. If the command line is preceded by a (W), the command can also be used for the 32-bit HL-Server. The one-letter command abbreviation is used in the examples. The various HL-Server programs are symbolized by [HLSERVER]. Replace this entry by the following for the specific program: D N W WSVC L HL-Server HLSERVER load HLSERVER HLS32 HLS32SVC HL-Server for Linux Command Line Switches 8-5 -application (L) Starts the HL-Server for Linux as an application rather than a daemon. Arguments (None) Use Starts HL-Server for Linux as an application. Each incoming request is displayed on screen. The application can be terminated by ^C. Example hlserver –a HL-Server 8-6 Command Line Switches -auto (N) Used for automatically returning to the console screen. Arguments (None) Use Used for automatically returning to the console screen after installing HL-Server. Example LOAD HLSERVER -i -m:29809 -a HL-Server Command Line Switches -boxsize:NUMBER 8-7 (D) Used for defining the number of receive buffers to be used. Arguments NUMBER 6 Minimum 16 Default setting 128 Maximum Use To increase speed, the packet received must be stored in a buffer. If only a few stations access HL-Server, you can save resident memory (approx. 400 bytes per buffer) by reducing the number of receive buffers. If there are many stations in the system, this number can be increased. The default setting is generally sufficient. Example HLSERVER -i -m:29809 -b:80 Increases the number of receive buffers used to 80. HL-Server 8-8 Command Line Switches -comm:PROT[,PROT] (D,W,N) Used for selecting one or more network protocols. Arguments PROT IPX and NETBIOS can be used as switches. Use Use this switch to define which protocol drivers you wish HL-Server to support. If you do not specify this switch, the system will support all available network protocols. Example [HLSERVER] -i -m:29809 -c:ipx HL-Server functions are only made available for IPX. HL-Server Command Line Switches 8-9 -daemon (L) Starts HL-Server for Linux as a daemon (rather than as application). Arguments (none) Use Starts HL-Server for Linux as a daemon. The daemon writes the start/stop events and adds/removes a hardlock in the syslog – usually in /var/log/messages. The daemon is stopped by "kill <processid>". The HL-Server uses Posix threads, so it appears several times in the process list. Therfore when you “kill” the first thread, the others will stop automatically. Example hlserver -d HL-Server 8-10 Command Line Switches -display (D) Used to display a status bar at the top of the screen. Arguments (None) Use Use this command to activate and deactivate a status bar in DOS when installing HL-Server and at any later point in time. Do not use this option when working with Windows 3.x and HL-Server. This can lead to distortions in the Windows display. Example HLSERVER -d Switches the status bar on and off when HL-Server is loaded as a resident program. HLSERVER -i -m:29809 -d Activates the status bar during installation. The HL-Server status bar: HL-Server Command Line Switches 8-11 -enable:PROT (W) Activates network protocols on the system. Arguments PROT Valid switch is NETBIOS. Use This switch activates the NETBIOS protocol for the 32-bit HL-Server. Example HLS32 -e:netbios Please note that enabling Netbios under Win9.x/ME may result in long delays when HL-Server is started. HL-Server 8-12 Command Line Switches -forceNT (W) Forces the Windows 9.x/ME Server (HLS32) to start under Windows NT/2000/XP. Arguments (None) Use This switch starts HLS32 for test purposes even under Windows NT/2000/XP. This procedure is not recommended for normal server operation. Please use the HL-Server Service provided for Windows NT/2000/XP. Example: HLS32 -i -m:29809 -f HL-Server Command Line Switches 8-13 -install (D) Used for installing HL-Server software. Arguments (None) Use Used for installing HL-Server. Depending on network topology and the protocols being used, installation may take several minutes. During this time the entire network is scanned for nodes and all segments of the network are identified for later operations. Example [HLSERVER] -i Installs HL-Server. HL-Server 8-14 Command Line Switches -logindisable (D,N,W) Used to prevent other stations from logging on to the login table. Arguments (None) Use With this switch you can enable/disable further loggings on to the login tables. Use this switch for test and maintenance purposes to prevent further users from logging on. Example [HLSERVER] -l When working with an NLM HL-Server, this command can only be issued from the NLM user interface. HL-Server Command Line Switches -module:MOD[,LIZENZ] 8-15 (D,N,W,L) Used to inform HL-Server of the Hardlock module address. Arguments MOD Module address of the application Hardlock. LIZENZ Number of licenses reserved for the Hardlock (optional). Use Specifies the module address of the Hardlock to be served. To use HL-Server with more than one Hardlock, you can enter up to ten (only 3 for DOS systems) addresses. You can restrict the number of entries in the login table for each Hardlock, if for example you wish to distribute the total available licenses among several module addresses. This configuration is not very safe and should only be used for test purposes. Specifying the module addresses is necessary for the DOS TSR only. Win32, NetWare and Linux HL-Servers support the autoadd feature. Hardlocks are added automatically, when the first client attempts an access. Example [HLSERVER] -i -m:29809,4 -m:29822,6 Installs HL-Server and integrates two Hardlocks in the network with the specified addresses. Four spaces in the login table are reserved for the first Hardlock, six for the second. This divides, for example, an HL-Server with 10 licenses into two module addresses. If you do not specify the number of entries, the system assigns all available entries to the Hardlock first entered and no entries remain for the second Hardlock (this assumes, of course, that no limits were placed on the number of licenses in the EEPROM of the first Hardlock). HL-Server 8-16 Command Line Switches -name:SNAME (D,N) Used for defining a name for HL-Server. Arguments SNAME No blanks and a maximum of 12 characters may be used. Use HL-Server systems can be installed in up to 250 computers in a LAN segment. In order to identify the individual HL-Servers in the network (e.g. for performing administrative tasks via the HL-Server interface) each HL-Server can be assigned a name during installation. If no name is entered, the system uses the default name HLSERVER. under DOS, under NetWare the name of the NetWare-Server. Example [LOAD] HLSERVER -i -m:29809 -n:PRODUCTION HL-Server Command Line Switches 8-17 -password:PASS (D,N,W) Used for defining a password for deleting remote entries. Arguments PASS You can use up to eight alphanumeric characters (both capital and lower-case letters are permitted) and the numbers 0 to 9. Use When installing HL-Server, you can assign a password to prevent unauthorized users from deleting a login entry. If such a password has been assigned, remote login entries can only be deleted from the login table with this password. Example [HLSERVER] -i -m:29809 -p:Secret HL-Server 8-18 Command Line Switches -quickoff (D) Used for deactivating the cache when accessing the Hardlock memory. Arguments (None) Use To access Hardlock memory more quickly, all read accesses are managed in a cache. Use this switch to deactivate the cache. This is not recommended for normal operation since it slows down the system considerably. This switch is basically designed for test purposes and special applications. Example HLSERVER -i -m:29809 -q HL-Server Command Line Switches -remove 8-19 (WSVC) Removes the HL-Server Service from the system. Arguments (None) Use This switch permanently removes the HL-Server Service from the system. To be able to use HL-Server 32 on a Windows NT/2000/XP PC, the HL-Server Service software must be installed. Example (W) HLS32SVC -remove Please note that this switch cannot be shortened. Before you remove HL-Server Service once and for all, it must be halted with one switch. HL-Server 8-20 Command Line Switches -search:PORT[,PORT] (N) Used for specifying the order in which the system searches for the HL-Server Hardlock. Arguments PORT Port address in hexadecimal form. Use Use this switch to explicitly define a search sequence. This can prevent conflicts that occur when the LPT port addresses are searched automatically (for example, LPT addresses of configured network adapters). Example LOAD HLSERVER -i -m:29809 -s:378,278 During installation of HL-Server, the system only searches for an HL-Server Hardlock at the parallel port addresses 378 and 278 (both hexadecimal). HL-Server Command Line Switches -start 8-21 (WSVC) Starts the Hardlock Service. Arguments (None) Use With this switch, the HL-Server Service can be started by using the command line version. Example HLS32SVC -start Please note that this switch cannot be shortened. Before the HL-Server Service can be started, it must be installed with -install. HL-Server 8-22 Command Line Switches -stop (WSVC) Ends the HL-Server Service. Arguments (None) Use This switch terminates but does not remove the HL-Server Service. Example HLS32SVC -stop Please note that this switch may not be shortened. Should you wish to remove the HL-Server Service once and for all, enter the switch -remove. HL-Server Command Line Switches 8-23 -timeout:MIN (D,N,W) Used for specifying the amount of time after which the login entry of a station that has crashed should be deleted from the login table. Arguments MIN 0 No timeout 10-9999 Timeout in minutes 15 Default setting Use Experience shows that computers often crash and can only be restarted by performing a warm boot or hardware reset. This is particularly true when a program is being developed and/or tested. When this occurs, the login entry for the workstation affected remains in HL-Server. The login table gradually becomes cluttered with entries that are no longer being used. To avoid this, use this switch to specify a certain amount of time after which a login entry should automatically be deleted from the login table if the workstation logged on does not access the Hardlocks. This frees up space in the login table for other applications. When manually implementing software protection, make sure you specify a long enough timeout value so that your application is sure to check HL-Server within this time. If this does not happen, the login entry will simply be deleted. (This occurs, for example, when a program is waiting for an entry in an input routine without a Hardlock check). Therefore, when using manual implementation, be sure to use as high a timeout value as possible or deactivate the check altogether. Example: [HLSERVER] -i -m:29809 -t:45 Installs HL-Server with a timeout of 45 minutes. The timeout value can also be changed later for the DOS TSR (in the case of NLMs this can only be done from the menu interface). The timeout in HL-Server 32 cannot be changed. With the Aladdin Monitor and HL-Server Service the timeout cannot be changed currently. HL-Server 8-24 Command Line Switches -uninstall (D,N) Used to remove HL-Server from memory. Arguments (None) Use Uninstalls HL-Server. You cannot uninstall HL-Server while other stations in the network are logged on to one of the Hardlocks. Otherwise, the application programs would no longer have access to the Hardlocks and would crash. For this reason, the system prompts you with the following message when trying to uninstall HL-Server when the login table is not empty: Login table not empty, uninstall anyway (y/n) ? If you enter Y, the system uninstalls HL-Server even if there are entries in the login table, with the repercussions described above. Example [HLSERVER] -u Uninstalls HL-Server. If the login table is not empty, the message above is displayed. [HLSERVER] -uf Uninstalls HL-Server. The message above is not displayed, even if the login table is not empty (uf = uninstall force). HL-Server Utility Programs 9 9-1 Utility Programs 9.1 HLOGIN Use HLOGIN.EXE to manually log on to HL-Server for test purposes. Enter the module address of the desired Hardlock and a task ID (optional). The task ID must be a hexadecimal number of up to eight digits. The entry can be in either decimal (e.g. 1234) or hexadecimal (e.g. $6af3) form. The task ID appears in hexadecimal form in the menu interface. HLOGIN 29809 Logs on to the demo Hardlock without a task ID (the task ID “0” is used internally). HLOGIN 29809 1234 Logs on with the task ID “1234”. HLOGIN 29809 FILL Fills the login tables of all the Hardlocks available in the network with the module address 29809. Use this program to fill the HL-Server login table for test purposes (or simply to test whether HL-Server is functioning correctly). For a brief description of the program enter HLOGIN without any switches. 9.2 HLOGOUT As the counterpart to HLOGIN, HLOGOUT.EXE allows you to manually log off from HLServer. Again, you must specify a module address and task ID (optional). HLOGOUT 29809 Logs off from the demo Hardlock without a task ID (the task ID “0” is used internally). HLOGOUT 29809 $1234 Logs off with the task ID “$1234” (hexadecimal) Enter an asterisk (*) as task ID to log off all entries with the given module address from the workstation from which you initiated HLOGOUT, regardless of the task ID. HLOGOUT 29809 * Logs off all task IDs of this workstation from all demo Hardlocks. For a brief description of the program, enter HLOGOUT without any switches. It is not possible to logout other workstations (i.e. those with a different node address) using HLOGOUT. HL-Server 9-2 Utility Programs 9.3 EDITEEP Use EDITEEP.EXE to modify the Hardlock EEPROM configuration files. You can read the processed *.EEP files directly from the CP-EYE Crypto Programmer software. Example: EDITEEP APPLI004 The screen-shot above shows an example of licensing for four simultaneous users. This is done by programming the “Logins:nnnn” signature in the EEPROM of the Hardlock. “nnnn” refers to the number of licenses as a decimal value (four figures padded with zeros (“0”) from the left). This permits you to alter the number of licenses at any time by simply exchanging or reprogramming the HL-Server (Network) Hardlock without having to modify the software. EDITEEP is simple to use: • Use the arrow keys to move the cursor to the input field. • Use the tab key to toggle between ASCII and hexadecimal input. • Press ESC to abort the editing procedure without saving it. • Press the F10 key to save the changes in the current file and exit the program. (The EEPROM contents of a Hardlock cannot be directly altered using EDITEEP.) HL-Server Utility Programs 9-3 9.4 HHT Use this test program to scan all local printer ports for HL-Server (Network) Hardlock and display their permissible license entries. HL-Server “Hardlock on a Boards” are not recognized by the program if connected to their programming cable (cable included in shipment). HL-Server Brief Explanation of Terms 10-1 10 Brief Explanation of Terms • Client/Server: A system in which the services or resources of one station are made available to several others in a network. • Client: The term “client” refers to programs which can use the services of HL-Server from anywhere in the network in order to check the Hardlock and perform licensing functions. • Server: The “server” or “HL-Server” refers to the computer on which the HL-Server program runs and from which it places its functions at the disposal of the network. • “Serve”: To provide a service via the network. HL-Server places Hardlock functions at the disposal of the network. • Protocol driver: Program responsible for controlling communication with the network (i.e. the exchange of data packages in the network, for example, IPX, NetBios). It is directly linked to the board driver of the network adapter. • Network shell: Program that recognizes accesses to the network drive and/or network services and transfers them to the protocol driver (for example, NETX). • Remote: An adjective used to describe a service or device that is accessed via the network. The unit is not located locally. • Login: The act of identifying oneself to a network and/or server before you can use its functions. • Login table: A list of users currently logged on to the system. The total number of logins permitted at any given time is usually limited (licensed). • Logout: The process of terminating a session with a network and/or server. The functions of the network are then no longer available. Resources may be released. • TSR: Stands for Terminate and Stay Resident. A DOS program that remains loaded in memory and passes control functions on to the operating system while it continues running in the background. • NLM: Stands for NetWare Loadable Module. In the NetWare 386 server operating system from Novell, NLM is the equivalent to the EXE extension in DOS. • Node: A network device, such as the network adapter of a computer, that is identified through a unique address. HL-Server 10-2 Brief Explanation of Terms In this manual it is assumed that the server computer and client computer are not identical and are linked through a network. The client and server exchange information via the network. HL-Server Error Messages 11-1 11 Error Messages Error messages Cause/remedy Use with Resident HL-Server is damaged When uninstalling HL-Server, it was found out that the storage area of the resident program has been overwritten (possibly by another TSR program). HLServer cannot be uninstalled. The computer should be rebooted as soon as possible. TSR Remove TSR loaded after HL-Server, then retry Other TSR programs were loaded after HL-Server. HL-Server can only be removed if it was the last TSR program loaded. TSR More than x modules specified HL-Server can only serve up to ten (DOS:three) Hardlocks; you have specified more than three Hardlocks with -m:nnnn. TSR/NLM Invalid option: xxxxx The system does not recognize the option you have specified. Enter HLSERVER -? to obtain a list of valid options. TSR/NLM Keep failed The TSR could not be started because of an incompatible DOS version. TSR HL-Server is not installed HL-Server is not installed. The options you have entered can only be processed if there is a resident HL-Server or if an HL-Server is loaded with this call. TSR Network driver not found Either the specified network driver is not loaded or no network driver is loaded at all. TSR HL-Server is already installed HL-Server has already been installed. TSR/NLM No HL-Server Hardlock found No HL-Server Hardlock found. TSR No Hardlocks specified At least one module address must be entered when loading HL-Server. TSR Illegal timeout value The value for the timeout switch must be set to 0 (= no timeout) or to a value between 10 and 9999. TSR/NLM TSR was not started, please use HLS32 under Windows 9.x/ME. Please use HLS32SVC under Windows NT/2000/XP. The DOS HL-Server was started under Windows 9.x/ME or Windows NT/2000/XP. Please use the 32bit HL-Server (HLS32 under Windows 9.x/ME or HLS32SVC under Windows NT/2000/XP). TSR Error level codes HL-Server (TSR) and its utility programs output the “error level codes” listed below. These codes can be requested by corresponding customer-specific batch programs. (Please note that the error level codes must be in descending order when testing.) HL-Server 11-2 Error Messages Error level Error description 0 No error 1 Errors caused by bad parameters 4 Function not supported 5 Network timeout occurred 6 Not logged in 7 Hardlock not found 8 Network error 9 Access not possible 10 Memory (de)allocation failed 11 Client/server version mismatch HL-Server Troubleshooting, Tips and Notes 12-1 12 Troubleshooting, Tips and Notes This chapter provides you with troubleshooting guidelines, tips for working with certain configurations and information on using HL-Server with other software. Be sure to read the readme files on the Hardlock software CD which contain information on these subjects that was not yet available when the manual was printed. 12.1 Searching for the HL-RUS License File (ALF) When coding Hardlock modules for a network, license inforamtion is stored in a file with the extension ALF. HL-Server searches for the license information in the folder in which HL-Server is itself located as an application or an service. This behavior can be altered by specifying an environment variable. Under Windows NT/2000/XP 1. Select System/Environment in the Windows Control Panel. 2. Enter HL_LICENSEDIR as the Variable and the required folder as the Value. Note: You can only specify local folders for the service because the HL-Server service cannot access other folders via the network. 3. The changes take effect next time the service is started. HL-Server then searches the specified folder looking for files with the ALF extension (Aladdin License File). It detects the correct license by means of the correlation with the serial number. Under Windows 95/98/ME 1. Open the AUTOEXEC.BAT file. 2. Specify the environment variable as follows: SET HL_LICENSEDIR=[directory] Example SET HL_LICENSEDIR=C:\MYAPP\LICENSE 3. Save the changes. HL-Server 12-2 Troubleshooting, Tips and Notes The changes take effect next time the computer is started. HL-Server then searches the specified folder looking for files with the ALF extension (Aladdin License File). It detects the correct license by means of the correlation with the serial number. 12.2 Specifying the Search Sequence 12.2.1 Background It is possible to explicitly specify a search sequence with Hardlock API version 3.25 and higher. This is done through environment variables. By defining a specific search sequence, conflicts when the system automatically searches the LPT port addresses can be avoided (e.g. with network cards configured for LPT addresses). An API search for a Hardlock on the serial port can only be activated by means of the environment variable. Note: The search sequence will always begin with a check to see whether a Hardlock USB module is connected. 12.2.2 Syntax The syntax of the environment variable reads as follows: HL_SEARCH=[Port],...,[Protocol],... [Port] comprises the I/O address in hexadecimal form and a port ID: Port ID Meaning p = parallel Normal parallel port s = serial Normal serial port e = ECP Parallel port in ECP mode n = NEC (Japan) Japanese NEC models have a different port assignment. Consequently, this switch enables a special handling routine to be activated. This means a separate NEC API is not required. C = Compaq Contura Docking Base The multiplexer of the docking base (used for switching between the parallel port and Ethernet adapter) is reset to the parallel port for checking a Hardlock. i = IBM PS/2 The IBM PS/2 ID corrects an error when reprogramming the port of certain video drivers under Windows. (The system cannot find Hardlock once Windows is started.) Previously, this was done internally by the Hardlock API. This function can now only be activated by using the environment variable. HL-Server Troubleshooting, Tips and Notes 12-3 [Protocol] defines the protocol used for accessing HL-Server. The following key words are currently supported: Protocol Meaning IPX HL-Server searched for via IPX or SAP. IP HL-Server searched for via TCP/IP. NETBIOS HL-Server searched for via NETBIOS. Example 1 SET HL_SEARCH=378p The system only searches for the Hardlock at the local parallel port with the address 0x378. Example 2 SET HL_SEARCH=378e,2f8s The system searches for the Hardlock at the local parallel port with the address 0x378. To do this, the port is switched from ECP mode back to “normal” mode while the Hardlock is being accessed. If the system cannot find the Hardlock, it searches for it at the serial port with the address 0x2f8. Example 3 SET HL_SEARCH=IPX,278p The system first searches for a Hardlock supplied by the HL-Server using IPX/SAP. If it is not able to log on to the HL-Server, it searches for the Hardlock at the local parallel port with the address 0x278. Example 3 SET HL_SEARCH=378p,278p,3BCp,IPX,NETBIOS,IP This corresponds to the automatic search sequence (HL_LOGIN with DONT_CARE) if the environment variable is not set. This entry is thus redundant. Note: The search sequence can be directly specified through direct programming of the low-level API. HL-Server 12-4 Troubleshooting, Tips and Notes 12.2.3 HL-Server Client for TCP/IP When using the 32-bit HL-Server for Win9.x/ME or Windows NT/2000/XP, please bear in mind that the search sequence of the protocols (if you are not using HL_SEARCH) depends on the client. Thus: • 16-bit search sequence: IPX, NetBios, IP IP is searched last in order to change the former behavior as little as possible. • 32-bit search sequence: IP, IPX IP is searched first since this search is generally considerably faster than via IPX or NetBios. Search sequence for IP addresses: 1. Environment variable HLS_IPADDR (see below) 4. If no environment variable has been defined, the search takes place via DNS or HOSTS for the station HLSERVER. 5. If no address has been found, the search takes place via broadcast in the local subnetwork. To transfer IP packets, Winsock calls are used with a corresponding (16 or 32 bit) WINSOCK.DLL. Please note that during installation many Internet clients install their own WINSOCK.DLL (CompuServe, AOL, T-Online). In this case, accessing IP can cause the Internet service provider to be dialed if the HL-Server is not found via IPX and NetBios. You then need to exclude IP from the search with the following command: SET HL_SEARCH=IPX,NetBios The environment variable HLS_IPADDR has been introduced in order to optimize the search via the TCP/IP protocol. It allows you to specify one or more IP addresses or names. However, if several addresses are specified at the same time – in contrast to HL_SEARCH – you cannot predict which of the specified HL-Servers will ultimately be used. Example SET HLS_IPADDR=192.9.209.17,luzie.aladdin.de HLS_IPADDR can also be used to specify broadcast addresses if required: SET HLS_IPADDR=192.9.209.255,192.9.201.255 HL-Server Troubleshooting, Tips and Notes 12-5 Since IP networks generally have considerably greater differences in propagation time than IPX networks (e.g. WAN routes), the limits for timeouts and retries for the clients must be set fairly generously. The default values are set so that the HL-Server should be found with an existing 64 Kbit connection. • SET HLS_WAIT= Sets the delay between two retries, in milliseconds Default TCP/IP: 1000, IPX: 200 (*) min. 200 max. 30000 • SET HLS_RETRIES= Sets the number of retries until the DONGLE_NOT_FOUND message is returned Default 5 min. 2 max. 30 Note: The defaults vary, however SET HLS_WAIT changes the values for IPX and TCP/IP. 12.2.4 Search Strategy Please keep the following points in mind when specifying the access type with the HL_LOGIN function: • With HL_LOGIN(MODAD, LOCAL_DEVICE,...) the system searches all local ports without the environment variable. By specifying the environment variable, you can direct the system only to search local addresses (parallel and serial). It is not possible subsequently to instruct the system to extend its search to the network. • With SET HL_SEARCH=IPX,278p only the address 0x278 is used. The IPX entry is ignored. • With SET HL_SEARCH=IPX a Hardlock will not be found since the entry is overruled by the access type specified with HL_LOGIN. HL_LOGIN returns error code 15 (INVALID_ENV). • With HL_LOGIN(MODAD, NET_DEVICE,....) the system searches all supported protocols for an appropriate HL-Server without an environment variable. HL-Server 12-6 Troubleshooting, Tips and Notes By specifying the environment variable, you can only restrict the protocols used for searching. It is not possible subsequently to instruct the system to extend its search to local ports. • With SET HL_SEARCH=IPX,2f8s only the IPX protocol is used. The 2f8s entry is ignored. • With SET HL_SEARCH=278p a Hardlock will not be found since the entry is overruled by the access type specified with HL_LOGIN. HL_LOGIN returns error code 15 (INVALID_ENV). • With HL_LOGIN(MODAD, DONT_CARE,....) the system first searches all local parallel ports without the environment variable. It then searches for an appropriate HL-Server with all supported protocols. You can restrict the search in any way you like by specifying the environment variable. 12.2.5 Comments • If the environment variable does not contain a single valid entry, the HL_LOGIN function returns error code 15 (INVALID_ENV). • It does not matter whether the environment variable is in small or capital letters. • When working with Windows 9x/ME programs, remember that the environment variable must be set before Windows starts. Subsequent modification in a DOS box has no effect on Windows programs. • Under Windows NT/2000/XP, you can set the environment variable in the control panel under System/Environment. • HL_SEARCH must be set with the port identifier e in order to ensure correct ECP port handling under Windows NT/2000/XP. This is because the Hardlock device driver cannot check the port mode as in the case of 9x/ME. • Specifying a port address ensures that your specific hardware is supported. For example, the system searches for the Hardlock at port address 0x320 if SET HL_SEARCH=320p is specified. Entering an incorrect port address can thus lead to conflicts. • Programs encrypted with HL-Crypt (version 5.64 or higher), HLWCrypt (version 4.06 or higher) and HLCWin32 (version 1.03 or higher) search for the Hardlock according to the rules outlined above. • The search sequence of serial ports is only supported by API version 3.50 and higher. HL-Server Troubleshooting, Tips and Notes 12-7 12.3 Ports, Sockets and Filters When accessing HL-Server via IPX or TCP/IP, clients send their requests to a certain port or socket. These requests can only reach HL-Server, if the ports and sockets in question are not blocked by routers, firewalls and alike. • Under IPX the sockets 6666h and 7777h are used. • Under TCP/IP the ports 3047/udp and 3047/tcp are used. Please make sure that communication through these ports/sockets is possible, if you want to uses these portcalls. If you use the security function in TCP/IP under Windows NT/2000/XP, remember to open the ports 3047/udp and 3047/tcp. 12.4 What to Do When the Computer Crashes? When client computers crash, unused login entries may accumulate in the login table of a Hardlock. This blocks space for new entries. HL-Server software provides three ways of deleting these entries from the login table: 1. Specify a value for the timeout function. Any workstation that does not access the HL-Server (Network) Hardlock being served during this time is automatically logged off (also see description of -timeout switch). 2. Use the HLOGOUT test program to delete entries of a workstation from the login table. This call can be included in the AUTOEXEC.BAT file, for example, so that when the computer is rebooted the table entries occupied by the workstation are automatically deleted. (Enter an asterisk (*) for the task ID. If a workstation was not logged on, nothing will happen then.) 3. Use the LOCAL and REMOTE functions in the LOGINS menu to delete entries in the login table. The last method can be protected with a password to prevent unauthorized persons from deleting entries. 12.5 HL-Server TSR and Other TSR Programs If you are using memory-resident programs that export part of their code or data to the hard disk or to an EMS/XMS, load these programs after you load HL-Server. These programs swap part of the main memory to disk and then load their own code when they are activated. If the HL-Server program was in the area of memory being exported by one of these programs, it would be overwritten during swapping and the network interrupts would get lost. HL-Server 12-8 Troubleshooting, Tips and Notes Examples of such programs are QTSR and SideKick PLUS. 12.6 Multitasking, Windows & OS/2 and DOS TSR Be careful when using multitasking programs such as Software Carousel, DESQview, NetWare Access Server and Windows on the HL-Server computer. Depending on your particular configuration, such programs can severely jeopardize the performance of HLServer. Always load HL-Server before starting the multitasking program. Make sure HLServer was installed properly before making the computer available for use. 12.6.1 Windows 3.x and DOS TSR Windows 3.x and HL-Server are generally very compatible. However, be sure to load HL-Server before starting Windows. The HL-Server status bar should not be activated when Windows is being started. You can call the menu interface from a DOS box, but do not perform an “install” or “uninstall”. The system will let you install HL-Server in a DOS box under Windows, but after you close the box, HL-Server will no longer be available to the application. 12.6.2 Windows for Workgroups and DOS TSR Using Windows for Workgroups (WfW) together with HL-Server can cause problems. The performance of both systems can be jeopardized. The WfW network functions are unstable in both simple peer-to-peer operation and when used with NetWare ODI drivers. Below is a description of the various possible configurations: • WfW without peer-to-peer functions (“Only install Windows support for the following network” is selected): WfW runs like Windows 3.1 in this mode. HL-Server TSR and the accessing application operate together without any problems. • WfW as a peer-to-peer network (“Microsoft Windows network” and “No additional network” are installed in the network setup). The NetBIOS which can be used by HL-Server is available under WINDOWS. HLSERVER.EXE is called in the autostart group. Since this is a TSR program, make sure the DOS box does not terminate after the program is exited. • WfW network and Novell NetWare in combination. Both the Microsoft NetBEUI and Novell IPX are used with the ODI driver of the network adapter. With this configuration, certain router information packets, triggered by, for example, an HLServer access, are incorrectly sent. The range of symptoms extends from HL-Server not being accessed to loss of server access (may only happen sporadically). To get HL-Server Troubleshooting, Tips and Notes 12-9 around this problem would take too much time and would have significant side effects. We only recommend using HL-Server in the first solution described above. The second configuration should only be used as a temporary solution in exceptional cases. Since WfW has not been upgraded, this problem will continue to exist until a new version comes out (i.e. the network routines of the new version have been completely redesigned and the problems thus no longer occur). 12.6.3 Windows 9.x/ME, Windows NT/2000/XP You can install the TSR HL-Server in a DOS box under Windows NT/2000/XP or Windows 9.x/ME. However, it is no longer supported due to the various disadvantages associated with the use of a DOS box in the Windows environment (closing the box terminates HL-Server). In this case, use the 32-bit HL-Server or the HL-Server Service. Note: If you should run into difficulties installing HL-Server under Windows 9.x/ME, you can force the system to generate a logfile by entering HLS32 -m:xxxxx logfile. The file will be named hls32.log and stored in the current Server folder. It contains valuable information about the successful progress of the respective protocol initializations. 12.6.4 OS/2 DOS Box, LAN Server and DOS TSR You can install HL-Server in a DOS box under OS/2, but after you close the box, HLServer is no longer available to the application! In some versions of the OS/2 LAN Server, the NetBios name services for DOS boxes are deactivated (default setting). No HL-Server can be found without the name services (this also applies to other software, such as Stomper and Exac). Enter the following command directly after activating a DOS box (in any event, before trying to access the network) to activate name services: LTSVCFG s=10 c=10 n=10 n1=1 The LTSVCFG.COM program is part of the LAN server and is automatically installed with it. Switch explanations: s Number of NetBios sessions c Number of NetBios commands n Number of NetBios names n1 0 name services deactivated n1 1 name service activated HL-Server 12-10 Troubleshooting, Tips and Notes Be sure to set name services to n1=1. The other switches (s, c and n) may have to be adjusted to your particular configuration. If HL-Server or HL-Server client is the only program which uses NetBios in the DOS box, you should not use any switches other than the ones listed above. 12.7 Several HL-Server Systems in a Network You can run up to 250 HL-Server systems per network segment. Hardlocks with the same module address but different coding can only be distinguished from one another if the client program identifies them with the REFKEY and VERKEY switches of the HL_LOGIN(...) function (see the HL-API Manual). HL-Crypt always performs this identification automatically. You can use as many local Hardlocks as you like in addition to the HL-Server systems. You cannot use Hardlock with the same module address but different base codes/subcodes on the same HL-Server. Use different module addresses for Hardlocks with different coding. Otherwise, you cannot use them together even in local operation. 12.7.1 One “Hidden” Additional License If a protected application is set up to be used with both a local and remote Hardlock, when used on an HL-Server computer, it will access the local Hardlock. No login entry will be made to HL-Server. This means the application can be used by one more user than there are spaces in the login table. To prevent this, issue different module addresses to the local and remote Hardlock (e.g. the application uses either the local Hardlock 12345 or the remote Hardlock 12346). If you do not wish to assign different addresses, keep this “loophole” in mind when issuing licenses. 12.7.2 Novell NetBios Emulation The Novell NetBios emulation has certain peculiarities that can affect operation with HLServer: • Setting up the group name when installing HL-Server can require a great deal of time, especially in a network with multiple segments. • When first accessing the NetBios after loading the NETBIOS.EXE and later at irregular intervals, the emulation executes various initialization procedures which can be very time consuming. As a result, functions such as Select and Rescan in HL-Server Troubleshooting, Tips and Notes 12-11 the Remote menu may take considerably longer than in “real” NetBios networks or with IPX. • If you first install an HL-Server on a computer with the IPX protocol, then load the NetBios and finally activate the graphical interface of HL-Server. When you execute Rescan in the Remote menu (via IPX and NetBios), depending on the size of the network, the NetBios emulator will probably not function correctly. These problems are only particular to Novell NetBios emulation; they do not occur in other NetBios networks. 12.7.3 Extreme Network Load If the network is subject to an extreme load (for example if a file server is streamed via a workstation, or a stress test is performed on a very large number of computers), the HLServer client may no longer be able to access “its” HL-Server. The HL-Server program itself and the client routines are equipped with sophisticated timeout and retry mechanisms. However, at some point, if the network is too overloaded, communication ceases. (This problem also occurs with Novell Netware; when the network is overloaded, no file server can be accessed.) In this case, the HL-Server client routines function as if the requested Hardlock was not available. This problem occurs more frequently on slow HL-Server computers than on fast ones. This is because fast computers are able to respond to more requests before the network timeout has elapsed than slow computers. You can only remedy the problem by lessening the load on the entire network. Individual measures which can be taken depend on the given situation and cannot be covered within the scope of this manual. 12.7.4 Time (DOS) You may have noticed that after lengthy copying sessions via the network, the time noted by the software in your computer (not the hardware clock) is behind. This is due to the fact that when the network adapter is severely loaded, the “ticker interrupt” is sometimes skipped. The ticker interrupt ensures that the computer’s software clock continues running. (The hardware clock is normally only read when you boot the system.) This problem does not occur with the client routines of HL-Server. However, this problem may occur on the computer on which HL-Server is resident. If, for example, you run a number of remote stress tests for a few hours, the time in the HL-Server computer may differ slightly from the actual time. HL-Server 12-12 Troubleshooting, Tips and Notes Although it might seem logical to try to correct this problem by regularly reading the hardware clock and then resetting the software clock, this is not advisable since doing so disturbs the time response of HL-Server. Since the network’s normal operation is not affected by the clock’s incorrect time, you should not make any adjustments to the software clock. If, in special configurations, the discrepancy between the software clock and hardware clock becomes too great after continuous operation of HL-Server, you can activate the mtc (“Midnight Time Correction”) switch when installing the TSR: hlserver -i -m:29809 –mt HL-Server Index 13-1 13 Index A F Aladdin License File .............................12-1 -forceNT ...............................................8-12 ALF .......................................................12-1 H application Hardlock API ..........................................7-8 command-line switch .........................8-5 Hardlock documentation ........................1-1 -auto .......................................................8-6 HHT........................................................9-3 B HL-Crypt.................................................7-8 -boxsize: .................................................8-7 HLOGIN..................................................9-1 C HLOGOUT..............................................9-1 CLIB.NLM ...............................................6-1 HLS32 ....................................................3-2 Client/Server.........................................10-1 HL-Server ...............................................3-2 -comm.....................................................8-8 HL-Server installation Compaq Contura ..................................12-2 API.....................................................1-4 D daemon I IBM PS/2 ..............................................12-2 command-line switch .........................8-2 -daemon .................................................8-9 -install ...................................................8-13 Installation -display .................................................8-10 Testing...............................................1-4 DOS........................................................1-3 IPX.................................................8-9, 12-2 Driver installation API .............................1-4 K E EDITEEP ................................................9-2 Kill Stopping the HL Server.....................5-2 EEPROM ................................................9-2 L -enable:.................................................8-11 LAN Server...........................................12-9 License data HL-Server Index 13-2 Search .............................................12-1 Linux Node.....................................................10-2 Novell NetBios....................................12-11 Command-line switches ....................5-1 O HL Server for Linux............................5-1 OS/2 ..............................................1-3, 12-9 general ................................... 5-1 P Possible client protocols ....................1-6 Password .............................................8-17 Possible server protocols ..................1-7 -password:............................................8-17 Server types ......................................1-7 Peer-to-peer .........................................12-8 logfile ....................................................12-9 Protocol driver ......................................10-1 Login.....................................................10-1 Q Login table ............................................10-1 -quickoff................................................8-18 -logindisable .........................................8-14 R Logout...................................................10-1 Receive buffers ......................................8-7 M Remote.................................................10-1 Memory.................................................8-18 -remove: ...............................................8-19 Microsoft Windows network..................12-9 S -module SAP ......................................................12-2 N Search -name: ..................................................8-16 Aladdin License File ........................12-1 NEC API ...............................................12-2 Search strategy ....................................12-5 NetBEUI................................................12-9 -search: .......................................8-20, 8-22 NETBIOS.................................... 8-12, 12-2 Server...................................................10-1 Netware ..................................................1-3 -start .....................................................8-21 Netware SFT III ......................................6-1 STREAMS.NLM .....................................6-1 Network protocol layer............................1-6 T Network shell ........................................10-1 TCP/IP..................................................12-4 NLM .............................................. 6-1, 10-1 -timeout: ...............................................8-23 HL-Server Index 13-3 TSR ......................................................10-1 Server protocols ................................1-6 Typographical conventions.....................1-1 W U Windows...............................................12-8 -uninstall ...............................................8-24 Windows 3.1x.........................................1-3 USB Windows 9.x/ME ..................................12-9 Hardlock in a network ........................1-5 Windows 9x/ME .....................................1-3 Linux installation ................................5-1 Windows for Workgroups .....................12-8 Search sequence.............................12-2 Windows NT/2000/XP ...................1-3, 12-9 HL-Server