as noticed by sdk@, a package with an exact numbers of 64K chunks would
authorespie <espie@openbsd.org>
Sat, 29 Apr 2023 10:08:18 +0000 (10:08 +0000)
committerespie <espie@openbsd.org>
Sat, 29 Apr 2023 10:08:18 +0000 (10:08 +0000)
commit2f4de9035df010caaba6d026af61d7deb8a5d5e3
tree6bfa38df393be2bdb03cf26f05911e26ee8aefe5
parent2c9390303301b41856fcaf561c8114b5c626296f
as noticed by sdk@, a package with an exact numbers of 64K chunks would
produce a spurious error (so 1 chance in 2^26)

It's like read/write: we need to recognize 0 as EOF and not try to checksum
a non-existing block.

while there, also make sure that we got all the signed blocks at EOF
before exit(0)

Note that none of those two bugs affect the actual security of signed
packages: the basic assertion that only signed data gets written
through the pipe is still 100% valid !

but it's a good idea to not emit spurious messages for valid files, and also
to recognize truncated files !

okay tb@ (thanks a lot)
usr.bin/signify/zsig.c