diff --git a/src/main.c b/src/main.c index 059069e..af3642a 100644 --- a/src/main.c +++ b/src/main.c @@ -35,11 +35,12 @@ void print_help(char *app_name) { printf("Available commands: \n" "\t%s id\n" "\t%s info\n" + "\t%s pin-info\n" "\t%s version\n" "\t%s check \n" "\t%s regenerate \n" "\t%s set [COUNTER]\n", - app_name, app_name, app_name, app_name, app_name, app_name); + app_name, app_name, app_name, app_name, app_name, app_name, app_name); } @@ -119,6 +120,21 @@ int parse_cmd_and_run(int argc, char *const *argv) { res = RET_NO_ERROR; } } break; + case 'p': { // pin-info + struct ResponseStatus status; + res = device_get_status(&dev, &status); + check_ret((res != RET_NO_ERROR) && (res != RET_NO_PIN_ATTEMPTS), res); + if (res != RET_NO_PIN_ATTEMPTS) { + printf("Admin PIN counter: %d\nUser PIN Counter: %d\n", + status.retry_admin, status.retry_user); + } else { + printf("Admin PIN counter: Not set\nUser PIN Counter: Not set\n"); + } + if (res == RET_NO_PIN_ATTEMPTS) { + // Ignore if PIN is not set here + res = RET_NO_ERROR; + } + } break; case 'c': if (argc != 3) break; res = check_code_on_device(&dev, argv[2]);