On 2017-03-28 Tue 11:56 AM |, Todd C. Miller wrote: > On Tue, 28 Mar 2017 09:33:53 -0600, "Todd C. Miller" wrote: > > > It seems to me that in -C mode it should really process all the > > checksums that match the specified file(s), but the documentation > > does not actually specify what the behavior is in this case. > > Here's a diff that accomplishes that. >
Yep: $ cksum -b -a cksum,MD5,RMD160,SHA1,SHA256 -h /tmp/bsd.digest /bsd $ cksum -C /tmp/bsd.digest /bsd (CKSUM) /bsd: OK (MD5) /bsd: OK (RMD160) /bsd: OK (SHA1) /bsd: OK (SHA256) /bsd: OK # Scramble line order: $ vi /tmp/bsd.digest $ cksum -C /tmp/bsd.digest /bsd (MD5) /bsd: OK (SHA256) /bsd: OK (CKSUM) /bsd: OK (SHA1) /bsd: OK (RMD160) /bsd: OK # Only SHA* digests, a bad MD5 digest & some junk: $ mv /tmp/bsd.digest /tmp/bsd.digest~ $ fgrep SHA /tmp/bsd.digest~ > /tmp/bsd.digest $ print 'MD5 (/bsd) = I-no-thinky-so-fail-me==' >> /tmp/bsd.digest $ print 'JUNK (/bsd) = road-killed-dead-beef==' >> /tmp/bsd.digest $ cksum -C /tmp/bsd.digest /bsd (SHA256) /bsd: OK (SHA1) /bsd: OK (MD5) /bsd: FAILED print $? 1 # Reorder check list, making valid digests last: $ sort -o /tmp/bsd.digest /tmp/bsd.digest $ cksum -C /tmp/bsd.digest /bsd (MD5) /bsd: FAILED (SHA1) /bsd: OK (SHA256) /bsd: OK $ print $? 1
