Пример #1
0
def create_fido2_keys_user(user_id):
    user = get_user_and_accounts(user_id)
    data = request.get_json()
    cbor_data = cbor.decode(base64.b64decode(data["payload"]))
    validate(data, fido2_key_schema)

    id = uuid.uuid4()
    key = decode_and_register(cbor_data, get_fido2_session(user_id))
    save_fido2_key(Fido2Key(id=id, user_id=user_id, name=cbor_data["name"], key=key))
    _update_alert(user, changes={'security_key_created': None})
    return jsonify({"id": id})
Пример #2
0
def fido2_keys_user_register(user_id):
    user = get_user_and_accounts(user_id)
    keys = list_fido2_keys(user_id)

    credentials = list(map(lambda k: pickle.loads(base64.b64decode(k.key)), keys))

    registration_data, state = Config.FIDO2_SERVER.register_begin({
        'id': user.id.bytes,
        'name': user.name,
        'displayName': user.name,
    }, credentials, user_verification='discouraged')
    create_fido2_session(user_id, state)

    # API Client only like JSON
    return jsonify({"data": base64.b64encode(cbor.encode(registration_data)).decode('utf8')})
Пример #3
0
def delete_fido2_keys_user(user_id, key_id):
    user = get_user_and_accounts(user_id)
    delete_fido2_key(user_id, key_id)
    _update_alert(user, changes={'security_key_deleted': None})
    return jsonify({"id": key_id})
Пример #4
0
def get_organisations_and_services_for_user(user_id):
    user = get_user_and_accounts(user_id)
    data = get_orgs_and_services(user)
    return jsonify(data)
def delete_fido2_keys_user(user_id, key_id):
    user = get_user_and_accounts(user_id)
    delete_fido2_key(user_id, key_id)
    _update_alert(user)
    return jsonify({"id": key_id})