Esempio n. 1
0
    def make_key_exchange(self):
        self.PAG = DiffieHellman.make_random_prime_and_g()
        self.__PRIVATE_key = DiffieHellman.make_own_private_key()

        # 값 계산 p, g, (g^개인키) mod p
        p = self.PAG[0]
        g = self.PAG[1]
        sharekey = (g ** self.__PRIVATE_key) % p

        self.client_connection.send(('[PAG]' + str(p) + ' ' + str(self.PAG[1])).encode('utf-8'))
        self.client_connection.send(('[MOD]' + str(sharekey)).encode('utf-8'))
Esempio n. 2
0
    def run_server(self, ui_mode_chat_chatlog_box):
        print('서버 생성, 1:1 클라이언트 연결 기다리는 중...')
        self.server_connection = socket(AF_INET, SOCK_STREAM)
        self.server_connection.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)

        self.server_connection.bind((self.server_ip, self.server_port))
        self.server_connection.listen(5)
        self.server_socket, addr = self.server_connection.accept()

        self.__PRIVATE_key = DiffieHellman.make_own_private_key()
        # 반드시 소켓이 수립된 후 진행되어야 할 쓰레드
        # 수신 쓰레드 새로 생성
        start_new_thread(self.recvthread, (ui_mode_chat_chatlog_box, ))