imperialwool's picture
api doc change
f0b744f
raw
history blame
No virus
1.2 kB
import time
import random
import hashlib
from .. import helpers
def signatureGen(request):
endtime = round(time.time())+3600
uK = helpers.getFromRequest(request, "key")
if uK == None: return {"status": "error", "details": {"error_code": -1, "error_details": "No key to generate signature"}}
userKey = hashlib.md5(uK.encode()).hexdigest()
text = f"--START SIGNATURE-- {userKey}{endtime} --END SIGNATURE--"
salt = hashlib.md5("funapi-salt".encode()).hexdigest()[0:16]
creatorKey = hashlib.md5(f"HOST-IP:{request.remote_addr};USERKEY={userKey};DATE={time.strftime('%Y-%m-%d')};".encode()).hexdigest()
key = hashlib.blake2b(text.encode(), key=userKey.encode(), salt=salt.encode()).hexdigest().upper()
config = helpers.configFile()
db = helpers.EazySQLite3(config['signatures-db'])
query = db.query(f"INSERT INTO `table` (`key`, `endtime`, `creatorKey`) VALUES (\"{key}\", \"{endtime}\", \"{creatorKey}\")")
if query['status']:
return {"status": "pass", "result": key, "endtime": endtime}
else:
return {"status": "error", "details": {"error_code": -1, "error_details": "This key already got signature"}}