diff options
-rw-r--r-- | scripts/pacman-key.sh.in | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/scripts/pacman-key.sh.in b/scripts/pacman-key.sh.in index 72725154..cb76a403 100644 --- a/scripts/pacman-key.sh.in +++ b/scripts/pacman-key.sh.in @@ -196,6 +196,18 @@ check_keyring() { fi } +validate_with_gpg() { + msg2 "$(gettext "Verifying %s...")" "$1" + if [[ ! -f "$1.sig" ]]; then + error "$(gettext "File %s is unsigned, cannot continue.")" "$1" + return 1 + elif ! "${GPG_PACMAN[@]}" --verify "$1.sig"; then + error "$(gettext "The signature of file %s is not valid.")" "$1" + return 1 + fi + return 0 +} + verify_keyring_input() { local ret=0; local KEYRING_IMPORT_DIR='@pkgdatadir@/keyrings' @@ -205,25 +217,11 @@ verify_keyring_input() { local keyring keyfile for keyring in "${KEYRINGIDS[@]}"; do keyfile="${KEYRING_IMPORT_DIR}/${keyring}.gpg" - msg2 "$(gettext "Verifying %s...")" "${keyfile}" - if [[ ! -f "${keyfile}.sig" ]]; then - error "$(gettext "File %s is unsigned, cannot continue.")" "${keyfile}" - ret=1 - elif ! "${GPG_PACMAN[@]}" --verify "${keyfile}.sig"; then - error "$(gettext "The signature of file %s is not valid.")" "${keyfile}" - ret=1 - fi + validate_with_gpg "${keyfile}" || ret=1 keyfile="${KEYRING_IMPORT_DIR}/${keyring}-revoked" if [[ -f "${keyfile}" ]]; then - msg2 "$(gettext "Verifying %s...")" "${keyfile}" - if [[ ! -f "${keyfile}.sig" ]]; then - error "$(gettext "File %s is unsigned, cannot continue.")" "${keyfile}" - ret=1 - elif ! "${GPG_PACMAN[@]}" --verify "${keyfile}.sig"; then - error "$(gettext "The signature of file %s is not valid.")" "${keyfile}" - ret=1 - fi + validate_with_gpg "${keyfile}" || ret=1 fi done |