blob: 5d6c632b718e24bd5252545bdb1fa09a3cc2c36f [file] [log] [blame]
DESCRIPTION:
Rogier van de Pol notified me that my implementation differed
with several others on several test data sets he had tested
against. This test vector data set is one Rogier provided
to me that highlighted an off-by-one bug in my implementation
that affected SHA-256/384/512 hashes where the data set length
was of a certain length. In the case of SHA512 or SHA384, if
the data length after subtracting 111 was an even multiple of
128 bytes, the bug surfaced. In the case of SHA256, after
subtracting 55, the remaining length was an even multiple of 64,
the bug surfaced. The fix was simple. In SHA512_Last() and in
SHA256_Final() functions, I simply replaced a single "<" test
with a "<=" test.
Thanks, Rogier!
(Total length of test vector data: 12271)
FILE:
vector017.dat
SHA256:
88ee6ada861083094f4c64b373657e178d88ef0a4674fce6e4e1d84e3b176afb
SHA384:
78cc6402a29eb984b8f8f888ab0102cabe7c06f0b9570e3d8d744c969db14397
f58ecd14e70f324bf12d8dd4cd1ad3b2
SHA512:
211bec83fbca249c53668802b857a9889428dc5120f34b3eac1603f13d1b4796
5c387b39ef6af15b3a44c5e7b6bbb6c1096a677dc98fc8f472737540a332f378