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
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
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