diff --git a/web/backend/config.sample.json b/web/backend/config.sample.json index f94bf6a..be34908 100644 --- a/web/backend/config.sample.json +++ b/web/backend/config.sample.json @@ -16,6 +16,7 @@ "MNT": "YOUR-MNT", // your MNT tag "listen": "0.0.0.0", "port": 8042, + "domain": "example.org", // domain to use for kioubit verification service "flask-secret-key": "", // secret key for session cookies "flask-debug": false, // optional; default false "flask-template-dir": "../frontend/" // optional; default "../frontend" diff --git a/web/backend/kioubit_verify.py b/web/backend/kioubit_verify.py index 371cf9d..fc8a031 100644 --- a/web/backend/kioubit_verify.py +++ b/web/backend/kioubit_verify.py @@ -35,9 +35,10 @@ class AuthVerifyer (): #, base64.b64decode(params), "sha512") h = SHA512.new() h.update(base64.b64decode(params)) - print(h.hexdigest()) + #print(h.hexdigest()) verifier = DSS.new(self.pubkey, 'fips-186-3') - print(verifier.verify(h, signature)) + valid = verifier.verify(h, signature) + return valid if __name__ == "__main__": example_com_verifier = AuthVerifyer("example.com") diff --git a/web/backend/main.py b/web/backend/main.py index 1e552e9..296d167 100644 --- a/web/backend/main.py +++ b/web/backend/main.py @@ -1,9 +1,11 @@ #! /usr/bin/env python3 from flask import Flask, Response, redirect, render_template, request, session, abort -import json, os +import json, os, base64 from functools import wraps +import kioubit_verify + app = Flask(__name__) class Config (dict): @@ -40,6 +42,7 @@ class Config (dict): print(self._config) config = Config() + def auth_required(): def wrapper(f): @wraps(f) @@ -52,6 +55,15 @@ def auth_required(): return wrapper +kverifyer = kioubit_verify.AuthVerifyer(config["domain"]) +@app.route("/api/auth/kverify", methods=["GET", "POST"]) +def kioubit_auth(): + params = request.args["params"] + signature = request.args["signature"] + print(base64.b64decode(params)) + return str(kverifyer.verify(params, signature)) + + @app.route("/login",methods=["GET","POST"]) def login(): if request.method == "GET": diff --git a/web/frontend/login.html b/web/frontend/login.html index 631cb3b..e5df8aa 100644 --- a/web/frontend/login.html +++ b/web/frontend/login.html @@ -4,7 +4,7 @@
- +