def set_aes_key(self, msg_e, signature):
     vr = auth.verify_signature(self.secret, self.salt, msg_e, signature)
     if vr:
         k = qcrypt.pub_decrypt(msg_e, self.pri_key)
         self.aes_key = k
         self.key_agreement = True
         msg = qcrypt.aes_encrypt(AES_SET_MSG, self.aes_key)
         signature = auth.sign_msg(self.partner_secret_hash, msg)
         self.send('confirm_aeskey', msg, signature)
         print 'set aes key. key agreement reached'
     else:
         k = None
         self.send('bad_aeskey', None)
         self.key_agreement = False
         print 'incorrect message signature'
     self.aes_key = k
     return k
 def send_message(self, msg):
     msg = qcrypt.aes_encrypt(msg, self.aes_key)
     self.send('message', msg)