Skip to content

Commit e952f53

Browse files
authored
Merge pull request #23 from zegevlier/main
Add certificate verification back
2 parents 92fc394 + 1a65c16 commit e952f53

File tree

2 files changed

+110
-24
lines changed

2 files changed

+110
-24
lines changed

keyauth.crt

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFHDCCBASgAwIBAgISA6Cc2hQbLVejbK3qRKkFktKjMA0GCSqGSIb3DQEBCwUA
3+
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
4+
EwJSMzAeFw0yMTA2MjMyMDA0MjZaFw0yMTA5MjEyMDA0MjVaMBYxFDASBgNVBAMT
5+
C2tleWF1dGguY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgr1P
6+
ZxHHGrhxbcZ+uMSLBTXpENSdb18SXTemiuCQf6EI/0+XW5y1gDZTnDu9F3kS3OEB
7+
2HHWDdOluEF26JtF+ZH+eVL6bcOcjww4eY+TEqxSMJPR+T7+FtxyEhhKxRbpg9zZ
8+
mNqlQyESBhccKHlahaB5gJ82TMmRUYt6MfcbFmtnY5idm2oxe248Pz0BvVFu92tf
9+
6ll478QiybhwhngAwW8gQTfIoKgR0FjMZX436m3YTmip9z4tUtCO/k50OoXCes+r
10+
LrvWh5dSmxe3TJAz0BnhOD48000QiDQqZxSClXBKcZJQKlKZUDUQtvB5eNHUKohN
11+
4vgwpvw5MTbp8MJF1QIDAQABo4ICRjCCAkIwDgYDVR0PAQH/BAQDAgWgMB0GA1Ud
12+
JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQW
13+
BBRilFRW9CxdwG/182VFx+XGt9wL6DAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDm
14+
H6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5v
15+
LmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAW
16+
BgNVHREEDzANggtrZXlhdXRoLmNvbTBMBgNVHSAERTBDMAgGBmeBDAECATA3Bgsr
17+
BgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRwOi8vY3BzLmxldHNlbmNyeXB0
18+
Lm9yZzCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2AJQgvB6O1Y1siHMfgosiLA3R
19+
2k1ebE+UPWHbTi9YTaLCAAABejqwPisAAAQDAEcwRQIgOi3cALil+YKWkvMb3ZRv
20+
bGH2r1a4r4zLvHZ2ZtVDeukCIQCAyU74LERWJ27prRhRu+DLMIumpJSFyWb1u3lY
21+
NpC59gB2AH0+8viP/4hVaCTCwMqeUol5K8UOeAl/LmqXaJl+IvDXAAABejqwPmAA
22+
AAQDAEcwRQIgQcPuLyUAVo/56kIXmTlinY13tfjc7l6F4kVdOsky9EkCIQDrp/bR
23+
7uVb1vd3pAsKAaUb2LCmy79ZTKeQSEnkWDKfhTANBgkqhkiG9w0BAQsFAAOCAQEA
24+
j8QXBFw5yWDSpyBzUHymTrU4bqZEE4wrZjg9AXc5XPhaBVYtnMqUKTQL72FvD8+E
25+
w6pWatYDc2JA24OzJ7i0cy+J8rzhnGApJNRxmK29M04TgzUv2rDsyyj6yIXiEKVA
26+
+zQd45igH6FqBgmB+NQrfVdXw8sxQYFV652C7sPi1y+7D2L3RzvepdD+24qHy1Tn
27+
Yj63zC1+XntzJg9lpYUAh4nWpj078UCYEz4RodW4pGUFKNdmt0UaG8c/k+x0BnO0
28+
0lpTPRhHmtiMCfqsiCzHdbec2gB+EnWWEf3l9zo0qgDy9fuUUnDY7vG8S6zVSmVK
29+
ivyPIGEnDTR5Myfjw3wuBA==
30+
-----END CERTIFICATE-----
31+
-----BEGIN CERTIFICATE-----
32+
MIIEZTCCA02gAwIBAgIQQAF1BIMUpMghjISpDBbN3zANBgkqhkiG9w0BAQsFADA/
33+
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
34+
DkRTVCBSb290IENBIFgzMB4XDTIwMTAwNzE5MjE0MFoXDTIxMDkyOTE5MjE0MFow
35+
MjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxCzAJBgNVBAMT
36+
AlIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwIVKMz2oJTTDxLs
37+
jVWSw/iC8ZmmekKIp10mqrUrucVMsa+Oa/l1yKPXD0eUFFU1V4yeqKI5GfWCPEKp
38+
Tm71O8Mu243AsFzzWTjn7c9p8FoLG77AlCQlh/o3cbMT5xys4Zvv2+Q7RVJFlqnB
39+
U840yFLuta7tj95gcOKlVKu2bQ6XpUA0ayvTvGbrZjR8+muLj1cpmfgwF126cm/7
40+
gcWt0oZYPRfH5wm78Sv3htzB2nFd1EbjzK0lwYi8YGd1ZrPxGPeiXOZT/zqItkel
41+
/xMY6pgJdz+dU/nPAeX1pnAXFK9jpP+Zs5Od3FOnBv5IhR2haa4ldbsTzFID9e1R
42+
oYvbFQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E
43+
BAMCAYYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5p
44+
ZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTE
45+
p7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEE
46+
AYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2Vu
47+
Y3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0
48+
LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYf
49+
r52LFMLGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0B
50+
AQsFAAOCAQEA2UzgyfWEiDcx27sT4rP8i2tiEmxYt0l+PAK3qB8oYevO4C5z70kH
51+
ejWEHx2taPDY/laBL21/WKZuNTYQHHPD5b1tXgHXbnL7KqC401dk5VvCadTQsvd8
52+
S8MXjohyc9z9/G2948kLjmE6Flh9dDYrVYA9x2O+hEPGOaEOa1eePynBgPayvUfL
53+
qjBstzLhWVQLGAkXXmNs+5ZnPBxzDJOLxhF2JIbeQAcH5H0tZrUlo5ZYyOqA7s9p
54+
O5b85o3AM/OJ+CktFBQtfvBhcJVd9wvlwPsk+uyOy2HI7mNxKKgsBTt375teA2Tw
55+
UdHkhVNcsAKX1H7GNNLOEADksd86wuoXvg==
56+
-----END CERTIFICATE-----
57+
-----BEGIN CERTIFICATE-----
58+
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
59+
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
60+
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
61+
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
62+
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
63+
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
64+
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
65+
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
66+
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
67+
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
68+
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
69+
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
70+
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
71+
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
72+
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
73+
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
74+
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
75+
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
76+
-----END CERTIFICATE-----

