From cb5e179042ff42aa08c42a15971f198ae28020b6 Mon Sep 17 00:00:00 2001 From: okir Date: Fri, 31 Oct 2003 12:29:12 +0000 Subject: [PATCH] - Moved p15 print_card function here - print preferred_language, if given - don't print pin path if there is none - print tries_left if present git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@1586 c6295689-39f2-0310-b995-f0e70906c6a9 --- src/tests/print.c | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/src/tests/print.c b/src/tests/print.c index b24e9c00..d28191fb 100644 --- a/src/tests/print.c +++ b/src/tests/print.c @@ -9,10 +9,40 @@ #endif #include #include +#include #include #include #include "sc-test.h" +void sc_test_print_card(const sc_pkcs15_card_t *card) +{ + const char *flags[] = { + "Read-only", + "Login required", + "PRN generation", + "EID compliant" + }; + int i, count = 0; + + assert(card != NULL); + printf("PKCS#15 Card [%s]:\n", card->label); + printf("\tVersion : %d\n", card->version); + printf("\tSerial number : %s\n", card->serial_number); + printf("\tManufacturer ID: %s\n", card->manufacturer_id); + if (card->preferred_language) + printf("\tLanguage : %s\n", card->preferred_language); + printf("\tFlags : "); + for (i = 0; i < 4; i++) { + if ((card->flags >> i) & 1) { + if (count) + printf(", "); + printf("%s", flags[i]); + count++; + } + } + printf("\n"); +} + static void print_pin(const struct sc_pkcs15_object *obj) { const char *pin_flags[] = @@ -56,12 +86,16 @@ static void print_pin(const struct sc_pkcs15_object *obj) default: printf("[encoding %d]\n", pin->type); } - printf("\tPath : "); - for (i = 0; i < pin->path.len; i++) { - printf("%02X", pin->path.value[i]); - p += 2; + if (pin->path.len) { + printf("\tPath : "); + for (i = 0; i < pin->path.len; i++) { + printf("%02X", pin->path.value[i]); + p += 2; + } + printf("\n"); } - printf("\n"); + if (pin->tries_left >= 0) + printf("\tTries left : %d\n", pin->tries_left); } static void print_prkey(const struct sc_pkcs15_object *obj)