Example #1
0
def test_wrong_facet():
    device = SoftU2FDevice()

    enrollment = u2f.enrollment(APP_ID, FACETS)

    response1 = device.register(enrollment.json, "http://wrongfacet.com")

    try:
        binding = enrollment.bind(response1)
    except:
        pass
    else:
        assert False, "Incorrect facet should fail!"

    response2 = device.register(enrollment.json, FACET)
    binding = enrollment.bind(response2)

    challenge = binding.make_challenge()

    response = device.getAssertion(challenge.json, "http://notright.com")

    try:
        challenge.validate(response)
    except:
        pass
    else:
        assert False, "Incorrect facet should fail!"
Example #2
0
def test_challenge_soft_u2f():
    device = SoftU2FDevice()
    enrollment = u2f.enrollment(APP_ID, FACETS)
    response = device.register(enrollment.json, FACET)
    binding = enrollment.bind(response)

    challenge1 = binding.make_challenge()
    challenge2 = binding.make_challenge()

    response2 = device.getAssertion(challenge2.json, FACET)
    response1 = device.getAssertion(challenge1.json, FACET)

    assert challenge1.validate(response1)
    assert challenge2.validate(response2)

    try:
        challenge1.validate(response2)
    except:
        pass
    else:
        assert False, "Incorrect validation should fail!"

    try:
        challenge2.validate(response1)
    except:
        pass
    else:
        assert False, "Incorrect validation should fail!"
    def enroll(self, username):
        if username not in self.users:
            self.users[username] = {}

        user = self.users[username]
        enroll = enrollment(self.app_id, [self.facet])
        user['_u2f_enroll_'] = enroll.serialize()
        return enroll.json
def test_enroll_serialization():
    enroll1 = u2f.enrollment('https://example.com')
    enroll2 = u2f.deserialize_enrollment(enroll1.serialize())

    assert enroll1.app_id == enroll2.app_id
    assert enroll1.facets == enroll2.facets
    assert enroll1.json == enroll2.json
    assert enroll1.serialize() == enroll2.serialize()
Example #5
0
def test_enroll_soft_u2f():
    device = SoftU2FDevice()

    enrollment = u2f.enrollment(APP_ID, FACETS)

    response = device.register(enrollment.json, FACET)

    binding = enrollment.bind(response)
    assert binding
Example #6
0
 def enroll(self, username, password):
     try:
         user = self.auth.get_user(username)
         user.set_password(password)
     except:
         user = self.auth.create_user(username, password)
     enroll = enrollment(self.app_id, [self.origin])
     user.attributes['_u2f_enroll_'] = enroll.serialize().encode('base64')
     return enroll.json