keyauth.py

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import json as jsond # json
22

3-
import time # sleep before exit
3+
import time # sleep before exit
44

55
import binascii # hex encoding
66

@@ -13,7 +13,13 @@
1313
from Crypto.Util.Padding import pad, unpad
1414
# aes + padding, sha256
1515

16-
import webbrowser, platform, subprocess, datetime, datetime, sys, os
16+
import webbrowser
17+
import platform
18+
import subprocess
19+
import datetime
20+
import datetime
21+
import sys
22+
import os
1723

1824
from requests_toolbelt.adapters.fingerprint import FingerprintAdapter
1925

@@ -27,7 +33,7 @@ def __init__(self, name, ownerid, secret, version):
2733
self.ownerid = ownerid
2834

2935
self.secret = secret
30-
36+
3137
self.version = version
3238

3339
sessionid = enckey = ""
@@ -62,10 +68,11 @@ def init(self):
6268
sys.exit()
6369

6470
self.sessionid = json["sessionid"]
65-
71+
6672
def register(self, user, password, license, hwid=None):
67-
if hwid is None: hwid = others.get_hwid()
68-
73+
if hwid is None:
74+
hwid = others.get_hwid()
75+
6976
init_iv = SHA256.new(str(uuid4())[:8].encode()).hexdigest()
7077

