-
Notifications
You must be signed in to change notification settings - Fork 109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Token2 throws PIN_AUTH_INVALID when PIN Auth Protocol V2 and hmac-secret are used #192
Comments
Note, I don't think this is related to the use of pinAuth sharedKey encryption on the hmac-secret salt. That part works fine, and when testing with PIN Protocol V1 that payload is sent without UV and without PinAuth token on the request and it still works as expected. |
I worked out the issue. It all comes down to this line in the code. When PinProtocol is not set on the Client when doing GetAssertion (because uv is false, verification is not required), it sets the PinUVAuthVersion parameter on the GetAssertion request to I don't really know what the solution would be for this. The ClientBackend needs to know if any of the extensions have instantiated a Pin Protocol, and ensure it matches the PIN protocol itself is currently using (or if it doesn't have one, set it). |
Another thing to consider is the fact that Extensions are instantiated and processed ( |
Version 1.1.2 is now released and should hopefully resolve this. |
I raised #197 before I saw this issue. |
This bug has a very specific set of circumstances to reproduce.
This happens when performing GetAssertion on the device, under the following conditions:
If PinAuth Protocol V1 is forced, the error does not occur.
If hmac-secret extension is not requested, the error does not occur.
If UV is set to Preferred or Required, the request is authenticated with a PinAuth Token, and the error does not occur.
When calling "CreateCredential", with "hmac-secret" extension, the error does not occur. It is only when calling "GetAssertion".
I don't know if this is a python-fido2 issue or a Token2 firmware issue. I am planning initiate a support request with Token2 and relay the same details. I also haven't yet tried to reproduce the configuration in libfido2 to see if it produces the same error.
The text was updated successfully, but these errors were encountered: