I am trying to develop an android application that advertises a BLE GATT server with the Fido service.
The server generation works well, the Fido Conformance Testing Tools application (shortened to Tools) detects the app properly as a BLE authenticator.
Before implementing the whole protocol, I'd like to validate the first step, which is returning the basic authenticator information with a getInfo. On the Tools, when selecting "Get GetInfo Snapshot" in "MENU", the menu shows up properly. However, excluding the fact that when selecting the radio button corresponding to the authenticator, it unselects itself after 1 to 5 seconds, clicking on "GET GETINFO", causes an error.
To view this error, you must click on "Open inspector" in "MENU" and go to the "Console" tab. The error present is :
Uncaught ReferenceError: maxTimeout is not defined
at BLEGracePeriod (C:\Users\XXX\AppData\Local\Temp\2WIuzDpaOD4Aqf6RE2GmA8hJv4j\resources\app.asar\dependencies\ctap2dep.js:833)
at sendCTAPBLE_Command (C:\Users\XXX\AppData\Local\Temp\2WIuzDpaOD4Aqf6RE2GmA8hJv4j\resources\app.asar\dependencies\ctap2dep.js:804)
at sendCTAPBLE_CBORCommand (C:\Users\XXX\AppData\Local\Temp\2WIuzDpaOD4Aqf6RE2GmA8hJv4j\resources\app.asar\dependencies\ctap2dep.js:824)
at sendCTAP_CBOR (C:\Users\XXX\AppData\Local\Temp\2WIuzDpaOD4Aqf6RE2GmA8hJv4j\resources\app.asar\dependencies\ctap2dep.js:1718)
at sendValidCTAP_CBOR (C:\Users\XXX\AppData\Local\Temp\2WIuzDpaOD4Aqf6RE2GmA8hJv4j\resources\app.asar\dependencies\ctap2dep.js:1731)
at Object.getGetInfo (C:\Users\XXX\AppData\Local\Temp\2WIuzDpaOD4Aqf6RE2GmA8hJv4j\resources\app.asar\dependencies\ctap2dep.js:1741)
at HTMLButtonElement. (controller.js:259)
at HTMLButtonElement.dispatch (jquery.min.js:3)
at HTMLButtonElement.q.handle (jquery.min.js:3)
Clicking on the first link auto-navigates to the "Sources tab" and the "ctap2dep.js" file. The problematic function is :
As you may see on the image above or linked here, the faulty line is C:\Users\XXX\AppData\Local\Temp\2WIuzDpaOD4Aqf6RE2GmA8hJv4j\resources\app.asar\dependencies\ctap2dep.js:833 maxTimeout = maxTimeoutMs || window.config.test.CustomBLEGracePeriod || 750;, which seems to be missing a let to compile properly. It is to be noted maxTimeout is not used after its declaration.
Since it is written at the top of the file
ANY MODIFICATION OF THIS CODE WITHOUT PRIOR CONCENT BY FIDO ALLIANCE WILL BE TREATED AS A BREACH OF THE FIDO ALLIANCE END USER LICENSE AGREEMENT AND WILL RESULT IN CANCELATION OF THE CONFORMANCE TEST RESULTS AND TOTAL AND COMPLETE BAN FROM THE FIDO CERTIFICATION PROGRAMME
I chose to not try to fix this error myself, and instead write this issue here, hoping someone is capable of fixing it relatively quickly.
By submitting this issue you are acknowledging that any information regarding this issue will be publicly available.
If you have privacy concerns, please email conformance-tools@fidoalliance.org
FIRST PRE CHECK
What protocol are you implementing?
NOTE: UAF 1.0 certification have been officially sunset. U2F 1.2 only supported version of U2F.
What is your implementation class?
If you are platform authenticator vendor, please email conformance-tools@fidoalliance.org
What is the version of the tool are you using?
v 1.7.14 & v 1.7.15
What is the OS and the version are you running?
For desktop tools
For UAF mobile tools
Issue description
Hi all !
I am trying to develop an android application that advertises a BLE GATT server with the Fido service.
The server generation works well, the Fido Conformance Testing Tools application (shortened to Tools) detects the app properly as a BLE authenticator.
Before implementing the whole protocol, I'd like to validate the first step, which is returning the basic authenticator information with a getInfo. On the Tools, when selecting "Get GetInfo Snapshot" in "MENU", the menu shows up properly. However, excluding the fact that when selecting the radio button corresponding to the authenticator, it unselects itself after 1 to 5 seconds, clicking on "GET GETINFO", causes an error.
To view this error, you must click on "Open inspector" in "MENU" and go to the "Console" tab. The error present is :
Clicking on the first link auto-navigates to the "Sources tab" and the "ctap2dep.js" file. The problematic function is :
let BLEGracePeriod = (maxTimeoutMs) => { maxTimeout = maxTimeoutMs || window.config.test.CustomBLEGracePeriod || 750; return new Promise((resolve, reject) => { if(window.getConnectionDeviceInfo().transport === 'BLE') setInterval(() => resolve(), maxTimeoutMs || 2000); else resolve(); }) }
As you may see on the image above or linked here, the faulty line is C:\Users\XXX\AppData\Local\Temp\2WIuzDpaOD4Aqf6RE2GmA8hJv4j\resources\app.asar\dependencies\ctap2dep.js:833
maxTimeout = maxTimeoutMs || window.config.test.CustomBLEGracePeriod || 750;
, which seems to be missing alet
to compile properly. It is to be noted maxTimeout is not used after its declaration.Since it is written at the top of the file
Sincirely, Ghislain