Bug #10696
closedDigest implementation on Windows faulty
Description
The example I made with SHA1, but the same happens for other digests, so it seems to affect the generic implementation of the interface and not the specific hash implementations.
Digest::SHA1.hexdigest(File.read('test.file'))
"069171eeda5f9c72cb28cb8d3fb7bbfad57ef044"Digest::SHA1.file('test.file').hexdigest
"8b797e38c097eb8eab5c9d061ba241b03c6e739e"
The correct hash (independently checked) is the one in the file method. The Problem seems to be coming from the Read of this binary "string".
To me it seems like it could be a Problem with the character Encoding in a string. I first thought it was stopping at the null character but a test with valid ASCII with a NULL Character in the middle did actually work correctly. I attached the test-file to reproduce this beahvior. It is a very simple File with a few non-printable Characters including NULL.
This is a very specific Problem only happening on Windows. I report it for the last Version I tested, but I also tested this on 1.9 build with the same result. The same test runs fine on Linux.
Files