7178
post_data = {
@@ -91,16 +98,16 @@ def register(self, user, password, license, hwid=None):
9198
else:
9299
print(json["message"])
93100
sys.exit()
94-
101+
95102
def upgrade(self, user, license):
96-
103+
97104
init_iv = SHA256.new(str(uuid4())[:8].encode()).hexdigest()
98105

99106
post_data = {
100107
"type": binascii.hexlify(("upgrade").encode()),
101108
"username": encryption.encrypt(user, self.enckey, init_iv),
102109
"key": encryption.encrypt(license, self.enckey, init_iv),
103-
"sessionid": binascii.hexlify(self.sessionid.encode()),
110+
"sessionid": binascii.hexlify(self.sessionid.encode()),
104111
"name": binascii.hexlify(self.name.encode()),
105112
"ownerid": binascii.hexlify(self.ownerid.encode()),
106113
"init_iv": init_iv
@@ -117,18 +124,19 @@ def upgrade(self, user, license):
117124
else:
118125
print(json["message"])
119126
sys.exit()
120-
127+
121128
def login(self, user, password, hwid=None):
122-
if hwid is None: hwid = others.get_hwid()
123-
129+
if hwid is None:
130+
hwid = others.get_hwid()
131+
124132
init_iv = SHA256.new(str(uuid4())[:8].encode()).hexdigest()
125133

126134
post_data = {
127135
"type": binascii.hexlify(("login").encode()),
128136
"username": encryption.encrypt(user, self.enckey, init_iv),
129137
"pass": encryption.encrypt(password, self.enckey, init_iv),
130138
"hwid": encryption.encrypt(hwid, self.enckey, init_iv),
131-
"sessionid": binascii.hexlify(self.sessionid.encode()),
139+
"sessionid": binascii.hexlify(self.sessionid.encode()),
132140
"name": binascii.hexlify(self.name.encode()),
133141
"ownerid": binascii.hexlify(self.ownerid.encode()),
134142
"init_iv": init_iv
@@ -147,15 +155,16 @@ def login(self, user, password, hwid=None):
147155
sys.exit()
148156

149157
def license(self, key, hwid=None):
150-
if hwid is None: hwid = others.get_hwid()
151-
158+
if hwid is None:
159+
hwid = others.get_hwid()
160+
152161
init_iv = SHA256.new(str(uuid4())[:8].encode()).hexdigest()
153162

154163
post_data = {
155164
"type": binascii.hexlify(("license").encode()),
156165
"key": encryption.encrypt(key, self.enckey, init_iv),
157166
"hwid": encryption.encrypt(hwid, self.enckey, init_iv),
158-
"sessionid": binascii.hexlify(self.sessionid.encode()),
167+
"sessionid": binascii.hexlify(self.sessionid.encode()),
159168
"name": binascii.hexlify(self.name.encode()),
160169
"ownerid": binascii.hexlify(self.ownerid.encode()),
161170
"init_iv": init_iv
@@ -173,9 +182,9 @@ def license(self, key, hwid=None):
173182
else:
174183
print(json["message"])
175184
sys.exit()
176-
185+
177186
def var(self, name):
178-
187+
179188
init_iv = SHA256.new(str(uuid4())[:8].encode()).hexdigest()
180189

181190
post_data = {
@@ -199,9 +208,9 @@ def var(self, name):
199208
print(json["message"])
200209
time.sleep(5)
201210
sys.exit()
202-
211+
203212
def file(self, fileid):
204-
213+
205214
init_iv = SHA256.new(str(uuid4())[:8].encode()).hexdigest()
206215

207216
post_data = {
@@ -226,7 +235,7 @@ def file(self, fileid):
226235
return binascii.unhexlify(json["contents"])
227236

228237
def webhook(self, webid, param):
229-
238+
230239
init_iv = SHA256.new(str(uuid4())[:8].encode()).hexdigest()
231240

232241
post_data = {
@@ -253,7 +262,7 @@ def webhook(self, webid, param):
253262
sys.exit()
254263

255264
def log(self, message):
256-
265+
257266
init_iv = SHA256.new(str(uuid4())[:8].encode()).hexdigest()
258267

259268
post_data = {
@@ -272,7 +281,7 @@ def __do_request(self, post_data):
272281
headers = {"User-Agent": "KeyAuth"}
273282

274283
rq_out = requests.post(
275-
"https://keyauth.com/api/1.0/", data=post_data, headers=headers
284+
"https://keyauth.com/api/1.0/", data=post_data, headers=headers, verify="keyauth.crt"
276285
)
277286

278287
return rq_out.text
@@ -295,7 +304,8 @@ def get_hwid():
295304
if platform.system() != "Windows":
296305
return "None"
297306

298-
cmd = subprocess.Popen("wmic useraccount where name='%username%' get sid", stdout=subprocess.PIPE, shell=True)
307+
cmd = subprocess.Popen(
308+
"wmic useraccount where name='%username%' get sid", stdout=subprocess.PIPE, shell=True)
299309

300310
(suppost_sid, error) = cmd.communicate()
301311

0 commit comments

Comments
 (0)