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

Reply via email to