File size: 1,198 Bytes
f02b1de
 
 
 
 
 
7bf2558
f02b1de
73c012d
 
7bf2558
 
 
8f6657f
f02b1de
3a32016
f02b1de
7bf2558
f02b1de
c81ebe1
 
f02b1de
 
 
 
 
 
7814f6f
f02b1de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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": "ok", "result": key, "endtime": endtime}
    else:
        return {"status": "error", "details": {"error_code": -1, "error_details": "This key already got signature"}}