code: def validate(message, **config):
      
  
      if not _validate_implementations:
          init(**config)
  
      cfg = copy.deepcopy(config)
      if 'gpg_home' not in cfg:
          cfg['gpg_home'] = os.path.expanduser('~/.gnupg/')
  
      if 'ssldir' not in cfg:
          cfg['ssldir'] = '/etc/pki/fedmsg'
  
      if 'crypto' in message:
          if not message['crypto'] in _possible_backends:
              log.warn("Message specified an impossible crypto backend")
              return False
          try:
              backend = _possible_backends[message['crypto']]
          except Exception as e:
              log.warn("Failed to load %r %r" % (message['crypto'], e))
              return False
      # fedmsg 0.7.2 and earlier did not specify which crypto backend a message
      # was signed with.  As long as we care about interoperability with those
      # versions, attempt to guess the backend to use
      elif 'certificate' in message:
          backend = x509
      elif 'signature' in message:
          backend = gpg
      else:
          log.warn('Could not determine crypto backend.  Message unsigned?')
          return False
  
      if backend in _validate_implementations:
          return backend.validate(message, **cfg)
      else:
          log.warn("Crypto backend %r is disallowed" % backend)
          return False
docs: Return true or false if the message is signed appropriately.