def test_getAuthenticateRequest(self): reqdata = AuthenticateRequestData( authenticateRequests=[{ 'keyHandle': 'a' }, { 'keyHandle': 'b' }]) response = SignResponse(keyHandle='b') self.assertEqual({'keyHandle': 'b'}, reqdata.getAuthenticateRequest(response)) self.assertTrue( isinstance(reqdata.getAuthenticateRequest(response), SignRequest))
def verify_authenticate(devices, request_data, response, valid_facets=None): request_data = AuthenticateRequestData.wrap(request_data) response = SignResponse.wrap(response) sign_request = request_data.getAuthenticateRequest(response) device = next(d for d in devices if d.keyHandle == sign_request.keyHandle) return u2f_v2.verify_authenticate( device, sign_request, response, valid_facets )
def test_authenticateRequests(self): reqdata = AuthenticateRequestData(authenticateRequests=[{}, { 'a': 1 }, { 'a': 1, 'b': 2 }]) self.assertEqual([{}, { 'a': 1 }, { 'a': 1, 'b': 2 }], reqdata.authenticateRequests) self.assertTrue( isinstance(reqdata.authenticateRequests[0], SignRequest))
def test_getAuthenticateRequest(self): reqdata = AuthenticateRequestData(authenticateRequests=[{'keyHandle': 'a'}, {'keyHandle': 'b'}]) response = SignResponse(keyHandle='b') self.assertEqual({'keyHandle': 'b'}, reqdata.getAuthenticateRequest(response)) self.assertTrue(isinstance(reqdata.getAuthenticateRequest(response), SignRequest))
def start_authenticate(devices, challenge=None): sign_requests = [u2f_v2.start_authenticate(d, challenge or rand_bytes(32)) for d in devices] return AuthenticateRequestData(authenticateRequests=sign_requests)