334 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			334 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /****************************************************************************/
 | |
| /**                                                                        **/
 | |
| /**                              Hardlock                                  **/
 | |
| /**                    API-Structures and definitions                      **/
 | |
| /**                                                                        **/
 | |
| /**   This file contains some helpful defines to access a Hardlock using   **/
 | |
| /**   the application programing interface (API) for Hardlock.             **/
 | |
| /**                                                                        **/
 | |
| /**              ///FAST Software Security - Group Aladdin                 **/
 | |
| /**                                                                        **/
 | |
| /**  Revision history                                                      **/
 | |
| /**  ----------------                                                      **/
 | |
| /**  (related to API version)                                              **/
 | |
| /**  3.18  -- Define HIGH_DLL changed to HLHIGH_DLL (Watcom 9.5 doesn't    **/
 | |
| /**           like my define)                                              **/
 | |
| /**        -- New function call API_GET_TASKID                             **/
 | |
| /**        -- HLXLOGIN no longer needed.                                   **/
 | |
| /**        -- Add UNIX features (M_UNIX defined)                           **/
 | |
| /**        -- Add Windows NT feature (WINNT defined)                       **/
 | |
| /**  3.19  -- ifdef for Symantec C included (DOS386)                       **/
 | |
| /**  3.20  -- ifdef for WIN32s included                                    **/
 | |
| /**           ifdef for Intel Codebuilder removed (compiler to buggy)      **/
 | |
| /**  3.22  -- ifdef for Zortech included                                   **/
 | |
| /**        -- combined OS/2 and DOS include files                          **/
 | |
| /**  3.23  -- PortFlags added to API structure.                            **/
 | |
| /**  3.24  -- defined CALL_ for 16bit Watcom                               **/
 | |
| /**  3.25  -- Different includes merged.                                   **/
 | |
| /**                                                                        **/
 | |
| /**  (related to VCS version)
 | |
| ***  $Log: not supported by cvs2svn $
 | |
| ***  Revision 1.5  1996/08/12 16:23:43  henri
 | |
| ***  Added VCS log.
 | |
| ***  
 | |
| **/
 | |
| /****************************************************************************/
 | |
| 
 | |
| #if !defined(_FASTAPI_H_)
 | |
| #define _FASTAPI_H_
 | |
| 
 | |
| #ifdef M_UNIX
 | |
|   #define __386__
 | |
|   #pragma pack(1)
 | |
| #endif
 | |
| 
 | |
| #ifdef LINUX
 | |
|   #define __386__
 | |
|   #pragma pack(1)
 | |
| #endif
 | |
| 
 | |
| #ifdef __OS2__
 | |
|   #ifdef INTERNAL_16BITDLL
 | |
|     #define LOAD_DS
 | |
|   #else
 | |
|     #ifdef __WATCOMC__
 | |
|       #ifdef __386__      /* not the 16bit compiler */
 | |
|         #include <os2.h>
 | |
|       #endif
 | |
|     #else
 | |
|       #include <os2.h>
 | |
|     #endif
 | |
|   #endif
 | |
|   #ifdef OS_16
 | |
|     #define RET_        Word
 | |
|     #define FAR_        far pascal
 | |
|     #define DATAFAR_    far
 | |
|   #else
 | |
|     #define RET_        APIRET
 | |
|     #define FAR_
 | |
|     #define CALL_       APIENTRY
 | |
|     #define DATAFAR_
 | |
|   #endif
 | |
|   #pragma pack(2)
 | |
| #endif
 | |
| 
 | |
| #ifdef __GNUC__
 | |
|   #define __386__
 | |
|   #define pascal
 | |
| #endif
 | |
| 
 | |
| #ifdef __WIN32__
 | |
|   #define __386__
 | |
| #endif
 | |
| 
 | |
| #ifdef WINNT
 | |
|   #ifndef __386__       /* Watcom doesnt like it */
 | |
|     #define __386__
 | |
|   #endif
 | |
|   #pragma pack(1)
 | |
|   #ifdef DLL
 | |
|     #define CALL_ __stdcall
 | |
|   #else
 | |
|     #define CALL_
 | |
|   #endif
 | |
| #endif
 | |
| 
 | |
| #ifdef DOS386           /* Symantec C            */
 | |
|   #define __386__
 | |
|   #pragma pack(2)
 | |
| #endif
 | |
| 
 | |
| #ifdef __HIGHC__        /* Metaware High C       */
 | |
|   #define __386__
 | |
|   #define _PACKED _Packed
 | |
| #endif
 | |
| 
 | |
| #ifdef __ZTC__          /* Zortech C             */
 | |
|   #define __386__
 | |
| #endif
 | |
| 
 | |
| #ifdef SALFORD          /* Salford C             */
 | |
|   #define ALIGN_ 8
 | |
| #endif
 | |
| 
 | |
| #ifdef __WATCOMC__
 | |
|   #ifndef __386__
 | |
|     #ifndef OS_16
 | |
|       #define CALL_ cdecl
 | |
|     #endif
 | |
|   #endif
 | |
| #endif
 | |
| 
 | |
| #ifdef _CVI_		/* LabWindows/CVI	 */
 | |
|   #define RET_     Word
 | |
|   #define FAR_     far
 | |
|   #define CALL_    pascal
 | |
|   #define DATAFAR_ far
 | |
| #endif
 | |
| 
 | |
| #ifdef __386__
 | |
|   #define DATAFAR_
 | |
|   #define FAR_
 | |
| #endif
 | |
| 
 | |
| #ifdef HLHIGH_DLL
 | |
|   #define CALL_ pascal _export
 | |
| #endif
 | |
| 
 | |
| #ifdef LOAD_DS
 | |
|   #define CALL_ _loadds
 | |
| #endif
 | |
| 
 | |
| #ifndef CALL_
 | |
|   #define CALL_
 | |
| #endif
 | |
| 
 | |
| #ifndef _PACKED
 | |
|   #define _PACKED
 | |
| #endif
 | |
| 
 | |
| #ifndef DATAFAR_
 | |
|   #define DATAFAR_ far
 | |
| #endif
 | |
| 
 | |
| #ifndef FAR_
 | |
|   #define FAR_ far
 | |
| #endif
 | |
| 
 | |
| #ifndef RET_
 | |
|   #define RET_ Word
 | |
| #endif
 | |
| 
 | |
| #ifndef ALIGN_
 | |
|   #define ALIGN_
 | |
| #endif
 | |
| 
 | |
| /* -------------------------------- */
 | |
| /* Definitions and API structures : */
 | |
| /* -------------------------------- */
 | |
| typedef unsigned char  Byte;
 | |
| typedef unsigned short Word;
 | |
| typedef unsigned long  Long;
 | |
| 
 | |
| typedef struct
 | |
|   {
 | |
|   Word Use_Key;
 | |
|   Byte Key[8];
 | |
|   } DES_MODE;
 | |
| 
 | |
| typedef struct
 | |
|   {
 | |
|   Word ModAd;                           /* Hardlock module address */
 | |
|   Word Reg;                             /* Memory register adress  */
 | |
|   Word Value;                           /* Memory value            */
 | |
|   Byte Reserved[4];
 | |
|   } EYE_MODE;
 | |
| 
 | |
| typedef struct
 | |
|   {
 | |
|   Word LT_Reserved;
 | |
|   Word Reg;                             /* Memory register adress       */
 | |
|   Word Value;                           /* Memory value                 */
 | |
|   Word Password[2];                     /* Access passwords             */
 | |
|   } LT_MODE;
 | |
| 
 | |
| typedef union
 | |
