Exemplo n.º 1
0
def test_remove_all_credentials(driver):
    options = VirtualAuthenticatorOptions()
    options.has_resident_key = True

    driver.add_virtual_authenticator(options)
    assert driver.virtual_authenticator_id is not None

    credential = Credential.create_non_resident_credential(
        bytearray({1, 2, 3, 4}),
        "localhost",
        b64decode(BASE64__ENCODED_PK),
        0,
    )

    credential2 = Credential.create_resident_credential(
        bytearray({1, 2, 3, 4, 5}),
        "localhost",
        bytearray({1}),
        b64decode(BASE64__ENCODED_PK),
        1,
    )

    driver.add_credential(credential)
    assert len(driver.get_credentials()) == 1

    driver.add_credential(credential2)
    assert len(driver.get_credentials()) == 2

    driver.remove_all_credentials()
    assert len(driver.get_credentials()) == 0

    driver.remove_virtual_authenticator()
Exemplo n.º 2
0
def test_add_and_remove_resident_credentials(driver, pages):
    driver = create_rk_enabled_authenticator(driver)

    pages.load("virtual-authenticator.html")
    assert driver.virtual_authenticator_id is not None

    credential = Credential.create_non_resident_credential(
        bytearray({1, 2, 3, 4}),
        "localhost",
        b64decode(BASE64__ENCODED_PK),
        0,
    )

    credential2 = Credential.create_resident_credential(
        bytearray({1, 2, 3, 4, 5}),
        "localhost",
        bytearray({1}),
        b64decode(BASE64__ENCODED_PK),
        1,
    )

    driver.add_credential(credential)
    assert len(driver.get_credentials()) == 1

    driver.add_credential(credential2)
    assert len(driver.get_credentials()) == 2

    driver.remove_credential(credential.id)
    assert len(driver.get_credentials()) == 1

    driver.remove_virtual_authenticator()
Exemplo n.º 3
0
def test_rk_enabled_credential(data):

    _id, rp_id, user_handle, privatekey, sign_count = data

    credential = Credential.create_resident_credential(_id, rp_id, user_handle,
                                                       privatekey, sign_count)
    assert credential.id == urlsafe_b64encode(bytearray({1, 2, 3, 4})).decode()
    if credential.is_resident_credential is True:
        assert True
    assert credential.rp_id == "localhost"
    assert credential.user_handle == urlsafe_b64encode(bytearray({1})).decode()
    assert credential.private_key == urlsafe_b64encode(privatekey).decode()
    assert credential.sign_count == 0
Exemplo n.º 4
0
def test_to_dict(data):
    _id, rp_id, user_handle, privatekey, sign_count = data
    credential = Credential.create_resident_credential(_id, rp_id, user_handle,
                                                       privatekey, sign_count)

    credential_dict = credential.to_dict()
    assert credential_dict["credentialId"] == urlsafe_b64encode(
        bytearray({1, 2, 3, 4})).decode()
    if credential_dict["isResidentCredential"] is True:
        assert True
    else:
        assert False
    assert credential_dict["rpId"] == "localhost"
    assert credential_dict["userHandle"] == urlsafe_b64encode(bytearray(
        {1})).decode()
    assert credential_dict["privateKey"] == urlsafe_b64encode(
        privatekey).decode()
    assert credential_dict["signCount"] == 0
Exemplo n.º 5
0
def test_add_resident_credential_not_supported_when_authenticator_uses_u2f_protocol(
        driver, pages):
    driver = create_rk_enabled_u2f_authenticator(driver)
    driver.get(pages.url("virtual-authenticator.html", localhost=True))

    base64_pk = '''
    MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg8_zMDQDYAxlU-Q
    hk1Dwkf0v18GZca1DMF3SaJ9HPdmShRANCAASNYX5lyVCOZLzFZzrIKmeZ2jwU
    RmgsJYxGP__fWN_S-j5sN4tT15XEpN_7QZnt14YvI6uvAgO0uJEboFaZlOEB
    '''

    credential = Credential.create_resident_credential(
        bytearray({1, 2, 3, 4}),
        "localhost",
        bytearray({1}),
        urlsafe_b64decode(base64_pk),
        0,
    )
    with pytest.raises(InvalidArgumentException):
        driver.add_credential(credential)

    driver.remove_virtual_authenticator()