docs: def identify(self, header):
          """Identifies a signature and returns the appropriate Signer object.
          This is done by reading an authorization header and matching it to signature characteristics.
          None is returned if the authorization header does not match the format of any signature identified by this identifier.
  
          Keyword arguments:
          header -- the Authorization header of a request.
          """
          for ver, signer in self.signers.items():
              if signer.matches(header):
                  return signer
          return None