def downstream_recv(self, data):
try:
enc=data.peek()
if self.aes_key is None: #receive aes key
if len(enc) < self.rsa_key_size/8:
return
cmsg=enc[:self.rsa_key_size/8]
try:
self.aes_key=rsa.decrypt(cmsg, self.pk)
except rsa.pkcs1.DecryptionError:
self.close()
return
data.drain(self.rsa_key_size/8)
if AES is not None:
self.enc_cipher = AES.new(self.aes_key, AES.MODE_CBC, self._iv_enc)
else:
self.enc_cipher = pyaes.AESModeOfOperationCBC(self.aes_key, iv = self._iv_enc)
super(RSA_AESServer, self).downstream_recv(data)
except Exception as e:
logging.debug(e)
评论列表
文章目录