You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
3.3 KiB
95 lines
3.3 KiB
9 months ago
|
#!/bin/bash
|
||
|
# Copyright 2023 Gentoo Authors
|
||
|
# Distributed under the terms of the GNU General Public License v2
|
||
|
|
||
|
EAPI=8
|
||
|
source tests-common.sh || exit
|
||
|
|
||
|
inherit verify-sig
|
||
|
|
||
|
TMP=$(mktemp -d)
|
||
|
trap 'rm -rf "${TMP}"' EXIT
|
||
|
cd "${TMP}" || die
|
||
|
> empty || die
|
||
|
> fail || die
|
||
|
echo "The quick brown fox jumps over the lazy dog." > text || die
|
||
|
|
||
|
testit() {
|
||
|
local expect=${1}
|
||
|
shift
|
||
|
|
||
|
tbegin "${*@Q}"
|
||
|
( "${@}" )
|
||
|
[[ ${?} -eq ${expect} ]]
|
||
|
tend "${?}"
|
||
|
}
|
||
|
|
||
|
test_verify_unsigned_checksums() {
|
||
|
local format=${1}
|
||
|
|
||
|
testit 0 verify-sig_verify_unsigned_checksums checksums.txt "${format}" empty
|
||
|
testit 0 verify-sig_verify_unsigned_checksums checksums.txt "${format}" "empty text"
|
||
|
testit 1 verify-sig_verify_unsigned_checksums checksums.txt "${format}" other
|
||
|
testit 1 verify-sig_verify_unsigned_checksums checksums.txt "${format}" "empty other"
|
||
|
testit 1 verify-sig_verify_unsigned_checksums checksums.txt "${format}" fail
|
||
|
testit 1 verify-sig_verify_unsigned_checksums checksums.txt "${format}" "empty fail"
|
||
|
}
|
||
|
|
||
|
einfo "Testing coreutils format."
|
||
|
eindent
|
||
|
|
||
|
cat > checksums.txt <<-EOF || die
|
||
|
# some junk to test junk protection
|
||
|
b47cc0f104b62d4c7c30bcd68fd8e67613e287dc4ad8c310ef10cbadea9c4380 empty junk line
|
||
|
b47cc0f104b62d4c7c30bcd68gd8e67613e287dc4ad8c310ef10cbadea9c4380 empty
|
||
|
|
||
|
# sha1sums
|
||
|
da39a3ee5e6b4b0d3255bfef95601890afd80709 empty
|
||
|
9c04cd6372077e9b11f70ca111c9807dc7137e4b text
|
||
|
9c04cd6372077e9b11f70ca111c9807dc7137e4b fail
|
||
|
|
||
|
# sha256sums
|
||
|
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 empty
|
||
|
b47cc0f104b62d4c7c30bcd68fd8e67613e287dc4ad8c310ef10cbadea9c4380 text
|
||
|
b47cc0f104b62d4c7c30bcd68fd8e67613e287dc4ad8c310ef10cbadea9c4380 fail
|
||
|
|
||
|
# sha512sums
|
||
|
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e empty
|
||
|
020da0f4d8a4c8bfbc98274027740061d7df52ee07091ed6595a083e0f45327bbe59424312d86f218b74ed2e25507abaf5c7a5fcf4cafcf9538b705808fd55ec text
|
||
|
020da0f4d8a4c8bfbc98274027740061d7df52ee07091ed6595a083e0f45327bbe59424312d86f218b74ed2e25507abaf5c7a5fcf4cafcf9538b705808fd55ec fail
|
||
|
|
||
|
# duplicate checksum
|
||
|
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 empty
|
||
|
EOF
|
||
|
|
||
|
test_verify_unsigned_checksums sha256
|
||
|
eoutdent
|
||
|
|
||
|
einfo "Testing openssl-dgst format."
|
||
|
eindent
|
||
|
|
||
|
> "annoying ( filename )= yes ).txt" || die
|
||
|
|
||
|
cat > checksums.txt <<-EOF || die
|
||
|
junk text that ought to be ignored
|
||
|
|
||
|
SHA1(empty)=da39a3ee5e6b4b0d3255bfef95601890afd80709
|
||
|
SHA1(text)= 9c04cd6372077e9b11f70ca111c9807dc7137e4b
|
||
|
SHA1(fail)=9c04cd6372077e9b11f70ca111c9807dc7137e4b
|
||
|
|
||
|
SHA256(empty)=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||
|
SHA256(text)= b47cc0f104b62d4c7c30bcd68fd8e67613e287dc4ad8c310ef10cbadea9c4380
|
||
|
SHA256(fail)=b47cc0f104b62d4c7c30bcd68fd8e67613e287dc4ad8c310ef10cbadea9c4380
|
||
|
|
||
|
SHA256(annoying ( filename )= yes )= e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||
|
|
||
|
SHA512(empty)=cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
|
||
|
SHA512(text)= 020da0f4d8a4c8bfbc98274027740061d7df52ee07091ed6595a083e0f45327bbe59424312d86f218b74ed2e25507abaf5c7a5fcf4cafcf9538b705808fd55ec
|
||
|
SHA512(fail)=020da0f4d8a4c8bfbc98274027740061d7df52ee07091ed6595a083e0f45327bbe59424312d86f218b74ed2e25507abaf5c7a5fcf4cafcf9538b705808fd55ec
|
||
|
EOF
|
||
|
|
||
|
test_verify_unsigned_checksums openssl-dgst
|
||
|
eoutdent
|
||
|
|
||
|
texit
|