91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 492KB
    文件類型: .bz2
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-10
  • 語言: 其他
  • 標簽: PCSC??智能卡??

資源簡介

Linux 下的PC/SC服務,智能卡應用,源碼包,用gcc編譯

資源截圖

代碼片段和文件信息

/*
?*?Sample?program?to?use?PC/SC?API.
?*
?*?MUSCLE?SmartCard?Development?(?http://www.linuxnet.com?)
?*
?*?Copyright?(C)?2003-2011
?*??Ludovic?Rousseau?
?*
?*?This?program?is?free?software;?you?can?redistribute?it?and/or?modify
?*?it?under?the?terms?of?the?GNU?General?Public?License?as?published?by
?*?the?Free?Software?Foundation;?either?version?2?of?the?License?or
?*?(at?your?option)?any?later?version.
?*
?*?This?program?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?General?Public?License?for?more?details.
?*
?*?You?should?have?received?a?copy?of?the?GNU?General?Public?License?along
?*?with?this?program;?if?not?write?to?the?Free?Software?Foundation?Inc.
?*?51?Franklin?Street?Fifth?Floor?Boston?MA?02110-1301?USA.
?*
?*?$Id:?pcsc_demo.c?5802?2011-06-22?06:53:46Z?rousseau?$
?*/

#include?
#include?
#include?
#include?
#include?

#include?
#include?

#ifndef?TRUE
#define?TRUE?1
#define?FALSE?0
#endif

/*?PCSC?error?message?pretty?print?*/
#define?PCSC_ERROR(rv?text)?\
if?(rv?!=?SCARD_S_SUCCESS)?\
{?\
printf(text?“:?%s?(0x%lX)\n“?pcsc_stringify_error(rv)?rv);?\
goto?end;?\
}?\
else?\
{?\
printf(text?“:?OK\n\n“);?\
}

int?main(int?argc?char?*argv[])
{
LONG?rv;
SCARDCONTEXT?hContext;
DWORD?dwReaders;
LPSTR?mszReaders?=?NULL;
char?*ptr?**readers?=?NULL;
int?nbReaders;
SCARDHANDLE?hCard;
DWORD?dwActiveProtocol?dwReaderLen?dwState?dwProt?dwAtrLen;
BYTE?pbAtr[MAX_ATR_SIZE]?=?““;
char?pbReader[MAX_READERNAME]?=?““;
int?reader_nb;
unsigned?int?i;
const?SCARD_IO_REQUEST?*pioSendPci;
SCARD_IO_REQUEST?pioRecvPci;
BYTE?pbRecvBuffer[10];
BYTE?pbSendBuffer[]?=?{?0x00?0xA4?0x00?0x00?0x02?0x3F?0x00?};
DWORD?dwSendLength?dwRecvLength;

printf(“PC/SC?sample?code\n“);
printf(“V?1.4?2003-2009?Ludovic?Rousseau?\n“);

printf(“\nTHIS?PROGRAM?IS?NOT?DESIGNED?AS?A?TESTING?TOOL?FOR?END?USERS!\n“);
printf(“Do?NOT?use?it?unless?you?really?know?what?you?do.\n\n“);

rv?=?SCardEstablishContext(SCARD_SCOPE_SYSTEM?NULL?NULL?&hContext);
if?(rv?!=?SCARD_S_SUCCESS)
{
printf(“SCardEstablishContext:?Cannot?Connect?to?Resource?Manager?%lX\n“?rv);
return?EXIT_FAILURE;
}

/*?Retrieve?the?available?readers?list.?*/
dwReaders?=?SCARD_AUTOALLOCATE;
rv?=?SCardListReaders(hContext?NULL?(LPSTR)&mszReaders?&dwReaders);
PCSC_ERROR(rv?“SCardListReaders“)

/*?Extract?readers?from?the?null?separated?string?and?get?the?total
?*?number?of?readers?*/
nbReaders?=?0;
ptr?=?mszReaders;
while?(*ptr?!=?‘\0‘)
{
ptr?+=?strlen(ptr)+1;
nbReaders++;
}

if?(nbReaders?==?0)
{
printf(“No?reader?found\n“);
goto?end;
}

/*?allocate?the?readers?table?*/
readers?=?calloc(nbReaders?sizeof(char?*));
if?(NULL?==?readers)
{
printf(“Not?enough?memory?for?readers[

評論

共有 條評論