From 6ce89d0f8ce4690940a9644b00dfa252469b1dd7 Mon Sep 17 00:00:00 2001 From: "B. Tanghe" Date: Wed, 2 Mar 2016 11:03:50 +0100 Subject: [PATCH] add u2ftest option - the fido device will enumerate if the button is pressed --- u2f-tests/HID/U2FTest.cc | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/u2f-tests/HID/U2FTest.cc b/u2f-tests/HID/U2FTest.cc index b438bea..b5e7acd 100644 --- a/u2f-tests/HID/U2FTest.cc +++ b/u2f-tests/HID/U2FTest.cc @@ -33,6 +33,7 @@ using namespace std; int arg_Verbose = 0; // default bool arg_Pause = false; // default bool arg_Abort = true; // default +bool arg_enum = false; // default static void pause(const string& prompt) { @@ -318,6 +319,10 @@ int main(int argc, char* argv[]) { // Fob does not have button arg_hasButton = false; } + if (!strncmp(argv[argc], "-e", 2)) { + //Fob enumerate FIDO when button is pushed + arg_enum = true; + } } srand((unsigned int) time(NULL)); @@ -334,18 +339,19 @@ int main(int argc, char* argv[]) { PASS(test_BadCLA()); // Fob with button should need touch. - if (arg_hasButton) PASS(test_Enroll(0x6985)); + if (arg_hasButton && !arg_enum) PASS(test_Enroll(0x6985)); WaitForUserPresence(device, arg_hasButton); PASS(test_Enroll(0x9000)); // Fob with button should have consumed touch. - if (arg_hasButton) PASS(test_Sign(0x6985)); + if (arg_hasButton && !arg_enum) PASS(test_Sign(0x6985)); // Sign with check only should not produce signature. - PASS(test_Sign(0x6985, true)); + if (!arg_enum) PASS(test_Sign(0x6985, true)); + if (arg_enum) WaitForUserPresence(device, arg_hasButton); // Sign with wrong hk. regRsp.keyHandleCertSig[0] ^= 0x55; PASS(test_Sign(0x6a80)); @@ -363,7 +369,7 @@ int main(int argc, char* argv[]) { uint32_t ctr1; PASS(ctr1 = test_Sign(0x9000)); - PASS(test_Sign(0x6985)); + if (!arg_enum) PASS(test_Sign(0x6985)); WaitForUserPresence(device, arg_hasButton);