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})
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')})
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})
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})