|   {
 | |
|   DES_MODE Des;
 | |
|   EYE_MODE Eye;
 | |
|   LT_MODE  Lt;
 | |
|   } HARDWARE;
 | |
| 
 | |
| typedef _PACKED struct ALIGN_ hl_api
 | |
|   {
 | |
|   Byte          API_Version_ID[2];      /* Version                    */
 | |
|   Word          API_Options[2];         /* API Optionflags            */
 | |
|   Word          ModID;                  /* Modul-ID (EYE = 0...)      */
 | |
|   HARDWARE      Module;                 /* Hardware type              */
 | |
| 
 | |
| #ifdef __OS2__                          /* Pointer to cipher data     */
 | |
|   #ifdef OS_16
 | |
|     void far *Data;
 | |
|    #else
 | |
|     #ifdef __BORLANDC__
 | |
|       void FAR16PTR Data;
 | |
|     #else
 | |
|       void * _Seg16 Data;
 | |
|     #endif
 | |
|   #endif
 | |
|  #else
 | |
|   void DATAFAR_ *Data;
 | |
| #endif
 | |
| 
 | |
|   Word          Bcnt;                   /* Number of blocks           */
 | |
|   Word          Function;               /* Function number            */
 | |
|   Word          Status;                 /* Actual status              */
 | |
|   Word          Remote;                 /* Remote or local??          */
 | |
|   Word          Port;                   /* Port address if local      */
 | |
|   Word          Speed;                  /* Speed of port if local     */
 | |
|   Word          NetUsers;               /* Current Logins (HL-Server) */
 | |
|   Byte          ID_Ref[8];              /* Referencestring            */
 | |
|   Byte          ID_Verify[8];           /* Encrypted ID_Ref           */
 | |
|   Long          Task_ID;                /* Multitasking program ID    */
 | |
|   Word          MaxUsers;               /* Maximum Logins (HL-Server) */
 | |
|   Long          Timeout;                /* Login Timeout in minutes   */
 | |
|   Word          ShortLife;              /* (multiple use)             */
 | |
|   Word          Application;            /* Application number         */
 | |
|   Word          Protocol;               /* Protocol flags             */
 | |
|   Word          PM_Host;                /* DOS Extender type          */
 | |
|   Long          OSspecific;             /* ptr to OS specific data    */
 | |
|   Word          PortMask;               /* Default local search (in)  */
 | |
|   Word          PortFlags;              /* Default local search (out) */
 | |
|   Word          EnvMask;                /* Use env string search (in) */
 | |
|   Word          EnvFlags;               /* Use env string search (out) */
 | |
|   Byte          Reserved[174];          /* Reserved area              */
 | |
|   } HL_API, LT_API;
 | |
| 
 | |
| #ifdef M_UNIX
 | |
|   #pragma pack()
 | |
| #endif
 | |
| 
 | |
| #ifdef __OS2__
 | |
|   #pragma pack()
 | |
| #endif
 | |
| 
 | |
| /* ------------- */
 | |
| /* Module-ID's : */
 | |
| /* ------------- */
 | |
| #define EYE_DONGLE       0              /* Hardlock E-Y-E             */
 | |
| #define DES_DONGLE       1              /* FAST DES                   */
 | |
| #define LT_DONGLE        3              /* Hardlock LT                */
 | |
| 
 | |
| /* --------------------- */
 | |
| /* API function calls  : */
 | |
| /* --------------------- */
 | |
| #define API_INIT            0           /* Init API structure          */
 | |
| #define API_DOWN            1           /* Free API structure          */
 | |
| #define API_FORCE_DOWN      31          /* Force deinintialization     */
 | |
| #define API_MULTI_SHELL_ON  2           /* MTS is enabled              */
 | |
| #define API_MULTI_SHELL_OFF 3           /* MTS is disabled             */
 | |
| #define API_MULTI_ON        4           /* Enable MTS                  */
 | |
| #define API_MULTI_OFF       5           /* Disable  MTS                */
 | |
