summaryrefslogtreecommitdiff
path: root/tests/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/common.c')
-rw-r--r--tests/common.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/common.c b/tests/common.c
index f1613c1..23d39ee 100644
--- a/tests/common.c
+++ b/tests/common.c
@@ -980,7 +980,21 @@ void test_msft_applet(void)
* in select_aid()
*/
+ /* ask the applet for unknown data */
+ getdata[2] = 0xff;
+ getdata[3] = 0xff;
+ dwRecvLength = APDUBufSize;
+ status = vreader_xfr_bytes(reader,
+ getdata, sizeof(getdata),
+ pbRecvBuffer, &dwRecvLength);
+ g_assert_cmpint(status, ==, VREADER_OK);
+ g_assert_cmpint(dwRecvLength, ==, 2);
+ g_assert_cmpint(pbRecvBuffer[dwRecvLength-2], ==, 0x6a);
+ g_assert_cmpint(pbRecvBuffer[dwRecvLength-1], ==, 0x88);
+
/* ask the applet for our data */
+ getdata[2] = 0x7f;
+ getdata[3] = 0x68;
dwRecvLength = APDUBufSize;
status = vreader_xfr_bytes(reader,
getdata, sizeof(getdata),
@@ -1070,6 +1084,29 @@ void test_gp_applet(void)
}
g_assert_cmpint(equal_bytes, <, 6);
+ /* 0x0066 tag should return card registration data */
+ dwRecvLength = APDUBufSize;
+ getdata[2] = 0x00;
+ getdata[3] = 0x66;
+ status = vreader_xfr_bytes(reader,
+ getdata, sizeof(getdata),
+ pbRecvBuffer, &dwRecvLength);
+ g_assert_cmpint(status, ==, VREADER_OK);
+ g_assert_cmpint(dwRecvLength, ==, 53);
+ g_assert_cmpint(pbRecvBuffer[dwRecvLength-2], ==, VCARD7816_SW1_SUCCESS);
+ g_assert_cmpint(pbRecvBuffer[dwRecvLength-1], ==, 0x00);
+
+ /* anything else should fail */
+ dwRecvLength = APDUBufSize;
+ getdata[2] = 0xff;
+ getdata[3] = 0xff;
+ status = vreader_xfr_bytes(reader,
+ getdata, sizeof(getdata),
+ pbRecvBuffer, &dwRecvLength);
+ g_assert_cmpint(status, ==, VREADER_OK);
+ g_assert_cmpint(dwRecvLength, ==, 2);
+ g_assert_cmpint(pbRecvBuffer[dwRecvLength-2], ==, 0x6a);
+ g_assert_cmpint(pbRecvBuffer[dwRecvLength-1], ==, 0x88);
vreader_free(reader); /* get by id ref */
}