Example #1
0
 def check_metalink(self, metalink, base_url, associated_task=None):
     if self.info.skip_md5_check:
         return True
     url = base_url + "/" + self.info.distro.metalink_md5sums
     metalink_md5sums = downloader.download(url,
                                            self.info.install_dir,
                                            web_proxy=self.info.web_proxy)
     url = base_url + "/" + self.info.distro.metalink_md5sums_signature
     metalink_md5sums_signature = downloader.download(
         url, self.info.install_dir, web_proxy=self.info.web_proxy)
     if not verify_gpg_signature(metalink_md5sums,
                                 metalink_md5sums_signature,
                                 self.info.trusted_keys):
         log.error("Could not verify signature for metalink md5sums")
         return False
     md5sums = read_file(metalink_md5sums)
     log.debug("metalink md5sums:\n%s" % md5sums)
     md5sums = dict(
         [reversed(line.split()) for line in md5sums.split('\n') if line])
     md5sum = md5sums.get(os.path.basename(metalink))
     md5sum2 = get_file_md5(metalink)
     if md5sum != md5sum2:
         log.error("The md5 of the metalink does match")
         return False
     return True
Example #2
0
 def check_metalink(self, metalink, base_url, associated_task=None):
     if self.info.skip_md5_check:
         return True
     url = base_url +"/" + self.info.distro.metalink_md5sums
     metalink_md5sums = downloader.download(url, self.info.install_dir, web_proxy=self.info.web_proxy)
     url = base_url +"/" + self.info.distro.metalink_md5sums_signature
     metalink_md5sums_signature = downloader.download(url, self.info.install_dir, web_proxy=self.info.web_proxy)
     if not verify_gpg_signature(metalink_md5sums, metalink_md5sums_signature, self.info.trusted_keys):
         log.error("Could not verify signature for metalink md5sums")
         return False
     md5sums = read_file(metalink_md5sums)
     log.debug("metalink md5sums:\n%s" % md5sums)
     md5sums = dict([reversed(line.split()) for line in md5sums.replace('*','').split('\n') if line])
     hashsum = md5sums.get(os.path.basename(metalink))
     if not hashsum:
         log.error("Could not find %s in metalink md5sums)" % os.path.basename(metalink))
         return False
     hash_len = len(hashsum)*4
     if hash_len == 160:
         hash_name = 'sha1'
     elif hash_len in [224, 256, 384, 512]:
         hash_name = 'sha' + str(hash_len)
     else:
         hash_name = 'md5'
     hashsum2 = get_file_hash(metalink, hash_name)
     if hashsum != hashsum2:
         log.error("The %s of the metalink does not match (%s != %s)" % (hash_name, hashsum, hashsum2))
         return False
     return True
Example #3
0
 def check_metalink(self, metalink, base_url, associated_task=None):
     if self.info.skip_md5_check:
         return True
     url = base_url +"/" + self.info.distro.metalink_md5sums
     metalink_md5sums = downloader.download(url, self.info.install_dir, web_proxy=self.info.web_proxy)
     url = base_url +"/" + self.info.distro.metalink_md5sums_signature
     metalink_md5sums_signature = downloader.download(url, self.info.install_dir, web_proxy=self.info.web_proxy)
     if not verify_gpg_signature(metalink_md5sums, metalink_md5sums_signature, self.info.trusted_keys):
         log.error("Could not verify signature for metalink md5sums")
         return False
     md5sums = read_file(metalink_md5sums)
     log.debug("metalink md5sums:\n%s" % md5sums)
     md5sums = dict([reversed(line.split()) for line in md5sums.replace('*','').split('\n') if line])
     hashsum = md5sums.get(os.path.basename(metalink))
     if not hashsum:
         log.error("Could not find %s in metalink md5sums)" % os.path.basename(metalink))
         return False
     hash_len = len(hashsum)*4
     if hash_len == 160:
         hash_name = 'sha1'
     elif hash_len in [224, 256, 384, 512]:
         hash_name = 'sha' + str(hash_len)
     else:
         hash_name = 'md5'
     hashsum2 = get_file_hash(metalink, hash_name)
     if hashsum != hashsum2:
         log.error("The %s of the metalink does not match (%s != %s)" % (hash_name, hashsum, hashsum2))
         return False
     return True
Example #4
0
 def check_metalink(self, metalink, base_url, associated_task=None):
     #if self.info.skip_md5_check:
     return True
     url = base_url +"/" + self.info.distro.metalink_md5sums
     metalink_md5sums = downloader.download(url, self.info.install_dir, web_proxy=self.info.web_proxy)
     url = base_url +"/" + self.info.distro.metalink_md5sums_signature
     metalink_md5sums_signature = downloader.download(url, self.info.install_dir, web_proxy=self.info.web_proxy)
     if not verify_gpg_signature(metalink_md5sums, metalink_md5sums_signature, self.info.trusted_keys):
         log.error("Could not verify signature for metalink md5sums")
         return False
     md5sums = read_file(metalink_md5sums)
     log.debug("metalink md5sums:\n%s" % md5sums)
     md5sums = dict([reversed(line.split()) for line in md5sums.split('\n') if line])
     md5sum = md5sums.get(os.path.basename(metalink))
     md5sum2 = get_file_md5(metalink)
     if md5sum != md5sum2:
         log.error("The md5 of the metalink does match")
         return False
     return True