code: def verifySignature(self, msg):
          
          if isinstance(msg, self.authnWhitelist):
              return
          if isinstance(msg, Propagate):
              typ = 'propagate'
              req = TxnUtilConfig.client_request_class(**msg.request)
          else:
              typ = ''
              req = msg
  
          key = None
  
          if isinstance(req, Request):
              key = req.key
  
          if not isinstance(req, Mapping):
              req = req.as_dict
  
          with self.metrics.measure_time(MetricsName.VERIFY_SIGNATURE_TIME):
              identifiers = self.authNr(req).authenticate(req, key=key)
  
          logger.debug("{} authenticated {} signature on {} request {}".
                       format(self, identifiers, typ, req['reqId']),
                       extra={"cli": True,
                              "tags": ["node-msg-processing"]})
docs: Validate the signature of the request
          Note: Batch is whitelisted because the inner messages are checked
  
          :param msg: a message requiring signature verification
          :return: None; raises an exception if the signature is not valid