docs: def start(self):
          '''
          Listen to auth requests and send the AES key.
          Each client connection starts a new thread.
          '''
          # Start suicide polling thread
          log.debug('Starting the auth process')
          self.verify_cert()
          self._create_skt()
          log.debug('The auth process can receive at most %d parallel connections', AUTH_MAX_CONN)
          self.socket.listen(AUTH_MAX_CONN)
          thread = threading.Thread(target=self._suicide_when_without_parent, args=(os.getppid(),))
          thread.start()
          signal.signal(signal.SIGTERM, self._exit_gracefully)
          self.__up = True
          while self.__up:
              try:
                  (clientsocket, address) = self.socket.accept()
                  wrapped_auth_skt = ssl.wrap_socket(clientsocket,
                                                     server_side=True,
                                                     certfile=self.certificate,
                                                     keyfile=self.keyfile)
              except ssl.SSLError:
                  log.exception('SSL error', exc_info=True)
                  continue
              except socket.error as error:
                  if self.__up is False:
                      return
                  else:
                      msg = 'Received auth socket error: {}'.format(error)
                      log.error(msg, exc_info=True)
                      raise NapalmLogsExit(msg)
              log.info('%s connected', address)
              log.debug('Starting the handshake')
              client_thread = threading.Thread(target=self._handshake,
                                               args=(wrapped_auth_skt, address))
              client_thread.start()