bob = Client(server_input_queue=server_input_queue,
             server_output_queue=server_output_queue,
             name='bob',
             h_0='6850',
             K=50,
             key='4321',
             secret=(3, 27))
charlie = Client(server_input_queue=server_input_queue,
                 server_output_queue=server_output_queue,
                 name='charlie',
                 h_0='5478',
                 K=50,
                 key='5678',
                 secret=(7, 21))

passwords = {'alice': (hash_n_times(alice.h_0, 50), 50, 1),
             'bob': (hash_n_times(bob.h_0, 50), 50, 1),
             'charlie': (hash_n_times(charlie.h_0, 50), 50, 1)
             }

server = Server(input_queue=server_input_queue,
                output_queue=server_output_queue,
                p=31,
                passwords=passwords,
                polynomial=[1, 4, 6],
                keys=keys)

assert alice.successfully_finished is None
assert bob.successfully_finished is None
assert charlie.successfully_finished is None
 def prepare_encrypted_message(self):
     message = '{0}:{1}:{2}'.format(self.name,
                                    self.index,
                                    hash_n_times(self.h_0, self.K - self.index))
     self.cipher = Cipher(self.key)
     return self.cipher.encrypt(message)
david = Client(server_input_queue=server_input_queue,
               server_output_queue=server_output_queue,
               name='david',
               h_0='7788',
               K=50,
               key='8812',
               secret=(8, com_po(8, poly) % 31))
edvard = Client(server_input_queue=server_input_queue,
                server_output_queue=server_output_queue,
                name='edvard',
                h_0='9977',
                K=50,
                key='1111',
                secret=(1, com_po(1, poly) % 31))

passwords = {'alice': (hash_n_times(alice.h_0, 50), 50, 1),
             'bob': (hash_n_times(bob.h_0, 50), 50, 1),
             'charlie': (hash_n_times(charlie.h_0, 50), 50, 1),
             'david': (hash_n_times(david.h_0, 50), 50, 1),
             'edvard': (hash_n_times(edvard.h_0, 50), 50, 1)
             }

server = Server(input_queue=server_input_queue,
                output_queue=server_output_queue,
                p=31,
                passwords=passwords,
                polynomial=poly,
                keys=keys)

assert alice.successfully_finished is None
assert bob.successfully_finished is None