I might be missing something, but are you reading the entire ISO into memory to get it's checksum? For ISOs, that's gonna be huge. It might be better to shell out and let the OS do it rather than take this hit.