1/* This header declares the necessary definitions for using the exponentiation 2 * acceleration capabilities, and rnd number generation of the AEP card. 3 * 4 */ 5 6/* 7 * 8 * Some AEP defines 9 * 10 */ 11 12/*Successful return value*/ 13#define AEP_R_OK 0x00000000 14 15/*Miscelleanous unsuccessful return value*/ 16#define AEP_R_GENERAL_ERROR 0x10000001 17 18/*Insufficient host memory*/ 19#define AEP_R_HOST_MEMORY 0x10000002 20 21#define AEP_R_FUNCTION_FAILED 0x10000006 22 23/*Invalid arguments in function call*/ 24#define AEP_R_ARGUMENTS_BAD 0x10020000 25 26#define AEP_R_NO_TARGET_RESOURCES 0x10030000 27 28/*Error occuring on socket operation*/ 29#define AEP_R_SOCKERROR 0x10000010 30 31/*Socket has been closed from the other end*/ 32#define AEP_R_SOCKEOF 0x10000011 33 34/*Invalid handles*/ 35#define AEP_R_CONNECTION_HANDLE_INVALID 0x100000B3 36 37#define AEP_R_TRANSACTION_HANDLE_INVALID 0x10040000 38 39/*Transaction has not yet returned from accelerator*/ 40#define AEP_R_TRANSACTION_NOT_READY 0x00010000 41 42/*There is already a thread waiting on this transaction*/ 43#define AEP_R_TRANSACTION_CLAIMED 0x10050000 44 45/*The transaction timed out*/ 46#define AEP_R_TIMED_OUT 0x10060000 47 48#define AEP_R_FXN_NOT_IMPLEMENTED 0x10070000 49 50#define AEP_R_TARGET_ERROR 0x10080000 51 52/*Error in the AEP daemon process*/ 53#define AEP_R_DAEMON_ERROR 0x10090000 54 55/*Invalid ctx id*/ 56#define AEP_R_INVALID_CTX_ID 0x10009000 57 58#define AEP_R_NO_KEY_MANAGER 0x1000a000 59 60/*Error obtaining a mutex*/ 61#define AEP_R_MUTEX_BAD 0x000001A0 62 63/*Fxn call before AEP_Initialise ot after AEP_Finialise*/ 64#define AEP_R_AEPAPI_NOT_INITIALIZED 0x10000190 65 66/*AEP_Initialise has already been called*/ 67#define AEP_R_AEPAPI_ALREADY_INITIALIZED 0x10000191 68 69/*Maximum number of connections to daemon reached*/ 70#define AEP_R_NO_MORE_CONNECTION_HNDLS 0x10000200 71 72/* 73 * 74 * Some AEP Type definitions 75 * 76 */ 77 78/* an unsigned 8-bit value */ 79typedef unsigned char AEP_U8; 80 81/* an unsigned 8-bit character */ 82typedef char AEP_CHAR; 83 84/* a BYTE-sized Boolean flag */ 85typedef AEP_U8 AEP_BBOOL; 86 87/*Unsigned value, at least 16 bits long*/ 88typedef unsigned short AEP_U16; 89 90/* an unsigned value, at least 32 bits long */ 91#ifdef SIXTY_FOUR_BIT_LONG 92typedef unsigned int AEP_U32; 93#else 94typedef unsigned long AEP_U32; 95#endif 96 97#ifdef SIXTY_FOUR_BIT_LONG 98typedef unsigned long AEP_U64; 99#else 100typedef struct { unsigned long l1, l2; } AEP_U64; 101#endif 102 103/* at least 32 bits; each bit is a Boolean flag */ 104typedef AEP_U32 AEP_FLAGS; 105 106typedef AEP_U8 *AEP_U8_PTR; 107typedef AEP_CHAR *AEP_CHAR_PTR; 108typedef AEP_U32 *AEP_U32_PTR; 109typedef AEP_U64 *AEP_U64_PTR; 110typedef void *AEP_VOID_PTR; 111 112/* Pointer to a AEP_VOID_PTR-- i.e., pointer to pointer to void */ 113typedef AEP_VOID_PTR *AEP_VOID_PTR_PTR; 114 115/*Used to identify an AEP connection handle*/ 116typedef AEP_U32 AEP_CONNECTION_HNDL; 117 118/*Pointer to an AEP connection handle*/ 119typedef AEP_CONNECTION_HNDL *AEP_CONNECTION_HNDL_PTR; 120 121/*Used by an application (in conjunction with the apps process id) to 122identify an individual transaction*/ 123typedef AEP_U32 AEP_TRANSACTION_ID; 124 125/*Pointer to an applications transaction identifier*/ 126typedef AEP_TRANSACTION_ID *AEP_TRANSACTION_ID_PTR; 127 128/*Return value type*/ 129typedef AEP_U32 AEP_RV; 130 131#define MAX_PROCESS_CONNECTIONS 256 132 133#define RAND_BLK_SIZE 1024 134 135typedef enum{ 136 NotConnected= 0, 137 Connected= 1, 138 InUse= 2 139} AEP_CONNECTION_STATE; 140 141 142typedef struct AEP_CONNECTION_ENTRY{ 143 AEP_CONNECTION_STATE conn_state; 144 AEP_CONNECTION_HNDL conn_hndl; 145} AEP_CONNECTION_ENTRY; 146 147 148typedef AEP_RV t_AEP_OpenConnection(AEP_CONNECTION_HNDL_PTR phConnection); 149typedef AEP_RV t_AEP_CloseConnection(AEP_CONNECTION_HNDL hConnection); 150 151typedef AEP_RV t_AEP_ModExp(AEP_CONNECTION_HNDL hConnection, 152 AEP_VOID_PTR pA, AEP_VOID_PTR pP, 153 AEP_VOID_PTR pN, 154 AEP_VOID_PTR pResult, 155 AEP_TRANSACTION_ID* pidTransID); 156 157typedef AEP_RV t_AEP_ModExpCrt(AEP_CONNECTION_HNDL hConnection, 158 AEP_VOID_PTR pA, AEP_VOID_PTR pP, 159 AEP_VOID_PTR pQ, 160 AEP_VOID_PTR pDmp1, AEP_VOID_PTR pDmq1, 161 AEP_VOID_PTR pIqmp, 162 AEP_VOID_PTR pResult, 163 AEP_TRANSACTION_ID* pidTransID); 164 165#ifdef AEPRAND 166typedef AEP_RV t_AEP_GenRandom(AEP_CONNECTION_HNDL hConnection, 167 AEP_U32 Len, 168 AEP_U32 Type, 169 AEP_VOID_PTR pResult, 170 AEP_TRANSACTION_ID* pidTransID); 171#endif 172 173typedef AEP_RV t_AEP_Initialize(AEP_VOID_PTR pInitArgs); 174typedef AEP_RV t_AEP_Finalize(); 175typedef AEP_RV t_AEP_SetBNCallBacks(AEP_RV (*GetBigNumSizeFunc)(), 176 AEP_RV (*MakeAEPBigNumFunc)(), 177 AEP_RV (*ConverAEPBigNumFunc)()); 178 179