Skip to content

Commit c5c89b0

Browse files
pcsc_demo: add tests for SCardGetAttrib() and SCardControl()
1 parent 6243772 commit c5c89b0

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

doc/example/pcsc_demo.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3737
#include <string.h>
3838

3939
#include <winscard.h>
40+
#include <reader.h>
4041

4142
/* PCSC error message pretty print */
4243
#define PCSC_ERROR(rv, text) \
@@ -266,6 +267,24 @@ int main(int argc, char *argv[])
266267
rv = SCardEndTransaction(hCard, SCARD_LEAVE_CARD);
267268
PCSC_ERROR(rv, "SCardEndTransaction")
268269

270+
/* get Attribute */
271+
dwAtrLen = sizeof(pbAtr);
272+
rv = SCardGetAttrib(hCard, SCARD_ATTR_ATR_STRING, pbAtr, &dwAtrLen);
273+
printf("Received: ");
274+
for (i=0; i<dwAtrLen; i++)
275+
printf("%02X ", pbAtr[i]);
276+
printf("\n");
277+
PCSC_ERROR(rv, "SCardGetAttrib")
278+
279+
/* control */
280+
rv = SCardControl(hCard, CM_IOCTL_GET_FEATURE_REQUEST, NULL, 0,
281+
pbRecvBuffer, sizeof pbRecvBuffer, &dwRecvLength);
282+
printf("Received: ");
283+
for (i=0; i<dwRecvLength; i++)
284+
printf("%02X ", pbRecvBuffer[i]);
285+
printf("\n");
286+
PCSC_ERROR(rv, "SCardControl")
287+
269288
/* card disconnect */
270289
rv = SCardDisconnect(hCard, SCARD_UNPOWER_CARD);
271290
PCSC_ERROR(rv, "SCardDisconnect")

0 commit comments

Comments
 (0)