code: def step2(self, pub_key, salt):
          
          self._check_initialized()
          pk_str = binascii.hexlify(pub_key).decode()
          salt = binascii.hexlify(salt).decode()
          self.client_session_key, _, _ = self.session.process(pk_str, salt)
          _LOGGER.debug('Client session key: %s', self.client_session_key)
  
          # Generate client public and session key proof.
          client_public = self.session.public
          client_session_key_proof = self.session.key_proof
          _LOGGER.debug('Client public: %s, proof: %s',
                        client_public, client_session_key_proof)
  
          if not self.session.verify_proof(self.session.key_proof_hash):
              raise AuthenticationError('proofs do not match (mitm?)')
          return client_public, client_session_key_proof
docs: Second authentication step.