6db8dc33f2
An untrusted device will receive padded info for small blocks, and hence sometimes request a larger block than actually exists on disk. Previously we let this pass because we didn't have a hash to compare to in that case and we ignored the EOF error based on that. Now the untrusted device does pass an encrypted hash that we decrypt and verify. This means we can't check for len(hash)==0 any more, but on the other hand we do have a valid hash we can apply to the data we actually read. If it matches then we don't need to worry about the read supposedly being a bit short.