bug fix: some digest algorithms now correctly handle zero-length files