Andreas Raab uploaded a new version of System to project The Trunk: http://source.squeak.org/trunk/System-ar.267.mcz
==================== Summary ====================
Name: System-ar.267 Author: ar Time: 25 February 2010, 11:42:28.601 pm UUID: e956ceab-fd27-bc4a-aa14-dc4d9cb052b4 Ancestors: System-laza.266
Fix SecureHashAlgorithm raising an error upon empty input instead of computing the correct result.
=============== Diff against System-laza.266 ===============
Item was changed: ----- Method: SecureHashAlgorithm>>hashStream: (in category 'public') ----- hashStream: aPositionableStream "Hash the contents of the given stream from the current position to the end using the Secure Hash Algorithm. The SHA algorithm is defined in FIPS PUB 180-1. It is also described on p. 442 of 'Applied Cryptography: Protocols, Algorithms, and Source Code in C' by Bruce Scheier, Wiley, 1996." "SecureHashAlgorithm new hashStream: (ReadStream on: 'foo')"
| startPosition buf bitLength | self initializeTotals.
+ "(SecureHashAlgorithm new hashMessage: '') radix: 16 + => 'DA39A3EE5E6B4B0D3255BFEF95601890AFD80709'" + aPositionableStream atEnd ifTrue: [self processFinalBuffer: #() bitLength: 0]. - aPositionableStream atEnd ifTrue: [self error: 'empty stream'].
startPosition := aPositionableStream position. [aPositionableStream atEnd] whileFalse: [ buf := aPositionableStream next: 64. (aPositionableStream atEnd not and: [buf size = 64]) ifTrue: [self processBuffer: buf] ifFalse: [ bitLength := (aPositionableStream position - startPosition) * 8. self processFinalBuffer: buf bitLength: bitLength]].
^ self finalHash !
squeak-dev@lists.squeakfoundation.org