| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 | unit Hasp4;interfaceuses  windows,  sysutils;(****************************************************************************** * *  HASPAPI.INC - Service constants and declaration of the hasp() routine. * *  Copyright (c) 2002 Aladdin Knowledge Systems Ltd. * ******************************************************************************){$IFOPT O+}{$DEFINE HASPAPI_OPT_O}{$ENDIF}{$O-}       { Optimizations must be off for HASP API }(****************************************************************************** * *  HASP function * ******************************************************************************){$IFDEF HASP_DLL}procedure hasp ( Service,                 SeedCode,                 LptNum,                 Pass1, Pass2 : longint;                 var p1, p2, p3, p4 : longint);   stdcall;   external 'haspms32.dll';{$ELSE}procedure _hasp ( Service,                 SeedCode,                 LptNum,                 Pass1, Pass2 : longint;                 var p1, p2, p3, p4 : longint);   stdcall;   external;procedure hasp ( Service,                 SeedCode,                 LptNum,                 Pass1, Pass2 : longint;                 var p1, p2, p3, p4 : longint);var  HaspRandInitialized : boolean = false;function _rand : integer; stdcall;function __grunzelsepp_ : dword; stdcall; external;procedure _api_open_r; stdcall; external;procedure _api_read; stdcall; external;procedure _api_close; stdcall; external;procedure _apfelschdrudl16; stdcall; external;procedure _THUNK_W32S; stdcall; external;procedure _CPG_GetVersion_360; stdcall; external;procedure _sprintf; stdcall;{$L sdelphi.obj }{$L haspntry_omf.obj }{$L apibchn.obj }{$L ns_bc_omf.obj }{$ENDIF}(****************************************************************************** * *  HASP Services * ******************************************************************************)const   (* Services common to all local keys. HASP3, MEMOHASP, TIMEHASP. *)   LOCALHASP_ISHASP         = 1;   LOCALHASP_HASPCODE       = 2;   LOCALHASP_HASPSTATUS     = 5;   HASPAPI_VERSION          = 5;   LOCALHASP_HASPGENERATION = 8;   LOCALHASP_HASPNETSTATUS  = 9;   (* Services supported by HASP4. *)   LOCALHASP_ENCODEDATA =  60;   LOCALHASP_DECODEDATA =  61;   NETHASP_ENCODEDATA   =  88;   NETHASP_DECODEDATA   =  89;   (* MemoHASP Memory services. *)   MEMOHASP_READMEMO    =  3;   MEMOHASP_WRITEMEMO   =  4;   MEMOHASP_HASPID      =  6;   MEMOHASP_READBLOCK   =  50;   MEMOHASP_WRITEBLOCK  =  51;   (* TimeHASP clock services. *)   TIMEHASP_SETTIME     =  70;   TIMEHASP_GETTIME     =  71;   TIMEHASP_SETDATE     =  72;   TIMEHASP_GETDATE     =  73;   (* TimeHASP memory services. *)   TIMEHASP_READMEMO    =  75;   TIMEHASP_READBYTE    =  75;   TIMEHASP_WRITEMEMO   =  74;   TIMEHASP_WRITEBYTE   =  74;   TIMEHASP_HASPID      =  78;   TIMEHASP_READBLOCK   =  77;   TIMEHASP_WRITEBLOCK  =  76;   (* NetHASP network services. *)   NETHASP_LASTSTATUS         =   40;   NETHASP_HASPCODE           =   41;   NETHASP_LOGIN              =   42;   NETHASP_LOGOUT             =   43;   NETHASP_LOGIN_PROCESS      =  110;   NETHASP_SETIDLETIME        =   48;   NETHASP_GET_CURRENT_SERVER =  230;   (* NetHASP memory services. *)   NETHASP_READMEMO    =   44;   NETHASP_WRITEMEMO   =   45;   NETHASP_HASPID      =   46;   NETHASP_READBLOCK   =   52;   NETHASP_WRITEBLOCK  =   53;   (* NetHASP License Manager configuration services. *)   NETHASP_SET_CONFIG_FILENAME =  85;   NETHASP_SET_SERVER_BY_NAME  =  96;   NETHASP_QUERY_LICENSE       =  104;   NETHASP_GETPROTOCOL         =  120;   NETHASP_SETPROTOCOL         =  121;   NETHASP_DEFAULTCONFIG       =  125;(****************************************************************************** * *  Miscellaneous HASP API constants * ******************************************************************************)   (* LPT numbers for HASP and HASP36 on PC and NEC. *)   HASP25     = 0;   HASP36     = 50;   HASP36NEC  = 60;   (* Logical LPT numbers for USB. *)   USBHASP_DEFAULT = 200;   USBHASP_MIN = 201;   USBHASP_MAX = 255;   (* Capacity in bytes of each HASP type *)   MEMOHASP1_CAPACITY = 112;   MEMOHASP4_CAPACITY = 496;   TIMEHASP_CAPACITY  = 16;   NETHASP_CAPACITY   = 496;   (* HASP type constants as returned in p2 for HaspStatus service *)   HASPTYPE_HASP3     = 0;   HASPTYPE_MEMOHASP  = 1;   HASPTYPE_TIMEHASP  = 3;   HASPTYPE_TIMEHASP4 = 5;(****************************************************************************** * *  HASP Errors *  ~~~~~~~~~~~ *  Some symbols use the following abbreviations: * *  HDD    HASP Device Driver *  MH     MemoHASP *  TH     TimeHASP *  NH     NetHASP *  NHLM   NetHASP License Manager *  NHCF   NetHASP Configuration File *  SSBN   Set Server By Name * ******************************************************************************)  HASPERR_SUCCESS =  0;                        (* Operation successful                                                           *)  HASPERR_INVALID_SERVICE = -999;              (* HASP Invalid Service                                                           *)  HASPERR_CANT_FREE_DOSMEM = -121;             (* Cannot free DOS Memory                                                         *)  HASPERR_CANT_ALLOC_DOSMEM = -120;            (* Cannot allocate DOS Memory                                                     *)  HASPERR_DOS_CANT_CLOSE_HDD = -112;           (* Cannot close the HASP Device Driver                                            *)  HASPERR_DOS_CANT_READ_HDD = -111;            (* Cannot read the HASP Device Driver                                             *)  HASPERR_DOS_CANT_OPEN_HDD = -110;            (* Cannot open the HASP Device Driver                                             *)  HASPERR_CANT_CLOSE_HDD = -102;               (* Cannot close the HASP Device Driver                                            *)  HASPERR_CANT_READ_HDD = -101;                (* Cannot read the HASP Device Driver                                             *)  HASPERR_CANT_OPEN_HDD = -100;                (* Cannot open the HASP Device Driver                                             *)  HASPERR_NOT_A_TIMEHASP = -29;                (* A HASP was found but it is not a TimeHASP                                      *)  HASPERR_TH_INVALID_PASSWORDS = -28;          (* A HASP with specified passwords was not found                                  *)  HASPERR_TH_TIMEOUT = -27;                    (* Timeout - Write operation failed                                               *)  HASPERR_TH_INVALID_ADDRESS = -26;            (* Invalid address - Address is not in 0 - 15                                     *)  HASPERR_TH_INVALID_HOUR = -25;               (* Invalid Hour                                                                   *)  HASPERR_TH_INVALID_MINUTE = -24;             (* Invalid Minute                                                                 *)  HASPERR_TH_INVALID_SECOND = -23;             (* Invalid Second                                                                 *)  HASPERR_TH_INVALID_YEAR = -22;               (* Invalid year                                                                   *)  HASPERR_TH_INVALID_MONTH = -21;              (* Invalid month                                                                  *)  HASPERR_TH_INVALID_DAY = -20;                (* Invalid day                                                                    *)  HASPERR_VERSION_MISMATCH = -13;              (* Driver version mismatch                                                        *)  HASPERR_INVALID_PARAMETER = -12;             (* Invalid parameter                                                              *)  HASPERR_TS_SP3_FOUND = -11;                  (* Terminal Server under SP3 is not supported                                     *)  HASPERR_TS_FOUND = -10;                      (* Terminal Server was found.                                                     *)  HASPERR_INVALID_POINTER = -9;                (* Invalid pointer used by Encode Data                                            *)  HASPERR_HARDWARE_NOT_SUPPORTED = -8;         (* The hardware does not support the service                                      *)  HASPERR_DATA_TOO_SHORT = -7;                 (* The data length is too short                                                   *)  HASPERR_PORT_BUSY = -6;                      (* Parallel port is busy.                                                         *)  HASPERR_MH_WRITE_FAIL = -5;                  (* Unsuccessful Write operation                                                   *)  HASPERR_NOT_A_MEMOHASP = -4;                 (* A HASP was found but it is not a MemoHASP                                      *)  HASPERR_MH_INVALID_PASSWORDS = -3;           (* A HASP with specified passwords was not found                                  *)  HASPERR_HASP_NOT_FOUND       = -3;           (* A HASP with specified passwords was not found                                  *)  HASPERR_MH_INVALID_ADDRESS = -2;             (* Address out of range                                                           *)  HASPERR_MH_TIMEOUT = -1;                     (* Timeout - Write operation failed                                               *)  HASPERR_NO_PROTOCOLS = 1;                    (* IPX, NetBIOS, or TCP/IP protocols have not been installed properly.            *)  HASPERR_NO_SOCKET_NUMBER = 2;                (* Communication Error - unable to get the socket number (TCP/IP, IPX)            *)  HASPERR_COMM_ERROR = 3;                      (* Communication Error.                                                           *)  HASPERR_NO_NHLM = 4;                         (* No NetHASP License Manager was found.                                          *)  HASPERR_NO_NHLM_ADDRFILE = 5;                (* Cannot read NetHASP License Manager address file                               *)  HASPERR_CANT_CLOSE_NHLM_ADDRFILE = 6;        (* Cannot close NetHASP License Manager address file                              *)  HASPERR_CANT_SEND_PACKET = 7;                (* Communication error - failed to send packet (IPX, NetBIOS                      *)  HASPERR_SILENT_NHLM = 8;                     (* No answer from the NetHASP License Manager.                                    *)  HASPERR_NO_LOGIN = 10;                       (* Service requested before LOGIN                                                 *)  HASPERR_ADAPTER_ERROR = 11;                  (* NetBIOS: Communication error - adapter error                                   *)  HASPERR_NO_ACTIVE_NHLM = 15;                 (* No active NetHASP Licence Manager was found                                    *)  HASPERR_SSBN_FAILED = 18;                    (* Cannot perform LOGIN - SetServerByName failed                                  *)  HASPERR_NHCF_SYNTAX_ERROR = 19;              (* NetHASP configuration file syntax error                                        *)  HASPERR_NHCF_GENERIC_ERROR = 20;             (* Error handling NetHASP configuration file                                      *)  HASPERR_NH_ENOMEM = 21;                      (* Memory allocation error                                                        *)  HASPERR_NH_CANT_FREE_MEM = 22;               (* Memory release error                                                           *)  HASPERR_NH_INVALID_ADDRESS = 23;             (* Invalid NetHASP memory address                                                 *)  HASPERR_NH_ENCDEC_ERR = 24;                  (* Error trying to Encrypt/Decrypt                                                *)  HASPERR_CANT_LOAD_WINSOCK = 25;              (* TCP/IP: failed to load WINSOCK.DLL                                             *)  HASPERR_CANT_UNLOAD_WINSOCK = 26;            (* TCP/IP: failed to unload WINSOCK.DLL                                           *)  HASPERR_WINSOCK_ERROR = 28;                  (* TCP/IP: WINSOCK.DLL startup error                                              *)  HASPERR_CANT_CLOSE_SOCKET = 30;              (* TCP/IP: Failed to close socket.                                                *)  HASPERR_SETPROTOCOL_FAILED = 33;             (* SetProtocol service requested without performing LOGOUT                        *)  HASPERR_NH_NOT_SUPPORTED = 40;               (* NetHASP services are not supported                                             *)  HASPERR_NH_HASPNOTFOUND = 129;               (* NetHASP key is not connected to the NetHASP Licence Manager                    *)  HASPERR_INVALID_PROGNUM = 130;               (* Program Number is not in the Program List of the NetHASP memory                *)  HASPERR_NH_READ_ERROR = 131;                 (* Error reading NetHASP memory                                                   *)  HASPERR_NH_WRITE_ERROR = 132;                (* Error writing NetHASP memory                                                   *)  HASPERR_NO_MORE_STATIONS = 133;              (* Number of stations exceeded                                                    *)  HASPERR_NO_MORE_ACTIVATIONS = 134;           (* Number of activations exceeded                                                 *)  HASPERR_LOGOUT_BEFORE_LOGIN = 135;           (* LOGOUT called without LOGIN                                                    *)  HASPERR_NHLM_BUSY = 136;                     (* NetHASP Licence Manager is busy                                                *)  HASPERR_NHLM_FULL = 137;                     (* No space in NetHASP Log Table                                                  *)  HASPERR_NH_INTERNAL_ERROR = 138;             (* NetHASP Internal error                                                         *)  HASPERR_NHLM_CRASHED = 139;                  (* NetHASP Licence Manager crashed and reactivated                                *)  HASPERR_NHLM_UNSUPPORTED_NETWORK = 140;      (* NetHASP Licence Manager does not support the station's network                 *)  HASPERR_NH_INVALID_SERVICE_2 = 141;          (* Invalid Service NetHASP Licence Manager does not support the station's network *)  HASPERR_NHCF_INVALID_NHLM = 142;             (* Invalid NetHASP Licence Manager name in configuration file                     *)  HASPERR_SSBN_INVALID_NHLM = 150;             (* Invalid NetHASP Licence Manager name in SetServerByName                        *)  HASPERR_ENC_ERROR_NHLM = 152;                (* Error trying to encrypt by the LM                                              *)  HASPERR_DEC_ERROR_NHLM = 153;                (* Error trying to decrypt by the LM                                              *)  HASPERR_OLD_LM_VERSION_NHLM = 155;           (* LM old version was found                                                       *)(****************************************************************************** * *  NetHASP Warnings * ******************************************************************************)  HASPERR_IPX_UNAVAILABLE = 1;                 (* IPX is enabled but it is not installed                                         *)  HASPERR_NETBIOS_UNAVAILABLE = 2;             (*  NetBIOS is enabled but it is not installed                                    *)  HASPERR_IPX_NETBIOS_UNAVAILABLE = 3;         (*  IPX and NetBIOS are enabled but both are not installed                        *)  HASPERR_TCPIP_UNAVAILABLE = 4;               (* TCP/IP is enabled but it is not installed                                      *)  HASPERR_IPX_TCPIP_UNAVAILABLE = 5;           (*  IPX and TCP/IP are enabled but both are not installed                         *)  HASPERR_TCPIP_NETBIOS_UNAVAILABLE = 6;       (* TCP/IP and NetBIOS are enabled but are not installed                           *)  HASPERR_PROTOCOLS_UNAVAILABLE = 7;           (* IPX; NetBIOS and TCP/IP are enabled but not installed                          *)  HASPERR_SUSPICIOUS_LOGOUT = 18;              (* Suspicious LOGOUT                                                              *)  HASPERR_NHCF_BAD_TOKEN = 19;                 (* Invalid keyword or value in configuration file                                 *)  HASPERR_MISSING_IP_ADDR = 20;                (* TCP or UDP were not employed due to missing IP address                         *)  HASPERR_CANT_FREE_MEM = 22;                  (* HASP API cannot free memory                                                    *)implementationprocedure hasp ( Service,                 SeedCode,                 LptNum,                 Pass1, Pass2 : longint;                 var p1, p2, p3, p4 : longint);  begin    _hasp(Service, SeedCode, LptNum, Pass1, Pass2, p1,  p2, p3, p4);  end;function _rand : integer; stdcall;  begin    if not HaspRandInitialized then begin      Randomize;      HaspRandInitialized:= TRUE;    end;    _rand:= random(maxint);  end;procedure _sprintf; stdcall;beginend;{$IFDEF HASPAPI_OPT_O}{$O+}{$UNDEF HASPAPI_OPT_O}{$ENDIF}end.
 |