Signed-off-by: Jakub Jelen <jjelen@xxxxxxxxxx> Reviewed-by: Robert Relyea <rrelyea@xxxxxxxxxx> --- tests/libcacard.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/libcacard.c b/tests/libcacard.c index 838e3c1..5112838 100644 --- a/tests/libcacard.c +++ b/tests/libcacard.c @@ -159,6 +159,10 @@ static void get_properties(VReader *reader, int object_type) /* Get properties */ 0x80, 0x56, 0x01, 0x00, 0x00 }; + uint8_t get_properties_tag[] = { + /* Get properties [tag list] */ + 0x80, 0x56, 0x02, 0x00, 0x02, 0x01, 0x01, 0x00 + }; int verified_pki_properties = 0; int num_objects = 0, num_objects_expected = -1; @@ -275,6 +279,26 @@ static void get_properties(VReader *reader, int object_type) if (object_type == TEST_PKI) { g_assert_cmpint(verified_pki_properties, ==, 1); } + + dwRecvLength = APDUBufSize; + status = vreader_xfr_bytes(reader, + get_properties_tag, sizeof(get_properties_tag), + pbRecvBuffer, &dwRecvLength); + g_assert_cmpint(status, ==, VREADER_OK); + g_assert_cmpint(dwRecvLength, ==, 2); + g_assert_cmpint(pbRecvBuffer[0], ==, VCARD7816_SW1_LE_ERROR); + g_assert_cmpint(pbRecvBuffer[1], ==, 0x0e); /* Two applet information buffers */ + + /* Update the APDU to match Le field from response and resend */ + get_properties_tag[7] = pbRecvBuffer[1]; + dwRecvLength = APDUBufSize; + status = vreader_xfr_bytes(reader, + get_properties_tag, sizeof(get_properties_tag), + pbRecvBuffer, &dwRecvLength); + g_assert_cmpint(status, ==, VREADER_OK); + g_assert_cmpint(dwRecvLength, ==, 16); /* Two applet information buffers + status */ + g_assert_cmpint(pbRecvBuffer[dwRecvLength-2], ==, VCARD7816_SW1_SUCCESS); + g_assert_cmpint(pbRecvBuffer[dwRecvLength-1], ==, 0x00); } static void get_acr(VReader *reader) -- 2.17.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel