-
Notifications
You must be signed in to change notification settings - Fork 10
/
encrypt.py
81 lines (70 loc) · 2.09 KB
/
encrypt.py
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from configparser import ConfigParser
from hashlib import sha256
from base64 import b64encode, b64decode
import aes
def writeToConf(key, value, file):
global name
name = file
name += ".cnf"
config = ConfigParser()
config.read(file)
encValue = encr(value)
config.set(config.sections()[0], key, encValue)
cfgfile = open(file, 'w')
config.write(cfgfile)
cfgfile.close()
def readConf(key, file):
config = ConfigParser()
config.read(file)
try:
return decr(config.get(config.sections()[0], key))
except TypeError:
print('Password is probably incorrect')
exit(1)
def initConf(name):
config = ConfigParser()
config.add_section('SupremeBotConfig')
for x in paydetails:
config.set('SupremeBotConfig', x, ' ')
cfgfile = open(name, 'w')
config.write(cfgfile)
cfgfile.close()
def encr(value):
m = sha256()
m.update(password)
key = m.digest()
iv = m.digest()[::2]
if len(value) == 0:
value = ' '
pad = 16 - len(value) % 16
raw = value + pad * chr(pad)
cipher = aes.AESModeOfOperationCFB(key, iv = iv)
return b64encode(cipher.encrypt(raw)).decode('utf-8')
def decr(value):
m = sha256()
m.update(password)
passwd = m.digest()
iv = m.digest()[::2]
cipher = aes.AESModeOfOperationCFB(passwd, iv = iv)
decrypted = cipher.decrypt(b64decode(value))
try:
return decrypted[:-ord(decrypted[-1:])].decode('utf-8')
except UnicodeDecodeError:
print('Password is probably incorrect')
exit(1)
def update(pd):
old = []
config = ConfigParser()
config.read('config.cnf')
if config.items(config.sections()[0])[-1][0] == 'cardtype':
newconf = ConfigParser()
newconf.add_section('SupremeBotConfig')
old = config.items(config.sections()[0])
for x in pd:
for y in old:
if y[0] in x.lower():
pd[x] = y[1]
newconf.set(config.sections()[0], x, y[1])
cfgfile = open(name, 'w')
newconf.write(cfgfile)
cfgfile.close()