bug 1357815 - 4/4: go a bit overboard on testcases for SHA-256 support in add-on signatures r?jcj draft
authorDavid Keeler <dkeeler@mozilla.com>
Fri, 27 Oct 2017 11:20:33 -0700
changeset 689672 978d419fe840806ccdba7bb833cf8f6421faae24
parent 689671 0ce20c460403e496d0672ccc7702365519b9df46
child 738374 24b7b924aa8773df6f993b8d47df2aba156be86d
push id87085
push userbmo:dkeeler@mozilla.com
push dateTue, 31 Oct 2017 21:34:47 +0000
reviewersjcj
bugs1357815
milestone58.0a1
bug 1357815 - 4/4: go a bit overboard on testcases for SHA-256 support in add-on signatures r?jcj MozReview-Commit-ID: K4WYTYPXpi1
security/apps/AppSignatureVerification.cpp
security/manager/ssl/tests/unit/head_psm.js
security/manager/ssl/tests/unit/test_nss_shutdown.js
security/manager/ssl/tests/unit/test_signed_apps.js
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1-256_p7-1-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1-256_p7-1.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1-256_p7-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1_p7-1-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1_p7-1.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1_p7-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-256_p7-1-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-256_p7-1.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-256_p7-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1-256_p7-1-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1-256_p7-1.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1-256_p7-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1_p7-1-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1_p7-1.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1_p7-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-256_p7-1-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-256_p7-1.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-256_p7-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1-256_p7-1-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1-256_p7-1.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1-256_p7-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1_p7-1-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1_p7-1.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1_p7-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-256_p7-1-256.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-256_p7-1.zip
security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-256_p7-256.zip
security/manager/ssl/tests/unit/test_signed_apps/empty_signerInfos.zip
security/manager/ssl/tests/unit/test_signed_apps/moz.build
security/manager/ssl/tests/unit/test_signed_apps/sha1_and_sha256_manifest_sha1_signature_file.zip
security/manager/ssl/tests/unit/test_signed_apps/sha1_and_sha256_manifest_sha256_signature_file.zip
security/manager/ssl/tests/unit/test_signed_apps/sha1_manifest_sha1_and_sha256_signature_file.zip
security/manager/ssl/tests/unit/test_signed_apps/sha256_manifest_sha1_and_sha256_signature_file.zip
security/manager/ssl/tests/unit/test_signed_apps/signed_app.zip
security/manager/ssl/tests/unit/test_signed_apps/signed_app_sha1_and_sha256.zip
security/manager/ssl/tests/unit/test_signed_apps/signed_app_sha256.zip
security/manager/ssl/tests/unit/test_signed_apps/signed_app_sha256_manifest.zip
security/manager/ssl/tests/unit/test_signed_apps/signed_app_sha256_signature_file.zip
security/manager/ssl/tests/unit/test_signed_apps/unknown_issuer_app.zip
security/manager/ssl/tests/unit/test_signed_apps/unsigned_app.zip
--- a/security/apps/AppSignatureVerification.cpp
+++ b/security/apps/AppSignatureVerification.cpp
@@ -808,17 +808,17 @@ VerifySignature(AppTrustedRoot trustedRo
     return NS_ERROR_INVALID_ARG;
   }
 
   UniqueNSSCMSMessage
     cmsMsg(NSS_CMSMessage_CreateFromDER(const_cast<SECItem*>(&buffer), nullptr,
                                         nullptr, nullptr, nullptr, nullptr,
                                         nullptr));
   if (!cmsMsg) {
-    return NS_ERROR_CMS_VERIFY_ERROR_PROCESSING;
+    return NS_ERROR_CMS_VERIFY_NOT_SIGNED;
   }
 
   if (!NSS_CMSMessage_IsSigned(cmsMsg.get())) {
     return NS_ERROR_CMS_VERIFY_NOT_SIGNED;
   }
 
   NSSCMSContentInfo* cinfo = NSS_CMSMessage_ContentLevel(cmsMsg.get(), 0);
   if (!cinfo) {
--- a/security/manager/ssl/tests/unit/head_psm.js
+++ b/security/manager/ssl/tests/unit/head_psm.js
@@ -45,16 +45,17 @@ const SEC_ERROR_BAD_SIGNATURE           
 const SEC_ERROR_EXPIRED_CERTIFICATE                     = SEC_ERROR_BASE + 11;
 const SEC_ERROR_REVOKED_CERTIFICATE                     = SEC_ERROR_BASE + 12;
 const SEC_ERROR_UNKNOWN_ISSUER                          = SEC_ERROR_BASE + 13;
 const SEC_ERROR_UNTRUSTED_ISSUER                        = SEC_ERROR_BASE + 20;
 const SEC_ERROR_UNTRUSTED_CERT                          = SEC_ERROR_BASE + 21;
 const SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE              = SEC_ERROR_BASE + 30;
 const SEC_ERROR_CA_CERT_INVALID                         = SEC_ERROR_BASE + 36;
 const SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION              = SEC_ERROR_BASE + 41;
+const SEC_ERROR_PKCS7_BAD_SIGNATURE                     = SEC_ERROR_BASE + 47;
 const SEC_ERROR_INADEQUATE_KEY_USAGE                    = SEC_ERROR_BASE + 90;
 const SEC_ERROR_INADEQUATE_CERT_TYPE                    = SEC_ERROR_BASE + 91;
 const SEC_ERROR_CERT_NOT_IN_NAME_SPACE                  = SEC_ERROR_BASE + 112;
 const SEC_ERROR_CERT_BAD_ACCESS_LOCATION                = SEC_ERROR_BASE + 117;
 const SEC_ERROR_OCSP_MALFORMED_REQUEST                  = SEC_ERROR_BASE + 120;
 const SEC_ERROR_OCSP_SERVER_ERROR                       = SEC_ERROR_BASE + 121;
 const SEC_ERROR_OCSP_TRY_SERVER_LATER                   = SEC_ERROR_BASE + 122;
 const SEC_ERROR_OCSP_REQUEST_NEEDS_SIG                  = SEC_ERROR_BASE + 123;
--- a/security/manager/ssl/tests/unit/test_nss_shutdown.js
+++ b/security/manager/ssl/tests/unit/test_nss_shutdown.js
@@ -1,17 +1,17 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 "use strict";
 
 // This test attempts to ensure that PSM doesn't deadlock or crash when shutting
 // down NSS while a background thread is attempting to use NSS.
-// Uses test_signed_apps/signed_app.zip from test_signed_apps.js.
+// Uses test_signed_apps/app_mf-1_sf-1_p7-1.zip from test_signed_apps.js.
 
 function startAsyncNSSOperation(certdb, appFile) {
   return new Promise((resolve, reject) => {
     certdb.openSignedAppFileAsync(Ci.nsIX509CertDB.AppXPCShellRoot, appFile,
       function(rv, aZipReader, aSignerCert) {
         // rv will either indicate success (if NSS hasn't been shut down yet) or
         // it will be some error code that varies depending on when NSS got shut
         // down. As such, there's nothing really to check here. Just resolve the
@@ -23,17 +23,17 @@ function startAsyncNSSOperation(certdb, 
 
 add_task(async function() {
   do_get_profile();
   let psm = Cc["@mozilla.org/psm;1"]
               .getService(Ci.nsISupports)
               .QueryInterface(Ci.nsIObserver);
   let certdb = Cc["@mozilla.org/security/x509certdb;1"]
                  .getService(Ci.nsIX509CertDB);
-  let appFile = do_get_file("test_signed_apps/signed_app.zip");
+  let appFile = do_get_file("test_signed_apps/app_mf-1_sf-1_p7-1.zip");
 
   let promises = [];
   for (let i = 0; i < 25; i++) {
     promises.push(startAsyncNSSOperation(certdb, appFile));
   }
   // Trick PSM into thinking it should shut down NSS. If this test doesn't
   // hang or crash, we're good.
   psm.observe(null, "profile-before-change", null);
--- a/security/manager/ssl/tests/unit/test_signed_apps.js
+++ b/security/manager/ssl/tests/unit/test_signed_apps.js
@@ -1,32 +1,23 @@
 "use strict";
-/* To regenerate the certificates and apps for this test:
-
-        cd security/manager/ssl/tests/unit/test_signed_apps
-        PATH=$NSS/bin:$NSS/lib:$PATH ./generate.sh
-        cd ../../../../../..
-        make -C $OBJDIR/security/manager/ssl/tests
 
-   $NSS is the path to NSS binaries and libraries built for the host platform.
-   If you get error messages about "CertUtil" on Windows, then it means that
-   the Windows CertUtil.exe is ahead of the NSS certutil.exe in $PATH.
+// Tests the API nsIX509CertDB.openSignedAppFileAsync, which backs add-on
+// signature verification. Testcases include various ways of tampering with
+// add-ons as well as different hash algorithms used in the various
+// signature/metadata files.
 
-   Check in the generated files. These steps are not done as part of the build
-   because we do not want to add a build-time dependency on the OpenSSL or NSS
-   tools or libraries built for the host platform.
-*/
-
-// XXX from prio.h
+// from prio.h
 const PR_RDWR        = 0x04;
 const PR_CREATE_FILE = 0x08;
 const PR_TRUNCATE    = 0x20;
 
 do_get_profile(); // must be called before getting nsIX509CertDB
-const certdb = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB);
+const certdb = Cc["@mozilla.org/security/x509certdb;1"]
+                 .getService(Ci.nsIX509CertDB);
 
 // Creates a new app package based in the inFilePath package, with a set of
 // modifications (including possibly deletions) applied to the existing entries,
 // and/or a set of new entries to be included.
 function tamper(inFilePath, outFilePath, modifications, newEntries) {
   let writer = Cc["@mozilla.org/zipwriter;1"].createInstance(Ci.nsIZipWriter);
   writer.open(outFilePath, PR_RDWR | PR_CREATE_FILE | PR_TRUNCATE);
   try {
@@ -129,83 +120,88 @@ function check_open_result(name, expecte
 function original_app_path(test_name) {
   return do_get_file("test_signed_apps/" + test_name + ".zip", false);
 }
 
 function tampered_app_path(test_name) {
   return FileUtils.getFile("TmpD", ["test_signed_app-" + test_name + ".zip"]);
 }
 
-add_test(function () {
-  certdb.openSignedAppFileAsync(
-    Ci.nsIX509CertDB.AppXPCShellRoot, original_app_path("signed_app"),
-    check_open_result("valid", Cr.NS_OK));
-});
-
-add_test(function () {
-  certdb.openSignedAppFileAsync(
-    Ci.nsIX509CertDB.AppXPCShellRoot, original_app_path("signed_app_sha256"),
-    check_open_result("valid with sha256 everywhere", Cr.NS_OK));
-});
+var hashTestcases = [
+  // SHA-256 in PKCS#7 + SHA-256 present elsewhere => OK
+  { name: "app_mf-1-256_sf-1-256_p7-1-256",
+    expectedResult: Cr.NS_OK },
+  { name: "app_mf-1-256_sf-1-256_p7-256",
+    expectedResult: Cr.NS_OK },
+  { name: "app_mf-1-256_sf-256_p7-1-256",
+    expectedResult: Cr.NS_OK },
+  { name: "app_mf-1-256_sf-256_p7-256",
+    expectedResult: Cr.NS_OK },
+  { name: "app_mf-256_sf-1-256_p7-1-256",
+    expectedResult: Cr.NS_OK },
+  { name: "app_mf-256_sf-1-256_p7-256",
+    expectedResult: Cr.NS_OK },
+  { name: "app_mf-256_sf-256_p7-1-256",
+    expectedResult: Cr.NS_OK },
+  { name: "app_mf-256_sf-256_p7-256",
+    expectedResult: Cr.NS_OK },
 
-add_test(function () {
-  certdb.openSignedAppFileAsync(
-    Ci.nsIX509CertDB.AppXPCShellRoot,
-    original_app_path("signed_app_sha1_and_sha256"),
-    check_open_result("valid with sha1 and sha256 hashes everywhere",
-                      Cr.NS_OK));
-});
-
-add_test(function () {
-  certdb.openSignedAppFileAsync(
-    Ci.nsIX509CertDB.AppXPCShellRoot,
-    original_app_path("signed_app_sha256_manifest"),
-    check_open_result("sha256 hashes in manifest, but only a sha1 hash in the signature file",
-                      Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID));
-});
+  // SHA-1 in PKCS#7 + SHA-1 present elsewhere => OK
+  { name: "app_mf-1-256_sf-1-256_p7-1",
+    expectedResult: Cr.NS_OK },
+  { name: "app_mf-1-256_sf-1_p7-1",
+    expectedResult: Cr.NS_OK },
+  { name: "app_mf-1_sf-1-256_p7-1",
+    expectedResult: Cr.NS_OK },
+  { name: "app_mf-1_sf-1_p7-1",
+    expectedResult: Cr.NS_OK },
 
-add_test(function () {
-  certdb.openSignedAppFileAsync(
-    Ci.nsIX509CertDB.AppXPCShellRoot,
-    original_app_path("signed_app_sha256_signature_file"),
-    check_open_result("sha256 hash in the signature file, but only sha1 hashes in the manifest",
-                      Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID));
-});
-
-add_test(function () {
-  certdb.openSignedAppFileAsync(
-    Ci.nsIX509CertDB.AppXPCShellRoot,
-    original_app_path("sha1_and_sha256_manifest_sha1_signature_file"),
-    check_open_result("sha1 and sha256 hashes in the manifest, but only sha1 hash in the signature file",
-                      Cr.NS_OK));
-});
+  // SHA-256 in PKCS#7 + SHA-256 not present elsewhere => INVALID
+  { name: "app_mf-1-256_sf-1_p7-1-256",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-1-256_sf-1_p7-256",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-1_sf-1-256_p7-1-256",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-1_sf-1-256_p7-256",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-1_sf-1_p7-1-256",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-1_sf-1_p7-256",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-1_sf-256_p7-1-256",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-1_sf-256_p7-256",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-256_sf-1_p7-1-256",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-256_sf-1_p7-256",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
 
-add_test(function () {
-  certdb.openSignedAppFileAsync(
-    Ci.nsIX509CertDB.AppXPCShellRoot,
-    original_app_path("sha1_and_sha256_manifest_sha256_signature_file"),
-    check_open_result("sha1 and sha256 hashes in the manifest, but only sha256 hash in the signature file",
-                      Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID));
-});
+  // SHA-1 in PKCS#7 + SHA-1 not present elsewhere => INVALID
+  { name: "app_mf-1-256_sf-256_p7-1",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-1_sf-256_p7-1",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-256_sf-1-256_p7-1",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-256_sf-1_p7-1",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+  { name: "app_mf-256_sf-256_p7-1",
+    expectedResult: Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID },
+];
 
-add_test(function () {
-  certdb.openSignedAppFileAsync(
-    Ci.nsIX509CertDB.AppXPCShellRoot,
-    original_app_path("sha1_manifest_sha1_and_sha256_signature_file"),
-    check_open_result("only sha1 in the manifest, sha1 and sha256 hashes in the signature file",
-                      Cr.NS_OK));
-});
-
-add_test(function () {
-  certdb.openSignedAppFileAsync(
-    Ci.nsIX509CertDB.AppXPCShellRoot,
-    original_app_path("sha256_manifest_sha1_and_sha256_signature_file"),
-    check_open_result("only sha256 in the manifest, sha1 and sha256 hashes in the signature file",
-                      Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID));
-});
+for (let testcase of hashTestcases) {
+  add_test(function () {
+    certdb.openSignedAppFileAsync(
+      Ci.nsIX509CertDB.AppXPCShellRoot,
+      original_app_path(testcase.name),
+      check_open_result(testcase.name, testcase.expectedResult));
+  });
+}
 
 add_test(function () {
   certdb.openSignedAppFileAsync(
     Ci.nsIX509CertDB.AppXPCShellRoot,
     original_app_path("empty_signerInfos"),
     check_open_result("the signerInfos in the PKCS#7 signature is empty",
                       Cr.NS_ERROR_CMS_VERIFY_NOT_SIGNED));
 });
@@ -221,75 +217,111 @@ add_test(function () {
     Ci.nsIX509CertDB.AppXPCShellRoot, original_app_path("unknown_issuer_app"),
     check_open_result("unknown_issuer",
                       getXPCOMStatusFromNSS(SEC_ERROR_UNKNOWN_ISSUER)));
 });
 
 // Sanity check to ensure a no-op tampering gives a valid result
 add_test(function () {
   let tampered = tampered_app_path("identity_tampering");
-  tamper(original_app_path("signed_app"), tampered, { }, []);
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered, { }, []);
   certdb.openSignedAppFileAsync(
-    Ci.nsIX509CertDB.AppXPCShellRoot, original_app_path("signed_app"),
+    Ci.nsIX509CertDB.AppXPCShellRoot, original_app_path("app_mf-1_sf-1_p7-1"),
     check_open_result("identity_tampering", Cr.NS_OK));
 });
 
 add_test(function () {
   let tampered = tampered_app_path("missing_rsa");
-  tamper(original_app_path("signed_app"), tampered, { "META-INF/A.RSA": removeEntry }, []);
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered,
+         { "META-INF/A.RSA": removeEntry }, []);
   certdb.openSignedAppFileAsync(
     Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
     check_open_result("missing_rsa", Cr.NS_ERROR_SIGNED_JAR_NOT_SIGNED));
 });
 
 add_test(function () {
   let tampered = tampered_app_path("missing_sf");
-  tamper(original_app_path("signed_app"), tampered, { "META-INF/A.SF": removeEntry }, []);
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered,
+         { "META-INF/A.SF": removeEntry }, []);
   certdb.openSignedAppFileAsync(
     Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
     check_open_result("missing_sf", Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID));
 });
 
 add_test(function () {
   let tampered = tampered_app_path("missing_manifest_mf");
-  tamper(original_app_path("signed_app"), tampered, { "META-INF/MANIFEST.MF": removeEntry }, []);
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered,
+         { "META-INF/MANIFEST.MF": removeEntry }, []);
   certdb.openSignedAppFileAsync(
     Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
     check_open_result("missing_manifest_mf",
                       Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID));
 });
 
 add_test(function () {
   let tampered = tampered_app_path("missing_entry");
-  tamper(original_app_path("signed_app"), tampered, { "manifest.json": removeEntry }, []);
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered,
+         { "manifest.json": removeEntry }, []);
   certdb.openSignedAppFileAsync(
     Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
     check_open_result("missing_entry", Cr.NS_ERROR_SIGNED_JAR_ENTRY_MISSING));
 });
 
 add_test(function () {
   let tampered = tampered_app_path("truncated_entry");
-  tamper(original_app_path("signed_app"), tampered, { "manifest.json": truncateEntry }, []);
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered,
+         { "manifest.json": truncateEntry }, []);
+  certdb.openSignedAppFileAsync(
+    Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
+    check_open_result("truncated_entry",
+                      Cr.NS_ERROR_SIGNED_JAR_MODIFIED_ENTRY));
+});
+
+add_test(function () {
+  let tampered = tampered_app_path("truncated_manifestFile");
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered,
+         { "META-INF/MANIFEST.MF": truncateEntry }, []);
   certdb.openSignedAppFileAsync(
     Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
-    check_open_result("truncated_entry", Cr.NS_ERROR_SIGNED_JAR_MODIFIED_ENTRY));
+    check_open_result("truncated_manifestFile",
+                      Cr.NS_ERROR_SIGNED_JAR_MANIFEST_INVALID));
+});
+
+add_test(function () {
+  let tampered = tampered_app_path("truncated_signatureFile");
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered,
+         { "META-INF/A.SF": truncateEntry }, []);
+  certdb.openSignedAppFileAsync(
+    Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
+    check_open_result("truncated_signatureFile",
+                      getXPCOMStatusFromNSS(SEC_ERROR_PKCS7_BAD_SIGNATURE)));
+});
+
+add_test(function () {
+  let tampered = tampered_app_path("truncated_pkcs7File");
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered,
+         { "META-INF/A.RSA": truncateEntry }, []);
+  certdb.openSignedAppFileAsync(
+    Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
+    check_open_result("truncated_pkcs7File",
+                      Cr.NS_ERROR_CMS_VERIFY_NOT_SIGNED));
 });
 
 add_test(function () {
   let tampered = tampered_app_path("unsigned_entry");
-  tamper(original_app_path("signed_app"), tampered, {},
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered, {},
     [ { "name": "unsigned.txt", "content": "unsigned content!" } ]);
   certdb.openSignedAppFileAsync(
     Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
     check_open_result("unsigned_entry", Cr.NS_ERROR_SIGNED_JAR_UNSIGNED_ENTRY));
 });
 
 add_test(function () {
   let tampered = tampered_app_path("unsigned_metainf_entry");
-  tamper(original_app_path("signed_app"), tampered, {},
+  tamper(original_app_path("app_mf-1_sf-1_p7-1"), tampered, {},
     [ { name: "META-INF/unsigned.txt", content: "unsigned content!" } ]);
   certdb.openSignedAppFileAsync(
     Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
     check_open_result("unsigned_metainf_entry",
                       Cr.NS_ERROR_SIGNED_JAR_UNSIGNED_ENTRY));
 });
 
 // TODO: tampered MF, tampered SF
rename from security/manager/ssl/tests/unit/test_signed_apps/signed_app_sha1_and_sha256.zip
rename to security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1-256_p7-1-256.zip
new file mode 100644
index 0000000000000000000000000000000000000000..fca1795b80597924709e2463885eb5c9428c21aa
GIT binary patch
literal 3062
zc$^FHW@Zs#0D;9}(cV%q8k_upY!K!J;@rf%%(T?v61}YA{Jd%|1qCITNPJmpQE_H|
zo|2V<kq$^AFEKY2$WaObN-DTkl%(c?rNMFtwMqth26~1{T(w*QC>DS7Fx1fovO$;)
zh=W`mU3^_bGBS%5fT$!RRiP*~F(o%uAuYcM%q;;~lM1s&56!sQO_uCpObiSl%m)-p
zNi0d!&&*9sPt_~POYaQubLZuf;sSZn)59eQNKXS{4v@_@jD?RF7#Qz*x;TbZ%z1lm
zBPWA_z>y8N>tCK1Vr(v47<c>Kr2iir=8U2ti+bb|3Y4n$$q4TOr58_EKbLh*2~DUe
zD4Q$n|4kMK1`r0NAYfv2)b;dp(|6Ph3U)MTV!6u3snzDu_MMlJooPW6%Q2wPAtpvf
zLv903HdbvuW+o|C1_N${BE|(xOkWI|m_8UZG2U9h%*4pVBqBPea@l9@ptbJ~KVbVf
z!zZ{<_xo2QJ&fE2nuh8Is%*@mEX+J|6$Qz~8L2rr3dNb}d8sK1i3J74kbF>-pI>62
zB*AZFU}$P+Xk=jk22o%E3j-qqQ>cJ}mZ64$8pJqxEXF}h1M`c3&QvnsMYx5Lm4Ug5
zk)Hu5&c)Qk$jGp(BXEUFpV&3Wzj@m_*vtfMZG>;WdSdFe<;~ZO@En!ugU3}@Jh&mh
zcjFwk*?CfJpRymVk1Ea1N-5;1S{k+7wf(!yRh2nRb!VOb$YoxzP|%#bTH&zgliNFe
z4rS-?y%lZZ|5&#+Q)=U7CaZ2O$9KyM9`N(_{!Qc7-k>sRN$t*##L5X9!zb8YvOfA?
zhll(M^UEF1@72X_gl<oZT2;q1LEoxcpn*;0j7-k-wbK%#w?CRDbfDC5G0()iTTXrd
zvsPC1GUxl9;(W_99&WDISIW<PyrpYuqU<}hYpQcsPvr13J1wKaqO)JDTmR|D{+Z&2
zJ2wCGRQ^>Ic*O83^O{={T&8b(nV1<F7#H&!@B(9uIaHRPg@u`ky#Xcqm_gxWW^Lsz
zy;zH3CU?abzEk%z^A~pH*t_-_w8x6(t8`mDEq^jePG#j|cRAhDk^u^LS_+nkUYz&!
z|IKP~u6Coz#~#__-T(AaGU>$gEm;TC6zYQKF<z}&djIs-#Xc^3XHNTbWLBc~k6WMq
zye&VH;ks?NyxB#|k4G=2J@cGwa(v>&t!LsB?KDLa_j7S<QuVqu?O+4%<L2W3d-A>4
zxEpzD36`0?5;)9vNy6!^+OO?74%eTB@J_B!TP{)=HjgWDdieX<ucR$cpZ>OF=gau-
zKLqA?l}Rqycx%B!`RtvOmq;~Tn7Z=S%<Esz*Ir)vHTcqwlIj^JgI(K$4?53G-y*<v
zj>j&-%Yf0aiE$+`(JTdK4g*IL5;TtNfyiA8><uK~fz8Qmh@9CBlo2v4hGHxt|KI5!
z@n2o#(o=p|=%bk3t4Oole6-}v(!|KX!D2u2jH6J)udO?p4#=<NRc|$wyyRc1d@Zu<
zSz)&5HK(=nr@m7c^!DX<`6ZNHa{Ok6qNs`HH&dn0IS*fdS@T6TMdsL<H*5bdm#Un>
zB;#GGdaT;oWy8AFZr8TAuB_0QqB`YI**T+2i{)piv^C%O^Uz9LX69Sf1^mBPy=1?}
zP`Itae#L(MM5pJwu1sl<;!QX#v~kv(Whaz>?*6{@s$2EM4@Zue=)Q74w>u~FX6m%5
z-|S_=7Nxzq9lb>Jzr4zJzTKMA5AB$|{RBR?H`Xn$c~er>xuSHB?3|fwv3`jx8_HIj
zE3bV!>H5h_T<R~sJSt7_I+fw~sd=XNj|;Y+Zrr=w>A4!U5abArUfd64_d}ZlNQGdq
zTQD%v5=%;pQgy>1)w`8~p`HO(u!p0eu1jV*FdB7zp^XJAg>cg-mx{<@H|Jc_D8DQq
zGLO;@(zkRD@F}+iX)!W2!_*Yzp6eMLT<+{)lH^(J9+ct}kl|}&;%O8W5E>d97Fk)I
zo0sdAQB`78ZeWYn0GR17{kxHofdPa?kX`QU=;!I?8XThM>jtw3)%{$4z=n*K0!qsV
z*;7DgC5AYq6+{KN=lB?xWM+Dn24xu-xMe4q=cD_@O2H{4&$%GP(A31w$Sf!-*CHt+
z#l^%pJR-%QB+E1@-7G)N*U-|>$J4;y)fQ$or0s)hr&~#=hhvsSM1En0sdH3Ga=3+s
zM_Gt=eqp9BhMh@~204}$h3;OF&IN^$sa^)&W`!m$;h}+rr3SfvPHw&?9ww=|8CjWL
z>2Nzy8%U^j8)rJ@nU%U_ny0#Z>j&j{`BfN%22_S*2b<?(*zFpSmF*W*UYTeap<Pf^
z>XTF9uI=XN>{IUUY+?}+Y7%UjALZ|8kP{Xb2#PXBCJ|=btxp(eU}QjVi=t~qZ$Bcm
zR>E78=z7o_i3mL>Fq(|$deNH)2)$g)=#2$*z390Lp_iWnEsvpVMNifUttUCKC-MMq
SR&aQ*0bvSIR}HAu%K!jw$YnbK
new file mode 100644
index 0000000000000000000000000000000000000000..9c88034d96b437ec5a663c575ba78fb2a040235d
GIT binary patch
literal 3078
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
new file mode 100644
index 0000000000000000000000000000000000000000..902e7d1100480c4ea44c7b4d115381803e2598d8
GIT binary patch
literal 3434
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
rename from security/manager/ssl/tests/unit/test_signed_apps/sha1_and_sha256_manifest_sha1_signature_file.zip
rename to security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1_p7-1.zip
new file mode 100644
index 0000000000000000000000000000000000000000..c5351d1eeab00c2084d4ff1ae2233e36d5962870
GIT binary patch
literal 3009
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
new file mode 100644
index 0000000000000000000000000000000000000000..3349f64ffaced578b3483e11d2025a28330d5f3d
GIT binary patch
literal 3452
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
OY(SU-)WyUD;sF2#stgGL
rename from security/manager/ssl/tests/unit/test_signed_apps/sha1_and_sha256_manifest_sha256_signature_file.zip
rename to security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-256_p7-1.zip
new file mode 100644
index 0000000000000000000000000000000000000000..705b21b2ccc731c8975b4889e6201a22b6db92de
GIT binary patch
literal 3027
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
OfG`E9D-zVCWdHzIpk59D
new file mode 100644
index 0000000000000000000000000000000000000000..5e4b662700f935d3de89cf033b8767c7e0be807e
GIT binary patch
literal 3323
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
Hxj{StdZXq(
rename from security/manager/ssl/tests/unit/test_signed_apps/sha1_manifest_sha1_and_sha256_signature_file.zip
rename to security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1-256_p7-1.zip
new file mode 100644
index 0000000000000000000000000000000000000000..654a09ed307b4b8d13170702d038d73b8241c762
GIT binary patch
literal 2898
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
IgA>F901dP_8vp<R
new file mode 100644
index 0000000000000000000000000000000000000000..3a5f6aec0fd8f1c2cacd9628cc146a90670233aa
GIT binary patch
literal 3254
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
Ih8x5K0Hw6fA^-pY
rename from security/manager/ssl/tests/unit/test_signed_apps/signed_app.zip
rename to security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1_p7-1.zip
new file mode 100644
index 0000000000000000000000000000000000000000..cbd1b08324b0b9a4106dc65a5c8e2ed9308a1170
GIT binary patch
literal 2829
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
HbAosPyQCXE
new file mode 100644
index 0000000000000000000000000000000000000000..08d614ecc1111782a9dac4f45d31fbab01ebf13c
GIT binary patch
literal 3272
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
rename from security/manager/ssl/tests/unit/test_signed_apps/signed_app_sha256_signature_file.zip
rename to security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-256_p7-1.zip
new file mode 100644
index 0000000000000000000000000000000000000000..88533235667d2914895b9a3feb01277cd5e65edb
GIT binary patch
literal 2847
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
new file mode 100644
index 0000000000000000000000000000000000000000..2ac7087aaa34a74f819f13abd73739a8e75dab29
GIT binary patch
literal 3377
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
E09lUpLI3~&
rename from security/manager/ssl/tests/unit/test_signed_apps/sha256_manifest_sha1_and_sha256_signature_file.zip
rename to security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1-256_p7-1.zip
new file mode 100644
index 0000000000000000000000000000000000000000..f1667fbb4933cc5cd772d446e76756d94cafe70c
GIT binary patch
literal 2952
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
E02Eh4-2eap
new file mode 100644
index 0000000000000000000000000000000000000000..499ac1133ea2bf9f103e67c7ee8d8a16d01ae69d
GIT binary patch
literal 3308
zc$^FHW@Zs#0D(ne(cV%q8k_upY!K!J;@rf%%(T?v61}YA{Jd%|1qCITNPJmpQE_H|
zo|2V<kq$^AFEKY2$WaObN-DTkl%(c?rNMFtwMqth26~1{T(w*QC>DS7Fx1fovO$;)
zh=W`mU3^_bGBS%5fT$!RRiP*~F(o%uAuYcM%q;;~lM1s&56!sQO_uCpObiSl%m)-p
zNi0d!&&*9sPt_~POYaQubLZuf;sSZn)59eQNKXS{4v@_@jD?RF7#Qz*x;TbZ%z1lm
zBPWA_z>y8N>tCK1Vr(v47<c>Kr2iir=8U2ti+bb|3Y4n$$q4TOr58_EKbLh*2~DUe
zNX`0n#Ux;Q0AWxH0wzXBT~9wZeMh~ZU`K-{wmvpatu~Lg@4SrcObeRW>VZPlOpJ_%
z+y<O%tlE6cOj4{22HXfmj0>8Wz8EwyeK2TZytROtiIIs(M08H&vd`Q>Yu_Dy!1i&5
zPjI2`_peBL7`Y8J4b=@)*_cCFn0e$X3X+R6Qgd<?iZj#mQd1NX3kr%M`JgC2zr;XE
zg5Su%(A3b-$ie^&qQC+c21W*^PyquiLk$Bph;i~*jDwg4<`)5-sbs*5a0??V19KB2
zKLb#li>Zl`kzrRy;0l*Mv1^Wh^R{)cnF-k12;Y45#MEoco39z+IV#l$kE^bDa6^9Y
z#yM=W^Q787Wj|UURhpfZQpi!YG-|nP`*)eEDs!0X&N}~*%e-KrpgDQ9!eP%Rw|Dv+
z%Ff|?E84{Wv2Jaq)W*w9R^3{T@0J%l;OFiAo5roZL1ogC+MOMVl@m6GPq4jYee}T&
z5BU}5mph!_tBc(T-JTY;s*Y)bzE!nA1DnbjnVjisrzJ*je>6?#K&jzko{4w2ocjJ}
zt*q*0&i6aT`Icuq++3}%l%M%{OV`vy*>`H!ROhaq$l+&pT1JIMXTMmt{?m{BGsO*e
zZ2sq|{HrMNh~ZV{HMb<VOyBl0F*7nSF6KAj1;!Y2s4PDV3o{dY14{HUgTl$o+R9ye
zu@=Kj?usvbr|xIwFYL&%ckMH1j}^^V>9%-U{$!Gz%F4&?a=ND_0~GGG6f6<FIPdHK
zo7Li6?M9Q2J+jHW|LLP-(uwC=vJR#x)CJFDyjr#N{^_raeO&g=oc8C)tVHb}w?6%O
zTYe<Nb=z)vvx}A=k6uiB<~iBq_{57_&%`I%X^JH7=i=C;>UC?{!3N&P&Bg!s<a@7i
zH}cdHEHis0aG39sgwtEKU)ysWu0IRmom`=|T%<B=9#`V@@b|M{Nn4&i{cXw4m+{|!
z2+Z#)lU%a#)`Exf**hmMk!rdyb>*v>*T0^xy}a^k@TDCk)iX{8yS4`(be@^MMS$%b
zk6nb90i$6Pa}qGoECpr`14j}PG>+_n$XyHU4J6=!&B<(toY@SN5i%@>Vk{ybUaxJI
zIQl8Ed-`^+za<qaCS7w`(2_Sx6C*?4k^W0lEqd7}g)Y{%&G#1;@T#z66IrJ$`jubb
z{qwT7x4S2D2*ej~%iXCJxHLhum}{rYjfxFt9xs`B)`IED-IL6_{iX%odm4Co*`w^W
z)j3ZKgrfic@4Fzf?qs|*N9dj-E(=VVt(N*fdJ>=iV&eJvI~G0L{AO|brjoFq`fns1
zLwXx$bxcuRDzfmBk@B_3%9KP628G?-RqL~!t2^yoEwb*!n<uN|bshyjGY*Y@#c8cD
z@1UQ(^3Iycb3cc1)N^TVdh|eac?;KZ%RXV1wM#@MMluCQE(mRtT%o_XZ;{#CDW~*g
z)TTXPJa|DnXlG9S-0Dp=JFj!}_Vq27yXNJ_#j$ry0x+VsQYoT<ft%3g!I;X-!UPQ5
z1>SffOCLG1lvotbuZZxAxFMtA{%RqQmStW%hecwGWPZmdoo1`;A6`bsV~IHF6^{&i
z_8$si>Ro=?NA2dbpB5?7DFt&}vie@UVcd6(hgo>4qn3oTBFk={h|N6v7bIT!a_+y@
zO~-GK+K#BbKd$&v>0ia+88dI6WH|R_is`eA^YI_$j_Q=U`|O`^$nAPm%Ef0Jn;zbq
z{!R9}w`2<I>zgw-2wjVnJU7ASX|huk!}iTrH`F>va%E^1+T51RDtE85W}Wq1KxMW$
z=USzbAO0nKUwk!D%JP>K4gS^U_wL^9Xz2s5cZK|smH6Jc>8Y~CfemaOyZ!7um?R(1
zH#TVOU6Xkt!P3-aY4C2X;zvTe1n-H>z4PJ!dfpQfb0>6OeqYgh#FL|;`iaG(9G|vm
z8N1W%+^DseY)G=d7m)1*ZO0+iUcqj`z(`CiDJ@FX4TH4HtP~9O47h?l91V3{GSh+4
zs_P4F<pE`i(oMZxOESF6GMru0+#|9Ao%}-5DvL70Ol;8_U9Y%jECrT{3?M9mY^krK
zpQoE^aEP9-8_Zx-tGWDujYlg5l-4H5Jw~QxP#0M#IECan7las^n)n%+1x4jrBxR(y
zm>7pgq!^TBnI@&1<)`@?TKf5T8u+`~!VHA8BGFAsiZsZvtSEH%igYe0j7;@1@HQ(n
zaS0C%EG#w1^>cFbHSsV>&CSTl^h$@DgxY{aH_<g9E88!syfV=;Lc5@-)F-FHUE9sk
z*{9sy*~B6u)Fjw4Kg!?HASWy=5EN*POd`y<+uShFz{r5!0!P=1-fBi@t%SFs(e<D=
zjS+fIU^JA`^`bY55PG?o(VIx<deM_4lD(X02^3u`dcs0zwdKN|%mTbw!QsIMgegE>
IMcg1B00IZm9RL6T
rename from security/manager/ssl/tests/unit/test_signed_apps/signed_app_sha256_manifest.zip
rename to security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1_p7-1.zip
new file mode 100644
index 0000000000000000000000000000000000000000..81476aaf3402989b975133197d2d1c731037071a
GIT binary patch
literal 2883
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
IBqxXm0GO#JaR2}S
new file mode 100644
index 0000000000000000000000000000000000000000..526d97017f24575e209e76119d1f84da2277d720
GIT binary patch
literal 3326
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
Y{#@9TS%5byI6T;ZFa@Zqg&V{J0MnP^@Bjb+
new file mode 100644
index 0000000000000000000000000000000000000000..5dc436c03c10766a3007868a0ce4e510e268b986
GIT binary patch
literal 2885
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
rename from security/manager/ssl/tests/unit/test_signed_apps/signed_app_sha256.zip
rename to security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-256_p7-256.zip
index 94261ff0c5ee298142dd7ed6efcc4cab210f6395..3ea1a61f63620bbab264c77f60617055fce8abf0
GIT binary patch
literal 2458
zc$^FHW@Zs#0D*;J(cV%q8k_upY!K!J;@rf%%(T?v61}YA{Jd%|1qCITNPJmpQE_H|
zo|2V<kq$^AFEKY2$WaObN-DTkl%(c?rNMFtwMqth26~1{T(w*QC>DS7Fx1fovO$;)
zh=W`mU3^_bGBS%5fT$!RRiP*~F(o%uAuYcM%q;;~lM1s&56!sQO_uCpObiSl%m)-p
zNi0d!&&*9sPt_~POYaQubLZuf;sSZn)59eQNKXS{4v@_@jD?RF7#Qz*x;TbZ%z1lm
zBPWA_z>y8N>tCK1Vr(v47<c>Kr2iir=8U2ti+bb|3Y4n$$q4TOr58_EKbLh*2~DUe
zXi5LQ33|*73?K|jLBPc5sO#zHrthd16zpiw#H_`}snzDu_MMlJooPW6voughoQaXq
zklTQhja8eEnMsP3!GIf~h;cy^(-(s#rVj>9jJFmrGchtTiHOdrT=tneXzjbh57<7=
z@Ch!|{r(k64<omMrlGolDjRbs3p0;gML}|LMruxuLUCq#UTTU$VnIPMBp(#z=a(2L
zN$?vP7@8Uy8d(^CK@?cP!obMD6e?h#WvF4G1~E<^i*XRs!2BYhGnEW@5pH2*WngY%
z<Yxeib1^kBGBWJy2wdUPCw9&8Z{D^JHZuWR8{wO;o|t-VdGj?RJV&Ma;BnOz4{pfs
z-8hGBcAiw*r|d`Tqe`>0QVKb$mPRdiZT~KFRb>uS-C5^9a+wz_6f`HVRygeW<n~UV
zL)kfeZ$+E<Kh~|yl-hWi$*Nn+@!j%*2mHLff77_NH>gZnQoFMwv2w!3@Cmk;tdBm}
z;UT}m{Bno$dv&oJq1)4<R@E_0(6_1<Xkb%0Ba<_I?X<+`?T@Aj9Vj(i%ro)smQ&yV
ztd&*0%=vz&IN$P&hnuVQmGUzmZ|RzvDEm(Bn(Exu6FL0MPRppU=<FBk)_?l3f2O$M
zj?Mo(m46il9x=Siyylh!m+9MHCT2zk#>M;wyucV^4wdC+VPR%sZ$ODYW>7epSzEbF
zFV<q1$zAb<@6`Rw{DmDk_O5*f?XjZyD%}=O%b!e=Q(5`gT~7D3WPrk*mVzas7w3Kb
zf3sSgtKDewu}3y}_dk7<Ogiy=OV+_Og}UH*j906c-aq|yv5(8%nbZCpnU$#h<JPA?
zZ_AHlxNh4mZ+6l0<I#(0&paoa9G`e`>zVjOJ57<q{ahTIRK0FZJJ`VcxViZMo_y~$
z?na(kf@Nl}1P=3El5l#f_G^2N!}Vt&ypt=`mWxz|&Era(9{zszD{0Hqr@t-P`7-|d
z4}tkzWs*xa-dgZbK6~fnB~ncnrmlQ7^ZM8GwU<|Z4ZgIaq<Y55VAuBGgU&P4w+OJE
z<FSkIGGH`hK+RcU8k|lsKz0nYjzP*<!EV98w3k>?T9m3A2B|Zw6b$tYxPm<#jZDpS
zT{6>w2~^h?S_fGv_*)oxr$v^zxE1GQXE{5U_+=Lv<eT_L7PzHHRAprp86}lxR#sS8
zgytpNqE!*ExMwT{#vlU-iy%A0*U`_@%{4eg&({rR5vpUj{D4)Rl>$oLi0VQs1*eca
z=YkMJQxiWUv!JM4i=>Pc7Zc;~h!lg8EYqZPv-~t)LrXs&PXm8fTbO~6IuG5Xq)3At
z%ZfsGuSn;D!pKxF18=iJ6PNJNz`|04Tt6o_UlR|L)ZC1$Os{mfNvPEwx{0m<S=oM3
z<&}w+5!wYsr9L?o?%HmS&OYVt&L$QSp(eqW`BDCk203A2fuKNRWD;S<-9mtY21W+-
z_5!+A^g14)wGv+Aqw7Jh$Ps!@U{veqdeMt;gkCOY^a34SFM1+H=uKfmOS0%%(GwOz
Z>uWab$t=K|6&xOHK$rs5rN9B=0RV@TaZUgL
--- a/security/manager/ssl/tests/unit/test_signed_apps/moz.build
+++ b/security/manager/ssl/tests/unit/test_signed_apps/moz.build
@@ -18,26 +18,44 @@ def SignedAppFile(name, flags):
     # Turn RELATIVEDIR into list entry: like
     # 'security/manager/ssl/tests/unit/test_signed_apps' ->
     # TEST_HARNESS_FILES.xpcshell.security.manager.ssl.tests.unit.test_signed_apps.
     files = TEST_HARNESS_FILES.xpcshell
     for part in RELATIVEDIR.split('/'):
         files = files[part]
     files += ['!%s' % name]
 
+# Except for unusual testcases (unknown issuer, unsigned app, empty
+# signerInfos), the naming scheme is as follows:
+# app_mf{-1,-256}_sf{-1,-256}_p7{-1,-256}.zip, where:
+# "mf" refers to the manifest file, "sf" refers to the signature file,
+# and "p7" refers to the pkcs#7 file. The "{-1,-256}" indicates which
+# hash algorithms are present in the corresponding file (both may be
+# present).
+# For example, "app_mf-1_sf-1-256_p7-256.zip" means that the manifest
+# file has sha-1 hashes, the signature file has sha-1 hashes and sha-256
+# hashes, and the pkcs#7 file only has sha-256.
+#
 # Temporarily disabled. See bug 1256495.
 #signed_app_files = (
-#    ['signed_app.zip', '-m', 'sha1', '-s', 'sha1', '-p', 'sha1'],
-#    ['unknown_issuer_app.zip', '-i', 'unknown issuer', '-m', 'sha1', '-s', 'sha1', '-p', 'sha1'],
+#    ['unknown_issuer_app.zip', '-i', 'unknown issuer'],
 #    ['unsigned_app.zip', '-n'],
-#    ['signed_app_sha256.zip'],
-#    ['signed_app_sha1_and_sha256.zip', '-m', 'sha256', '-m', 'sha1', '-s', 'sha256', '-s', 'sha1', '-p', 'sha1', '-p', 'sha256'],
-#    ['signed_app_sha256_manifest.zip', '-s', 'sha1', '-p', 'sha1'],
-#    ['signed_app_sha256_signature_file.zip', '-m', 'sha1', '-p', 'sha1'],
-#    ['sha1_and_sha256_manifest_sha1_signature_file.zip', '-m', 'sha256', '-m', 'sha1', '-s', 'sha1', '-p', 'sha1'],
-#    ['sha1_and_sha256_manifest_sha256_signature_file.zip', '-m', 'sha256', '-m', 'sha1', '-p', 'sha1'],
-#    ['sha1_manifest_sha1_and_sha256_signature_file.zip', '-m', 'sha1', '-s', 'sha1', '-s', 'sha256', '-p', 'sha1'],
-#    ['sha256_manifest_sha1_and_sha256_signature_file.zip', '-s', 'sha1', '-s', 'sha256', '-p', 'sha1'],
 #    ['empty_signerInfos.zip', '-e'],
 #)
 #
 #for signed_app_file_params in signed_app_files:
 #    SignedAppFile(signed_app_file_params[0], signed_app_file_params[1:])
+#
+#for mf_algs in [['1'], ['256'], ['1', '256']]:
+#    for sf_algs in [['1'], ['256'], ['1', '256']]:
+#        for p7_algs in [['1'], ['256'], ['1', '256']]:
+#            filename = "app_mf-%s_sf-%s_p7-%s.zip" % ('-'.join(mf_algs), '-'.join(sf_algs), '-'.join(p7_algs))
+#            args = []
+#            for mf_alg in mf_algs:
+#                args.append('-m')
+#                args.append('sha%s' % mf_alg)
+#            for sf_alg in sf_algs:
+#                args.append('-s')
+#                args.append('sha%s' % sf_alg)
+#            for p7_alg in p7_algs:
+#                args.append('-p')
+#                args.append('sha%s' % p7_alg)
+#            SignedAppFile(filename, args)
index fe74ed666c6632eb1f63eca3cc85c6f92b759565..3a2d8b4968bc400be8fa57ddaa194f0677182700
GIT binary patch
literal 2869
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
index 8d1de1552a45ad30d65699b8a19484270886fc54..cb4693675e2eeb7bfdd1ab338bb12ddf798af519
GIT binary patch
literal 971
zc$^FHW@Zs#0D*;J(cV%q8k_upY!K!J;@rf%%(T?v61}YA{Jd%|1qCITNPJmpQE_H|
zo|2V<kq$^AFEKY2$WaObN-DTkl%(c?rNMFtwMqth26~1{T(w*QC>DS7Fx1fovO$;)
zh=W`mU3^_bGBS%5fT$!RRiP*~F(o%uAuYcM%q;;~lM1s&56!sQO_uCpObiSl%m)-p
zNi0d!&&*9sPt_~POYaQubLZuf;sSZn)59eQNKXS{4v@_@jD?RF7#Qz*x;TbZ%z1lm
zBPWA_z>y8N>tCK1Vr(v47<c>Kr2iir=8U2ti+bb|3Y4n$$q4TOr58_EKbLh*2~7ds
zj7%cTxbp%GG%zxt=L~eM=&2c@wGy7T(e<DwS%jVw7zsGQn-y#<GZ3x@(p=0S9sp+M
Bg8Kjf