def webapp_login(): global caller # logging in if request.method == 'POST': host_param = request.form['host'] try: if not Caller.check_up(host_param): return render_template("login.html", msg='host is down', host=host_param) private_key_df = request.form['private_key'] private_key_df_derived = Parser.derive(private_key_df) public_key_df = gen_public_key(private_key_df_derived) caller = Caller(host_param, public_key_df) return redirect(url_for('webapp.webapp_main', path='', dirname='')) except TypeError as te: return render_template("login.html", msg=str(te), host=host_param) elif request.method == 'GET': if caller is not None: if caller.get_session().status_code == 200: return redirect(url_for('webapp.webapp_main', path='', dirname='')) return render_template("login.html")
def get_public_key() -> (int, bytes): private_key = click.prompt('private key', hide_input=True, type=str) # derive private_key to avoid dictionary attack private_key_derived = Parser.derive(private_key) return gen_public_key(private_key_derived), private_key_derived