From d6d4e0e903303cff1c18459815a61f871a11b461 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sat, 9 Jul 2016 14:17:59 -0500 Subject: [PATCH] checksums: Really fix... only add the number of extra bytes in the last unchecksummed block. --- basis/checksums/common/common.factor | 2 +- basis/checksums/sha/sha-tests.factor | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/basis/checksums/common/common.factor b/basis/checksums/common/common.factor index aaa2e97357..77be6761f7 100644 --- a/basis/checksums/common/common.factor +++ b/basis/checksums/common/common.factor @@ -50,7 +50,7 @@ GENERIC: get-checksum ( checksum-state -- value ) ] while >byte-vector >>bytes ] keep - length [ + ] curry change-bytes-read ; + length 64 mod [ + ] curry change-bytes-read ; : add-checksum-stream ( checksum-state stream -- checksum-state ) [ [ add-checksum-bytes ] each-block ] with-input-stream ; diff --git a/basis/checksums/sha/sha-tests.factor b/basis/checksums/sha/sha-tests.factor index 08be4db777..982a2caf17 100644 --- a/basis/checksums/sha/sha-tests.factor +++ b/basis/checksums/sha/sha-tests.factor @@ -73,5 +73,5 @@ CONSTANT: bytes-a B{ 0 1 0 0 0 0 0 0 } CONSTANT: bytes-b B{ 1 2 3 4 5 6 7 8 } { t } [ sha1 initialize-checksum-state bytes-a bytes-b append add-checksum-bytes get-checksum - sha1 initialize-checksum-state bytes-a add-checksum-bytes bytes-b add-checksum-bytes get-checksum + sha1 initialize-checksum-state bytes-a add-checksum-bytes bytes-b add-checksum-bytes get-checksum = ] unit-test