From d3f8a9f2768a0bfe33a578f50b282e9d419b1633 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sat, 31 Jan 2015 16:04:39 +0000 Subject: [PATCH] Signature file names are not fixed --- fdroidserver/common.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 5b191d28..dc8162e1 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -1908,8 +1908,14 @@ def verify_apks(signed_apk, unsigned_apk, tmp_dir): :returns: None if the verification is successful, otherwise a string describing what went wrong. """ + sigfile = re.compile(r'META-INF/[0-9A-Za-z]+\.(SF|RSA)') with ZipFile(signed_apk) as signed_apk_as_zip: - meta_inf_files = ['META-INF/MANIFEST.MF', 'META-INF/CERT.SF', 'META-INF/CERT.RSA'] + meta_inf_files = ['META-INF/MANIFEST.MF'] + for f in signed_apk_as_zip.namelist(): + if sigfile.match(f): + meta_inf_files.append(f) + if len(meta_inf_files) < 3: + return "Signature files missing from {0}".format(signed_apk) signed_apk_as_zip.extractall(tmp_dir, meta_inf_files) with ZipFile(unsigned_apk, mode='a') as unsigned_apk_as_zip: for meta_inf_file in meta_inf_files: -- 2.30.2