code: def verify(self, verify_key):
          
          if not self.mardata.signatures or not self.mardata.signatures.sigs:
              # This MAR file can't be verified since it has no signatures
              return False
  
          hashers = []
          for sig in self.mardata.signatures.sigs:
              hashers.append((sig.algorithm_id, sig.signature, make_hasher(sig.algorithm_id)))
  
          assert len(hashers) == len(self.mardata.signatures.sigs)
  
          for block in get_signature_data(self.fileobj,
                                          self.mardata.signatures.filesize):
              [h.update(block) for (_, _, h) in hashers]
  
          for algo_id, sig, h in hashers:
              if not verify_signature(verify_key, sig, h.finalize(), h.algorithm.name):
                  return False
          else:
              return True
docs: Verify that this MAR file has a valid signature.
  
          Args:
              verify_key (str): PEM formatted public key
  
          Returns:
              True if the MAR file's signature matches its contents
              False otherwise; this includes cases where there is no signature.