chiark / gitweb /
Signature file names are not fixed
authorCiaran Gultnieks <ciaran@ciarang.com>
Sat, 31 Jan 2015 16:04:39 +0000 (16:04 +0000)
committerCiaran Gultnieks <ciaran@ciarang.com>
Sat, 31 Jan 2015 16:16:21 +0000 (16:16 +0000)
fdroidserver/common.py

index 5b191d28746f5f128cec4679a551a48ec7ae4808..dc8162e1ee38a7a8bb8a32e849e465b1882c0adf 100644 (file)
@@ -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: