refine auth_aes128_* & http_*
This commit is contained in:
parent
74083af472
commit
c4c1cd6dc1
2 changed files with 13 additions and 8 deletions
|
@ -1319,12 +1319,12 @@ class auth_aes128_sha1(auth_base):
|
||||||
sendback = False
|
sendback = False
|
||||||
|
|
||||||
if not self.has_recv_header:
|
if not self.has_recv_header:
|
||||||
if len(self.recv_buf) < 7:
|
if len(self.recv_buf) >= 7 or len(self.recv_buf) in [2, 3]:
|
||||||
return (b'', False)
|
recv_len = min(len(self.recv_buf), 7)
|
||||||
mac_key = self.server_info.recv_iv + self.server_info.key
|
mac_key = self.server_info.recv_iv + self.server_info.key
|
||||||
sha1data = hmac.new(mac_key, self.recv_buf[:1], self.hashfunc).digest()[:6]
|
sha1data = hmac.new(mac_key, self.recv_buf[:1], self.hashfunc).digest()[:recv_len - 1]
|
||||||
if sha1data != self.recv_buf[1:7]:
|
if sha1data != self.recv_buf[1:recv_len]:
|
||||||
return self.not_match_return(self.recv_buf)
|
return self.not_match_return(self.recv_buf)
|
||||||
|
|
||||||
if len(self.recv_buf) < 31:
|
if len(self.recv_buf) < 31:
|
||||||
return (b'', False)
|
return (b'', False)
|
||||||
|
|
|
@ -168,6 +168,11 @@ class http_simple(plain.plain):
|
||||||
return (b'E'*2048, False, False)
|
return (b'E'*2048, False, False)
|
||||||
return (buf, True, False)
|
return (buf, True, False)
|
||||||
|
|
||||||
|
def error_return(self, buf):
|
||||||
|
self.has_sent_header = True
|
||||||
|
self.has_recv_header = True
|
||||||
|
return (b'E'*2048, False, False)
|
||||||
|
|
||||||
def server_decode(self, buf):
|
def server_decode(self, buf):
|
||||||
if self.has_recv_header:
|
if self.has_recv_header:
|
||||||
return (buf, True, False)
|
return (buf, True, False)
|
||||||
|
@ -199,10 +204,10 @@ class http_simple(plain.plain):
|
||||||
if host not in hosts:
|
if host not in hosts:
|
||||||
return self.not_match_return(buf)
|
return self.not_match_return(buf)
|
||||||
if len(ret_buf) < 4:
|
if len(ret_buf) < 4:
|
||||||
return self.not_match_return(buf)
|
return self.error_return(buf)
|
||||||
if len(datas) > 1:
|
if len(datas) > 1:
|
||||||
ret_buf += datas[1]
|
ret_buf += datas[1]
|
||||||
if len(ret_buf) >= 7:
|
if len(ret_buf) >= 13:
|
||||||
self.has_recv_header = True
|
self.has_recv_header = True
|
||||||
return (ret_buf, True, False)
|
return (ret_buf, True, False)
|
||||||
return self.not_match_return(buf)
|
return self.not_match_return(buf)
|
||||||
|
|
Loading…
Add table
Reference in a new issue