You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

110 lines
4.2 KiB

/*
* KeyA.h
*
* Created on: Aug 19, 2008
* Author: Hedayat Vatankhah <hedayat@grad.com>, 2008.
*/
#ifndef KEYA_H_
#define KEYA_H_
#include "keya_types.h"
/** This can be sent to OpenDevice function to open the next keya device */
#define KEYA_NEXT_ID(keya) keya.GetKeyAID() + 1
class KeyA
{
public:
KeyA(uint moduleType = _HID_CLASS);
virtual ~KeyA();
static uint GetModuleCount();
static uint EncBlock(const byte *pKey, const byte *pData, byte *pRes);
static uint DecBlock(const byte *pKey, const byte *pData, byte *pRes);
static char *GetErrorText(int lastError, char *perrText, uint buflen);
uint OpenDevice(int id);
uint CloseDevice();
int GetKeyAID();
uint SetModuleType(uint moduleType);
uint SetKeyAFunctionality(uint keyaFun);
uint Init(const byte *pKp, const byte *pKr, const byte *pKw,
const byte *pKw2);
uint NetInit(const byte *pKp, const byte *pKr, const byte *pKw,
const byte *pKw2);
uint SetCallBackProc(CallbackProc pAttachCallBack, void *param);
uint SetAttachCallBackProc(PureAttachCallbackProc pAttachCallBack);
uint SetCallBackWithIDProc(CallbackProcWithID callback,
void *param);
void SetCallbackErrorHandlerProc(CallbackErrorHandler handler);
int GetCallbackThreadErrorNumber();
uint SetKAB(const byte *pKA, const byte *pKAB);
uint SetKeyAParameters(const byte *pKA, byte *pData);
uint ChangeKAB(const byte *pKAB, const byte *pNewKAB);
uint WriteAccessKey(const byte *pKBB);
uint ReadPayamPardazMemory(int address, int len, byte *pBuf);
uint WritePayamPardazMemory(int address, int len,
const byte *pKA, const byte *pData);
uint ReadFreeMemory(int address, int len, byte *pBuf);
uint WriteFreeMemory(int address, int len, const byte *pBuf);
uint ReadUserMemory(int address, int len, const byte *pUserKey,
byte *pBuf);
uint WriteUserMemory(int address, int len, const byte *pUserKey,
const byte *pBuf);
uint ReadUserMemory(int address, int len, byte *pBuf);
uint WriteUserMemory(int address, int len, const byte *pBuf);
uint ReadDeveloperMemory(int address, int len, byte *pBuf);
uint WriteDeveloperMemory(int address, int len, const byte *pBuf);
uint SetMasterPin(const char *pPin, byte pinLen);
uint SetUserPin(const char *pPin, byte pinLen);
uint UserLogin(const char *pPin, byte pinLen);
uint MasterLogin(const char *pPin, byte pinLen);
//////////////////// New Functions //////////////////
uint GetAutoLoginStatus();
uint ResetAutoLogin();
uint SetAutoLogin(const char *pUserPin, int PinLen, const byte *pAutoLoginKey );
uint AutoLogin(const byte *pAutoLoginKey );
uint SetModuleName(const char *strModuleName );
uint GetModuleName(char *strModuleName, int nModuleNameSize );
////////////////////////////////////////////////////////////
uint SetKV(byte iKVIndex, const byte *pKV);
uint EncByKV(byte iKvIndex, const byte *pData, byte *pRes);
uint DecByKV(byte iKvIndex, const byte *pData, byte *pRes);
uint SetQuery(byte iQueryIndex, const byte *pQueryKey);
uint GetQuery(byte iQueryIndex, const byte *pQueryData,
byte *pQueryResult);
uint EncByCustomKey(const byte *pCusKey, const byte *pData,
byte *pRes);
uint DecByCustomKey(const byte *pCusKey, const byte *pData,
byte *pRes);
uint CheckModuleExistence();
uint GetSerialNumber(byte *pSerialNum);
uint GetMemoryInfo(int *pDevMemLen, int *pSecMemLen,
int *pFMemLen);
uint GetVersionInfo(byte *pVer, byte *pDevMemSup,
byte *pFmemSup, byte *pLoginSup, byte *pCusKeySup);
uint GetKeyCount(int *pQueryKeyNum, int *pKVKeyNum);
uint SetMaxClient(byte clientNum);
uint GetMaxClient(byte *pClientNum);
private:
KeyAHID *keya;
KeyA(KeyA &);
};
#endif /* KEYA_H_ */