]> git.saurik.com Git - apt.git/blobdiff - test/integration/test-releasefile-verification
add failing regression test for bug #346386
[apt.git] / test / integration / test-releasefile-verification
index 8bf02a78fbdc8e642ccf65773c666d04faf47298..d3ea91de5dabf0df430b40d8308927da5d845f53 100755 (executable)
@@ -24,7 +24,7 @@ prepare() {
        find aptarchive -name 'Release' -delete
        cat aptarchive/Packages | gzip > aptarchive/Packages.gz
        cat aptarchive/Packages | bzip2 > aptarchive/Packages.bz2
-       cat aptarchive/Packages | lzma > aptarchive/Packages.lzma
+       cat aptarchive/Packages | xz --format=lzma > aptarchive/Packages.lzma
        generatereleasefiles "$DATE"
 }
 
@@ -153,6 +153,35 @@ runtest() {
        installaptold
 }
 
+runtest2() {
+       prepare ${PKGFILE}
+       rm -rf rootdir/var/lib/apt/lists
+       signreleasefiles 'Joe Sixpack'
+       msgtest 'Cold archive signed by' 'Joe Sixpack'
+       aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass
+
+       # New .deb but now an unsigned archive. For example MITM to circumvent
+       # package verification.
+       prepare ${PKGFILE}-new
+       find aptarchive/ -name InRelease -delete
+       find aptarchive/ -name Release.gpg -delete
+       msgtest 'Warm archive signed by' 'nobody'
+       aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass
+       testequal "$(cat ${PKGFILE}-new)
+" aptcache show apt
+       failaptnew
+
+       # Unsigned archive from the beginning must also be detected.
+       rm -rf rootdir/var/lib/apt/lists
+       msgtest 'Cold archive signed by' 'nobody'
+       aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass
+       testequal "$(cat ${PKGFILE}-new)
+" aptcache show apt
+       failaptnew
+}
+runtest2
+
+
 DELETEFILE="InRelease"
 runtest
 DELETEFILE="Release.gpg"