diff options
| author | Pádraig Brady <P@draigBrady.com> | 2025-09-02 15:28:21 +0100 |
|---|---|---|
| committer | Pádraig Brady <P@draigBrady.com> | 2025-09-04 14:49:07 +0100 |
| commit | aba9800995e28be6ffa130d57dc1531237f9e5f7 (patch) | |
| tree | 310362663b19b8ffe261eb06f195482845a94d43 /tests | |
| parent | cksum: add support for SHA-3 (diff) | |
| download | coreutils-aba9800995e28be6ffa130d57dc1531237f9e5f7.tar.gz coreutils-aba9800995e28be6ffa130d57dc1531237f9e5f7.zip | |
cksum: prefer -a sha2 -l ###, to -a sha###
To make the interface more concise and consistent,
while being backwards compatible.
* src/digest.c (main): Continue to support -a "sha###" but
also support -a "sha2" and treat it like "sha3", except in...
(output_file): ... maintain the legacy tags for better compatability.
* doc/coreutils.texi (cksum invocation): Document the -a sha2 option.
* tests/cksum/cksum-base64.pl: Adjust as per modified --help.
* tests/cksum/cksum-c.sh: Add new supported SHA2-### tagged variant.
* NEWS: Mention the new feature.
Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/cksum/cksum-a.sh | 9 | ||||
| -rwxr-xr-x | tests/cksum/cksum-base64.pl | 9 | ||||
| -rwxr-xr-x | tests/cksum/cksum-c.sh | 7 |
3 files changed, 19 insertions, 6 deletions
diff --git a/tests/cksum/cksum-a.sh b/tests/cksum/cksum-a.sh index 5cbaa71c7..4fa078102 100755 --- a/tests/cksum/cksum-a.sh +++ b/tests/cksum/cksum-a.sh @@ -41,6 +41,15 @@ while read algo prog mode; do cksum --untagged $cmode --algorithm=$algo /dev/null > out-c || fail=1 case "$algo" in + sha224|sha256|sha384|sha512) + bits=$(echo "$algo" | cut -c4-) + cksum --algorithm=$algo /dev/null > out-t1 || fail=1 + cksum --algorithm=sha2 --length=$bits /dev/null > out-t2 || fail=1 + compare out-t1 out-t2 || fail=1 ;; + *) ;; + esac + + case "$algo" in bsd) ;; sysv) ;; crc) ;; diff --git a/tests/cksum/cksum-base64.pl b/tests/cksum/cksum-base64.pl index fe629c124..32f3cae51 100755 --- a/tests/cksum/cksum-base64.pl +++ b/tests/cksum/cksum-base64.pl @@ -32,10 +32,7 @@ my @pairs = ['crc32b', "0 0 f"], ['md5', "1B2M2Y8AsgTpgAmY7PhCfg=="], ['sha1', "2jmj7l5rSw0yVb/vlWAYkK/YBwk="], - ['sha224', "0UoCjCo6K8lHYQK7KII0xBWisB+CjqYqxbPkLw=="], - ['sha256', "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="], - ['sha384', "OLBgp1GsljhM2TJ+sbHjaiH9txEUvgdDTAzHv2P24donTt6/529l+9Ua0vFImLlb"], - ['sha512', "z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg=="], + ['sha2', "z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg=="], ['sha3', "pp9zzKI6msXItWfcGFp1bpfJghZP4lhZ4NHcwUdcgKYVshI68fX5TBHj6UAsOsVY9QAZnZW20+MBdYWGKB3NJg=="], ['blake2b', "eGoC90IBWQPGxv2FJVLScpEvR0DhWEdhiobiF/cfVBnSXhAxr+5YUxOJZESTTrBLkDpoWxRIt1XVb3Aa/pvizg=="], ['sm3', "GrIdg1XPoX+OYRlIMegajyK+yMco/vt0ftA161CCqis="], @@ -48,8 +45,9 @@ sub fmt ($$) { $h !~ m{^(sysv|bsd|crc|crc32b)$} and $v = uc($h). " (f) = $v"; # BLAKE2b is inconsistent: $v =~ s{BLAKE2B}{BLAKE2b}; - # Our tests use 'cksum -a sha3 --length=512'. + # Our tests use 'cksum -a sha{2,3} --length=512'. $v =~ s/^SHA3\b/SHA3-512/; + $v =~ s/^SHA2\b/SHA512/; return "$v" } @@ -58,6 +56,7 @@ my @Tests = # Ensure that each of the above works with --base64: (map {my ($h,$v)= @$_; my $o=fmt $h,$v; (my $opts = $h) =~ s/^sha3$/sha3 --length=512/; + $opts =~ s/^sha2$/sha512/; [$h, "--base64 -a $opts", {IN=>{f=>''}}, {OUT=>"$o\n"}]} @pairs), # For each that accepts --check, ensure that works with base64 digests: diff --git a/tests/cksum/cksum-c.sh b/tests/cksum/cksum-c.sh index 4c5008483..2e3675717 100755 --- a/tests/cksum/cksum-c.sh +++ b/tests/cksum/cksum-c.sh @@ -21,11 +21,16 @@ print_ver_ cksum shuf shuf -i 1-10 > input || framework_failure_ -for args in '-a sha384' '-a blake2b' '-a blake2b -l 384' '-a sm3'; do +for args in '-a sha2 -l 384' '-a blake2b' '-a blake2b -l 384' '-a sm3'; do cksum $args 'input' >> CHECKSUMS || fail=1 done cksum --strict --check CHECKSUMS || fail=1 +# We don't output but do support SHA2-### tagged format +cksum -a sha2 -l 384 input | + sed 's/^SHA/SHA2-/' > sha2-tag.sum || framework_failure_ +cksum --check sha2-tag.sum || fail=1 + # Ensure leading whitespace and \ ignored sed 's/^/ \\/' CHECKSUMS | cksum --strict -c || fail=1 |
