fix auth_aes128_* client side
This commit is contained in:
parent
278ce30c66
commit
588d8ad8b3
1 changed files with 22 additions and 6 deletions
|
@ -1222,9 +1222,16 @@ class auth_aes128_sha1(auth_base):
|
|||
data = data + struct.pack('<H', data_len) + struct.pack('<H', rnd_len)
|
||||
mac_key = self.server_info.iv + self.server_info.key
|
||||
uid = os.urandom(4)
|
||||
#if self.user_key: uid = self.uid else:
|
||||
self.user_key = self.server_info.key
|
||||
encryptor = encrypt.Encryptor(to_bytes(base64.b64encode(self.server_info.key)) + self.salt, 'aes-128-cbc', b'\x00' * 16)
|
||||
if b':' in to_bytes(self.server_info.protocol_param):
|
||||
try:
|
||||
items = to_bytes(self.server_info.protocol_param).split(':')
|
||||
self.user_key = self.hashfunc(items[1]).digest()
|
||||
uid = struct.pack('<I', int(items[0]))
|
||||
except:
|
||||
pass
|
||||
if self.user_key is None:
|
||||
self.user_key = self.server_info.key
|
||||
encryptor = encrypt.Encryptor(to_bytes(base64.b64encode(self.user_key)) + self.salt, 'aes-128-cbc', b'\x00' * 16)
|
||||
data = uid + encryptor.encrypt(data)[16:]
|
||||
data += hmac.new(mac_key, data, self.hashfunc).digest()[:4]
|
||||
check_head = os.urandom(1)
|
||||
|
@ -1415,9 +1422,18 @@ class auth_aes128_sha1(auth_base):
|
|||
return (out_buf, sendback)
|
||||
|
||||
def client_udp_pre_encrypt(self, buf):
|
||||
uid = os.urandom(4)
|
||||
user_key = self.server_info.key
|
||||
buf += uid
|
||||
if self.user_key is None:
|
||||
if b':' in to_bytes(self.server_info.protocol_param):
|
||||
try:
|
||||
items = to_bytes(self.server_info.protocol_param).split(':')
|
||||
self.user_key = self.hashfunc(items[1]).digest()
|
||||
self.user_id = struct.pack('<I', int(items[0]))
|
||||
except:
|
||||
pass
|
||||
if self.user_key is None:
|
||||
self.user_id = os.urandom(4)
|
||||
self.user_key = self.server_info.key
|
||||
buf += self.user_id
|
||||
return buf + hmac.new(user_key, buf, self.hashfunc).digest()[:4]
|
||||
|
||||
def client_udp_post_decrypt(self, buf):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue