[Pharo-dev] SHA1 changed ??

Sven Van Caekenberghe sven at stfx.eu
Fri Aug 30 07:52:42 EDT 2013


On 30 Aug 2013, at 13:39, Marcus Denker <marcus.denker at inria.fr> wrote:

> 
> On Aug 30, 2013, at 1:35 PM, Esteban Lorenzano <estebanlm at gmail.com> wrote:
> 
>> I'm not aware of such a change... 
>> this is probably an error/side effect of something else.  
>> 
> This is a side effect of the merging of the two nearly identical but duplicated SHA1 implementations in the image…
> 
> https://pharo.fogbugz.com/f/cases/5469/SHA1-duplicated-implementations

I want to wait for Max to respond/explain.

But according to http://en.wikipedia.org/wiki/Sha1

"SHA-1 produces a 160-bit (20-byte) hash value. A SHA-1 hash value is typically expressed as a hexadecimal number, 40 digits long." 

The previous contract of returning a ByteArray of size 20 is more correct than an Integer, although both are mathematically equivalent. It is also very easy to send #hex to a ByteArray to get the most common human representation of such a hash.

>> Esteban
>> 
>> On Aug 29, 2013, at 3:05 PM, Sven Van Caekenberghe <sven at stfx.eu> wrote:
>> 
>>> Max,
>>> 
>>> Why was the contract of SHA1>>hashStream: changed ?
>>> 
>>> It used to return a ByteArray like other HashFunction subclasses, now it returns an Integer. I see that you also changed the tests with this assumption.
>>> 
>>> MD5 hashMessage: 'foo'. 
>>> 
>>> 	#[172 189 24 219 76 194 248 92 237 239 101 79 204 196 164 216]
>>> 
>>> SHA1 hashMessage: 'foo'. 
>>> 
>>> 	68123873083688143418383284816464454849230703155
>>> 
>>> It broke Zinc-WebSockets in 3.0 and now I will have to do an ugly hack to make the code work on multiple Pharo versions.
>>> 
>>> Can you please explain ?
>>> 
>>> Sven
>> 
>> 
> 





More information about the Pharo-dev mailing list