From: <lu...@us...> - 2008-12-16 10:05:28
|
Revision: 242 http://pyscard.svn.sourceforge.net/pyscard/?rev=242&view=rev Author: ludov Date: 2008-12-16 10:05:24 +0000 (Tue, 16 Dec 2008) Log Message: ----------- reformat Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2008-12-09 14:51:15 UTC (rev 241) +++ trunk/pyscard/src/smartcard/scard/scard.i 2008-12-16 10:05:24 UTC (rev 242) @@ -253,7 +253,8 @@ psl->sz=NULL; lRetCode=(mySCardGetCardTypeProviderNameA)( - hcontext, pszCardName, dwProviderId, (LPTSTR)&psl->sz, &cchProviderName ); + hcontext, pszCardName, dwProviderId, + (LPTSTR)&psl->sz, &cchProviderName ); return lRetCode; }; @@ -330,7 +331,8 @@ pgl->hcontext = hcontext; pgl->aguid = NULL; - lRetCode = (mySCardListInterfacesA)( hcontext, pszCard, (LPGUID)&pgl->aguid, &pgl->cGuids ); + lRetCode = (mySCardListInterfacesA)(hcontext, pszCard, (LPGUID)&pgl->aguid, + &pgl->cGuids ); if( lRetCode!=SCARD_S_SUCCESS ) { pgl->cGuids=0; @@ -541,7 +543,8 @@ { SCARDHANDLE hcard; SCARDDWORDARG dwarg; - (mySCardConnectA)( *phContext, "dummy-reader", SCARD_SHARE_SHARED, SCARD_PROTOCOL_ANY, &hcard, &dwarg ); + (mySCardConnectA)( *phContext, "dummy-reader", SCARD_SHARE_SHARED, + SCARD_PROTOCOL_ANY, &hcard, &dwarg ); } #endif // __TIGER__ @@ -573,7 +576,8 @@ prsl->ars[i].dwCurrentState = prsl->ars[i].dwCurrentState & (0xFFFFFFFF ^ SCARD_STATE_CHANGED); } - hresult = (mySCardGetStatusChangeA)( hcontext, dwTimeout, prsl->ars, prsl->cRStates ); + hresult = (mySCardGetStatusChangeA)( hcontext, dwTimeout, prsl->ars, + prsl->cRStates ); //printf( "\n%.8lx ", hresult ); //for( i=0; i<prsl->cRStates; i++ ) @@ -593,11 +597,9 @@ // ATR not valid on output prsl->ars[i].cbAtr=0; - } } - return hresult; } @@ -613,7 +615,7 @@ winscard_init(); - if(pmszGroups) + if (pmszGroups) { mszGroups=pmszGroups->ac; } @@ -629,7 +631,8 @@ pmszReaders->ac=NULL; pmszReaders->hcontext=hcontext; - return (mySCardListReadersA)( hcontext, mszGroups, (LPTSTR)&pmszReaders->ac, &cchReaders ); + return (mySCardListReadersA)( hcontext, mszGroups, + (LPTSTR)&pmszReaders->ac, &cchReaders ); #endif //AUTOALLOCATE // no autoallocate on pcsc-lite; do a first call to get length @@ -640,7 +643,10 @@ pmszReaders->hcontext=0; pmszReaders->ac=NULL; cchReaders=0; - lRetCode = (mySCardListReadersA)( hcontext, mszGroups, NULL, &cchReaders ); + + lRetCode = (mySCardListReadersA)( hcontext, mszGroups, NULL, + &cchReaders ); + if ( SCARD_S_SUCCESS!=lRetCode ) { return lRetCode; @@ -659,7 +665,6 @@ return (mySCardListReadersA)( hcontext, mszGroups, (LPTSTR)pmszReaders->ac, &cchReaders ); #endif // !NOAUTOALLOCATE - } /////////////////////////////////////////////////////////////////////////////// @@ -675,7 +680,8 @@ pmszReaderGroups->ac=NULL; pmszReaderGroups->hcontext=hcontext; - return (mySCardListReaderGroupsA)( hcontext, (LPTSTR)&pmszReaderGroups->ac, &cchReaderGroups ); + return (mySCardListReaderGroupsA)( hcontext, + (LPTSTR)&pmszReaderGroups->ac, &cchReaderGroups ); #endif // NOAUTOALLOCATE // no autoallocate on pcsc-lite; do a first call to get length @@ -687,7 +693,8 @@ pmszReaderGroups->hcontext=0; cchReaderGroups = 0; pmszReaderGroups->ac=NULL; - lRetCode = (mySCardListReaderGroupsA)( hcontext, (LPTSTR)pmszReaderGroups->ac, &cchReaderGroups ); + lRetCode = (mySCardListReaderGroupsA)( hcontext, + (LPTSTR)pmszReaderGroups->ac, &cchReaderGroups ); if ( SCARD_S_SUCCESS!=lRetCode ) { return lRetCode; @@ -965,7 +972,7 @@ ERRORSTRING* _GetErrorMessage( long lErrCode ) { #ifdef WIN32 - #define _NO_SERVICE_MSG "The Smart card resource manager is not running." + #define _NO_SERVICE_MSG "The Smart card resource manager is not running." DWORD dwRetCode; LPVOID ppszError; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-03-20 16:50:36
|
Revision: 282 http://pyscard.svn.sourceforge.net/pyscard/?rev=282&view=rev Author: ludov Date: 2009-03-20 16:50:23 +0000 (Fri, 20 Mar 2009) Log Message: ----------- copy the definition of SCARD_CTL_CODE() from pcsc-lite instead of inventing a new (and different) one. Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2009-03-13 15:09:46 UTC (rev 281) +++ trunk/pyscard/src/smartcard/scard/scard.i 2009-03-20 16:50:23 UTC (rev 282) @@ -173,7 +173,7 @@ #ifdef __APPLE__ //#include <PCSC/reader.h> #ifndef SCARD_CTL_CODE - #define SCARD_CTL_CODE(x) (x) + #define SCARD_CTL_CODE(code) (0x42000000 + (code)) #endif #else #include <reader.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2010-03-10 12:46:17
|
Revision: 380 http://pyscard.svn.sourceforge.net/pyscard/?rev=380&view=rev Author: ludov Date: 2010-03-10 12:46:10 +0000 (Wed, 10 Mar 2010) Log Message: ----------- define local _* functions as static to avoid compiler warning: no previous prototype for '_*' Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2010-03-10 12:38:32 UTC (rev 379) +++ trunk/pyscard/src/smartcard/scard/scard.i 2010-03-10 12:46:10 UTC (rev 380) @@ -379,14 +379,14 @@ // #ifndef __TIGER__ /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _IsValidContext( SCARDCONTEXT hcontext ) +static SCARDRETCODE _IsValidContext( SCARDCONTEXT hcontext ) { winscard_init(); return (mySCardIsValidContext)( hcontext ); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _GetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* pbl ) +static SCARDRETCODE _GetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* pbl ) { long lRetCode; @@ -412,7 +412,7 @@ } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _SetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* pbl ) +static SCARDRETCODE _SetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* pbl ) { long lRetCode; @@ -430,7 +430,7 @@ #ifdef __TIGER__ /////////////////////////////////////////////////////////////////////////////// - SCARDRETCODE _Control( + static SCARDRETCODE _Control( SCARDHANDLE hcard, BYTELIST* pblSendBuffer, BYTELIST* pblRecvBuffer @@ -452,7 +452,7 @@ } #else // !__TIGER__ /////////////////////////////////////////////////////////////////////////////// - SCARDRETCODE _Control( + static SCARDRETCODE _Control( SCARDHANDLE hcard, SCARDDWORDARG controlCode, BYTELIST* pblSendBuffer, @@ -478,21 +478,21 @@ #endif // __TIGER__ /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _BeginTransaction( SCARDHANDLE hcard ) +static SCARDRETCODE _BeginTransaction( SCARDHANDLE hcard ) { winscard_init(); return (mySCardBeginTransaction)( hcard ); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _Cancel( SCARDCONTEXT hcontext ) +static SCARDRETCODE _Cancel( SCARDCONTEXT hcontext ) { winscard_init(); return (mySCardCancel)( hcontext ); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _Connect( +static SCARDRETCODE _Connect( SCARDCONTEXT hcontext, char* szReader, SCARDDWORDARG dwShareMode, @@ -516,21 +516,21 @@ } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _Disconnect( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ) +static SCARDRETCODE _Disconnect( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ) { winscard_init(); return (mySCardDisconnect)( hcard, dwDisposition ); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _EndTransaction( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ) +static SCARDRETCODE _EndTransaction( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ) { winscard_init(); return (mySCardEndTransaction)( hcard, dwDisposition ); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _EstablishContext( SCARDDWORDARG dwScope, SCARDCONTEXT* phContext ) +static SCARDRETCODE _EstablishContext( SCARDDWORDARG dwScope, SCARDCONTEXT* phContext ) { long lRet; winscard_init(); @@ -552,7 +552,7 @@ } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _GetStatusChange( +static SCARDRETCODE _GetStatusChange( SCARDCONTEXT hcontext, SCARDDWORDARG dwTimeout, READERSTATELIST* prsl ) @@ -604,7 +604,7 @@ } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _ListReaders( +static SCARDRETCODE _ListReaders( SCARDCONTEXT hcontext, STRINGLIST* pmszGroups, STRINGLIST* pmszReaders ) @@ -668,7 +668,7 @@ } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _ListReaderGroups( SCARDCONTEXT hcontext, STRINGLIST* pmszReaderGroups ) +static SCARDRETCODE _ListReaderGroups( SCARDCONTEXT hcontext, STRINGLIST* pmszReaderGroups ) { DWORD cchReaderGroups; LONG lRetCode; @@ -717,7 +717,7 @@ /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _Reconnect( +static SCARDRETCODE _Reconnect( SCARDHANDLE hcard, SCARDDWORDARG dwShareMode, SCARDDWORDARG dwPreferredProtocols, @@ -736,7 +736,7 @@ } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _ReleaseContext( SCARDCONTEXT hcontext ) +static SCARDRETCODE _ReleaseContext( SCARDCONTEXT hcontext ) { SCARDRETCODE lRet; winscard_init(); @@ -745,7 +745,7 @@ } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _Status( +static SCARDRETCODE _Status( SCARDHANDLE hcard, STRING* pszReaderName, SCARDDWORDARG* pdwState, @@ -789,7 +789,7 @@ } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _Transmit( +static SCARDRETCODE _Transmit( SCARDHANDLE hcard, unsigned long pioSendPci, BYTELIST* pblSendBuffer, @@ -836,12 +836,12 @@ } /////////////////////////////////////////////////////////////////////////////// -long _SCARD_CTL_CODE( long code ) +static long _SCARD_CTL_CODE( long code ) { return SCARD_CTL_CODE(code); } -ERRORSTRING* _GetErrorMessage( long lErrCode ) +static ERRORSTRING* _GetErrorMessage( long lErrCode ) { #ifdef WIN32 #define _NO_SERVICE_MSG "The Smart card resource manager is not running." This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2010-03-11 09:22:40
|
Revision: 381 http://pyscard.svn.sourceforge.net/pyscard/?rev=381&view=rev Author: ludov Date: 2010-03-11 09:22:34 +0000 (Thu, 11 Mar 2010) Log Message: ----------- Use MAX_BUFFER_SIZE_EXTENDED (64k) instead of 1024 for the receiving buffer of SCardControl() and SCardTransmit() Fixes "SCardTransmit with ISO7816 extended case APDU - ID: 2914636" https://sourceforge.net/tracker/?func=detail&aid=2914636&group_id=196342&atid=957072 Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2010-03-10 12:46:10 UTC (rev 380) +++ trunk/pyscard/src/smartcard/scard/scard.i 2010-03-11 09:22:34 UTC (rev 381) @@ -182,6 +182,8 @@ // SCARD_CTL_CODE defined in WinSmCrd.h included by Win32 winscard.h #endif //PCSCLITE +#define MAX_BUFFER_SIZE_EXTENDED (1<<16) + #include "pcsctypes.h" #include "helpers.h" #include "memlog.h" @@ -439,8 +441,8 @@ SCARDRETCODE lRet; winscard_init(); - pblRecvBuffer->ab = (unsigned char*)mem_Malloc(1024*sizeof(unsigned char)); - pblRecvBuffer->cBytes=1024; + pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); + pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; lRet = (mySCardControl)( hcard, @@ -462,8 +464,8 @@ SCARDRETCODE lRet; winscard_init(); - pblRecvBuffer->ab = (unsigned char*)mem_Malloc(1024*sizeof(unsigned char)); - pblRecvBuffer->cBytes=1024; + pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); + pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; lRet = (mySCardControl)( hcard, @@ -801,8 +803,8 @@ winscard_init(); - pblRecvBuffer->ab = (unsigned char*)mem_Malloc(1024*sizeof(unsigned char)); - pblRecvBuffer->cBytes=1024; + pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); + pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; // keep in sync with redefinition in PcscDefs.i switch(pioSendPci) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2010-03-12 10:34:11
|
Revision: 382 http://pyscard.svn.sourceforge.net/pyscard/?rev=382&view=rev Author: ludov Date: 2010-03-12 10:34:04 +0000 (Fri, 12 Mar 2010) Log Message: ----------- call winscard_init() to load the library only in the %init section instead of in each wrapped function. The side effect is that the library is loaded at the import time and not when the first PC/SC function is called. We then avoid loading the library in a Python thread (crashes on Mac OS X). Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2010-03-11 09:22:34 UTC (rev 381) +++ trunk/pyscard/src/smartcard/scard/scard.i 2010-03-12 10:34:04 UTC (rev 382) @@ -210,7 +210,6 @@ char* szReaderName, char* szGroupName ) { - winscard_init(); return (mySCardAddReaderToGroupA)( hcontext, szReaderName, @@ -220,21 +219,18 @@ /////////////////////////////////////////////////////////////////////////////// SCARDRETCODE _ForgetCardType( SCARDCONTEXT hcontext, char* pszCardName ) { - winscard_init(); return (mySCardForgetCardTypeA)( hcontext, pszCardName ); } /////////////////////////////////////////////////////////////////////////////// SCARDRETCODE _ForgetReader( SCARDCONTEXT hcontext, char* szReaderName ) { - winscard_init(); return (mySCardForgetReaderA)( hcontext, szReaderName ); } /////////////////////////////////////////////////////////////////////////////// SCARDRETCODE _ForgetReaderGroup( SCARDCONTEXT hcontext, char* szGroupName ) { - winscard_init(); return (mySCardForgetReaderGroupA)( hcontext, szGroupName ); } @@ -248,7 +244,6 @@ long lRetCode; unsigned long cchProviderName=SCARD_AUTOALLOCATE; - winscard_init(); // autoallocate memory; will be freed on output typemap psl->hcontext=hcontext; @@ -271,7 +266,6 @@ BYTELIST* pbAtrMask ) { - winscard_init(); return (mySCardIntroduceCardTypeA)( hcontext, pszCardName, @@ -286,14 +280,12 @@ /////////////////////////////////////////////////////////////////////////////// SCARDRETCODE _IntroduceReader( SCARDCONTEXT hcontext, char* szReaderName, char* szDeviceName ) { - winscard_init(); return (mySCardIntroduceReaderA)( hcontext, szReaderName, szDeviceName ); } /////////////////////////////////////////////////////////////////////////////// SCARDRETCODE _IntroduceReaderGroup( SCARDCONTEXT hcontext, char* szGroupName ) { - winscard_init(); return (mySCardIntroduceReaderGroupA)( hcontext, szGroupName ); } @@ -303,7 +295,6 @@ // autoallocate memory; will be freed on output typemap unsigned long cchCards=SCARD_AUTOALLOCATE; - winscard_init(); pmszCards->ac=NULL; pmszCards->hcontext=hcontext; @@ -327,8 +318,6 @@ { long lRetCode; - winscard_init(); - pgl->cGuids = SCARD_AUTOALLOCATE; pgl->hcontext = hcontext; pgl->aguid = NULL; @@ -351,8 +340,6 @@ { LPCSTR pcstr=(0==strlen((LPCTSTR)mszCards->ac)) ? NULL : (LPCTSTR)mszCards->ac; - winscard_init(); - return (mySCardLocateCardsA)( hcontext, pcstr, @@ -366,7 +353,6 @@ char* szReaderName, char* szGroupName ) { - winscard_init(); return (mySCardRemoveReaderFromGroupA)( hcontext, szReaderName, @@ -383,7 +369,6 @@ /////////////////////////////////////////////////////////////////////////////// static SCARDRETCODE _IsValidContext( SCARDCONTEXT hcontext ) { - winscard_init(); return (mySCardIsValidContext)( hcontext ); } @@ -392,8 +377,6 @@ { long lRetCode; - winscard_init(); - pbl->cBytes = 0; pbl->ab = NULL; @@ -418,8 +401,6 @@ { long lRetCode; - winscard_init(); - lRetCode = (mySCardSetAttrib)( hcard, dwAttrId, pbl->ab, pbl->cBytes ); return lRetCode; } @@ -439,7 +420,6 @@ ) { SCARDRETCODE lRet; - winscard_init(); pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; @@ -462,7 +442,6 @@ ) { SCARDRETCODE lRet; - winscard_init(); pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; @@ -482,14 +461,12 @@ /////////////////////////////////////////////////////////////////////////////// static SCARDRETCODE _BeginTransaction( SCARDHANDLE hcard ) { - winscard_init(); return (mySCardBeginTransaction)( hcard ); } /////////////////////////////////////////////////////////////////////////////// static SCARDRETCODE _Cancel( SCARDCONTEXT hcontext ) { - winscard_init(); return (mySCardCancel)( hcontext ); } @@ -505,7 +482,6 @@ { SCARDRETCODE lRet; - winscard_init(); lRet = (mySCardConnectA)( hcontext, (LPCTSTR)szReader, @@ -520,14 +496,12 @@ /////////////////////////////////////////////////////////////////////////////// static SCARDRETCODE _Disconnect( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ) { - winscard_init(); return (mySCardDisconnect)( hcard, dwDisposition ); } /////////////////////////////////////////////////////////////////////////////// static SCARDRETCODE _EndTransaction( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ) { - winscard_init(); return (mySCardEndTransaction)( hcard, dwDisposition ); } @@ -535,7 +509,6 @@ static SCARDRETCODE _EstablishContext( SCARDDWORDARG dwScope, SCARDCONTEXT* phContext ) { long lRet; - winscard_init(); lRet = (mySCardEstablishContext)( dwScope, NULL, NULL, phContext ); #ifdef __TIGER__ @@ -562,8 +535,6 @@ SCARDRETCODE hresult; int i; - winscard_init(); - // bad reader state list if( NULL==prsl ) { @@ -615,8 +586,6 @@ SCARDDWORDARG cchReaders; LONG lRetCode; - winscard_init(); - if (pmszGroups) { mszGroups=pmszGroups->ac; @@ -675,8 +644,6 @@ DWORD cchReaderGroups; LONG lRetCode; - winscard_init(); - #ifdef NOAUTOALLOCATE cchReaderGroups = SCARD_AUTOALLOCATE; pmszReaderGroups->ac=NULL; @@ -727,8 +694,6 @@ SCARDDWORDARG* pdwActiveProtocol ) { - winscard_init(); - return (mySCardReconnect)( hcard, dwShareMode, @@ -741,7 +706,6 @@ static SCARDRETCODE _ReleaseContext( SCARDCONTEXT hcontext ) { SCARDRETCODE lRet; - winscard_init(); lRet = (mySCardReleaseContext)( hcontext ); return lRet; } @@ -759,7 +723,6 @@ SCARDDWORDARG dwReaderLen=256; SCARDDWORDARG dwAtrLen=36; - winscard_init(); for(;;) { pbl->ab = (unsigned char*)mem_Malloc(dwAtrLen*sizeof(unsigned char)); @@ -801,8 +764,6 @@ PSCARD_IO_REQUEST piorequest=NULL; long ret; - winscard_init(); - pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; @@ -843,6 +804,7 @@ return SCARD_CTL_CODE(code); } +/////////////////////////////////////////////////////////////////////////////// static ERRORSTRING* _GetErrorMessage( long lErrCode ) { #ifdef WIN32 @@ -2087,6 +2049,9 @@ PyExc_SCardError = PyErr_NewException("scard.error", NULL, NULL); if (PyExc_SCardError != NULL) PyDict_SetItemString(d, "error", PyExc_SCardError); + + /* load the PCSC library */ + winscard_init(); %} //---------------------------------------------------------------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2010-04-18 08:10:19
|
Revision: 389 http://pyscard.svn.sourceforge.net/pyscard/?rev=389&view=rev Author: ludov Date: 2010-04-18 08:10:13 +0000 (Sun, 18 Apr 2010) Log Message: ----------- Define MAX_BUFFER_SIZE_EXTENDED only if pcsc-lite is not used (Windows). pcsc-lite already defines it. Thanks to Martin Paljak for the bug report Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2010-04-07 06:48:50 UTC (rev 388) +++ trunk/pyscard/src/smartcard/scard/scard.i 2010-04-18 08:10:13 UTC (rev 389) @@ -180,10 +180,10 @@ #endif #else // !PCSCLITE // SCARD_CTL_CODE defined in WinSmCrd.h included by Win32 winscard.h +// MAX_BUFFER_SIZE_EXTENDED is pcsc-lite specific +#define MAX_BUFFER_SIZE_EXTENDED (1<<16) #endif //PCSCLITE -#define MAX_BUFFER_SIZE_EXTENDED (1<<16) - #include "pcsctypes.h" #include "helpers.h" #include "memlog.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2010-05-07 16:17:18
|
Revision: 406 http://pyscard.svn.sourceforge.net/pyscard/?rev=406&view=rev Author: jdaussel Date: 2010-05-07 16:17:12 +0000 (Fri, 07 May 2010) Log Message: ----------- Definition of MAX_BUFFER_SIZE_EXTENDED for older releases of pcsc-lite, e.g. on fedora 6 Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2010-05-07 13:31:59 UTC (rev 405) +++ trunk/pyscard/src/smartcard/scard/scard.i 2010-05-07 16:17:12 UTC (rev 406) @@ -178,6 +178,10 @@ #else #include <reader.h> #endif + // undefined on older releases + #ifndef MAX_BUFFER_SIZE_EXTENDED + #define MAX_BUFFER_SIZE_EXTENDED (4 + 3 + (1<<16) + 3) + #endif #else // !PCSCLITE // SCARD_CTL_CODE defined in WinSmCrd.h included by Win32 winscard.h // MAX_BUFFER_SIZE_EXTENDED is pcsc-lite specific @@ -199,9 +203,9 @@ %{ -// +// // these functions are only available on win32 PCSC -// +// #ifdef WIN32 /////////////////////////////////////////////////////////////////////////////// @@ -409,7 +413,7 @@ // // SCardControl does not have the same prototype on Mac OS X Tiger -// +// #ifdef __TIGER__ /////////////////////////////////////////////////////////////////////////////// @@ -420,10 +424,10 @@ ) { SCARDRETCODE lRet; - + pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; - + lRet = (mySCardControl)( hcard, pblSendBuffer->ab, @@ -442,10 +446,10 @@ ) { SCARDRETCODE lRet; - + pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; - + lRet = (mySCardControl)( hcard, controlCode, @@ -514,12 +518,12 @@ #ifdef __TIGER__ // SCardReleaseContext on Mac OS X Tiger fails if SCardConnect is not called with an established // context, even on a dummy reader - if( SCARD_S_SUCCESS==lRet ) + if( SCARD_S_SUCCESS==lRet ) { SCARDHANDLE hcard; SCARDDWORDARG dwarg; (mySCardConnectA)( *phContext, "dummy-reader", SCARD_SHARE_SHARED, - SCARD_PROTOCOL_ANY, &hcard, &dwarg ); + SCARD_PROTOCOL_ANY, &hcard, &dwarg ); } #endif // __TIGER__ @@ -884,9 +888,9 @@ %typemap(doc, name="dwControlCode", type="") (SCARDDWORDARG dwControlCode) "dwControlCode: the control code to send"; -// +// // these functions are only available on win32 PCSC -// +// #ifdef WIN32 /////////////////////////////////////////////////////////////////////////////// @@ -1253,7 +1257,7 @@ valid. After a smart card context handle has been set by SCardEstablishContext(), it may become not valid if the resource manager service has been shut down. - + from smartcard.scard import * hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) hresult = SCardIsValidContext( hcontext ) @@ -1265,15 +1269,15 @@ %feature("docstring") DOCSTRING_ISVALIDCONTEXT; %rename(SCardIsValidContext) _IsValidContext( SCARDCONTEXT hcontext ); SCARDRETCODE _IsValidContext( SCARDCONTEXT hcontext ); - + /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_GETATTRIB " - + This function get an attribute from the IFD Handler. - + For PCSC lite, the list of possible attributes is: - + * SCARD_ATTR_ASYNC_PROTOCOL_TYPES * SCARD_ATTR_ATR_STRING * SCARD_ATTR_CHANNEL_ID @@ -1318,9 +1322,9 @@ * SCARD_ATTR_VENDOR_IFD_TYPE * SCARD_ATTR_VENDOR_IFD_VERSION * SCARD_ATTR_VENDOR_NAME - + For Windows Resource Manager, the list of possible attributes is: - + * SCARD_ATTR_VENDOR_NAME * SCARD_ATTR_VENDOR_IFD_TYPE * SCARD_ATTR_VENDOR_IFD_VERSION @@ -1363,12 +1367,12 @@ * SCARD_ATTR_DEVICE_FRIENDLY_NAME_W * SCARD_ATTR_DEVICE_SYSTEM_NAME_W * SCARD_ATTR_SUPRESS_T1_IFS_REQUEST - + Not all the dwAttrId values listed above may be implemented in the IFD Handler you are using. And some dwAttrId values not listed here may be implemented. - - + + from smartcard.scard import * ... establish context and connect to card ... hresult, attrib = SCardGetAttrib( hcard, SCARD_ATTR_ATR_STRING ) @@ -1381,16 +1385,16 @@ %feature("docstring") DOCSTRING_GETATTRIB; %rename(SCardGetAttrib) _GetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTES ); SCARDRETCODE _GetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTES ); - + /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_SETATTRIB " - - This function sets an attribute from the IFD Handler. Not all attributes are supported by all readers nor can + + This function sets an attribute from the IFD Handler. Not all attributes are supported by all readers nor can they be set at all times. - + For PCSC lite, the list of possible attributes is: - + * SCARD_ATTR_ASYNC_PROTOCOL_TYPES * SCARD_ATTR_ATR_STRING * SCARD_ATTR_CHANNEL_ID @@ -1435,9 +1439,9 @@ * SCARD_ATTR_VENDOR_IFD_TYPE * SCARD_ATTR_VENDOR_IFD_VERSION * SCARD_ATTR_VENDOR_NAME - + For Windows Resource Manager, the list of possible attributes is: - + * SCARD_ATTR_VENDOR_NAME * SCARD_ATTR_VENDOR_IFD_TYPE * SCARD_ATTR_VENDOR_IFD_VERSION @@ -1480,12 +1484,12 @@ * SCARD_ATTR_DEVICE_FRIENDLY_NAME_W * SCARD_ATTR_DEVICE_SYSTEM_NAME_W * SCARD_ATTR_SUPRESS_T1_IFS_REQUEST - + Not all the dwAttrId values listed above may be implemented in the IFD Handler you are using. And some dwAttrId values not listed here may be implemented. - - + + from smartcard.scard import * ... establish context and connect to card ... hresult, attrib = SCardSetAttrib( hcard, SCARD_ATTR_VENDOR_NAME, ['G', 'e', 'm', 'a', 'l', 't', 'o'] ) @@ -1497,13 +1501,13 @@ %feature("docstring") DOCSTRING_SETATTRIB; %rename(SCardSetAttrib) _SetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTESIN ); SCARDRETCODE _SetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTESIN ); - + #endif // !__TIGER__ // // SCardControl does not have the same prototype on Mac OS X Tiger -// +// #ifdef __TIGER__ /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_CONTROL @@ -1538,8 +1542,8 @@ " This function sends a control command to the reader connected to by SCardConnect(). It returns a result and the control response. - - + + from smartcard.scard import * hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) hresult, hcard, dwActiveProtocol = SCardConnect( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2010-06-12 22:48:31
|
Revision: 488 http://pyscard.svn.sourceforge.net/pyscard/?rev=488&view=rev Author: ludov Date: 2010-06-12 22:48:25 +0000 (Sat, 12 Jun 2010) Log Message: ----------- improve epydoc and make sample code more pep8 compliant Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2010-06-12 22:14:03 UTC (rev 487) +++ trunk/pyscard/src/smartcard/scard/scard.i 2010-06-12 22:48:25 UTC (rev 488) @@ -1,6 +1,7 @@ /*============================================================================== Copyright 2001-2010 gemalto Author: Jean-Daniel Aussel, mailto:jea...@ge... +Author: Ludovic Rousseau, mailto:lud...@fr... This file is part of pyscard. @@ -29,12 +30,12 @@ You should avoid using the smartcard.scard package directly, and use the pyscard directly because: -. smartcard.scard being a C wrapper, the code tends to look like C code -written in python syntax + - smartcard.scard being a C wrapper, the code tends to look like C code + written in python syntax -. the smartcard package provides higher level abstractions (e.g. CardType, -CardConnection), and makes programming easier since it is totally written -in Python + - the smartcard package provides higher level abstractions (e.g. + CardType, CardConnection), and makes programming easier since it is + totally written in Python You can still use the smartcard.scard package if you want to write your own framework, or if you want to perform quick-and-dirty port of C @@ -53,87 +54,91 @@ On Windows using the smart card base components, the smartcard.scard module provides mapping for the following API functions: -SCardAddReaderToGroup -SCardBeginTransaction -SCardCancel -SCardConnect -SCardControl -SCardDisconnect -SCardEndTransaction -SCardEstablishContext -SCardForgetCardType -SCardForgetReader -SCardForgetReaderGroup -SCardGetAttrib -SCardGetCardTypeProviderName -SCardGetErrorMessage -SCardGetStatusChange -SCardIntroduceCardType -SCardIntroduceReader -SCardIntroduceReaderGroup -SCardIsValidContext -SCardListInterfaces -SCardListCards -SCardListReaders -SCardListReaderGroups -SCardLocateCards -SCardReconnect -SCardReleaseContext -SCardRemoveReaderFromGroup -SCardSetAttrib -SCardStatus -SCardTransmit + - SCardAddReaderToGroup + - SCardBeginTransaction + - SCardCancel + - SCardConnect + - SCardControl + - SCardDisconnect + - SCardEndTransaction + - SCardEstablishContext + - SCardForgetCardType + - SCardForgetReader + - SCardForgetReaderGroup + - SCardGetAttrib + - SCardGetCardTypeProviderName + - SCardGetErrorMessage + - SCardGetStatusChange + - SCardIntroduceCardType + - SCardIntroduceReader + - SCardIntroduceReaderGroup + - SCardIsValidContext + - SCardListInterfaces + - SCardListCards + - SCardListReaders + - SCardListReaderGroups + - SCardLocateCards + - SCardReconnect + - SCardReleaseContext + - SCardRemoveReaderFromGroup + - SCardSetAttrib + - SCardStatus + - SCardTransmit -On linux or Mac OS X Leopard with PCSC lite, the smartcard.scard module provides mapping for the following API functions: +On linux or Mac OS X Leopard with PCSC lite, the smartcard.scard module +provides mapping for the following API functions: -SCardBeginTransaction -SCardCancel -SCardConnect -SCardControl -SCardDisconnect -SCardEndTransaction -SCardEstablishContext -SCardGetAttrib -SCardGetStatusChange -SCardIsValidContext -SCardListReaders -SCardListReaderGroups -SCardReconnect -SCardReleaseContext -SCardSetAttrib -SCardStatus -SCardTransmit + - SCardBeginTransaction + - SCardCancel + - SCardConnect + - SCardControl + - SCardDisconnect + - SCardEndTransaction + - SCardEstablishContext + - SCardGetAttrib + - SCardGetStatusChange + - SCardIsValidContext + - SCardListReaders + - SCardListReaderGroups + - SCardReconnect + - SCardReleaseContext + - SCardSetAttrib + - SCardStatus + - SCardTransmit -On Mac OS X Tiger with PCSC lite, the smartcard.scard module provides mapping for the following API functions: +On Mac OS X Tiger with PCSC lite, the smartcard.scard module provides +mapping for the following API functions: -SCardBeginTransaction -SCardCancel -SCardConnect -SCardControl -SCardDisconnect -SCardEndTransaction -SCardEstablishContext -SCardGetStatusChange -SCardListReaders -SCardListReaderGroups -SCardReconnect -SCardReleaseContext -SCardStatus -SCardTransmit + - SCardBeginTransaction + - SCardCancel + - SCardConnect + - SCardControl + - SCardDisconnect + - SCardEndTransaction + - SCardEstablishContext + - SCardGetStatusChange + - SCardListReaders + - SCardListReaderGroups + - SCardReconnect + - SCardReleaseContext + - SCardStatus + - SCardTransmit -The following PCSC smart card functions are not wrapped by the scard module on any platform: +The following PCSC smart card functions are not wrapped by the scard +module on any platform: -GetOpenCardName -SCardFreeMemory -SCardGetProviderId -SCardSetCartTypeProviderName -SCardUIDlgSelectCard + - GetOpenCardName + - SCardFreeMemory + - SCardGetProviderId + - SCardSetCartTypeProviderName + - SCardUIDlgSelectCard -Comments, bugs, improvements welcome. +Comments, bug reports, improvements welcome. ------------------------------------------------------------------------------- Copyright 2001-2010 gemalto -Author: Jean-Daniel Aussel, mailto:jea...@ge... +@Author: Jean-Daniel Aussel, mailto:jea...@ge... +@Author: Ludovic Rousseau, mailto:lud...@fr... This file is part of pyscard. @@ -154,9 +159,9 @@ " %enddef -%module( docstring=DOCSTRING, package="smartcard.scard") scard +%module(docstring=DOCSTRING, package="smartcard.scard") scard -%feature("autodoc", "3" ); +%feature("autodoc", "3"); %{ #ifdef WIN32 @@ -212,30 +217,30 @@ SCARDRETCODE _AddReaderToGroup( SCARDCONTEXT hcontext, char* szReaderName, - char* szGroupName ) + char* szGroupName) { return (mySCardAddReaderToGroupA)( hcontext, szReaderName, - szGroupName ); + szGroupName); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _ForgetCardType( SCARDCONTEXT hcontext, char* pszCardName ) +SCARDRETCODE _ForgetCardType(SCARDCONTEXT hcontext, char* pszCardName) { - return (mySCardForgetCardTypeA)( hcontext, pszCardName ); + return (mySCardForgetCardTypeA)(hcontext, pszCardName); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _ForgetReader( SCARDCONTEXT hcontext, char* szReaderName ) +SCARDRETCODE _ForgetReader(SCARDCONTEXT hcontext, char* szReaderName) { - return (mySCardForgetReaderA)( hcontext, szReaderName ); + return (mySCardForgetReaderA)(hcontext, szReaderName); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _ForgetReaderGroup( SCARDCONTEXT hcontext, char* szGroupName ) +SCARDRETCODE _ForgetReaderGroup(SCARDCONTEXT hcontext, char* szGroupName) { - return (mySCardForgetReaderGroupA)( hcontext, szGroupName ); + return (mySCardForgetReaderGroupA)(hcontext, szGroupName); } /////////////////////////////////////////////////////////////////////////////// @@ -243,7 +248,7 @@ SCARDCONTEXT hcontext, char* pszCardName, SCARDDWORDARG dwProviderId, - PROVIDERNAME_t* psl ) + PROVIDERNAME_t* psl) { long lRetCode; unsigned long cchProviderName=SCARD_AUTOALLOCATE; @@ -255,7 +260,7 @@ lRetCode=(mySCardGetCardTypeProviderNameA)( hcontext, pszCardName, dwProviderId, - (LPTSTR)&psl->sz, &cchProviderName ); + (LPTSTR)&psl->sz, &cchProviderName); return lRetCode; }; @@ -278,23 +283,23 @@ rgguidInterfaces ? rgguidInterfaces->cGuids : 0, pbAtr->ab, pbAtrMask->ab, - pbAtr->cBytes ); + pbAtr->cBytes); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _IntroduceReader( SCARDCONTEXT hcontext, char* szReaderName, char* szDeviceName ) +SCARDRETCODE _IntroduceReader(SCARDCONTEXT hcontext, char* szReaderName, char* szDeviceName) { - return (mySCardIntroduceReaderA)( hcontext, szReaderName, szDeviceName ); + return (mySCardIntroduceReaderA)(hcontext, szReaderName, szDeviceName); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _IntroduceReaderGroup( SCARDCONTEXT hcontext, char* szGroupName ) +SCARDRETCODE _IntroduceReaderGroup(SCARDCONTEXT hcontext, char* szGroupName) { - return (mySCardIntroduceReaderGroupA)( hcontext, szGroupName ); + return (mySCardIntroduceReaderGroupA)(hcontext, szGroupName); } /////////////////////////////////////////////////////////////////////////////// -SCARDRETCODE _ListCards( SCARDCONTEXT hcontext, BYTELIST* pbl, GUIDLIST* guidlist, STRINGLIST* pmszCards ) +SCARDRETCODE _ListCards(SCARDCONTEXT hcontext, BYTELIST* pbl, GUIDLIST* guidlist, STRINGLIST* pmszCards) { // autoallocate memory; will be freed on output typemap unsigned long cchCards=SCARD_AUTOALLOCATE; @@ -302,14 +307,14 @@ pmszCards->ac=NULL; pmszCards->hcontext=hcontext; - //SCardHelper_PrintByteList( pbl ); + //SCardHelper_PrintByteList(pbl); return (mySCardListCardsA)( hcontext, pbl->ab, (NULL==guidlist) ? NULL : guidlist->aguid, (NULL==guidlist) ? 0 : guidlist->cGuids, (LPTSTR)&pmszCards->ac, - &cchCards ); + &cchCards); }; @@ -327,8 +332,8 @@ pgl->aguid = NULL; lRetCode = (mySCardListInterfacesA)(hcontext, pszCard, (LPGUID)&pgl->aguid, - &pgl->cGuids ); - if( lRetCode!=SCARD_S_SUCCESS ) + &pgl->cGuids); + if (lRetCode!=SCARD_S_SUCCESS) { pgl->cGuids=0; } @@ -348,19 +353,19 @@ hcontext, pcstr, prl->ars, - prl->cRStates ); + prl->cRStates); } /////////////////////////////////////////////////////////////////////////////// SCARDRETCODE _RemoveReaderFromGroup( SCARDCONTEXT hcontext, char* szReaderName, - char* szGroupName ) + char* szGroupName) { return (mySCardRemoveReaderFromGroupA)( hcontext, szReaderName, - szGroupName ); + szGroupName); } #endif // WIN32 @@ -371,21 +376,21 @@ // #ifndef __TIGER__ /////////////////////////////////////////////////////////////////////////////// -static SCARDRETCODE _IsValidContext( SCARDCONTEXT hcontext ) +static SCARDRETCODE _IsValidContext(SCARDCONTEXT hcontext) { - return (mySCardIsValidContext)( hcontext ); + return (mySCardIsValidContext)(hcontext); } /////////////////////////////////////////////////////////////////////////////// -static SCARDRETCODE _GetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* pbl ) +static SCARDRETCODE _GetAttrib(SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* pbl) { long lRetCode; pbl->cBytes = 0; pbl->ab = NULL; - lRetCode = (mySCardGetAttrib)( hcard, dwAttrId, pbl->ab, &pbl->cBytes ); - if( (lRetCode!=SCARD_S_SUCCESS) || (pbl->cBytes<1) ) + lRetCode = (mySCardGetAttrib)(hcard, dwAttrId, pbl->ab, &pbl->cBytes); + if ((lRetCode!=SCARD_S_SUCCESS) || (pbl->cBytes<1)) { return lRetCode; } @@ -396,16 +401,16 @@ return SCARD_E_NO_MEMORY; } - lRetCode = (mySCardGetAttrib)( hcard, dwAttrId, pbl->ab, &pbl->cBytes ); + lRetCode = (mySCardGetAttrib)(hcard, dwAttrId, pbl->ab, &pbl->cBytes); return lRetCode; } /////////////////////////////////////////////////////////////////////////////// -static SCARDRETCODE _SetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* pbl ) +static SCARDRETCODE _SetAttrib(SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* pbl) { long lRetCode; - lRetCode = (mySCardSetAttrib)( hcard, dwAttrId, pbl->ab, pbl->cBytes ); + lRetCode = (mySCardSetAttrib)(hcard, dwAttrId, pbl->ab, pbl->cBytes); return lRetCode; } #endif // !__TIGER__ @@ -421,7 +426,7 @@ SCARDHANDLE hcard, BYTELIST* pblSendBuffer, BYTELIST* pblRecvBuffer - ) + ) { SCARDRETCODE lRet; @@ -433,7 +438,7 @@ pblSendBuffer->ab, pblSendBuffer->cBytes, pblRecvBuffer->ab, - &pblRecvBuffer->cBytes ); + &pblRecvBuffer->cBytes); return lRet; } #else // !__TIGER__ @@ -443,7 +448,7 @@ SCARDDWORDARG controlCode, BYTELIST* pblSendBuffer, BYTELIST* pblRecvBuffer - ) + ) { SCARDRETCODE lRet; @@ -457,21 +462,21 @@ pblSendBuffer->cBytes, pblRecvBuffer->ab, pblRecvBuffer->cBytes, - &pblRecvBuffer->cBytes ); + &pblRecvBuffer->cBytes); return lRet; } #endif // __TIGER__ /////////////////////////////////////////////////////////////////////////////// -static SCARDRETCODE _BeginTransaction( SCARDHANDLE hcard ) +static SCARDRETCODE _BeginTransaction(SCARDHANDLE hcard) { - return (mySCardBeginTransaction)( hcard ); + return (mySCardBeginTransaction)(hcard); } /////////////////////////////////////////////////////////////////////////////// -static SCARDRETCODE _Cancel( SCARDCONTEXT hcontext ) +static SCARDRETCODE _Cancel(SCARDCONTEXT hcontext) { - return (mySCardCancel)( hcontext ); + return (mySCardCancel)(hcontext); } /////////////////////////////////////////////////////////////////////////////// @@ -492,38 +497,38 @@ dwShareMode, dwPreferredProtocols, phCard, - pdwActiveProtocol ); + pdwActiveProtocol); return lRet; } /////////////////////////////////////////////////////////////////////////////// -static SCARDRETCODE _Disconnect( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ) +static SCARDRETCODE _Disconnect(SCARDHANDLE hcard, SCARDDWORDARG dwDisposition) { - return (mySCardDisconnect)( hcard, dwDisposition ); + return (mySCardDisconnect)(hcard, dwDisposition); } /////////////////////////////////////////////////////////////////////////////// -static SCARDRETCODE _EndTransaction( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ) +static SCARDRETCODE _EndTransaction(SCARDHANDLE hcard, SCARDDWORDARG dwDisposition) { - return (mySCardEndTransaction)( hcard, dwDisposition ); + return (mySCardEndTransaction)(hcard, dwDisposition); } /////////////////////////////////////////////////////////////////////////////// -static SCARDRETCODE _EstablishContext( SCARDDWORDARG dwScope, SCARDCONTEXT* phContext ) +static SCARDRETCODE _EstablishContext(SCARDDWORDARG dwScope, SCARDCONTEXT* phContext) { long lRet; - lRet = (mySCardEstablishContext)( dwScope, NULL, NULL, phContext ); + lRet = (mySCardEstablishContext)(dwScope, NULL, NULL, phContext); #ifdef __TIGER__ // SCardReleaseContext on Mac OS X Tiger fails if SCardConnect is not called with an established // context, even on a dummy reader - if( SCARD_S_SUCCESS==lRet ) + if (SCARD_S_SUCCESS==lRet) { SCARDHANDLE hcard; SCARDDWORDARG dwarg; - (mySCardConnectA)( *phContext, "dummy-reader", SCARD_SHARE_SHARED, - SCARD_PROTOCOL_ANY, &hcard, &dwarg ); + (mySCardConnectA)(*phContext, "dummy-reader", SCARD_SHARE_SHARED, + SCARD_PROTOCOL_ANY, &hcard, &dwarg); } #endif // __TIGER__ @@ -534,32 +539,32 @@ static SCARDRETCODE _GetStatusChange( SCARDCONTEXT hcontext, SCARDDWORDARG dwTimeout, - READERSTATELIST* prsl ) + READERSTATELIST* prsl) { SCARDRETCODE hresult; int i; // bad reader state list - if( NULL==prsl ) + if (NULL==prsl) { return SCARD_E_INVALID_PARAMETER; } // remove changed bit - for( i=0; i<prsl->cRStates; i++ ) + for(i=0; i<prsl->cRStates; i++) { // remove changed bit prsl->ars[i].dwCurrentState = prsl->ars[i].dwCurrentState & (0xFFFFFFFF ^ SCARD_STATE_CHANGED); } - hresult = (mySCardGetStatusChangeA)( hcontext, dwTimeout, prsl->ars, - prsl->cRStates ); + hresult = (mySCardGetStatusChangeA)(hcontext, dwTimeout, prsl->ars, + prsl->cRStates); - //printf( "\n%.8lx ", hresult ); - //for( i=0; i<prsl->cRStates; i++ ) + //printf("\n%.8lx ", hresult); + //for(i=0; i<prsl->cRStates; i++) //{ - // printf( "%.8lx %.8lx ", prsl->ars[i].dwCurrentState, prsl->ars[i].dwEventState ); + // printf("%.8lx %.8lx ", prsl->ars[i].dwCurrentState, prsl->ars[i].dwEventState); //} return hresult; @@ -569,7 +574,7 @@ static SCARDRETCODE _ListReaders( SCARDCONTEXT hcontext, STRINGLIST* pmszGroups, - STRINGLIST* pmszReaders ) + STRINGLIST* pmszReaders) { LPCTSTR mszGroups; SCARDDWORDARG cchReaders; @@ -591,8 +596,8 @@ pmszReaders->ac=NULL; pmszReaders->hcontext=hcontext; - return (mySCardListReadersA)( hcontext, mszGroups, - (LPTSTR)&pmszReaders->ac, &cchReaders ); + return (mySCardListReadersA)(hcontext, mszGroups, + (LPTSTR)&pmszReaders->ac, &cchReaders); #endif //AUTOALLOCATE // no autoallocate on pcsc-lite; do a first call to get length @@ -604,31 +609,31 @@ pmszReaders->ac=NULL; cchReaders=0; - lRetCode = (mySCardListReadersA)( hcontext, mszGroups, NULL, - &cchReaders ); + lRetCode = (mySCardListReadersA)(hcontext, mszGroups, NULL, + &cchReaders); - if ( SCARD_S_SUCCESS!=lRetCode ) + if (SCARD_S_SUCCESS!=lRetCode) { return lRetCode; } - if( 0==cchReaders ) + if (0==cchReaders) { return SCARD_S_SUCCESS; } - pmszReaders->ac=mem_Malloc( cchReaders*sizeof( char ) ); - if ( NULL==pmszReaders->ac ) + pmszReaders->ac=mem_Malloc(cchReaders*sizeof(char)); + if (NULL==pmszReaders->ac) { return SCARD_E_NO_MEMORY; } - return (mySCardListReadersA)( hcontext, mszGroups, (LPTSTR)pmszReaders->ac, &cchReaders ); + return (mySCardListReadersA)(hcontext, mszGroups, (LPTSTR)pmszReaders->ac, &cchReaders); #endif // !NOAUTOALLOCATE } /////////////////////////////////////////////////////////////////////////////// -static SCARDRETCODE _ListReaderGroups( SCARDCONTEXT hcontext, STRINGLIST* pmszReaderGroups ) +static SCARDRETCODE _ListReaderGroups(SCARDCONTEXT hcontext, STRINGLIST* pmszReaderGroups) { DWORD cchReaderGroups; LONG lRetCode; @@ -638,8 +643,8 @@ pmszReaderGroups->ac=NULL; pmszReaderGroups->hcontext=hcontext; - return (mySCardListReaderGroupsA)( hcontext, - (LPTSTR)&pmszReaderGroups->ac, &cchReaderGroups ); + return (mySCardListReaderGroupsA)(hcontext, + (LPTSTR)&pmszReaderGroups->ac, &cchReaderGroups); #endif // NOAUTOALLOCATE // no autoallocate on pcsc-lite; do a first call to get length @@ -651,25 +656,25 @@ pmszReaderGroups->hcontext=0; cchReaderGroups = 0; pmszReaderGroups->ac=NULL; - lRetCode = (mySCardListReaderGroupsA)( hcontext, - (LPTSTR)pmszReaderGroups->ac, &cchReaderGroups ); - if ( SCARD_S_SUCCESS!=lRetCode ) + lRetCode = (mySCardListReaderGroupsA)(hcontext, + (LPTSTR)pmszReaderGroups->ac, &cchReaderGroups); + if (SCARD_S_SUCCESS!=lRetCode) { return lRetCode; } - if( 0==cchReaderGroups ) + if (0==cchReaderGroups) { return SCARD_S_SUCCESS; } - pmszReaderGroups->ac=mem_Malloc( cchReaderGroups*sizeof( char ) ); - if ( NULL==pmszReaderGroups->ac ) + pmszReaderGroups->ac=mem_Malloc(cchReaderGroups*sizeof(char)); + if (NULL==pmszReaderGroups->ac) { return SCARD_E_NO_MEMORY; } - return (mySCardListReaderGroupsA)( hcontext, (LPTSTR)pmszReaderGroups->ac, &cchReaderGroups ); + return (mySCardListReaderGroupsA)(hcontext, (LPTSTR)pmszReaderGroups->ac, &cchReaderGroups); #endif // !NOAUTOALLOCATE }; @@ -688,14 +693,14 @@ dwShareMode, dwPreferredProtocols, dwInitialization, - pdwActiveProtocol ); + pdwActiveProtocol); } /////////////////////////////////////////////////////////////////////////////// -static SCARDRETCODE _ReleaseContext( SCARDCONTEXT hcontext ) +static SCARDRETCODE _ReleaseContext(SCARDCONTEXT hcontext) { SCARDRETCODE lRet; - lRet = (mySCardReleaseContext)( hcontext ); + lRet = (mySCardReleaseContext)(hcontext); return lRet; } @@ -715,7 +720,7 @@ for(;;) { pbl->ab = (unsigned char*)mem_Malloc(dwAtrLen*sizeof(unsigned char)); - if( pbl->ab == NULL ) + if (pbl->ab == NULL) { lRetCode=SCARD_E_NO_MEMORY; break; @@ -723,7 +728,7 @@ pbl->cBytes = dwAtrLen; pszReaderName->sz = mem_Malloc(dwReaderLen*sizeof(char)); pszReaderName->hcontext = 0; - if( NULL == pszReaderName->sz ) + if (NULL == pszReaderName->sz) { lRetCode=SCARD_E_NO_MEMORY; break; @@ -735,7 +740,7 @@ pdwState, pdwProtocol, pbl->ab, - &pbl->cBytes ); + &pbl->cBytes); break; } @@ -782,19 +787,19 @@ pblSendBuffer->cBytes, NULL, pblRecvBuffer->ab, - &pblRecvBuffer->cBytes ); + &pblRecvBuffer->cBytes); return ret; } /////////////////////////////////////////////////////////////////////////////// -static long _SCARD_CTL_CODE( long code ) +static long _SCARD_CTL_CODE(long code) { return SCARD_CTL_CODE(code); } /////////////////////////////////////////////////////////////////////////////// -static ERRORSTRING* _GetErrorMessage( long lErrCode ) +static ERRORSTRING* _GetErrorMessage(long lErrCode) { #ifdef WIN32 #define _NO_SERVICE_MSG "The Smart card resource manager is not running." @@ -806,20 +811,20 @@ FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_MAX_WIDTH_MASK, NULL, lErrCode, - MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&ppszError, 0, - NULL ); + NULL); - if( 0L==dwRetCode ) + if (0L==dwRetCode) { ppszError=NULL; - if( SCARD_E_NO_SERVICE==lErrCode ) + if (SCARD_E_NO_SERVICE==lErrCode) { - ppszError=(LPVOID)LocalAlloc( LPTR, sizeof( _NO_SERVICE_MSG )+1 ); - if(NULL!=ppszError) + ppszError=(LPVOID)LocalAlloc(LPTR, sizeof(_NO_SERVICE_MSG)+1); + if (NULL!=ppszError) { - strncpy( ppszError, _NO_SERVICE_MSG, sizeof( _NO_SERVICE_MSG )+1 ); + strncpy(ppszError, _NO_SERVICE_MSG, sizeof(_NO_SERVICE_MSG)+1); } } } @@ -827,7 +832,7 @@ return ppszError; #endif // WIN32 #ifdef PCSCLITE - return (ERRORSTRING*)myPcscStringifyError( lErrCode ); + return (ERRORSTRING*)myPcscStringifyError(lErrCode); #endif // PCSCLITE } @@ -907,11 +912,11 @@ newgroup = 'SCard$MyOwnGroup' reader = 'SchlumbergerSema Reflex USB v.2 0' readeralias = 'SchlumbergerSema Reflex USB v.2 0 alias' - hresult = SCardIntroduceReader( hcontext, readeralias, reader] ) - if hresult!=0: + hresult = SCardIntroduceReader(hcontext, readeralias, reader]) + if hresult != SCARD_S_SUCCESS: raise error, 'Unable to introduce reader: ' + SCardGetErrorMessage(hresult) - hresult = SCardAddReaderToGroup( hcontext, readeralias, newgroup ) + hresult = SCardAddReaderToGroup(hcontext, readeralias, newgroup) if hresult!=0: raise error, 'Unable to add reader to group: ' + SCardGetErrorMessage(hresult) @@ -922,11 +927,11 @@ %rename(SCardAddReaderToGroup) _AddReaderToGroup( SCARDCONTEXT hcontext, char* szReaderName, - char* szGroupName ); + char* szGroupName); SCARDRETCODE _AddReaderToGroup( SCARDCONTEXT hcontext, char* szReaderName, - char* szGroupName ); + char* szGroupName); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_FORGETCARDTYPE @@ -937,16 +942,16 @@ from smartcard.scard import * ... establish context ... -hresult = SCardForgetCardType( hcontext, 'myCardName' ) -if hresult!=SCARD_S_SUCCESS: +hresult = SCardForgetCardType(hcontext, 'myCardName') +if hresult != SCARD_S_SUCCESS: raise error, 'Failed to remove card type: ' + SCardGetErrorMessage(hresult) ... " %enddef %feature("docstring") DOCSTRING_FORGETCARDTYPE; -%rename(SCardForgetCardType) _ForgetCardType( SCARDCONTEXT hcontext, char* szCardName ); -SCARDRETCODE _ForgetCardType( SCARDCONTEXT hcontext, char* szCardName ); +%rename(SCardForgetCardType) _ForgetCardType(SCARDCONTEXT hcontext, char* szCardName); +SCARDRETCODE _ForgetCardType(SCARDCONTEXT hcontext, char* szCardName); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_FORGETREADER @@ -959,15 +964,15 @@ from smartcard.scard import * ... establish context ... ... -hresult = SCardForgetReader( hcontext, dummyreader ) -if hresult!=0: +hresult = SCardForgetReader(hcontext, dummyreader) +if hresult != SCARD_S_SUCCESS: raise error, 'Failed to forget readers ' + SCardGetErrorMessage(hresult) ... " %enddef %feature("docstring") DOCSTRING_FORGETREADER; -%rename(SCardForgetReader) _ForgetReader( SCARDCONTEXT hcontext, char* szReaderName ); -SCARDRETCODE _ForgetReader( SCARDCONTEXT hcontext, char* szReaderName ); +%rename(SCardForgetReader) _ForgetReader(SCARDCONTEXT hcontext, char* szReaderName); +SCARDRETCODE _ForgetReader(SCARDCONTEXT hcontext, char* szReaderName); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_FORGETREADERGROUP @@ -982,35 +987,35 @@ from smartcard.scard import * ... establish context ... ... -hresult = SCardForgetReaderGroup( hcontext, newgroup ) -if hresult!=0: +hresult = SCardForgetReaderGroup(hcontext, newgroup) +if hresult != SCARD_S_SUCCESS: raise error, 'Unable to forget reader group: ' + SCardGetErrorMessage(hresult) ... " %enddef %feature("docstring") DOCSTRING_FORGETREADERGROUP; -%rename(SCardForgetReaderGroup) _ForgetReaderGroup( SCARDCONTEXT hcontext, char* szGroupName ); -SCARDRETCODE _ForgetReaderGroup( SCARDCONTEXT hcontext, char* szGroupName ); +%rename(SCardForgetReaderGroup) _ForgetReaderGroup(SCARDCONTEXT hcontext, char* szGroupName); +SCARDRETCODE _ForgetReaderGroup(SCARDCONTEXT hcontext, char* szGroupName); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_GETCARDTYPEPROVIDERNAME " -Returns the name of the module (dynamic link library) containing the provider for a -given card name and provider type. +Returns the name of the module (dynamic link library) containing the +provider for a given card name and provider type. Windows only, not supported by PCSC lite wrapper. from smartcard.scard import * ... establish context ... -hresult, cards = SCardListCards( hcontext, [], [] ) -if hresult!=SCARD_S_SUCCESS: +hresult, cards = SCardListCards(hcontext, [], []) +if hresult != SCARD_S_SUCCESS: raise error, 'Failure to list cards: ' + SCardGetErrorMessage(hresult) for i in cards: - hresult, providername = SCardGetCardTypeProviderName( hcontext, i, SCARD_PROVIDER_PRIMARY ) - if hresult==0: + hresult, providername = SCardGetCardTypeProviderName(hcontext, i, SCARD_PROVIDER_PRIMARY) + if hresult == SCARD_S_SUCCESS: print providername - hresult, providername = SCardGetCardTypeProviderName( hcontext, i, SCARD_PROVIDER_CSP ) - if hresult==0: + hresult, providername = SCardGetCardTypeProviderName(hcontext, i, SCARD_PROVIDER_CSP) + if hresult == SCARD_S_SUCCESS: print providername ... " @@ -1041,15 +1046,15 @@ ... znewcardName = 'dummy-card' znewcardATR = [0x3B, 0x77, 0x94, 0x00, 0x00, 0x82, 0x30, 0x00, 0x13, 0x6C, 0x9F, 0x22] -znewcardMask= [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] +znewcardMask = [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] znewcardPrimGuid = smartcard.guid.strToGUID('{128F3806-4F70-4ccf-977A-60C390664840}') znewcardSecGuid = smartcard.guid.strToGUID('{EB7F69EA-BA20-47d0-8C50-11CFDEB63BBE}') ... - hresult = SCardIntroduceCardType( hcontext, znewcardName, znewcardPrimGuid, - znewcardPrimGuid + znewcardSecGuid, znewcardATR, znewcardMask ) - if hresult!=0: - raise error, 'Failed to introduce card type: ' + SCardGetErrorMessage(hresult) -if hresult!=SCARD_S_SUCCESS: +hresult = SCardIntroduceCardType(hcontext, znewcardName, + znewcardPrimGuid, znewcardPrimGuid + znewcardSecGuid, + znewcardATR, znewcardMask) + +if hresult != SCARD_S_SUCCESS: raise error, 'Failed to introduce card type: ' + SCardGetErrorMessage(hresult) ... " @@ -1082,15 +1087,15 @@ from smartcard.scard import * ... dummyreader = readers[0] + ' dummy' -hresult = SCardIntroduceReader( hcontext, dummyreader, readers[0] ) -if hresult!=0: +hresult = SCardIntroduceReader(hcontext, dummyreader, readers[0]) +if hresult != SCARD_S_SUCCESS: raise error, 'Unable to introduce reader: ' + dummyreader + ' : ' + SCardGetErrorMessage(hresult) ... " %enddef %feature("docstring") DOCSTRING_INTRODUCEREADER; -%rename(SCardIntroduceReader) _IntroduceReader( SCARDCONTEXT hcontext, char* szReaderName, char* szDeviceName ); -SCARDRETCODE _IntroduceReader( SCARDCONTEXT hcontext, char* szReaderName, char* szDeviceName ); +%rename(SCardIntroduceReader) _IntroduceReader(SCARDCONTEXT hcontext, char* szReaderName, char* szDeviceName); +SCARDRETCODE _IntroduceReader(SCARDCONTEXT hcontext, char* szReaderName, char* szDeviceName); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_INTRODUCEREADERGROUP @@ -1102,18 +1107,18 @@ Windows only, not supported by PCSC lite wrapper. from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) -hresult = SCardIntroduceReaderGroup( hcontext, 'SCard$MyOwnGroup' ) -if hresult!=SCARD_S_SUCCESS: +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) +hresult = SCardIntroduceReaderGroup(hcontext, 'SCard$MyOwnGroup') +if hresult != SCARD_S_SUCCESS: raise error, 'Unable to introduce reader group: ' + SCardGetErrorMessage(hresult) -hresult = SCardAddReaderToGroup( hcontext, 'SchlumbergerSema Reflex USB v.2 0', 'SCard$MyOwnGroup' ) -if hresult!=SCARD_S_SUCCESS: +hresult = SCardAddReaderToGroup(hcontext, 'SchlumbergerSema Reflex USB v.2 0', 'SCard$MyOwnGroup') +if hresult != SCARD_S_SUCCESS: raise error, 'Unable to add reader to group: ' + SCardGetErrorMessage(hresult) " %enddef %feature("docstring") DOCSTRING_INTRODUCEREADERGROUP; -%rename(SCardIntroduceReaderGroup) _IntroduceReaderGroup( SCARDCONTEXT hcontext, char* szGroupName ); -SCARDRETCODE _IntroduceReaderGroup( SCARDCONTEXT hcontext, char* szGroupName ); +%rename(SCardIntroduceReaderGroup) _IntroduceReaderGroup(SCARDCONTEXT hcontext, char* szGroupName); +SCARDRETCODE _IntroduceReaderGroup(SCARDCONTEXT hcontext, char* szGroupName); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_LISTINTERFACES @@ -1125,16 +1130,16 @@ Windows only, not supported by PCSC lite wrapper. from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) -hresult, interfaces = SCardListInterfaces( hcontext, 'Schlumberger Cryptoflex 8k v2' ) -if hresult!=SCARD_S_SUCCESS: +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) +hresult, interfaces = SCardListInterfaces(hcontext, 'Schlumberger Cryptoflex 8k v2') +if hresult != SCARD_S_SUCCESS: raise error, 'Failed to list interfaces: ' + SCardGetErrorMessage(hresult) ... " %enddef %feature("docstring") DOCSTRING_LISTINTERFACES; -%rename(SCardListInterfaces) _ListInterfaces( SCARDCONTEXT hcontext, char* szCardName, GUIDLIST* GUIDINTERFACES ); -SCARDRETCODE _ListInterfaces( SCARDCONTEXT hcontext, char* szCardName, GUIDLIST* GUIDINTERFACES ); +%rename(SCardListInterfaces) _ListInterfaces(SCARDCONTEXT hcontext, char* szCardName, GUIDLIST* GUIDINTERFACES); +SCARDRETCODE _ListInterfaces(SCARDCONTEXT hcontext, char* szCardName, GUIDLIST* GUIDINTERFACES); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_LISTCARDS @@ -1150,11 +1155,11 @@ from smartcard.scard import * ... slbCryptoFlex8kv2ATR = [ 0x3B, 0x95, 0x15, 0x40, 0x00, 0x68, 0x01, 0x02, 0x00, 0x00 ] -hresult, card = SCardListCards( hcontext, slbCryptoFlex8kv2ATR, [] ) -if hresult!=SCARD_S_SUCCESS: +hresult, card = SCardListCards(hcontext, slbCryptoFlex8kv2ATR, []) +if hresult ! =SCARD_S_SUCCESS: raise error, 'Failure to locate Schlumberger Cryptoflex 8k v2 card: ' + SCardGetErrorMessage(hresult) -hresult, cards = SCardListCards( hcontext, [], [] ) -if hresult!=SCARD_S_SUCCESS: +hresult, cards = SCardListCards(hcontext, [], []) +if hresult != SCARD_S_SUCCESS: raise error, 'Failure to list cards: ' + SCardGetErrorMessage(hresult) print 'Cards: ', cards ... @@ -1165,12 +1170,12 @@ SCARDCONTEXT hcontext, BYTELIST* ATR, GUIDLIST* PROVIDERLIST, - STRINGLIST* MATCHINGCARDS ); + STRINGLIST* MATCHINGCARDS); SCARDRETCODE _ListCards( SCARDCONTEXT hcontext, BYTELIST* ATR, GUIDLIST* PROVIDERLIST, - STRINGLIST* MATCHINGCARDS ); + STRINGLIST* MATCHINGCARDS); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_LOCATECARDS @@ -1182,13 +1187,13 @@ Windows only, not supported by PCSC lite wrapper. from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) -hresult, readers = SCardListReaders( hcontext, [] ) +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) +hresult, readers = SCardListReaders(hcontext, []) readerstates = [] -cards = [ 'Schlumberger Cryptoflex 4k', 'Schlumberger Cryptoflex 8k', 'Schlumberger Cryptoflex 8k v2' ] +cards = ['Schlumberger Cryptoflex 4k', 'Schlumberger Cryptoflex 8k', 'Schlumberger Cryptoflex 8k v2'] for i in xrange(len(readers)): - readerstates += [ (readers[i], SCARD_STATE_UNAWARE ) ] -hresult, newstates = SCardLocateCards( hcontext, cards, readerstates ) + readerstates += [(readers[i], SCARD_STATE_UNAWARE)] +hresult, newstates = SCardLocateCards(hcontext, cards, readerstates) for i in newstates: reader, eventstate, atr = i print reader, @@ -1208,11 +1213,11 @@ %rename(SCardLocateCards) _LocateCards( SCARDCONTEXT hcontext, STRINGLIST* CARDSTOLOCATE, - READERSTATELIST *prsl ); + READERSTATELIST *prsl); SCARDRETCODE _LocateCards( SCARDCONTEXT hcontext, STRINGLIST* CARDSTOLOCATE, - READERSTATELIST *prsl ); + READERSTATELIST *prsl); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_REMOVEREADERFROMGROUP @@ -1224,9 +1229,9 @@ Windows only, not supported by PCSC lite wrapper. from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) -hresult = SCardRemoveReaderFromGroup( hcontext, 'SchlumbergerSema Reflex USB v.2 0', 'SCard$MyOwnGroup' ) -if hresult!=SCARD_S_SUCCESS: +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) +hresult = SCardRemoveReaderFromGroup(hcontext, 'SchlumbergerSema Reflex USB v.2 0', 'SCard$MyOwnGroup') +if hresult != SCARD_S_SUCCESS: raise error, 'Unable to remove reader from group: ' + SCardGetErrorMessage(hresult) ... " @@ -1235,11 +1240,11 @@ %rename(SCardRemoveReaderFromGroup) _RemoveReaderFromGroup( SCARDCONTEXT hcontext, char* szReaderName, - char* szGroupName ); + char* szGroupName); SCARDRETCODE _RemoveReaderFromGroup( SCARDCONTEXT hcontext, char* szReaderName, - char* szGroupName ); + char* szGroupName); #endif // WIN32 @@ -1259,16 +1264,16 @@ service has been shut down. from smartcard.scard import * - hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) - hresult = SCardIsValidContext( hcontext ) - if hresult!=SCARD_S_SUCCESS: + hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) + hresult = SCardIsValidContext(hcontext) + if hresult != SCARD_S_SUCCESS: raise error, 'Invalid context: ' + SCardGetErrorMessage(hresult) ... " %enddef %feature("docstring") DOCSTRING_ISVALIDCONTEXT; - %rename(SCardIsValidContext) _IsValidContext( SCARDCONTEXT hcontext ); - SCARDRETCODE _IsValidContext( SCARDCONTEXT hcontext ); + %rename(SCardIsValidContext) _IsValidContext(SCARDCONTEXT hcontext); + SCARDRETCODE _IsValidContext(SCARDCONTEXT hcontext); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_GETATTRIB @@ -1375,23 +1380,24 @@ from smartcard.scard import * ... establish context and connect to card ... - hresult, attrib = SCardGetAttrib( hcard, SCARD_ATTR_ATR_STRING ) - if hresult==SCARD_S_SUCCESS: + hresult, attrib = SCardGetAttrib(hcard, SCARD_ATTR_ATR_STRING) + if hresult == SCARD_S_SUCCESS: for j in attrib: print '0x%.2X' % attrib, ... " %enddef %feature("docstring") DOCSTRING_GETATTRIB; - %rename(SCardGetAttrib) _GetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTES ); - SCARDRETCODE _GetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTES ); + %rename(SCardGetAttrib) _GetAttrib(SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTES); + SCARDRETCODE _GetAttrib(SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTES); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_SETATTRIB " - This function sets an attribute from the IFD Handler. Not all attributes are supported by all readers nor can - they be set at all times. + This function sets an attribute from the IFD Handler. Not all + attributes are supported by all readers nor can they be set at all + times. For PCSC lite, the list of possible attributes is: @@ -1492,15 +1498,15 @@ from smartcard.scard import * ... establish context and connect to card ... - hresult, attrib = SCardSetAttrib( hcard, SCARD_ATTR_VENDOR_NAME, ['G', 'e', 'm', 'a', 'l', 't', 'o'] ) - if hresult!=SCARD_S_SUCCESS: + hresult, attrib = SCardSetAttrib(hcard, SCARD_ATTR_VENDOR_NAME, ['G', 'e', 'm', 'a', 'l', 't', 'o']) + if hresult != SCARD_S_SUCCESS: print 'Failed to set attribute' ... " %enddef %feature("docstring") DOCSTRING_SETATTRIB; - %rename(SCardSetAttrib) _SetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTESIN ); - SCARDRETCODE _SetAttrib( SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTESIN ); + %rename(SCardSetAttrib) _SetAttrib(SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTESIN); + SCARDRETCODE _SetAttrib(SCARDHANDLE hcard, SCARDDWORDARG dwAttrId, BYTELIST* ATTRIBUTESIN); #endif // !__TIGER__ @@ -1512,16 +1518,16 @@ /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_CONTROL " - This function sends a control command to the reader connected to by SCardConnect(). - It returns a result and the control response. + This function sends a control command to the reader connected to by + SCardConnect(). It returns a result and the control response. from smartcard.scard import * - hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) + hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) hresult, hcard, dwActiveProtocol = SCardConnect( - hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 ) + hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0) CMD = [ 42, 0x12, 0x34] - hresult, response = SCardControl( hcard, CMD ) - if hresult!=SCARD_S_SUCCESS: + hresult, response = SCardControl(hcard, CMD) + if hresult != SCARD_S_SUCCESS: raise error, 'Failed to control: ' + SCardGetErrorMessage(hresult) " %enddef @@ -1530,27 +1536,27 @@ SCARDHANDLE hcard, BYTELIST* INBUFFER, BYTELIST* OUTBUFFER - ); + ); SCARDRETCODE _Control( SCARDHANDLE hcard, BYTELIST* INBUFFER, BYTELIST* OUTBUFFER - ); + ); #else // !__TIGER__ /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_CONTROL " - This function sends a control command to the reader connected to by SCardConnect(). - It returns a result and the control response. + This function sends a control command to the reader connected to by + SCardConnect(). It returns a result and the control response. from smartcard.scard import * - hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) + hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) hresult, hcard, dwActiveProtocol = SCardConnect( - hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 ) + hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0) CMD = [0x12, 0x34] - hresult, response = SCardControl( hcard, 42, CMD ) - if hresult!=SCARD_S_SUCCESS: + hresult, response = SCardControl(hcard, 42, CMD) + if hresult != SCARD_S_SUCCESS: raise error, 'Failed to control: ' + SCardGetErrorMessage(hresult) " %enddef @@ -1560,13 +1566,13 @@ SCARDDWORDARG dwControlCode, BYTELIST* INBUFFER, BYTELIST* OUTBUFFER - ); + ); SCARDRETCODE _Control( SCARDHANDLE hcard, SCARDDWORDARG dwControlCode, BYTELIST* INBUFFER, BYTELIST* OUTBUFFER - ); + ); #endif // __TIGER__ @@ -1583,34 +1589,35 @@ from smartcard.scard import * ... establish context ... hresult, hcard, dwActiveProtocol = SCardConnect( - hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 ) + hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0) if hresult!=SCARD_S_SUCCESS: raise error, 'unable to connect: ' + SCardGetErrorMessage(hresult) -hresult = SCardBeginTransaction( hcard ) -if hresult!=SCARD_S_SUCCESS: +hresult = SCardBeginTransaction(hcard) +if hresult != SCARD_S_SUCCESS: raise error, 'failed to begin transaction: ' + SCardGetErrorMessage(hresult) ... " %enddef %feature("docstring") DOCSTRING_BEGINTRANSACTION; -%rename(SCardBeginTransaction) _BeginTransaction( SCARDHANDLE hcard ); -SCARDRETCODE _BeginTransaction( SCARDHANDLE hcard ); +%rename(SCardBeginTransaction) _BeginTransaction(SCARDHANDLE hcard); +SCARDRETCODE _BeginTransaction(SCARDHANDLE hcard); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_CANCEL " -This function cancels all pending blocking requests on the ScardGetStatusChange() function. +This function cancels all pending blocking requests on the +ScardGetStatusChange() function. from smartcard.scard import * ... establish context ... -hresult = SCardCancel( hcard ) -if hresult!=SCARD_S_SUCCESS: +hresult = SCardCancel(hcard) +if hresult != SCARD_S_SUCCESS: raise error, 'failed to cancel pending actions: ' + SCardGetErrorMessage(hresult) ..." %enddef %feature("docstring") DOCSTRING_CANCEL; -%rename(SCardCancel) _Cancel( SCARDCONTEXT hcontext ); -SCARDRETCODE _Cancel( SCARDCONTEXT hcontext ); +%rename(SCardCancel) _Cancel(SCARDCONTEXT hcontext); +SCARDRETCODE _Cancel(SCARDCONTEXT hcontext); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_CONNECT @@ -1634,12 +1641,12 @@ from smartcard.scard import * ... establish context ... -hresult, readers = SCardListReaders( hcontext, 'NULL' ) -if hresult!=SCARD_S_SUCCESS: +hresult, readers = SCardListReaders(hcontext, 'NULL') +if hresult != SCARD_S_SUCCESS: raise error, 'Failed to list readers:: ' + SCardGetErrorMessage(hresult) hresult, hcard, dwActiveProtocol = SCardConnect( - hcontext, readers[0], SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 ) -if hresult!=SCARD_S_SUCCESS: + hcontext, readers[0], SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0) +if hresult != SCARD_S_SUCCESS: raise error, 'unable to connect: ' + SCardGetErrorMessage(hresult) ... " @@ -1676,15 +1683,15 @@ from smartcard.scard import * ... establish context and connect to card ... -hresult = SCardDisconnect( hcard, SCARD_UNPOWER_CARD ) -if hresult!=SCARD_S_SUCCESS: +hresult = SCardDisconnect(hcard, SCARD_UNPOWER_CARD) +if hresult != SCARD_S_SUCCESS: raise error, 'failed to disconnect: ' + SCardGetErrorMessage(hresult) ... " %enddef %feature("docstring") DOCSTRING_DISCONNECT; -%rename(SCardDisconnect) _Disconnect( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ); -SCARDRETCODE _Disconnect( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ); +%rename(SCardDisconnect) _Disconnect(SCARDHANDLE hcard, SCARDDWORDARG dwDisposition); +SCARDRETCODE _Disconnect(SCARDHANDLE hcard, SCARDDWORDARG dwDisposition); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_ENDTRANSACTION @@ -1703,14 +1710,14 @@ from smartcard.scard import * ... establish context, connect to card, begin transaction ... -hresult = SCardEndTransaction( hcard, SCARD_LEAVE_CARD ) -if hresult!=SCARD_S_SUCCESS: +hresult = SCardEndTransaction(hcard, SCARD_LEAVE_CARD) +if hresult != SCARD_S_SUCCESS: raise error, 'failed to end transaction: ' + SCardGetErrorMessage(hresult) " %enddef %feature("docstring") DOCSTRING_ENDTRANSACTION; -%rename(SCardEndTransaction) _EndTransaction( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ); -SCARDRETCODE _EndTransaction( SCARDHANDLE hcard, SCARDDWORDARG dwDisposition ); +%rename(SCardEndTransaction) _EndTransaction(SCARDHANDLE hcard, SCARDDWORDARG dwDisposition); +SCARDRETCODE _EndTransaction(SCARDHANDLE hcard, SCARDDWORDARG dwDisposition); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_ESTABLISHCONTEXT @@ -1726,14 +1733,14 @@ from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) -if hresult!=SCARD_S_SUCCESS: +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) +if hresult != SCARD_S_SUCCESS: raise error, 'Failed to establish context: ' + SCardGetErrorMessage(hresult) " %enddef %feature("docstring") DOCSTRING_ESTABLISHCONTEXT; -%rename(SCardEstablishContext) _EstablishContext( SCARDDWORDARG dwScope, SCARDCONTEXT* phcontext ); -SCARDRETCODE _EstablishContext( SCARDDWORDARG dwScope, SCARDCONTEXT* phcontext ); +%rename(SCardEstablishContext) _EstablishContext(SCARDDWORDARG dwScope, SCARDCONTEXT* phcontext); +SCARDRETCODE _EstablishContext(SCARDDWORDARG dwScope, SCARDCONTEXT* phcontext); /////////////////////////////////////////////////////////////////////////////// @@ -1741,7 +1748,7 @@ " This function receives a structure or list of tuples containing reader -states. A READERSTATE hast three fields ( readername, state, atr ). +states. A READERSTATE hast three fields (readername, state, atr). It then blocks for a change in state to occur on any of the OR'd values contained in the current state for a maximum blocking time of dwTimeout or forever if INFINITE is used. The new event state will be @@ -1763,15 +1770,15 @@ from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) -hresult, readers = SCardListReaders( hcontext, [] ) +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) +hresult, readers = SCardListReaders(hcontext, []) readerstates = [] cards = [ 'Schlumberger Cryptoflex 4k', 'Schlumberger Cryptoflex 8k', 'Schlumberger Cryptoflex 8k v2' ] for i in xrange(len(readers)): - readerstates += [ (readers[i], SCARD_STATE_UNAWARE ) ] -hresult, newstates = SCardLocateCards( hcontext, cards, readerstates ) + readerstates += [ (readers[i], SCARD_STATE_UNAWARE) ] +hresult, newstates = SCardLocateCards(hcontext, cards, readerstates) print '----- Please insert or remove a card ------------' -hresult, newstates = SCardGetStatusChange( hcontext, INFINITE, newstates ) +hresult, newstates = SCardGetStatusChange(hcontext, INFINITE, newstates) for i in newstates reader, eventstate, atr = i if eventstate & SCARD_STATE_ATRMATCH: @@ -1794,15 +1801,16 @@ %define DOCSTRING_LISTREADERS " This function returns a list of currently available readers on the system. -A list of group can be provided in input to list readers in a given group only. +A list of group can be provided in input to list readers in a given +group only. from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) -hresult, readers = SCardListReaders( hcontext, [] ) -if hresult!=SCARD_S_SUCCESS: +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) +hresult, readers = SCardListReaders(hcontext, []) +if hresult != SCARD_S_SUCCESS: raise error, 'Failed to list readers: ' + SCardGetErrorMessage(hresult) print 'PCSC Readers: ', readers -hresult, readers = SCardListReaders( hcontext, ['SCard$T1ProtocolReaders', 'SCard$MyOwnGroup'] +hresult, readers = SCardListReaders(hcontext, ['SCard$T1ProtocolReaders', 'SCard$MyOwnGroup'] ... " %enddef @@ -1810,29 +1818,30 @@ %rename(SCardListReaders) _ListReaders( SCARDCONTEXT hcontext, STRINGLIST* READERGROUPSIN, - STRINGLIST* READERSFOUND ); + STRINGLIST* READERSFOUND); SCARDRETCODE _ListReaders( SCARDCONTEXT hcontext, STRINGLIST* READERGROUPSIN, - STRINGLIST* READERSFOUND ); + STRINGLIST* READERSFOUND); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_LISTREADERGROUPS " -This function returns a list of currently available reader groups on the system. +This function returns a list of currently available reader groups on the +system. from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) -hresult, readerGroups = SCardListReaderGroups( hcontext ) -if hresult!=SCARD_S_SUCCESS: +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) +hresult, readerGroups = SCardListReaderGroups(hcontext) +if hresult != SCARD_S_SUCCESS: raise error, 'Unable to list reader groups: ' + SCardGetErrorMessage(hresult) print 'PCSC Reader groups: ', readerGroups " %enddef %feature("docstring") DOCSTRING_LISTREADERGROUPS; -%rename(SCardListReaderGroups) _ListReaderGroups( SCARDCONTEXT hcontext, STRINGLIST* READERGROUPSOUT ); -SCARDRETCODE _ListReaderGroups( SCARDCONTEXT hcontext, STRINGLIST* READERGROUPSOUT ); +%rename(SCardListReaderGroups) _ListReaderGroups(SCARDCONTEXT hcontext, STRINGLIST* READERGROUPSOUT); +SCARDRETCODE _ListReaderGroups(SCARDCONTEXT hcontext, STRINGLIST* READERGROUPSOUT); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_RECONNECT @@ -1865,11 +1874,11 @@ from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) hresult, hcard, dwActiveProtocol = SCardConnect( - hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 ) -hresult, activeProtocol = SCardReconnect( hcard, SCARD_SHARE_EXCLUSIVE, - SCARD_PROTOCOL_T0, SCARD_RESET_CARD ) + hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0) +hresult, activeProtocol = SCardReconnect(hcard, SCARD_SHARE_EXCLUSIVE, + SCARD_PROTOCOL_T0, SCARD_RESET_CARD) ... " %enddef @@ -1895,8 +1904,8 @@ " %enddef %feature("docstring") DOCSTRING_RELEASECONTEXT; -%rename(SCardReleaseContext) _ReleaseContext( SCARDCONTEXT hcontext ); -SCARDRETCODE _ReleaseContext( SCARDCONTEXT hcontext ); +%rename(SCardReleaseContext) _ReleaseContext(SCARDCONTEXT hcontext); +SCARDRETCODE _ReleaseContext(SCARDCONTEXT hcontext); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_STATUS @@ -1920,11 +1929,11 @@ from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) hresult, hcard, dwActiveProtocol = SCardConnect( - hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 ) -hresult, reader, state, protocol, atr = SCardStatus( hcard ) -if hresult!=SCARD_S_SUCCESS: + hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0) +hresult, reader, state, protocol, atr = SCardStatus(hcard) +if hresult != SCARD_S_SUCCESS: raise error, 'failed to get status: ' + SCardGetErrorMessage(hresult) print 'Reader: ', reader print 'State: ', state @@ -1955,7 +1964,8 @@ /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_TRANSMIT " -This function sends an APDU to the smart card contained in the reader connected to by SCardConnect(). +This function sends an APDU to the smart card contained in the reader +connected to by SCardConnect(). It returns a result and the card APDU response. Value of pioSendPci Meaning @@ -1964,13 +1974,13 @@ from smartcard.scard import * -hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) +hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) hresult, hcard, dwActiveProtocol = SCardConnect( - hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 ) + hcontext, 'SchlumbergerSema Reflex USB v.2 0', SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0) SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02] DF_TELECOM = [0x7F, 0x10] -hresult, response = SCardTransmit( hcard, SCARD_PCI_T0, SELECT + DF_TELECOM ) -if hresult!=SCARD_S_SUCCESS: +hresult, response = SCardTransmit(hcard, SCARD_PCI_T0, SELECT + DF_TELECOM) +if hresult != SCARD_S_SUCCESS: raise error, 'Failed to transmit: ' + SCardGetErrorMessage(hresult) " %enddef @@ -2000,8 +2010,8 @@ " %enddef %feature("docstring") DOCSTRING_SCARD_CTL_CODE; -%rename(SCARD_CTL_CODE) _SCARD_CTL_CODE( long code ); -long _SCARD_CTL_CODE( long code ); +%rename(SCARD_CTL_CODE) _SCARD_CTL_CODE(long code); +long _SCARD_CTL_CODE(long code); /////////////////////////////////////////////////////////////////////////////// %define DOCSTRING_GETERRORMESSAGE @@ -2010,15 +2020,15 @@ from smartcard.scard import * ... -hresult, response = SCardTransmit( hcard, SCARD_PCI_T0, SELECT + DF_TELECOM ) -if hresult!=SCARD_S_SUCCESS: +hresult, response = SCardTransmit(hcard, SCARD_PCI_T0, SELECT + DF_TELECOM) +if hresult != SCARD_S_SUCCESS: raise error, 'Failed to transmit: ' + SCardGetErrorMessage(hresult) ... " %enddef %feature("docstring") DOCSTRING_GETERRORMESSAGE; -%rename(SCardGetErrorMessage) _GetErrorMessage( long lErrCode ); -ERRORSTRING* _GetErrorMessage( long lErrCode ); +%rename(SCardGetErrorMessage) _GetErrorMessage(long lErrCode); +ERRORSTRING* _GetErrorMessage(long lErrCode); %inline @@ -2055,15 +2065,15 @@ #ifdef PCSCLITEyy %pythoncode %{ -def SCardListCards( hcontext, atr, guidlist ): - return ( SCARD_S_SUCCESS, [] ) +def SCardListCards(hcontext, atr, guidlist): + return (SCARD_S_SUCCESS, []) -def SCardLocateCards( hcontext, cardnames, readerstates ): +def SCardLocateCards(hcontext, cardnames, readerstates): newreaderstates=[] for state in readerstates: - newreaderstates.append( (state[0], state[1], [] ) ) + newreaderstates.append((state[0], state[1], [])) - return ( SCARD_S_SUCCESS, newreaderstates ) + return (SCARD_S_SUCCESS, newreaderstates) %} #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2011-10-22 17:35:06
|
Revision: 581 http://pyscard.svn.sourceforge.net/pyscard/?rev=581&view=rev Author: jdaussel Date: 2011-10-22 17:35:00 +0000 (Sat, 22 Oct 2011) Log Message: ----------- Reverted to MAX_BUFFER_SIZE_EXTENDED Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2011-10-22 17:22:52 UTC (rev 580) +++ trunk/pyscard/src/smartcard/scard/scard.i 2011-10-22 17:35:00 UTC (rev 581) @@ -430,8 +430,8 @@ { SCARDRETCODE lRet; - pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*2*sizeof(unsigned char)); - pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED+2; + pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); + pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; lRet = (mySCardControl)( hcard, @@ -452,8 +452,8 @@ { SCARDRETCODE lRet; - pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*2*sizeof(unsigned char)); - pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED+2; + pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); + pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; lRet = (mySCardControl)( hcard, @@ -758,8 +758,8 @@ PSCARD_IO_REQUEST piorequest=NULL; long ret; - pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*2*sizeof(unsigned char)); - pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED+2; + pblRecvBuffer->ab = (unsigned char*)mem_Malloc(MAX_BUFFER_SIZE_EXTENDED*sizeof(unsigned char)); + pblRecvBuffer->cBytes = MAX_BUFFER_SIZE_EXTENDED; // keep in sync with redefinition in PcscDefs.i switch(pioSendPci) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2011-10-22 18:21:31
|
Revision: 582 http://pyscard.svn.sourceforge.net/pyscard/?rev=582&view=rev Author: ludov Date: 2011-10-22 18:21:25 +0000 (Sat, 22 Oct 2011) Log Message: ----------- Update MAX_BUFFER_SIZE_EXTENDED For PCSCLITE add 2 bytes for SW For Windows add 10 bytes for header, Lc and Le Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2011-10-22 17:35:00 UTC (rev 581) +++ trunk/pyscard/src/smartcard/scard/scard.i 2011-10-22 18:21:25 UTC (rev 582) @@ -185,12 +185,12 @@ #endif // undefined on older releases #ifndef MAX_BUFFER_SIZE_EXTENDED - #define MAX_BUFFER_SIZE_EXTENDED (4 + 3 + (1<<16) + 3) + #define MAX_BUFFER_SIZE_EXTENDED (4 + 3 + (1<<16) + 3 + 2) #endif #else // !PCSCLITE // SCARD_CTL_CODE defined in WinSmCrd.h included by Win32 winscard.h // MAX_BUFFER_SIZE_EXTENDED is pcsc-lite specific -#define MAX_BUFFER_SIZE_EXTENDED (1<<16)+2 +#define MAX_BUFFER_SIZE_EXTENDED (4 + 3 + (1<<16) + 3 + 2) #endif //PCSCLITE #include "pcsctypes.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |