alex 6fce3dd611 Patch level : 2.2 no patch
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
2004-11-30 22:02:59 +00:00

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