| #define API_AVAIL           6           /* Dongle available?           */
 | |
| #define API_LOGIN           7           /* Login dongle server         */
 | |
| #define API_LOGOUT          8           /* Logout dongle server        */
 | |
| #define API_INFO            9           /* Get API informations        */
 | |
| #define API_GET_TASKID      32          /* Get TaskID from API         */
 | |
| #define API_LOGIN_INFO      34          /* Get API Login informations  */
 | |
| 
 | |
| /* --------------------------- */
 | |
| /* Data and memory functions : */
 | |
| /* --------------------------- */
 | |
| #define API_KEYE             11         /* Use KEYE for encryption         */
 | |
| #define API_READ             20         /* Read one word of dongle EEPROM  */
 | |
| #define API_WRITE            21         /* Write one word of dongle EEPROM */
 | |
| #define API_READ_BLOCK       23         /* Read EEPROM in one block        */
 | |
| #define API_WRITE_BLOCK      24         /* Write EEPROM in one block       */
 | |
| #define API_ABORT            51         /* Critical Error Abort            */
 | |
| 
 | |
| /* -------------------- */
 | |
| /* Dongle access mode : */
 | |
| /* -------------------- */
 | |
| #define LOCAL_DEVICE    1               /* Query local HL only         */
 | |
| #define NET_DEVICE      2               /* Query remote HL only        */
 | |
| #define DONT_CARE       3               /* Query local or remote HL    */
 | |
| 
 | |
| /* --------------- */
 | |
| /* EnvMask flags : */
 | |
| /* --------------- */
 | |
| #define IGNORE_ENVIRONMENT 0x8000       /* If set the environment is   */
 | |
|                                         /* not scaned for HL_SEARCH    */
 | |
| /* ------------------ */
 | |
| /* API PM_Host ID's : */
 | |
| /* ------------------ */
 | |
| #define API_XTD_DETECT    0
 | |
| #define API_XTD_DPMI      1             /* QDPMI, Borland, Windows ... */
 | |
| #define API_XTD_PHAR386   2
 | |
| #define API_XTD_PHAR286   3
 | |
| #define API_XTD_CODEBLDR  4             /* Intel Code Builder          */
 | |
| #define API_XTD_COBOLXM   5
 | |
| 
 | |
| /* ------------------ */
 | |
| /* API Status Codes : */
 | |
| /* ------------------ */
 | |
| #define STATUS_OK                 0     /* API call was succesfull        */
 | |
| #define NOT_INIT                  1     /* DONGLE not initialized         */
 | |
| #define ALREADY_INIT              2     /* Already initialized            */
 | |
| #define UNKNOWN_DONGLE            3     /* Device not supported           */
 | |
| #define UNKNOWN_FUNCTION          4     /* Function not supported         */
 | |
| #define HLS_FULL                  6     /* HL-Server login table full     */
 | |
| #define NO_DONGLE                 7     /* No device available            */
 | |
| #define NETWORK_ERROR             8     /* A network error occured        */
 | |
| #define NO_ACCESS                 9     /* No device available            */
 | |
| #define INVALID_PARAM            10     /* A wrong parameter occured      */
 | |
| #define VERSION_MISMATCH         11     /* HL-Server not API version      */
 | |
| #define DOS_ALLOC_ERROR          12     /* Error on memory allocation     */
 | |
| #define CANNOT_OPEN_DRIVER       14     /* Can not open driver (NT,UNIX)  */
 | |
| #define INVALID_ENV              15     /* Invalid environment string     */
 | |
| #define DYNALINK_FAILED          16     /* Unable to get a function entry */
 | |
| #define TOO_MANY_USERS          256     /* Login table full (remote)      */
 | |
| #define SELECT_DOWN             257     /* Printer not On-line            */
 | |
| 
 | |
| #endif /*_FASTAPI_H_*/
 | |
| /* eof */
 |