|
|
#!/bin/sh |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src |
|
|
print_ver_ cksum |
|
|
getlimits_ |
|
|
|
|
|
for prog in 'b2sum' 'cksum -a blake2b'; do |
|
|
|
|
|
[ "$prog" = 'b2sum' ] && { $prog --version || continue; } |
|
|
|
|
|
|
|
|
rm -f check.b2sum || framework_failure_ |
|
|
[ "$prog" = 'b2sum' ] && tag_opt='--tag' || tag_opt='' |
|
|
for i in 'a' ' b' '*c' '44' ' '; do |
|
|
echo "$i" > "$i" |
|
|
for l in 0 128; do |
|
|
$prog -l $l $tag_opt "$i" >> check.b2sum |
|
|
done |
|
|
done |
|
|
|
|
|
$prog --strict -c check.b2sum || fail=1 |
|
|
|
|
|
sed 's/ //; s/ =/=/' < check.b2sum > openssl.b2sum || framework_failure_ |
|
|
$prog --strict -c openssl.b2sum || fail=1 |
|
|
|
|
|
rm -f check.vals || framework_failure_ |
|
|
|
|
|
[ "$prog" != 'b2sum' ] && tag_opt='--untagged' || tag_opt='' |
|
|
for l in 0 128; do |
|
|
$prog $tag_opt --text -l $l /dev/null | tee -a check.vals > check.b2sum |
|
|
$prog -l $l --strict -c check.b2sum || fail=1 |
|
|
$prog --strict -c check.b2sum || fail=1 |
|
|
done |
|
|
|
|
|
|
|
|
|
|
|
[ "$prog" != 'b2sum' ] && tag_opt='--untagged' || tag_opt='' |
|
|
$prog $tag_opt --length=128 check.vals > out.tmp || fail=1 |
|
|
tr '*' ' ' < out.tmp > out || framework_failure_ |
|
|
printf '%s\n' '796485dd32fe9b754ea5fd6c721271d9 check.vals' > exp |
|
|
compare exp out || fail=1 |
|
|
|
|
|
|
|
|
printf '%s\n' 'BLAKE2' 'BLAKE2b' 'BLAKE2-' 'BLAKE2(' 'BLAKE2 (' > crash.check \ |
|
|
|| framework_failure_ |
|
|
returns_ 1 $prog -c crash.check || fail=1 |
|
|
|
|
|
|
|
|
|
|
|
printf '0A0BA0' > overflow.check || framework_failure_ |
|
|
returns_ 1 $prog -c overflow.check || fail=1 |
|
|
|
|
|
|
|
|
|
|
|
$prog -l 123 -l 128 /dev/null || fail=1 |
|
|
|
|
|
|
|
|
for len in 513 1024 $UINTMAX_OFLOW; do |
|
|
returns_ 1 $prog -l $len /dev/null 2>err || fail=1 |
|
|
progname=$(echo "$prog" | cut -f1 -d' ') |
|
|
cat <<EOF > exp || framework_failure_ |
|
|
$progname: invalid length: '$len' |
|
|
$progname: maximum digest length for 'BLAKE2b' is 512 bits |
|
|
EOF |
|
|
compare exp err || fail=1 |
|
|
done |
|
|
|
|
|
done |
|
|
|
|
|
Exit $fail |
|
|
|