You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(10) |
Feb
(10) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(17) |
Sep
(9) |
Oct
(10) |
Nov
(2) |
Dec
(5) |
2009 |
Jan
(17) |
Feb
(8) |
Mar
(10) |
Apr
(1) |
May
|
Jun
(11) |
Jul
(18) |
Aug
|
Sep
|
Oct
(10) |
Nov
(40) |
Dec
(4) |
2010 |
Jan
(2) |
Feb
(5) |
Mar
(13) |
Apr
(14) |
May
(27) |
Jun
(86) |
Jul
(1) |
Aug
(12) |
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(5) |
2011 |
Jan
|
Feb
(2) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
(11) |
Aug
(1) |
Sep
(3) |
Oct
(65) |
Nov
|
Dec
(1) |
2012 |
Jan
(1) |
Feb
(4) |
Mar
(6) |
Apr
(6) |
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
(12) |
Oct
(3) |
Nov
(1) |
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
(1) |
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(4) |
Oct
(1) |
Nov
(24) |
Dec
(10) |
2015 |
Jan
(1) |
Feb
(10) |
Mar
|
Apr
|
May
(1) |
Jun
(15) |
Jul
(4) |
Aug
(2) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: <lu...@us...> - 2009-01-27 09:04:41
|
Revision: 262 http://pyscard.svn.sourceforge.net/pyscard/?rev=262&view=rev Author: ludov Date: 2009-01-27 09:04:39 +0000 (Tue, 27 Jan 2009) Log Message: ----------- define INFINITE as the biggest _signed_ 32-bits integer (0xFFFFFFFF instead of 0x7FFFFFFF) avoids the error: OverflowError: long int too large to convert to int Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/PcscDefs.i Modified: trunk/pyscard/src/smartcard/scard/PcscDefs.i =================================================================== --- trunk/pyscard/src/smartcard/scard/PcscDefs.i 2009-01-27 09:00:44 UTC (rev 261) +++ trunk/pyscard/src/smartcard/scard/PcscDefs.i 2009-01-27 09:04:39 UTC (rev 262) @@ -330,6 +330,6 @@ #ifdef __TIGER__ %constant unsigned long INFINITE = 4320000 ; #else // !__TIGER__ -%constant unsigned long INFINITE = 0xFFFFFFFF ; +%constant unsigned long INFINITE = 0x7FFFFFFF ; #endif // __TIGER__ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-27 09:00:46
|
Revision: 261 http://pyscard.svn.sourceforge.net/pyscard/?rev=261&view=rev Author: ludov Date: 2009-01-27 09:00:44 +0000 (Tue, 27 Jan 2009) Log Message: ----------- use smartcard.util.toHexString() instead of a for loop Modified Paths: -------------- trunk/pyscard/src/smartcard/Examples/scard-api/sample_getATR.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_getAttrib.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_getStatusChange.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_selectDFTelecom.py Modified: trunk/pyscard/src/smartcard/Examples/scard-api/sample_getATR.py =================================================================== --- trunk/pyscard/src/smartcard/Examples/scard-api/sample_getATR.py 2009-01-20 13:47:48 UTC (rev 260) +++ trunk/pyscard/src/smartcard/Examples/scard-api/sample_getATR.py 2009-01-27 09:00:44 UTC (rev 261) @@ -25,6 +25,7 @@ """ from smartcard.scard import * +import smartcard.util try: hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) @@ -58,10 +59,7 @@ print 'Reader:', reader print 'State:', state print 'Protocol:', protocol - print 'ATR:', - for i in xrange(len(atr)): - print "0x%.2X" % atr[i], - print "" + print 'ATR:', smartcard.util.toHexString(atr, smartcard.util.HEX) finally: hresult = SCardDisconnect( hcard, SCARD_UNPOWER_CARD ) Modified: trunk/pyscard/src/smartcard/Examples/scard-api/sample_getAttrib.py =================================================================== --- trunk/pyscard/src/smartcard/Examples/scard-api/sample_getAttrib.py 2009-01-20 13:47:48 UTC (rev 260) +++ trunk/pyscard/src/smartcard/Examples/scard-api/sample_getAttrib.py 2009-01-27 09:00:44 UTC (rev 261) @@ -26,6 +26,7 @@ import struct from smartcard.scard import * +import smartcard.util if 'winscard'==resourceManager: attributes = { @@ -126,9 +127,7 @@ def printAttribute( attrib, value ): print '-----------------', attributes[attrib], '-----------------' print value - for j in xrange(len(value)): - print "0x%.2X" % value[j], - print "" + print smartcard.util.toHexString(value, smartcard.util.HEX) print apply( struct.pack, [ '<' + 'B' * len(value)] + value ) Modified: trunk/pyscard/src/smartcard/Examples/scard-api/sample_getStatusChange.py =================================================================== --- trunk/pyscard/src/smartcard/Examples/scard-api/sample_getStatusChange.py 2009-01-20 13:47:48 UTC (rev 260) +++ trunk/pyscard/src/smartcard/Examples/scard-api/sample_getStatusChange.py 2009-01-27 09:00:44 UTC (rev 261) @@ -25,16 +25,14 @@ """ from smartcard.scard import * +import smartcard.util srTreeATR = [0x3B, 0x77, 0x94, 0x00, 0x00, 0x82, 0x30, 0x00, 0x13, 0x6C, 0x9F, 0x22] srTreeMask= [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] def printstate (state): reader, eventstate, atr = state - print reader, - for b in atr: - print "0x%.2X" % b, - print "" + print reader + " " + smartcard.util.toHexString(atr, smartcard.util.HEX) if eventstate & SCARD_STATE_ATRMATCH: print '\tCard found' if eventstate & SCARD_STATE_UNAWARE: Modified: trunk/pyscard/src/smartcard/Examples/scard-api/sample_selectDFTelecom.py =================================================================== --- trunk/pyscard/src/smartcard/Examples/scard-api/sample_selectDFTelecom.py 2009-01-20 13:47:48 UTC (rev 260) +++ trunk/pyscard/src/smartcard/Examples/scard-api/sample_selectDFTelecom.py 2009-01-27 09:00:44 UTC (rev 261) @@ -25,8 +25,8 @@ """ from smartcard.scard import * +import smartcard.util - SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02] DF_TELECOM = [0x7F, 0x10] GET_RESPONSE = [0xA0, 0xC0, 0x00, 0x00] @@ -61,17 +61,11 @@ hresult, response = SCardTransmit( hcard, SCARD_PCI_T0, SELECT + DF_TELECOM ) if hresult!=0: raise error, 'Failed to transmit: ' + SCardGetErrorMessage(hresult) - print 'Selected DF_TELECOM:', - for i in xrange(len(response)): - print "0x%.2X" % response[i], - print "" + print 'Selected DF_TELECOM: ' + smartcard.util.toHexString(response, smartcard.util.HEX) hresult, response = SCardTransmit( hcard, SCARD_PCI_T0, GET_RESPONSE + [response[1]] ) if hresult!=0: raise error, 'Failed to transmit: ' + SCardGetErrorMessage(hresult) - print 'GET_RESPONSE after SELECT DF_TELECOM:', - for i in xrange(len(response)): - print "0x%.2X" % response[i], - print "" + print 'GET_RESPONSE after SELECT DF_TELECOM: ' + smartcard.util.toHexString(response, smartcard.util.HEX) finally: hresult = SCardDisconnect( hcard, SCARD_UNPOWER_CARD ) if hresult!=0: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-20 13:47:57
|
Revision: 260 http://pyscard.svn.sourceforge.net/pyscard/?rev=260&view=rev Author: ludov Date: 2009-01-20 13:47:48 +0000 (Tue, 20 Jan 2009) Log Message: ----------- new directory for contributions (programs using pyscard) Added Paths: ----------- trunk/contrib/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 20:29:26
|
Revision: 259 http://pyscard.svn.sourceforge.net/pyscard/?rev=259&view=rev Author: ludov Date: 2009-01-13 20:29:16 +0000 (Tue, 13 Jan 2009) Log Message: ----------- use (void *) instead of (unsigned long) to store the g_rgSCard* references Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/winscarddll.c trunk/pyscard/src/smartcard/scard/winscarddll.h Modified: trunk/pyscard/src/smartcard/scard/winscarddll.c =================================================================== --- trunk/pyscard/src/smartcard/scard/winscarddll.c 2009-01-13 13:21:28 UTC (rev 258) +++ trunk/pyscard/src/smartcard/scard/winscarddll.c 2009-01-13 20:29:16 UTC (rev 259) @@ -583,9 +583,9 @@ PCSCSTRINGIFYERROR myPcscStringifyError = _defaultPCSCSTRINGIFYERROR; -unsigned long myg_prgSCardT0Pci=0L; -unsigned long myg_prgSCardT1Pci=0L; -unsigned long myg_prgSCardRawPci=0L; +void * myg_prgSCardT0Pci=NULL; +void * myg_prgSCardT1Pci=NULL; +void * myg_prgSCardRawPci=NULL; long winscard_init(void) { @@ -711,9 +711,9 @@ GETPROCADDRESS( SCARDSETATTRIB , SCardSetAttrib , SCardSetAttrib ); #endif - myg_prgSCardT0Pci = (unsigned long)dlsym( handle, "g_rgSCardT0Pci" ); - myg_prgSCardT1Pci = (unsigned long)dlsym( handle, "g_rgSCardT1Pci" ); - myg_prgSCardRawPci = (unsigned long)dlsym( handle, "g_rgSCardRawPci" ); + myg_prgSCardT0Pci = dlsym( handle, "g_rgSCardT0Pci" ); + myg_prgSCardT1Pci = dlsym( handle, "g_rgSCardT1Pci" ); + myg_prgSCardRawPci = dlsym( handle, "g_rgSCardRawPci" ); dlsym_error = dlerror(); if( NULL!= dlsym_error ) Modified: trunk/pyscard/src/smartcard/scard/winscarddll.h =================================================================== --- trunk/pyscard/src/smartcard/scard/winscarddll.h 2009-01-13 13:21:28 UTC (rev 258) +++ trunk/pyscard/src/smartcard/scard/winscarddll.h 2009-01-13 20:29:16 UTC (rev 259) @@ -366,9 +366,9 @@ extern SCARDSTATUSA mySCardStatusA; extern SCARDTRANSMIT mySCardTransmit; -extern unsigned long myg_prgSCardT0Pci; -extern unsigned long myg_prgSCardT1Pci; -extern unsigned long myg_prgSCardRawPci; +extern void * myg_prgSCardT0Pci; +extern void * myg_prgSCardT1Pci; +extern void * myg_prgSCardRawPci; long winscard_init(void); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 13:21:34
|
Revision: 258 http://pyscard.svn.sourceforge.net/pyscard/?rev=258&view=rev Author: ludov Date: 2009-01-13 13:21:28 +0000 (Tue, 13 Jan 2009) Log Message: ----------- The PC/SC header files are not in a PCSC directory but found using -framework PCSC Modified Paths: -------------- trunk/pyscard/src/setup.py Modified: trunk/pyscard/src/setup.py =================================================================== --- trunk/pyscard/src/setup.py 2009-01-13 13:20:16 UTC (rev 257) +++ trunk/pyscard/src/setup.py 2009-01-13 13:21:28 UTC (rev 258) @@ -50,7 +50,7 @@ platform_swig_opts=[ '-DPCSCLITE', '-D__APPLE__', '-D__TIGER__' ] platform_sources=[] platform_libraries=[] - platform_include_dirs=['PCSC'] + platform_include_dirs=[] platform_extra_compile_args=['-v','-framework', 'PCSC', '-arch', 'i386', '-arch', 'ppc', '-ggdb', '-O0'] platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb'] @@ -63,7 +63,7 @@ platform_swig_opts=[ '-DPCSCLITE', '-D__APPLE__', '-D__LEOPARD__' ] platform_sources=[] platform_libraries=[] - platform_include_dirs=['PCSC'] + platform_include_dirs=[] platform_extra_compile_args=['-v','-framework', 'PCSC', '-arch', 'i386', '-arch', 'ppc', '-ggdb', '-O0'] platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb'] else: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 13:20:24
|
Revision: 257 http://pyscard.svn.sourceforge.net/pyscard/?rev=257&view=rev Author: ludov Date: 2009-01-13 13:20:16 +0000 (Tue, 13 Jan 2009) Log Message: ----------- no need to link with the PCSC framework on Mac OS X since the library is dynamically loaded during execution Modified Paths: -------------- trunk/pyscard/src/setup.py Modified: trunk/pyscard/src/setup.py =================================================================== --- trunk/pyscard/src/setup.py 2009-01-13 10:27:21 UTC (rev 256) +++ trunk/pyscard/src/setup.py 2009-01-13 13:20:16 UTC (rev 257) @@ -52,7 +52,7 @@ platform_libraries=[] platform_include_dirs=['PCSC'] platform_extra_compile_args=['-v','-framework', 'PCSC', '-arch', 'i386', '-arch', 'ppc', '-ggdb', '-O0'] - platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb', '-framework', 'PCSC' ] + platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb'] # # Mac OS X Leopard has python 2.5 preinstalled @@ -65,7 +65,7 @@ platform_libraries=[] platform_include_dirs=['PCSC'] platform_extra_compile_args=['-v','-framework', 'PCSC', '-arch', 'i386', '-arch', 'ppc', '-ggdb', '-O0'] - platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb', '-framework', 'PCSC' ] + platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb'] else: platform__cc_defines=[('PCSCLITE', '1')] platform_swig_opts=['-DPCSCLITE'] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 10:27:28
|
Revision: 256 http://pyscard.svn.sourceforge.net/pyscard/?rev=256&view=rev Author: ludov Date: 2009-01-13 10:27:21 +0000 (Tue, 13 Jan 2009) Log Message: ----------- set svn:executable on example and test scripts Property Changed: ---------------- trunk/pyscard/src/smartcard/Examples/framework/sample_CardConnectionDecorator.py trunk/pyscard/src/smartcard/Examples/framework/sample_ConsoleConnectionTracer.py trunk/pyscard/src/smartcard/Examples/framework/sample_CustomCardType.py trunk/pyscard/src/smartcard/Examples/framework/sample_CustomErrorChecker.py trunk/pyscard/src/smartcard/Examples/framework/sample_ErrorChecking.py trunk/pyscard/src/smartcard/Examples/framework/sample_ExclusiveCardConnection.py trunk/pyscard/src/smartcard/Examples/framework/sample_MonitorCards.py trunk/pyscard/src/smartcard/Examples/framework/sample_MonitorCardsAndTransmit.py trunk/pyscard/src/smartcard/Examples/framework/sample_MonitorReaders.py trunk/pyscard/src/smartcard/Examples/framework/sample_TransmitCardObserver.py trunk/pyscard/src/smartcard/Examples/framework/sample_apduTracerInterpreter.py trunk/pyscard/src/smartcard/Examples/framework/sample_toHexString.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_getATR.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_getAttrib.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_getStatusChange.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_listCards.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_listInterfaces.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_locateCards.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_readerGroups.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_readers.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_selectDFTelecom.py trunk/pyscard/src/smartcard/Examples/scard-api/sample_transaction.py trunk/pyscard/src/smartcard/Examples/simple/getATR.py trunk/pyscard/src/smartcard/Examples/simple/getATR_T1.py trunk/pyscard/src/smartcard/Examples/simple/selectDF_TELECOM.py trunk/pyscard/src/smartcard/Examples/wx/apdumanager/SampleAPDUManagerPanel.py trunk/pyscard/src/smartcard/Examples/wx/apdumanager/apdumanager.py trunk/pyscard/src/smartcard/Examples/wx/cardmonitor/cardmonitor.py trunk/pyscard/src/smartcard/Examples/wx/pcscdiag/pcscdiag.py trunk/pyscard/src/smartcard/Examples/wx/readerviewer/readerviewer.py trunk/pyscard/src/smartcard/test/configcheck.py trunk/pyscard/src/smartcard/test/framework/testcase_ATR.py trunk/pyscard/src/smartcard/test/framework/testcase_CAtr.py trunk/pyscard/src/smartcard/test/framework/testcase_Card.py trunk/pyscard/src/smartcard/test/framework/testcase_CardConnection.py trunk/pyscard/src/smartcard/test/framework/testcase_CardMonitor.py trunk/pyscard/src/smartcard/test/framework/testcase_CardRequest.py trunk/pyscard/src/smartcard/test/framework/testcase_CardService.py trunk/pyscard/src/smartcard/test/framework/testcase_CardType.py trunk/pyscard/src/smartcard/test/framework/testcase_ErrorChecking.py trunk/pyscard/src/smartcard/test/framework/testcase_ExclusiveCardConnection.py trunk/pyscard/src/smartcard/test/framework/testcase_readergroups.py trunk/pyscard/src/smartcard/test/framework/testcase_readermonitor.py trunk/pyscard/src/smartcard/test/framework/testcase_readermonitorstress.py trunk/pyscard/src/smartcard/test/framework/testcase_readers.py trunk/pyscard/src/smartcard/test/framework/testcase_ulist.py trunk/pyscard/src/smartcard/test/framework/testcase_utils.py trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py trunk/pyscard/src/smartcard/test/frameworkpcsc/testcase_pcscreadergroups.py trunk/pyscard/src/smartcard/test/frameworkpcsc/testsuite_frameworkpcsc.py trunk/pyscard/src/smartcard/test/manual/testcase_manualCardRequest.py trunk/pyscard/src/smartcard/test/scard/testcase_getatr.py trunk/pyscard/src/smartcard/test/scard/testcase_getattrib.py trunk/pyscard/src/smartcard/test/scard/testcase_geterrormessage.py trunk/pyscard/src/smartcard/test/scard/testcase_listcards.py trunk/pyscard/src/smartcard/test/scard/testcase_locatecards.py trunk/pyscard/src/smartcard/test/scard/testcase_readergroups.py trunk/pyscard/src/smartcard/test/scard/testcase_transaction.py trunk/pyscard/src/smartcard/test/scard/testsuite_scard.py Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_CardConnectionDecorator.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_ConsoleConnectionTracer.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_CustomCardType.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_CustomErrorChecker.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_ErrorChecking.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_ExclusiveCardConnection.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_MonitorCards.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_MonitorCardsAndTransmit.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_MonitorReaders.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_TransmitCardObserver.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_apduTracerInterpreter.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/framework/sample_toHexString.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_getATR.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_getAttrib.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_getStatusChange.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_listCards.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_listInterfaces.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_locateCards.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_readerGroups.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_readers.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_selectDFTelecom.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_transaction.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/simple/getATR.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/simple/getATR_T1.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/simple/selectDF_TELECOM.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/wx/apdumanager/SampleAPDUManagerPanel.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/wx/apdumanager/apdumanager.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/wx/cardmonitor/cardmonitor.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/wx/pcscdiag/pcscdiag.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/Examples/wx/readerviewer/readerviewer.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/configcheck.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_ATR.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_CAtr.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_Card.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_CardConnection.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_CardMonitor.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_CardRequest.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_CardService.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_CardType.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_ErrorChecking.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_ExclusiveCardConnection.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_readergroups.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_readermonitor.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_readermonitorstress.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_readers.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_ulist.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testcase_utils.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/frameworkpcsc/testcase_pcscreadergroups.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/frameworkpcsc/testsuite_frameworkpcsc.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/manual/testcase_manualCardRequest.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/scard/testcase_getatr.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/scard/testcase_getattrib.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/scard/testcase_geterrormessage.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/scard/testcase_listcards.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/scard/testcase_locatecards.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/scard/testcase_readergroups.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/scard/testcase_transaction.py ___________________________________________________________________ Added: svn:executable + * Property changes on: trunk/pyscard/src/smartcard/test/scard/testsuite_scard.py ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 10:12:03
|
Revision: 255 http://pyscard.svn.sourceforge.net/pyscard/?rev=255&view=rev Author: ludov Date: 2009-01-13 10:11:53 +0000 (Tue, 13 Jan 2009) Log Message: ----------- returned values of winscard function are long and not unsigned long Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/PcscDefs.i Modified: trunk/pyscard/src/smartcard/scard/PcscDefs.i =================================================================== --- trunk/pyscard/src/smartcard/scard/PcscDefs.i 2009-01-13 10:10:00 UTC (rev 254) +++ trunk/pyscard/src/smartcard/scard/PcscDefs.i 2009-01-13 10:11:53 UTC (rev 255) @@ -271,7 +271,7 @@ #ifdef __APPLE__ #define TYPE int #else -#define TYPE unsigned long +#define TYPE long #endif %constant TYPE SCARD_S_SUCCESS = SCARD_S_SUCCESS ; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 10:10:12
|
Revision: 254 http://pyscard.svn.sourceforge.net/pyscard/?rev=254&view=rev Author: ludov Date: 2009-01-13 10:10:00 +0000 (Tue, 13 Jan 2009) Log Message: ----------- ERROR_INVALID_HANDLE is defined only on Windows. Do not use it with pcsc-lite Modified Paths: -------------- trunk/pyscard/src/smartcard/test/scard/testcase_geterrormessage.py Modified: trunk/pyscard/src/smartcard/test/scard/testcase_geterrormessage.py =================================================================== --- trunk/pyscard/src/smartcard/test/scard/testcase_geterrormessage.py 2009-01-13 09:57:28 UTC (rev 253) +++ trunk/pyscard/src/smartcard/test/scard/testcase_geterrormessage.py 2009-01-13 10:10:00 UTC (rev 254) @@ -29,6 +29,7 @@ import unittest from smartcard.scard import * +import sys class testcase_geterrormessage(unittest.TestCase): @@ -46,7 +47,10 @@ self.assertEquals(hresult, 0) hresult = SCardReleaseContext( 123L ) - self.assertEquals( (SCARD_E_INVALID_HANDLE==hresult or ERROR_INVALID_HANDLE==hresult), True ) + if 'win32'==sys.platform: + self.assertEquals( (SCARD_E_INVALID_HANDLE==hresult or ERROR_INVALID_HANDLE==hresult), True ) + else: + self.assertEquals( (SCARD_E_INVALID_HANDLE==hresult), True ) self.assertEquals( ( SCardGetErrorMessage(hresult).rstrip()=='Invalid handle.'.rstrip() or SCardGetErrorMessage(hresult).rstrip()=='The handle is invalid.'.rstrip() ), True ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 09:57:38
|
Revision: 253 http://pyscard.svn.sourceforge.net/pyscard/?rev=253&view=rev Author: ludov Date: 2009-01-13 09:57:28 +0000 (Tue, 13 Jan 2009) Log Message: ----------- accept T=0 ot T=1 cards Modified Paths: -------------- trunk/pyscard/src/smartcard/test/scard/testcase_getatr.py trunk/pyscard/src/smartcard/test/scard/testcase_getattrib.py trunk/pyscard/src/smartcard/test/scard/testcase_transaction.py Modified: trunk/pyscard/src/smartcard/test/scard/testcase_getatr.py =================================================================== --- trunk/pyscard/src/smartcard/test/scard/testcase_getatr.py 2009-01-13 09:27:37 UTC (rev 252) +++ trunk/pyscard/src/smartcard/test/scard/testcase_getatr.py 2009-01-13 09:57:28 UTC (rev 253) @@ -59,7 +59,7 @@ def _getATR(self, r): if r<len(expectedATRs) and []!=expectedATRs[r]: hresult, hcard, dwActiveProtocol = SCardConnect( - self.hcontext, self.readers[r], SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 ) + self.hcontext, self.readers[r], SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1) self.assertEquals(hresult, 0) try: Modified: trunk/pyscard/src/smartcard/test/scard/testcase_getattrib.py =================================================================== --- trunk/pyscard/src/smartcard/test/scard/testcase_getattrib.py 2009-01-13 09:27:37 UTC (rev 252) +++ trunk/pyscard/src/smartcard/test/scard/testcase_getattrib.py 2009-01-13 09:57:28 UTC (rev 253) @@ -60,7 +60,7 @@ def _getAttrib(self, r): if r<len(expectedATRs) and []!=expectedATRs[r]: hresult, hcard, dwActiveProtocol = SCardConnect( - self.hcontext, self.readers[r], SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 ) + self.hcontext, self.readers[r], SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1) self.assertEquals(hresult, 0) try: Modified: trunk/pyscard/src/smartcard/test/scard/testcase_transaction.py =================================================================== --- trunk/pyscard/src/smartcard/test/scard/testcase_transaction.py 2009-01-13 09:27:37 UTC (rev 252) +++ trunk/pyscard/src/smartcard/test/scard/testcase_transaction.py 2009-01-13 09:57:28 UTC (rev 253) @@ -60,7 +60,7 @@ def _transaction(self, r): if r<len(expectedATRs) and []!=expectedATRs[r]: hresult, hcard, dwActiveProtocol = SCardConnect( - self.hcontext, self.readers[r], SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 ) + self.hcontext, self.readers[r], SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1) self.assertEquals(hresult, 0) try: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 09:27:43
|
Revision: 252 http://pyscard.svn.sourceforge.net/pyscard/?rev=252&view=rev Author: ludov Date: 2009-01-13 09:27:37 +0000 (Tue, 13 Jan 2009) Log Message: ----------- link against pythonx.y on GNU/Linux to avoid missing symbols in the generated _scard.so library Modified Paths: -------------- trunk/pyscard/src/setup.py Modified: trunk/pyscard/src/setup.py =================================================================== --- trunk/pyscard/src/setup.py 2009-01-13 09:17:36 UTC (rev 251) +++ trunk/pyscard/src/setup.py 2009-01-13 09:27:37 UTC (rev 252) @@ -70,7 +70,7 @@ platform__cc_defines=[('PCSCLITE', '1')] platform_swig_opts=['-DPCSCLITE'] platform_sources=[] - platform_libraries=[] + platform_libraries=["python%d.%d" % sys.version_info[:2]] platform_include_dirs=['/usr/include/PCSC'] platform_extra_compile_args=[]#['-ggdb', '-O0'] platform_extra_link_args=[]#['-ggdb'] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 09:17:46
|
Revision: 251 http://pyscard.svn.sourceforge.net/pyscard/?rev=251&view=rev Author: ludov Date: 2009-01-13 09:17:36 +0000 (Tue, 13 Jan 2009) Log Message: ----------- do not link against libpcsclite and dynamically get get pcsc_stringify_error() symbol (like the other winscard functions) Modified Paths: -------------- trunk/pyscard/src/setup.py trunk/pyscard/src/smartcard/scard/scard.i trunk/pyscard/src/smartcard/scard/winscarddll.c trunk/pyscard/src/smartcard/scard/winscarddll.h Modified: trunk/pyscard/src/setup.py =================================================================== --- trunk/pyscard/src/setup.py 2009-01-13 08:59:32 UTC (rev 250) +++ trunk/pyscard/src/setup.py 2009-01-13 09:17:36 UTC (rev 251) @@ -70,7 +70,7 @@ platform__cc_defines=[('PCSCLITE', '1')] platform_swig_opts=['-DPCSCLITE'] platform_sources=[] - platform_libraries=['pcsclite'] + platform_libraries=[] platform_include_dirs=['/usr/include/PCSC'] platform_extra_compile_args=[]#['-ggdb', '-O0'] platform_extra_link_args=[]#['-ggdb'] Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2009-01-13 08:59:32 UTC (rev 250) +++ trunk/pyscard/src/smartcard/scard/scard.i 2009-01-13 09:17:36 UTC (rev 251) @@ -841,134 +841,6 @@ return SCARD_CTL_CODE(code); } -/////////////////////////////////////////////////////////////////////////////// -// some pcsclite versions (e.g. on Max OS X Tiger) have no pcsc_stringify -// this function was taken from pcsclite -// -char* _pcsc_stringify_error( SCARDRETCODE pcscError ) -{ - static char strError[75]; - - switch(pcscError ) - { - case SCARD_S_SUCCESS: - strncpy( strError, "Command successful.", sizeof( strError ) ); - break; - case SCARD_E_CANCELLED: - strncpy( strError, "Command cancelled.", sizeof( strError ) ); - break; - case SCARD_E_CANT_DISPOSE: - strncpy( strError, "Cannot dispose handle.", sizeof( strError ) ); - break; - case SCARD_E_INSUFFICIENT_BUFFER: - strncpy( strError, "Insufficient buffer.", sizeof( strError ) ); - break; - case SCARD_E_INVALID_ATR: - strncpy( strError, "Invalid ATR.", sizeof( strError ) ); - break; - case SCARD_E_INVALID_HANDLE: - strncpy( strError, "Invalid handle.", sizeof( strError ) ); - break; - case SCARD_E_INVALID_PARAMETER: - strncpy( strError, "Invalid parameter given.", sizeof( strError ) ); - break; - case SCARD_E_INVALID_TARGET: - strncpy( strError, "Invalid target given.", sizeof( strError ) ); - break; - case SCARD_E_INVALID_VALUE: - strncpy( strError, "Invalid value given.", sizeof( strError ) ); - break; - case SCARD_E_NO_MEMORY: - strncpy( strError, "Not enough memory.", sizeof( strError ) ); - break; - case SCARD_F_COMM_ERROR: - strncpy( strError, "RPC transport error.", sizeof( strError ) ); - break; - case SCARD_F_INTERNAL_ERROR: - strncpy( strError, "Internal error.", sizeof( strError ) ); - break; - case SCARD_F_UNKNOWN_ERROR: - strncpy( strError, "Unknown error.", sizeof( strError ) ); - break; - case SCARD_F_WAITED_TOO_LONG: - strncpy( strError, "Waited too long.", sizeof( strError ) ); - break; - case SCARD_E_UNKNOWN_READER: - strncpy( strError, "Unknown reader specified.", sizeof( strError ) ); - break; - case SCARD_E_TIMEOUT: - strncpy( strError, "Command timeout.", sizeof( strError ) ); - break; - case SCARD_E_SHARING_VIOLATION: - strncpy( strError, "Sharing violation.", sizeof( strError ) ); - break; - case SCARD_E_NO_SMARTCARD: - strncpy( strError, "No smart card inserted.", sizeof( strError ) ); - break; - case SCARD_E_UNKNOWN_CARD: - strncpy( strError, "Unknown card.", sizeof( strError ) ); - break; - case SCARD_E_PROTO_MISMATCH: - strncpy( strError, "Card protocol mismatch.", sizeof( strError ) ); - break; - case SCARD_E_NOT_READY: - strncpy( strError, "Subsystem not ready.", sizeof( strError ) ); - break; - case SCARD_E_SYSTEM_CANCELLED: - strncpy( strError, "System cancelled.", sizeof( strError ) ); - break; - case SCARD_E_NOT_TRANSACTED: - strncpy( strError, "Transaction failed.", sizeof( strError ) ); - break; - case SCARD_E_READER_UNAVAILABLE: - strncpy( strError, "Reader is unavailable.", sizeof( strError ) ); - break; - case SCARD_W_UNSUPPORTED_CARD: - strncpy( strError, "Card is not supported.", sizeof( strError ) ); - break; - case SCARD_W_UNRESPONSIVE_CARD: - strncpy( strError, "Card is unresponsive.", sizeof( strError ) ); - break; - case SCARD_W_UNPOWERED_CARD: - strncpy( strError, "Card is unpowered.", sizeof( strError ) ); - break; - case SCARD_W_RESET_CARD: - strncpy( strError, "Card was reset.", sizeof( strError ) ); - break; - case SCARD_W_REMOVED_CARD: - strncpy( strError, "Card was removed.", sizeof( strError ) ); - break; - case SCARD_E_UNSUPPORTED_FEATURE: - strncpy( strError, "Feature not supported.", sizeof( strError ) ); - break; - case SCARD_E_PCI_TOO_SMALL: - strncpy( strError, "PCI struct too small.", sizeof( strError ) ); - break; - case SCARD_E_READER_UNSUPPORTED: - strncpy( strError, "Reader is unsupported.", sizeof( strError ) ); - break; - case SCARD_E_DUPLICATE_READER: - strncpy( strError, "Reader already exists.", sizeof( strError ) ); - break; - case SCARD_E_CARD_UNSUPPORTED: - strncpy( strError, "Card is unsupported.", sizeof( strError ) ); - break; - case SCARD_E_NO_SERVICE: - strncpy( strError, "Service not available.", sizeof( strError ) ); - break; - case SCARD_E_SERVICE_STOPPED: - strncpy( strError, "Service was stopped.", sizeof( strError ) ); - break; - default: - snprintf(strError, sizeof(strError)-1, "Unkown error: %ld, 0x%08lx", (long)pcscError, (long unsigned int)pcscError); - }; - - // zero terminates string - strError[sizeof(strError)-1] = '\0'; - - return strError; -} - ERRORSTRING* _GetErrorMessage( long lErrCode ) { #ifdef WIN32 @@ -1002,16 +874,7 @@ return ppszError; #endif // WIN32 #ifdef PCSCLITE - #ifdef __APPLE__ - #ifdef __TIGER__ - return (ERRORSTRING*)_pcsc_stringify_error( lErrCode ); - #endif - #ifdef __LEOPARD__ - return (ERRORSTRING*)_pcsc_stringify_error( lErrCode ); - #endif - #else - return (ERRORSTRING*)pcsc_stringify_error( lErrCode ); - #endif + return (ERRORSTRING*)myPcscStringifyError( lErrCode ); #endif // PCSCLITE } Modified: trunk/pyscard/src/smartcard/scard/winscarddll.c =================================================================== --- trunk/pyscard/src/smartcard/scard/winscarddll.c 2009-01-13 08:59:32 UTC (rev 250) +++ trunk/pyscard/src/smartcard/scard/winscarddll.c 2009-01-13 09:17:36 UTC (rev 251) @@ -27,6 +27,7 @@ #ifdef PCSCLITE #include <dlfcn.h> + #include <string.h> #endif // PCSCLITE #ifndef NULL @@ -293,6 +294,136 @@ } #endif // __TIGER__ +#ifdef PCSCLITE +/////////////////////////////////////////////////////////////////////////////// +// some pcsclite versions (e.g. on Max OS X Tiger) have no pcsc_stringify +// this function was taken from pcsclite +// +char* _defaultPCSCSTRINGIFYERROR( SCARDRETCODE pcscError ) +{ + static char strError[75]; + + switch(pcscError ) + { + case SCARD_S_SUCCESS: + strncpy( strError, "Command successful.", sizeof( strError ) ); + break; + case SCARD_E_CANCELLED: + strncpy( strError, "Command cancelled.", sizeof( strError ) ); + break; + case SCARD_E_CANT_DISPOSE: + strncpy( strError, "Cannot dispose handle.", sizeof( strError ) ); + break; + case SCARD_E_INSUFFICIENT_BUFFER: + strncpy( strError, "Insufficient buffer.", sizeof( strError ) ); + break; + case SCARD_E_INVALID_ATR: + strncpy( strError, "Invalid ATR.", sizeof( strError ) ); + break; + case SCARD_E_INVALID_HANDLE: + strncpy( strError, "Invalid handle.", sizeof( strError ) ); + break; + case SCARD_E_INVALID_PARAMETER: + strncpy( strError, "Invalid parameter given.", sizeof( strError ) ); + break; + case SCARD_E_INVALID_TARGET: + strncpy( strError, "Invalid target given.", sizeof( strError ) ); + break; + case SCARD_E_INVALID_VALUE: + strncpy( strError, "Invalid value given.", sizeof( strError ) ); + break; + case SCARD_E_NO_MEMORY: + strncpy( strError, "Not enough memory.", sizeof( strError ) ); + break; + case SCARD_F_COMM_ERROR: + strncpy( strError, "RPC transport error.", sizeof( strError ) ); + break; + case SCARD_F_INTERNAL_ERROR: + strncpy( strError, "Internal error.", sizeof( strError ) ); + break; + case SCARD_F_UNKNOWN_ERROR: + strncpy( strError, "Unknown error.", sizeof( strError ) ); + break; + case SCARD_F_WAITED_TOO_LONG: + strncpy( strError, "Waited too long.", sizeof( strError ) ); + break; + case SCARD_E_UNKNOWN_READER: + strncpy( strError, "Unknown reader specified.", sizeof( strError ) ); + break; + case SCARD_E_TIMEOUT: + strncpy( strError, "Command timeout.", sizeof( strError ) ); + break; + case SCARD_E_SHARING_VIOLATION: + strncpy( strError, "Sharing violation.", sizeof( strError ) ); + break; + case SCARD_E_NO_SMARTCARD: + strncpy( strError, "No smart card inserted.", sizeof( strError ) ); + break; + case SCARD_E_UNKNOWN_CARD: + strncpy( strError, "Unknown card.", sizeof( strError ) ); + break; + case SCARD_E_PROTO_MISMATCH: + strncpy( strError, "Card protocol mismatch.", sizeof( strError ) ); + break; + case SCARD_E_NOT_READY: + strncpy( strError, "Subsystem not ready.", sizeof( strError ) ); + break; + case SCARD_E_SYSTEM_CANCELLED: + strncpy( strError, "System cancelled.", sizeof( strError ) ); + break; + case SCARD_E_NOT_TRANSACTED: + strncpy( strError, "Transaction failed.", sizeof( strError ) ); + break; + case SCARD_E_READER_UNAVAILABLE: + strncpy( strError, "Reader is unavailable.", sizeof( strError ) ); + break; + case SCARD_W_UNSUPPORTED_CARD: + strncpy( strError, "Card is not supported.", sizeof( strError ) ); + break; + case SCARD_W_UNRESPONSIVE_CARD: + strncpy( strError, "Card is unresponsive.", sizeof( strError ) ); + break; + case SCARD_W_UNPOWERED_CARD: + strncpy( strError, "Card is unpowered.", sizeof( strError ) ); + break; + case SCARD_W_RESET_CARD: + strncpy( strError, "Card was reset.", sizeof( strError ) ); + break; + case SCARD_W_REMOVED_CARD: + strncpy( strError, "Card was removed.", sizeof( strError ) ); + break; + case SCARD_E_UNSUPPORTED_FEATURE: + strncpy( strError, "Feature not supported.", sizeof( strError ) ); + break; + case SCARD_E_PCI_TOO_SMALL: + strncpy( strError, "PCI struct too small.", sizeof( strError ) ); + break; + case SCARD_E_READER_UNSUPPORTED: + strncpy( strError, "Reader is unsupported.", sizeof( strError ) ); + break; + case SCARD_E_DUPLICATE_READER: + strncpy( strError, "Reader already exists.", sizeof( strError ) ); + break; + case SCARD_E_CARD_UNSUPPORTED: + strncpy( strError, "Card is unsupported.", sizeof( strError ) ); + break; + case SCARD_E_NO_SERVICE: + strncpy( strError, "Service not available.", sizeof( strError ) ); + break; + case SCARD_E_SERVICE_STOPPED: + strncpy( strError, "Service was stopped.", sizeof( strError ) ); + break; + default: + snprintf(strError, sizeof(strError)-1, "Unkown error: %ld, 0x%08lx", (long)pcscError, (long unsigned int)pcscError); + }; + + // zero terminates string + strError[sizeof(strError)-1] = '\0'; + + return strError; +} +#endif + WINSCARDAPI SCARDRETCODE WINAPI _defaultSCARDBEGINTRANSACTION( IN SCARDHANDLE hCard) @@ -449,6 +580,7 @@ SCARDRELEASECONTEXT mySCardReleaseContext = _defaultSCARDRELEASECONTEXT; SCARDSTATUSA mySCardStatusA = _defaultSCARDSTATUSA; SCARDTRANSMIT mySCardTransmit = _defaultSCARDTRANSMIT; +PCSCSTRINGIFYERROR myPcscStringifyError = _defaultPCSCSTRINGIFYERROR; unsigned long myg_prgSCardT0Pci=0L; @@ -561,6 +693,7 @@ GETPROCADDRESS( SCARDRELEASECONTEXT , SCardReleaseContext , SCardReleaseContext ); GETPROCADDRESS( SCARDSTATUSA , SCardStatusA , SCardStatus ); GETPROCADDRESS( SCARDTRANSMIT , SCardTransmit , SCardTransmit ); + SILENTGETPROCADDRESS( PCSCSTRINGIFYERROR , PcscStringifyError , pcsc_stringify_error ); #ifndef __APPLE__ GETPROCADDRESS( SCARDCONTROL, SCardControl, SCardControl ); Modified: trunk/pyscard/src/smartcard/scard/winscarddll.h =================================================================== --- trunk/pyscard/src/smartcard/scard/winscarddll.h 2009-01-13 08:59:32 UTC (rev 250) +++ trunk/pyscard/src/smartcard/scard/winscarddll.h 2009-01-13 09:17:36 UTC (rev 251) @@ -341,6 +341,14 @@ OUT LPBYTE pbRecvBuffer, IN OUT SCARDDWORDARG* pcbRecvLength); +#ifdef PCSCLITE +typedef WINSCARDAPI char* +(WINAPI *PCSCSTRINGIFYERROR)( + IN SCARDRETCODE pcscError); + +extern PCSCSTRINGIFYERROR myPcscStringifyError; +#endif + extern SCARDBEGINTRANSACTION mySCardBeginTransaction; extern SCARDCANCEL mySCardCancel; extern SCARDCANCELTRANSACTION mySCardCancelTransaction; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 08:59:39
|
Revision: 250 http://pyscard.svn.sourceforge.net/pyscard/?rev=250&view=rev Author: ludov Date: 2009-01-13 08:59:32 +0000 (Tue, 13 Jan 2009) Log Message: ----------- do not call dlclose() since we want to continue using the library. Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/winscarddll.c Modified: trunk/pyscard/src/smartcard/scard/winscarddll.c =================================================================== --- trunk/pyscard/src/smartcard/scard/winscarddll.c 2009-01-13 08:51:04 UTC (rev 249) +++ trunk/pyscard/src/smartcard/scard/winscarddll.c 2009-01-13 08:59:32 UTC (rev 250) @@ -582,7 +582,6 @@ myg_prgSCardT1Pci = (unsigned long)dlsym( handle, "g_rgSCardT1Pci" ); myg_prgSCardRawPci = (unsigned long)dlsym( handle, "g_rgSCardRawPci" ); - dlclose( handle ); dlsym_error = dlerror(); if( NULL!= dlsym_error ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-13 08:51:07
|
Revision: 249 http://pyscard.svn.sourceforge.net/pyscard/?rev=249&view=rev Author: ludov Date: 2009-01-13 08:51:04 +0000 (Tue, 13 Jan 2009) Log Message: ----------- sample to use a pinpad reader Added Paths: ----------- trunk/pyscard/src/smartcard/Examples/scard-api/sample_pinpad.py Added: trunk/pyscard/src/smartcard/Examples/scard-api/sample_pinpad.py =================================================================== --- trunk/pyscard/src/smartcard/Examples/scard-api/sample_pinpad.py (rev 0) +++ trunk/pyscard/src/smartcard/Examples/scard-api/sample_pinpad.py 2009-01-13 08:51:04 UTC (rev 249) @@ -0,0 +1,125 @@ +#! /usr/bin/env python +""" +Sample for python PCSC wrapper module: send a Control Code to a card or +reader + +__author__ = "Ludovic Rousseau" + +Copyright 2009 Ludovic Rousseau +Author: Ludovic Rousseau, mailto:lud...@fr... + +This file is part of pyscard. + +pyscard is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +pyscard is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with pyscard; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +""" + +from smartcard.scard import * +from smartcard.util import toASCIIBytes + +def candoverifypin(hCard): + FEATURE_VERIFY_PIN_DIRECT = 6 + return parse_get_feature_request(hCard, FEATURE_VERIFY_PIN_DIRECT) + +def candomodifypin(hCard): + FEATURE_MODIFY_PIN_DIRECT = 7 + return parse_get_feature_request(hCard, FEATURE_MODIFY_PIN_DIRECT) + +def parse_get_feature_request(hCard, feature): + # check the reader can do a verify pin + CM_IOCTL_GET_FEATURE_REQUEST = SCARD_CTL_CODE(3400) + hresult, response = SCardControl(hcard, CM_IOCTL_GET_FEATURE_REQUEST, []) + if hresult!=SCARD_S_SUCCESS: + raise error, 'SCardControl failed: ' + SCardGetErrorMessage(hresult) + print response + while (len(response) > 0): + tag = response[0] + if (feature == tag): + return (((((response[2]<<8) + response[3])<<8) + response[4])<<8) + response[5] + response = response[6:] + +def verifypin(hCard, control=None): + if None==control: + control = candoverifypin(hCard) + if (None == control): + raise error, "Not a pinpad" + hresult, response = SCardControl(hcard, control, []) + if hresult!=SCARD_S_SUCCESS: + raise error, 'SCardControl failed: ' + SCardGetErrorMessage(hresult) + return hresult, response + +try: + hresult, hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) + if hresult!=0: + raise 'Failed to establish context: ' + SCardGetErrorMessage(hresult) + print 'Context established!' + + try: + hresult, readers = SCardListReaders( hcontext, [] ) + if hresult!=0: + raise error, 'Failed to list readers: ' + SCardGetErrorMessage(hresult) + print 'PCSC Readers:', readers + + if len(readers)<1: + raise error, 'No smart card readers' + + for zreader in readers: + + print 'Trying to Control reader:', zreader + + try: + hresult, hcard, dwActiveProtocol = SCardConnect( + hcontext, zreader, SCARD_SHARE_DIRECT, SCARD_PROTOCOL_T0 ) + if hresult!=0: + raise error, 'Unable to connect: ' + SCardGetErrorMessage(hresult) + print 'Connected with active protocol', dwActiveProtocol + + try: + cmd_verify = candoverifypin(hcard) + if (cmd_verify): + print "can do verify pin: 0x%08X" % cmd_verify + + cmd_modify = candomodifypin(hcard) + if (cmd_modify): + print "can do modify pin: 0x%08X" % cmd_modify + + (hresult, response) = verifypin(hcard, cmd_verify) + r = "" + for i in xrange(len(response)): + r += "%c" % response[i] + print 'Control:', r + finally: + hresult = SCardDisconnect( hcard, SCARD_UNPOWER_CARD ) + if hresult!=0: + raise error, 'Failed to disconnect: ' + SCardGetErrorMessage(hresult) + print 'Disconnected' + + except error, (message): + print error, message + + finally: + hresult = SCardReleaseContext( hcontext ) + if hresult!=SCARD_S_SUCCESS: + raise 'Failed to release context: ' + SCardGetErrorMessage(hresult) + print 'Released context.' + +except: + import sys + print sys.exc_info()[0], ':', sys.exc_info()[1] + +import sys +if 'win32'==sys.platform: + print 'press Enter to continue' + sys.stdin.read(1) + Property changes on: trunk/pyscard/src/smartcard/Examples/scard-api/sample_pinpad.py ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-10 09:48:40
|
Revision: 248 http://pyscard.svn.sourceforge.net/pyscard/?rev=248&view=rev Author: ludov Date: 2009-01-10 09:48:35 +0000 (Sat, 10 Jan 2009) Log Message: ----------- load libpcsclite.so.1 instead of libpcsclite.so See Debian bug #511344 Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/winscarddll.c Modified: trunk/pyscard/src/smartcard/scard/winscarddll.c =================================================================== --- trunk/pyscard/src/smartcard/scard/winscarddll.c 2009-01-09 19:28:14 UTC (rev 247) +++ trunk/pyscard/src/smartcard/scard/winscarddll.c 2009-01-10 09:48:35 UTC (rev 248) @@ -536,7 +536,7 @@ #ifdef __APPLE__ lib = "/System/Library/Frameworks/PCSC.framework/PCSC"; #else - lib = "libpcsclite.so"; + lib = "libpcsclite.so.1"; #endif if( bFirstCall ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-09 19:28:19
|
Revision: 247 http://pyscard.svn.sourceforge.net/pyscard/?rev=247&view=rev Author: ludov Date: 2009-01-09 19:28:14 +0000 (Fri, 09 Jan 2009) Log Message: ----------- SCard error values are of type DWORD (unsigned long) on Windows and Linux but int32_t on Mac OS X Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/PcscDefs.i Modified: trunk/pyscard/src/smartcard/scard/PcscDefs.i =================================================================== --- trunk/pyscard/src/smartcard/scard/PcscDefs.i 2009-01-09 14:13:45 UTC (rev 246) +++ trunk/pyscard/src/smartcard/scard/PcscDefs.i 2009-01-09 19:28:14 UTC (rev 247) @@ -267,46 +267,50 @@ #endif //PCSCLITE -typedef enum -{ - SCARD_S_SUCCESS , - SCARD_F_INTERNAL_ERROR , - SCARD_E_CANCELLED , - SCARD_E_INVALID_HANDLE , - SCARD_E_INVALID_PARAMETER , - SCARD_E_INVALID_TARGET , - SCARD_E_NO_MEMORY , - SCARD_F_WAITED_TOO_LONG , - SCARD_E_INSUFFICIENT_BUFFER , - SCARD_E_UNKNOWN_READER , - SCARD_E_TIMEOUT , - SCARD_E_SHARING_VIOLATION , - SCARD_E_NO_SMARTCARD , - SCARD_E_UNKNOWN_CARD , - SCARD_E_CANT_DISPOSE , - SCARD_E_PROTO_MISMATCH , - SCARD_E_NOT_READY , - SCARD_E_INVALID_VALUE , - SCARD_E_SYSTEM_CANCELLED , - SCARD_F_COMM_ERROR , - SCARD_F_UNKNOWN_ERROR , - SCARD_E_INVALID_ATR , - SCARD_E_NOT_TRANSACTED , - SCARD_E_READER_UNAVAILABLE , - SCARD_E_PCI_TOO_SMALL , - SCARD_E_READER_UNSUPPORTED , - SCARD_E_DUPLICATE_READER , - SCARD_E_CARD_UNSUPPORTED , - SCARD_E_NO_SERVICE , - SCARD_E_SERVICE_STOPPED , - SCARD_E_UNSUPPORTED_FEATURE , - SCARD_W_UNSUPPORTED_CARD , - SCARD_W_UNRESPONSIVE_CARD , - SCARD_W_UNPOWERED_CARD , - SCARD_W_RESET_CARD , - SCARD_W_REMOVED_CARD -} ErrorType ; +/* int and unsigned long are different on 64-bits systems */ +#ifdef __APPLE__ +#define TYPE int +#else +#define TYPE unsigned long +#endif +%constant TYPE SCARD_S_SUCCESS = SCARD_S_SUCCESS ; +%constant TYPE SCARD_F_INTERNAL_ERROR = SCARD_F_INTERNAL_ERROR ; +%constant TYPE SCARD_E_CANCELLED = SCARD_E_CANCELLED ; +%constant TYPE SCARD_E_INVALID_HANDLE = SCARD_E_INVALID_HANDLE ; +%constant TYPE SCARD_E_INVALID_PARAMETER = SCARD_E_INVALID_PARAMETER ; +%constant TYPE SCARD_E_INVALID_TARGET = SCARD_E_INVALID_TARGET ; +%constant TYPE SCARD_E_NO_MEMORY = SCARD_E_NO_MEMORY ; +%constant TYPE SCARD_F_WAITED_TOO_LONG = SCARD_F_WAITED_TOO_LONG ; +%constant TYPE SCARD_E_INSUFFICIENT_BUFFER = SCARD_E_INSUFFICIENT_BUFFER ; +%constant TYPE SCARD_E_UNKNOWN_READER = SCARD_E_UNKNOWN_READER ; +%constant TYPE SCARD_E_TIMEOUT = SCARD_E_TIMEOUT ; +%constant TYPE SCARD_E_SHARING_VIOLATION = SCARD_E_SHARING_VIOLATION ; +%constant TYPE SCARD_E_NO_SMARTCARD = SCARD_E_NO_SMARTCARD ; +%constant TYPE SCARD_E_UNKNOWN_CARD = SCARD_E_UNKNOWN_CARD ; +%constant TYPE SCARD_E_CANT_DISPOSE = SCARD_E_CANT_DISPOSE ; +%constant TYPE SCARD_E_PROTO_MISMATCH = SCARD_E_PROTO_MISMATCH ; +%constant TYPE SCARD_E_NOT_READY = SCARD_E_NOT_READY ; +%constant TYPE SCARD_E_INVALID_VALUE = SCARD_E_INVALID_VALUE ; +%constant TYPE SCARD_E_SYSTEM_CANCELLED = SCARD_E_SYSTEM_CANCELLED ; +%constant TYPE SCARD_F_COMM_ERROR = SCARD_F_COMM_ERROR ; +%constant TYPE SCARD_F_UNKNOWN_ERROR = SCARD_F_UNKNOWN_ERROR ; +%constant TYPE SCARD_E_INVALID_ATR = SCARD_E_INVALID_ATR ; +%constant TYPE SCARD_E_NOT_TRANSACTED = SCARD_E_NOT_TRANSACTED ; +%constant TYPE SCARD_E_READER_UNAVAILABLE = SCARD_E_READER_UNAVAILABLE ; +%constant TYPE SCARD_E_PCI_TOO_SMALL = SCARD_E_PCI_TOO_SMALL ; +%constant TYPE SCARD_E_READER_UNSUPPORTED = SCARD_E_READER_UNSUPPORTED ; +%constant TYPE SCARD_E_DUPLICATE_READER = SCARD_E_DUPLICATE_READER ; +%constant TYPE SCARD_E_CARD_UNSUPPORTED = SCARD_E_CARD_UNSUPPORTED ; +%constant TYPE SCARD_E_NO_SERVICE = SCARD_E_NO_SERVICE ; +%constant TYPE SCARD_E_SERVICE_STOPPED = SCARD_E_SERVICE_STOPPED ; +%constant TYPE SCARD_E_UNSUPPORTED_FEATURE = SCARD_E_UNSUPPORTED_FEATURE ; +%constant TYPE SCARD_W_UNSUPPORTED_CARD = SCARD_W_UNSUPPORTED_CARD ; +%constant TYPE SCARD_W_UNRESPONSIVE_CARD = SCARD_W_UNRESPONSIVE_CARD ; +%constant TYPE SCARD_W_UNPOWERED_CARD = SCARD_W_UNPOWERED_CARD ; +%constant TYPE SCARD_W_RESET_CARD = SCARD_W_RESET_CARD ; +%constant TYPE SCARD_W_REMOVED_CARD = SCARD_W_REMOVED_CARD ; + #ifdef WIN32 typedef enum { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2009-01-09 14:13:54
|
Revision: 246 http://pyscard.svn.sourceforge.net/pyscard/?rev=246&view=rev Author: ludov Date: 2009-01-09 14:13:45 +0000 (Fri, 09 Jan 2009) Log Message: ----------- remove a print debug line Modified Paths: -------------- trunk/pyscard/src/smartcard/pcsc/PCSCContext.py Modified: trunk/pyscard/src/smartcard/pcsc/PCSCContext.py =================================================================== --- trunk/pyscard/src/smartcard/pcsc/PCSCContext.py 2008-12-16 10:41:18 UTC (rev 245) +++ trunk/pyscard/src/smartcard/pcsc/PCSCContext.py 2009-01-09 14:13:45 UTC (rev 246) @@ -35,7 +35,6 @@ def __init__( self ): hresult, self.hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) if hresult!=0: - print "establishcontext failed: %.8x" % hresult raise EstablishContextException( 'Failed to establish context: ' + SCardGetErrorMessage(hresult) ) def getContext( self ): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2008-12-16 10:41:22
|
Revision: 245 http://pyscard.svn.sourceforge.net/pyscard/?rev=245&view=rev Author: ludov Date: 2008-12-16 10:41:18 +0000 (Tue, 16 Dec 2008) Log Message: ----------- fail early (with an exception) if a type conversion fails Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/PcscTypemaps.i Modified: trunk/pyscard/src/smartcard/scard/PcscTypemaps.i =================================================================== --- trunk/pyscard/src/smartcard/scard/PcscTypemaps.i 2008-12-16 10:40:29 UTC (rev 244) +++ trunk/pyscard/src/smartcard/scard/PcscTypemaps.i 2008-12-16 10:41:18 UTC (rev 245) @@ -48,6 +48,8 @@ %typemap(in) BYTELIST* INPUT(BYTELIST*) { $1 = SCardHelper_PyByteListToBYTELIST( $input ); + if (NULL == $1) + goto fail; } // release bytelist arg @@ -185,6 +187,8 @@ %typemap(in) GUIDLIST* INPUT(GUIDLIST*) { $1 = SCardHelper_PyGuidListToGUIDLIST( $input ); + if (NULL == $1) + goto fail; } // builds a Python list from a GUID list @@ -273,6 +277,8 @@ %typemap(in) READERSTATELIST *prsl(READERSTATELIST*) { $1 = SCardHelper_PyReaderStateListToREADERSTATELIST( $input ); + if (NULL == $1) + goto fail; } // builds a Python list from a win32 string list @@ -303,6 +309,8 @@ %typemap(in) SCARDCONTEXT hcontext(SCARDCONTEXT) { $1 = SCardHelper_PyScardContextToSCARDCONTEXT( $input ); + if (0 == $1) + goto fail; } %typemap(argout) SCARDCONTEXT *OUTPUT @@ -327,6 +335,8 @@ %typemap(in) SCARDDWORDARG INPUT(SCARDDWORDARG) { $1 = SCardHelper_PySCardDwordArgToSCARDDWORDARG( $input ); + if (-1 == $1) + goto fail; } %typemap(argout) SCARDDWORDARG* OUTPUT @@ -363,6 +373,8 @@ %typemap(in) SCARDHANDLE hcard(SCARDHANDLE) { $1 = SCardHelper_PyScardHandleToSCARDHANDLE( $input ); + if (0 == $1) + goto fail; } %typemap(argout) SCARDHANDLE* OUTPUT @@ -454,6 +466,8 @@ %typemap(in) STRING *INPUT( STRING ) { $1 = SCardHelper_PyStringToString( $input ); + if (NULL == $1) + goto fail; } // builds a Python string from a STRING @@ -520,6 +534,8 @@ %typemap(in) STRINGLIST* INPUT(STRINGLIST*) { $1 = SCardHelper_PyStringListToStringList( $input ); + if (NULL == $1) + goto fail; } // builds a Python list from a win32 string list This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2008-12-16 10:40:39
|
Revision: 244 http://pyscard.svn.sourceforge.net/pyscard/?rev=244&view=rev Author: ludov Date: 2008-12-16 10:40:29 +0000 (Tue, 16 Dec 2008) Log Message: ----------- SCardHelper_PySCardDwordArgToSCARDDWORDARG(): return -1 instead of 0 in case of error. 0 is a valid value Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/helpers.c Modified: trunk/pyscard/src/smartcard/scard/helpers.c =================================================================== --- trunk/pyscard/src/smartcard/scard/helpers.c 2008-12-16 10:16:37 UTC (rev 243) +++ trunk/pyscard/src/smartcard/scard/helpers.c 2008-12-16 10:40:29 UTC (rev 244) @@ -890,7 +890,7 @@ if( !PyLong_Check(source) && !PyInt_Check(source) ) { PyErr_SetString( PyExc_TypeError, "Expected a python integer or long." ); - return 0; + return -1; } #ifdef PCSCLITE This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2008-12-16 10:16:41
|
Revision: 243 http://pyscard.svn.sourceforge.net/pyscard/?rev=243&view=rev Author: ludov Date: 2008-12-16 10:16:37 +0000 (Tue, 16 Dec 2008) Log Message: ----------- more explicit error messages Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/helpers.c Modified: trunk/pyscard/src/smartcard/scard/helpers.c =================================================================== --- trunk/pyscard/src/smartcard/scard/helpers.c 2008-12-16 10:05:24 UTC (rev 242) +++ trunk/pyscard/src/smartcard/scard/helpers.c 2008-12-16 10:16:37 UTC (rev 243) @@ -750,7 +750,7 @@ // do we have a python long? if (!PyLong_Check(source)) { - PyErr_SetString( PyExc_TypeError, "Expected a python long." ); + PyErr_SetString( PyExc_TypeError, "Expected a python long as SCARDCONTEXT." ); return 0; } @@ -820,7 +820,7 @@ // do we have a python long? if (!PyLong_Check(source)) { - PyErr_SetString( PyExc_TypeError, "Expected a python long." ); + PyErr_SetString( PyExc_TypeError, "Expected a python long as SCARDHANDLE." ); return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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...> - 2008-12-09 14:51:25
|
Revision: 241 http://pyscard.svn.sourceforge.net/pyscard/?rev=241&view=rev Author: ludov Date: 2008-12-09 14:51:15 +0000 (Tue, 09 Dec 2008) Log Message: ----------- SCardHelper_AppendReaderStateListToPyObject(): set ATR length to 0 if length is > MAX_ATR_SIZE indicating a non initialised (random) value Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/helpers.c Modified: trunk/pyscard/src/smartcard/scard/helpers.c =================================================================== --- trunk/pyscard/src/smartcard/scard/helpers.c 2008-11-01 15:07:37 UTC (rev 240) +++ trunk/pyscard/src/smartcard/scard/helpers.c 2008-12-09 14:51:15 UTC (rev 241) @@ -498,6 +498,10 @@ PyObject* ot = PyTuple_New( 3 ); oReader = PyString_FromString( source->ars[i].szReader ); oEventState = PyInt_FromLong( (SCARDDWORDARG)source->ars[i].dwEventState ); + // ATR visibly not initialised + if ( source->ars[i].cbAtr > MAX_ATR_SIZE) + source->ars[i].cbAtr = 0; + oAtr = PyList_New( source->ars[i].cbAtr ); for(j=0; j<source->ars[i].cbAtr; j++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2008-11-01 15:07:40
|
Revision: 240 http://pyscard.svn.sourceforge.net/pyscard/?rev=240&view=rev Author: ludov Date: 2008-11-01 15:07:37 +0000 (Sat, 01 Nov 2008) Log Message: ----------- PCSCCardConnection(): convert from PCSC protocol to CardConnection protocol before calling PCSCCardConnection.setProtocol() Modified Paths: -------------- trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py Modified: trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py =================================================================== --- trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py 2008-11-01 14:50:27 UTC (rev 239) +++ trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py 2008-11-01 15:07:37 UTC (rev 240) @@ -96,7 +96,11 @@ raise NoCardException( 'Unable to connect: ' + SCardGetErrorMessage(hresult) ) else: raise CardConnectionException( 'Unable to connect with protocol: ' + dictProtocol[pcscprotocol] + '. ' + SCardGetErrorMessage(hresult) ) - PCSCCardConnection.setProtocol(self, dwActiveProtocol) + protocol = 0 + for p in dictProtocol: + if p == dwActiveProtocol: + protocol = eval("CardConnection.%s_protocol" % dictProtocol[p]) + PCSCCardConnection.setProtocol(self, protocol) def disconnect( self ): """Disconnect from the card.""" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2008-11-01 14:50:37
|
Revision: 239 http://pyscard.svn.sourceforge.net/pyscard/?rev=239&view=rev Author: ludov Date: 2008-11-01 14:50:27 +0000 (Sat, 01 Nov 2008) Log Message: ----------- do not localy store the protocol negociated during SCardConnect but use the super class .setProtocol() method to store it for us Modified Paths: -------------- trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py Modified: trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py =================================================================== --- trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py 2008-10-27 13:43:54 UTC (rev 238) +++ trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py 2008-11-01 14:50:27 UTC (rev 239) @@ -68,7 +68,6 @@ """ CardConnection.__init__( self, reader ) self.hcard = None - self.dwActiveProtocol = SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1 hresult, self.hcontext = SCardEstablishContext( SCARD_SCOPE_USER ) if hresult!=0: raise CardConnectionException( 'Failed to establish context : ' + SCardGetErrorMessage(hresult) ) @@ -89,7 +88,7 @@ pcscprotocol = translateprotocolmask( protocol ) if 0==pcscprotocol: pcscprotocol = self.getProtocol() - hresult, self.hcard, self.dwActiveProtocol = SCardConnect( + hresult, self.hcard, dwActiveProtocol = SCardConnect( self.hcontext, str(self.reader), SCARD_SHARE_SHARED, pcscprotocol ) if hresult!=0: self.hcard=None @@ -97,6 +96,7 @@ raise NoCardException( 'Unable to connect: ' + SCardGetErrorMessage(hresult) ) else: raise CardConnectionException( 'Unable to connect with protocol: ' + dictProtocol[pcscprotocol] + '. ' + SCardGetErrorMessage(hresult) ) + PCSCCardConnection.setProtocol(self, dwActiveProtocol) def disconnect( self ): """Disconnect from the card.""" @@ -125,10 +125,6 @@ raise CardConnectionException( 'Failed to get status: ' + SCardGetErrorMessage(hresult) ) return atr - def getProtocol( self ): - """Return the protocol negociated during connect().""" - return self.dwActiveProtocol - def doTransmit( self, bytes, protocol=None ): """Transmit an apdu to the card and return response apdu. @@ -143,7 +139,7 @@ response are the response bytes excluding status words """ if None==protocol: - protocol = self.dwActiveProtocol + protocol = self.getProtocol() CardConnection.doTransmit( self, bytes, protocol ) pcscprotocolheader = translateprotocolheader( protocol ) if 0==pcscprotocolheader: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2008-10-27 13:43:57
|
Revision: 238 http://pyscard.svn.sourceforge.net/pyscard/?rev=238&view=rev Author: ludov Date: 2008-10-27 13:43:54 +0000 (Mon, 27 Oct 2008) Log Message: ----------- PCSCCardConnection(): light reformat of the error message Modified Paths: -------------- trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py Modified: trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py =================================================================== --- trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py 2008-10-27 10:51:29 UTC (rev 237) +++ trunk/pyscard/src/smartcard/pcsc/PCSCCardConnection.py 2008-10-27 13:43:54 UTC (rev 238) @@ -96,7 +96,7 @@ if SCARD_W_REMOVED_CARD==hresult: raise NoCardException( 'Unable to connect: ' + SCardGetErrorMessage(hresult) ) else: - raise CardConnectionException( 'Unable to connect with protocol: ' + dictProtocol[pcscprotocol] + ' ' + SCardGetErrorMessage(hresult) ) + raise CardConnectionException( 'Unable to connect with protocol: ' + dictProtocol[pcscprotocol] + '. ' + SCardGetErrorMessage(hresult) ) def disconnect( self ): """Disconnect from the card.""" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |