6fce3dd611
Files correlati : Ricompilazione Demo : [ ] Commento : Riportate le patch fino alla 172 git-svn-id: svn://10.65.10.50/trunk@12526 c028cbd2-c16b-5b4b-a496-9718f37d4682
311 lines
11 KiB
C
Executable File
311 lines
11 KiB
C
Executable File
/////////////////////////////////////////////////////////////////////////////
|
|
// ASECard Memory SDK Header File
|
|
//
|
|
// LICENSE AGREEMENT:
|
|
// 1. COPYRIGHTS AND TRADEMARKS
|
|
// The ASECard Memory SDK and its documentation are copyright (C) 2003 ,
|
|
// by Athena Smartcard Solution Inc.. All rights reserved.
|
|
//
|
|
// ASECard is a trademark of Athena Smartcard Solutions Inc.. All other trademarks, brands, and product
|
|
// names used in this guide are trademarks of their respective owners.
|
|
//
|
|
// 2. Title & Ownership
|
|
// THIS IS A LICENSE AGREEMENT AND NOT AN AGREEMENT FOR SALE.
|
|
// The Code IS NOT FOR SALE and is and shall remain in Athena's sole property.
|
|
// All right, title and interest in and to the Code, including associated
|
|
// intellectual property rights, in and to the Code are and will remain with Athena.
|
|
//
|
|
// 3. Disclaimer of Warranty
|
|
// THE CODE CONSTITUTES A CODE SAMPLE AND IS NOT A COMPLETE PRODUCT AND MAY CONTAIN
|
|
// DEFECTS, AND PRODUCE UNINTENDED OR ERRONEOUS RESULTS. THE CODE IS PROVIDED "AS IS",
|
|
// WITHOUT WARRANTY OF ANY KIND. Athena DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
// AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
// The entire risk arising out of the use or performance of the Code remains with you.
|
|
//
|
|
// 4. No Liability For Damages
|
|
// Without derogating from the above, in no event shall Athena be liable for any damages
|
|
// whatsoever (including, without limitation, damages for loss of business profits, business
|
|
// interruption, loss of business information, or other pecuniary loss) arising out of the
|
|
// use of or inability to use the Code, even if Athena has been advised of the possibility
|
|
// of such damages. Your sole recourse in the event of any dissatisfaction with the Code is
|
|
// to stop using it and return it.
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef ASEMEMCARDS_H
|
|
#define ASEMEMCARDS_H
|
|
|
|
#define ASEMEM_API __stdcall
|
|
|
|
/***************************************************/
|
|
/* Card Errors */
|
|
/***************************************************/
|
|
/*
|
|
* No error was encountered.
|
|
*/
|
|
#define ASEMEM_S_SUCCESS 0x0
|
|
|
|
/*
|
|
* The smart card does not support the current function.
|
|
*/
|
|
#define ASEMEM_E_FUNCTION_NOT_SUPPORTED 0x20
|
|
|
|
/*
|
|
* The smart card has been removed, so that further communication is not possible.
|
|
*/
|
|
#define ASEMEM_E_REMOVED_CARD 0x21
|
|
|
|
/*
|
|
* The smart card is unpowered, so that further communication is not possible.
|
|
*/
|
|
#define ASEMEM_E_UNPOWERED_CARD 0x22
|
|
|
|
/*
|
|
* Smartcard is not supported.
|
|
*/
|
|
#define ASEMEM_E_UNSUPPORTED_CARD 0x23
|
|
|
|
/*
|
|
* The supplied password is incorrect.
|
|
*/
|
|
#define ASEMEM_E_PASSWORD_VERIFICATION_FAILED 0x24
|
|
|
|
/*
|
|
* The card cannot be accessed because the maximum number
|
|
* of password verification attempts has been reached.
|
|
*/
|
|
#define ASEMEM_E_PASSWORD_BLOCKED 0x25
|
|
|
|
/*
|
|
* The supplied handle is invalid.
|
|
*/
|
|
#define ASEMEM_E_INVALID_HANDLE 0x26
|
|
|
|
/*
|
|
* One or more of the supplied parameters are invalid.
|
|
*/
|
|
#define ASEMEM_E_INVALID_PARAMETER 0x27
|
|
|
|
/*
|
|
* The operation requires a smart card, but no smart card is currently in the device.
|
|
*/
|
|
#define ASEMEM_E_NO_SMARTCARD 0x28
|
|
|
|
/*
|
|
* The smart card has been reset.
|
|
*/
|
|
#define ASEMEM_E_RESET_CARD 0x29
|
|
|
|
/*
|
|
* The smart card cannot be accessed because of other outstanding connections.
|
|
*/
|
|
#define ASEMEM_E_SHARING_VIOLATION 0x2A
|
|
|
|
/*
|
|
* The specified reader name is not recognized.
|
|
*/
|
|
#define ASEMEM_E_UNKNOWN_READER 0x2B
|
|
|
|
/*
|
|
* No smart card reader is available.
|
|
*/
|
|
#define ASEMEM_E_NO_READERS_AVAILABLE 0x2C
|
|
|
|
/*
|
|
* The data buffer is too small for the returned data.
|
|
*/
|
|
#define ASEMEM_E_INSUFFICIENT_BUFFER 0x2D
|
|
|
|
/*
|
|
* The smart card resource manager has shut down.
|
|
*/
|
|
#define ASEMEM_E_SERVICE_STOPPED 0x2E
|
|
|
|
/*
|
|
* The user-specified timeout value has expired.
|
|
*/
|
|
#define ASEMEM_E_TIMEOUT 0x2F
|
|
|
|
/*
|
|
* Address out of range
|
|
*/
|
|
#define ASEMEM_E_NO_MEMORY 0x30
|
|
|
|
/*
|
|
* An unknown error has occurred.
|
|
*/
|
|
#define ASEMEM_E_UNKNOWN_ERROR 0x31
|
|
|
|
/***************************************************/
|
|
/* Card Types */
|
|
/***************************************************/
|
|
#define ASEMEM_CARD_TYPE_UNKNOWN 0x0
|
|
#define ASEMEM_CARD_TYPE_2BUS 0x10
|
|
#define ASEMEM_CARD_TYPE_3BUS 0x11
|
|
#define ASEMEM_CARD_TYPE_I2C 0x12
|
|
#define ASEMEM_CARD_TYPE_XI2C 0x13
|
|
|
|
/***************************************************/
|
|
/* Card State */
|
|
/***************************************************/
|
|
#define ASEMEM_CARD_IN 0x1
|
|
#define ASEMEM_CARD_OUT 0x2
|
|
|
|
/***************************************************/
|
|
/* Protected State */
|
|
/***************************************************/
|
|
/* DATA Read */
|
|
#define ASEMEM_DATA_PROTECTED 0x0
|
|
#define ASEMEM_DATA_NOT_PROTECTED 0x1
|
|
|
|
/* WRITE Mode */
|
|
#define ASEMEM_WRITE_AND_PROTECT_MODE 0x1
|
|
#define ASEMEM_WRITE_MODE 0x0
|
|
|
|
/***************************************************/
|
|
/* Card Timeout */
|
|
/***************************************************/
|
|
/* Infinite timeout */
|
|
#define INFINITE_WAIT_TIME 0xFFFFFFFF
|
|
|
|
/***************************************************/
|
|
/* 2BUS and 3BUS password length */
|
|
/***************************************************/
|
|
#define ASEMEM_2BUS_PASSWORD_LENGTH 0x3
|
|
#define ASEMEM_3BUS_PASSWORD_LENGTH 0x2
|
|
|
|
/***************************************************/
|
|
/* Connect Modes */
|
|
/***************************************************/
|
|
/* This application is willing to share the card with other applications.*/
|
|
#define ASEMEM_SHARE_SHARED 0x0
|
|
/* This application is not willing to share the card with other applications.*/
|
|
#define ASEMEM_SHARE_EXCLUSIVE 0x1
|
|
/* Work in XI2C mode*/
|
|
#define ASEMEM_XI2C 0x2
|
|
|
|
/***************************************************/
|
|
/* Cards Adress */
|
|
/***************************************************/
|
|
/* All data size of 2BUS card*/
|
|
#define ASEMEM_2BUS_DATA_SIZE 256
|
|
/* Protected data size of 2BUS card*/
|
|
#define ASEMEM_2BUS_PROTECTED_DATA_SIZE 32
|
|
/* All data size of 3BUS card*/
|
|
#define ASEMEM_3BUS_DATA_SIZE 1021
|
|
/* Protected data size of 3BUS card*/
|
|
#define ASEMEM_3BUS_PROTECTED_DATA_SIZE 1021
|
|
|
|
/***************************************************/
|
|
/* Disconnect Modes */
|
|
/***************************************************/
|
|
/* Don't do anything special */
|
|
#define ASEMEM_LEAVE_CARD 0x2
|
|
/* Reset the card */
|
|
#define ASEMEM_RESET_CARD 0x4
|
|
/* Power down the card */
|
|
#define ASEMEM_UNPOWER_CARD 0x6
|
|
|
|
|
|
/***************************************************/
|
|
/* Data Types */
|
|
/***************************************************/
|
|
/* Card handle */
|
|
typedef void * ASEMEM_HANDLE;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/***************************************************/
|
|
/* ASECard Memory Functions */
|
|
/***************************************************/
|
|
|
|
/*
|
|
* ASEListReaders - returns the list of all connected readers in a multi string and
|
|
* its length. If readerList param is NULL the function will return the expected
|
|
* length of readerList.
|
|
*
|
|
* In parameters: readerList (If NULL).
|
|
* Out parameters: readerList, length.
|
|
*/
|
|
unsigned long ASEMEM_API ASEListReaders(char * readersList, unsigned long * length);
|
|
|
|
/*
|
|
* ASEWaitForCardEvent - waits for card status IN or OUT depends on inOut parameter.
|
|
* The functionwaits the amount of Ms spcified in timeOut on reader.
|
|
*
|
|
* In parameters: reader, inOut, timeOut.
|
|
* Out parameters:
|
|
*/
|
|
unsigned long ASEMEM_API ASEWaitForCardEvent(char * reader, unsigned char inOut, unsigned long timeOut);
|
|
|
|
/*
|
|
* ASEMemConnect - connect to the card in reader. the function returns,
|
|
* on success, hCard and cardType.
|
|
*
|
|
* In parameters: reader, connectMode.
|
|
* Out parameters: hCard, cardType.
|
|
*/
|
|
unsigned long ASEMEM_API ASEMemConnect(ASEMEM_HANDLE * hCard, char * reader, unsigned long connectMode, unsigned long * cardType);
|
|
|
|
/*
|
|
* ASEMemDisconnect - disconnect a card by card handle at specific mode:leave card,
|
|
* reset card or unpower card.
|
|
*
|
|
* In parameters: hCard, mode.
|
|
* Out parameters:
|
|
*/
|
|
unsigned long ASEMEM_API ASEMemDisconnect(ASEMEM_HANDLE hCard, char mode);
|
|
|
|
/*
|
|
* ASEMemWrite - writeBuffer to a card from address lenWrite long.
|
|
* It can write or write and protect depend
|
|
* on protect parameter.
|
|
*
|
|
* In parameters: hCard, address, writeBuffer, lenWrite, protect.
|
|
* Out parameters:
|
|
*/
|
|
unsigned long ASEMEM_API ASEMemWrite(ASEMEM_HANDLE hCard, unsigned long address, unsigned char * writeBuffer, unsigned long lenWrite, char protect);
|
|
|
|
/*
|
|
* ASEMemRead - reads from a card from address lenRead long.
|
|
* If protReadBuffer or ReadBuffer are
|
|
* NULL this type of reading will not take place.
|
|
*
|
|
* In parameters: hCard, address, ReadBuffer, protReadBuffer, lenRead.
|
|
* Out parameters:
|
|
*/
|
|
unsigned long ASEMEM_API ASEMemRead(ASEMEM_HANDLE hCard, unsigned long address, unsigned char * readBuffer, unsigned char * protReadBuffer, unsigned long lenRead);
|
|
|
|
/*
|
|
* ASEMemVerifyPassword - verify card's password supported only by 2BUS and 3BUS cards.
|
|
* User should supply password and its length. Returns number of left attempts.
|
|
*
|
|
* In parameters: hCard, password, length.
|
|
* Out parameters: attempts.
|
|
*/
|
|
unsigned long ASEMEM_API ASEMemVerifyPassword(ASEMEM_HANDLE hCard, unsigned char * password, unsigned long length, int * attempts);
|
|
|
|
/*
|
|
* ASEMemChangePassword - verify card's password if it is not verified yet then change
|
|
* password. Supported only by 2BUS and 3BUS cards. User should supply oldPassword,
|
|
* newPassword and length.
|
|
* If the password is not verified and the oldPassword fails verify the password will
|
|
* not be changed.
|
|
* If the password was verified change will succeed even if oldPassword is wrong.
|
|
* Returns number of left attempts.
|
|
*
|
|
* In parameters: hCard, oldPassword, newPassword, length.
|
|
* Out parameters: attempts.
|
|
*/
|
|
unsigned long ASEMEM_API ASEMemChangePassword(ASEMEM_HANDLE hCard,unsigned char * oldPassword, unsigned char * newPassword, unsigned long length, int * attempts);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|