pacman/lib/libalpm
Anatol Pomozov f53ac85ff6 Enable sha256/md5 hash verification if detached signatures are used
Pacman has multiple ways to verify package content integrity:
 - gpg signature
 - sha256
 - md5

These verification mechanisms overlap each other. gpg signatures already contain
hash value of the package content. So if a package signature is present then
pacman ignored the other 2 hash values. This worked well with signtures
embedded into pacman database.

Recently pacman got an ability to handle detached signatures (*.sig files
located next to the package files). If pacman verifies detached signature only
then one can replace pkg+sig files with some other content and pacman still
processes it as a valid package. To prevent it we need to verify
database<->package integrity using hash values stored in the database.

This commit fixes FS#67232

The new debug output is:
  checking package integrity...
  debug: found cached pkg: /var/cache/pacman/pkg/ruby-2.7.1-2-x86_64.pkg.tar.zst
  debug: sha256sum: 77baf61c62c5570b3a37cf0c3b16c5d9a97dde6fedd1a3528bf0cc5f96dd5e52
  debug: checking sha256sum for /var/cache/pacman/pkg/ruby-2.7.1-2-x86_64.pkg.tar.zst
  debug: sig data: <from .sig>
  debug: checking signature for /var/cache/pacman/pkg/ruby-2.7.1-2-x86_64.pkg.tar.zst
  debug: 1 signatures returned
  debug: fingerprint: B5971F2C5C10A9A08C60030F786C63F330D7CB92

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-08-10 19:25:59 +10:00
..
po Final translation updates for pacman-5.2.0 2019-10-21 17:25:29 +10:00
.gitignore libalpm: add pkg-config file 2012-04-25 20:02:36 -04:00
add.c Remove unneeded goto cleanup 2020-03-09 14:51:38 +10:00
add.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
alpm.c Add multi_curl handle to ALPM global context 2020-05-09 11:58:21 +10:00
alpm.h Fallback to detached signatures during keyring check 2020-07-07 21:38:13 +10:00
alpm_list.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
alpm_list.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
backup.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
backup.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
base64.c base64.c: comment out unused variable 2014-01-15 15:54:56 +10:00
base64.h Do not #define _RESERVED_IDENTIFIERS 2016-09-25 18:04:57 +10:00
be_local.c Use GOTO_ERR throughout 2020-04-13 23:44:46 +10:00
be_package.c Enable sha256/md5 hash verification if detached signatures are used 2020-08-10 19:25:59 +10:00
be_sync.c Move signature payload creation to download engine 2020-07-07 21:35:35 +10:00
conflict.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
conflict.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
db.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
db.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
deps.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
deps.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
diskspace.c Constify some input pointers 2020-04-29 13:57:45 +10:00
diskspace.h Constify some input pointers 2020-04-29 13:57:45 +10:00
dload.c Check that destfile_name exists before using it 2020-07-14 23:43:10 +10:00
dload.h Move signature payload creation to download engine 2020-07-07 21:35:35 +10:00
error.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
filelist.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
filelist.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
graph.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
graph.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
group.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
group.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
handle.c Add multi_curl handle to ALPM global context 2020-05-09 11:58:21 +10:00
handle.h Add multi_curl handle to ALPM global context 2020-05-09 11:58:21 +10:00
hook.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
hook.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
ini.c run hooks during trans_commit 2015-10-18 10:59:23 +10:00
ini.h run hooks during trans_commit 2015-10-18 10:59:23 +10:00
libalpm.pc.in build: add libintl dependency to meson and the .pc file 2020-06-11 10:47:14 +10:00
libarchive-compat.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
log.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
log.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
meson.build Remove support for deltas from libalpm 2019-03-07 11:12:12 +10:00
package.c Fix error during keyring checking 2020-08-10 10:02:02 +10:00
package.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
pkghash.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
pkghash.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
rawstr.c Remove all modelines from the project 2018-05-14 09:59:15 +10:00
remove.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
remove.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
signing.c libalpm/signing.c: Fix calculation of packet size in parse_subpacket 2020-06-01 10:59:08 +10:00
signing.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
sync.c Fallback to detached signatures during keyring check 2020-07-07 21:38:13 +10:00
sync.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
trans.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
trans.h build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00
util-common.c Split common utility functions for libalpm and pacman 2013-01-04 21:49:37 +10:00
util-common.h Split common utility functions for libalpm and pacman 2013-01-04 21:49:37 +10:00
util.c Fallback to detached signatures during keyring check 2020-07-07 21:38:13 +10:00
util.h Fallback to detached signatures during keyring check 2020-07-07 21:38:13 +10:00
version.c build-aux/update-copyright 2019 2020 2020-02-10 10:46:03 +10:00