2424
2525
2626class api :
27- name = ownerid = secret = ""
27+ name = ownerid = secret = version = ""
2828
29- def __init__ (self , name , ownerid , secret ):
29+ def __init__ (self , name , ownerid , secret , version ):
3030 self .name = name
3131
3232 self .ownerid = ownerid
3333
3434 self .secret = secret
35+
36+ self .version = version
3537
3638 session_id = session_iv = ""
3739
@@ -42,6 +44,7 @@ def init(self):
4244
4345 post_data = {
4446 "type" : binascii .hexlify (("init" ).encode ()),
47+ "ver" : encryption .encrypt (self .version , self .secret , init_iv ),
4548 "name" : binascii .hexlify (self .name .encode ()),
4649 "ownerid" : binascii .hexlify (self .ownerid .encode ()),
4750 "init_iv" : init_iv
@@ -60,8 +63,65 @@ def init(self):
6063 if not json ["success" ]:
6164 print (json ["message" ])
6265 sys .exit ()
66+
67+ def register (self , user , password , license , hwid = None ):
68+ if hwid is None : hwid = others .get_hwid ()
69+
70+ self .session_iv = str (uuid4 ())[:8 ]
71+
72+ init_iv = SHA256 .new (self .session_iv .encode ()).hexdigest ()
73+
74+ post_data = {
75+ "type" : binascii .hexlify (("register" ).encode ()),
76+ "username" : encryption .encrypt (user , self .secret , init_iv ),
77+ "pass" : encryption .encrypt (password , self .secret , init_iv ),
78+ "key" : encryption .encrypt (license , self .secret , init_iv ),
79+ "hwid" : encryption .encrypt (hwid , self .secret , init_iv ),
80+ "name" : binascii .hexlify (self .name .encode ()),
81+ "ownerid" : binascii .hexlify (self .ownerid .encode ()),
82+ "init_iv" : init_iv
83+ }
84+
85+ response = self .__do_request (post_data )
86+
87+ response = encryption .decrypt (response , self .secret , init_iv )
88+
89+ json = jsond .loads (response )
90+
91+ if json ["success" ]:
92+ print ("successfully registered" )
93+ else :
94+ print (json ["message" ])
95+ sys .exit ()
96+
97+ def upgrade (self , user , license ):
98+
99+ self .session_iv = str (uuid4 ())[:8 ]
100+
101+ init_iv = SHA256 .new (self .session_iv .encode ()).hexdigest ()
102+
103+ post_data = {
104+ "type" : binascii .hexlify (("upgrade" ).encode ()),
105+ "username" : encryption .encrypt (user , self .secret , init_iv ),
106+ "key" : encryption .encrypt (license , self .secret , init_iv ),
107+ "name" : binascii .hexlify (self .name .encode ()),
108+ "ownerid" : binascii .hexlify (self .ownerid .encode ()),
109+ "init_iv" : init_iv
110+ }
63111
64- def login (self , key , hwid = None ):
112+ response = self .__do_request (post_data )
113+
114+ response = encryption .decrypt (response , self .secret , init_iv )
115+
116+ json = jsond .loads (response )
117+
118+ if json ["success" ]:
119+ print ("successfully upgraded user" )
120+ else :
121+ print (json ["message" ])
122+ sys .exit ()
123+
124+ def login (self , user , password , hwid = None ):
65125 if hwid is None : hwid = others .get_hwid ()
66126
67127 self .session_iv = str (uuid4 ())[:8 ]
@@ -70,6 +130,35 @@ def login(self, key, hwid=None):
70130
71131 post_data = {
72132 "type" : binascii .hexlify (("login" ).encode ()),
133+ "username" : encryption .encrypt (user , self .secret , init_iv ),
134+ "pass" : encryption .encrypt (password , self .secret , init_iv ),
135+ "hwid" : encryption .encrypt (hwid , self .secret , init_iv ),
136+ "name" : binascii .hexlify (self .name .encode ()),
137+ "ownerid" : binascii .hexlify (self .ownerid .encode ()),
138+ "init_iv" : init_iv
139+ }
140+
141+ response = self .__do_request (post_data )
142+
143+ response = encryption .decrypt (response , self .secret , init_iv )
144+
145+ json = jsond .loads (response )
146+
147+ if json ["success" ]:
148+ print ("successfully logged in" )
149+ else :
150+ print (json ["message" ])
151+ sys .exit ()
152+
153+ def license (self , key , hwid = None ):
154+ if hwid is None : hwid = others .get_hwid ()
155+
156+ self .session_iv = str (uuid4 ())[:8 ]
157+
158+ init_iv = SHA256 .new (self .session_iv .encode ()).hexdigest ()
159+
160+ post_data = {
161+ "type" : binascii .hexlify (("license" ).encode ()),
73162 "key" : encryption .encrypt (key , self .secret , init_iv ),
74163 "hwid" : encryption .encrypt (hwid , self .secret , init_iv ),
75164 "name" : binascii .hexlify (self .name .encode ()),
@@ -85,6 +174,7 @@ def login(self, key, hwid=None):
85174
86175 if json ["success" ]:
87176 self .__load_user_data (json ["info" ])
177+ print ("successfully logged into license" )
88178 else :
89179 print (json ["message" ])
90180 if os .path .exists (KEYSAVE_PATH ):
@@ -96,7 +186,7 @@ def __do_request(self, post_data):
96186 headers = {"User-Agent" : "KeyAuth" }
97187
98188 rq_out = requests .post (
99- "https://keyauth.com/api/v2 /" , data = post_data , headers = headers , verify = "keyauth.pem"
189+ "https://keyauth.com/api/v7 /" , data = post_data , headers = headers , verify = "keyauth.pem"
100190 )
101191
102192 return rq_out .text
0 commit comments