예제 #1
0
 def p_encryption_key_request(self, c):
     self.event.on_encryption_key_request.fire(server_id=c.server_id, public_key=c.public_key, verify_token=c.verify_token)
     if config.USE_ENCRYPTION:
         self.cipher = encryption.make_aes(self.factory.client_key, self.factory.client_key)
         self.decipher = encryption.make_aes(self.factory.client_key, self.factory.client_key)
         public_key = encryption.load_pubkey(c.public_key)
         enc_shared_sercet = encryption.encrypt(self.factory.client_key, public_key)
         enc_4bytes = encryption.encrypt(c.verify_token, public_key)
         if config.ONLINE_LOGIN:
             yield self.do_auth(c.server_id, c.public_key)
         self.send_packet("encryption key response",
                          {"shared_length": len(enc_shared_sercet),
                          "shared_secret": enc_shared_sercet,
                          "token_length": len(enc_4bytes),
                          "token_secret": enc_4bytes})
     else:
         self.send_packet("client statuses", {"status": 0})
예제 #2
0
파일: factory.py 프로젝트: pj999/TwistedBot
 def p_encryption_key_request(self, c):
     if config.USE_ENCRYPTION:
         try:
             self.cipher = encryption.make_aes(self.factory.client_key, self.factory.client_key)
             self.decipher = encryption.make_aes(self.factory.client_key, self.factory.client_key)
             public_key = encryption.load_pubkey(c.public_key)
             enc_shared_sercet = encryption.encrypt(self.factory.client_key, public_key)
             enc_4bytes = encryption.encrypt(c.verify_token, public_key)
             if config.ONLINE_LOGIN:
                 yield self.do_auth(c.server_id, c.public_key)
             self.send_packet("encryption key response",
                              {"shared_length": len(enc_shared_sercet),
                              "shared_secret": enc_shared_sercet,
                              "token_length": len(enc_4bytes),
                              "token_secret": enc_4bytes})
         except ImportError:
             log.msg('PyCrypto not installed, skipping encryption.')
             self.send_packet("client statuses", {"status": 0})
     else:
         log.msg('USE_ENCRYPTION is False, skipping encryption.')
         self.send_packet("client statuses", {"status": 0})
예제 #3
0
 def p_encryption_key_request(self, c):
     if config.USE_ENCRYPTION:
         try:
             import encryption
             key16 = encryption.get_random_bytes()
             self.cipher = encryption.make_aes(key16, key16)
             self.decipher = encryption.make_aes(key16, key16)
             public_key = encryption.load_pubkey(c.public_key)
             enc_shared_sercet = encryption.encrypt(key16, public_key)
             enc_4bytes = encryption.encrypt(c.verify_token, public_key)
             self.send_packet(
                 "encryption key response",
                 {"shared_length": len(enc_shared_sercet),
                  "shared_secret": enc_shared_sercet,
                  "token_length": len(enc_4bytes),
                  "token_secret": enc_4bytes})
         except ImportError:
             log.msg('PyCrypto not installed, skipping encryption.')
             self.send_packet("client statuses", {"status": 0})
     else:
         log.msg('USE_ENCRYPTION is False, skipping encryption.')
         self.send_packet("client statuses", {"status": 0})
예제 #4
0
 def p_encryption_key_request(self, c):
     self.event.on_encryption_key_request.fire(server_id=c.server_id,
                                               public_key=c.public_key,
                                               verify_token=c.verify_token)
     if config.USE_ENCRYPTION:
         self.cipher = encryption.make_aes(self.factory.client_key,
                                           self.factory.client_key)
         self.decipher = encryption.make_aes(self.factory.client_key,
                                             self.factory.client_key)
         public_key = encryption.load_pubkey(c.public_key)
         enc_shared_sercet = encryption.encrypt(self.factory.client_key,
                                                public_key)
         enc_4bytes = encryption.encrypt(c.verify_token, public_key)
         if config.ONLINE_LOGIN:
             yield self.do_auth(c.server_id, c.public_key)
         self.send_packet(
             "encryption key response", {
                 "shared_length": len(enc_shared_sercet),
                 "shared_secret": enc_shared_sercet,
                 "token_length": len(enc_4bytes),
                 "token_secret": enc_4bytes
             })
     else:
         self.send_packet("client statuses", {"status": 0})