There may be differences across hashing algs, but we're only using one here so far; we won't have any legacy hashes in here, as it's a new model, so we can assume a particular alg. To be safe, could do a try/except around here to handle invalid parses/conversions from hex, and then just return None. This is also another reason it'd be nice to move the cache hash code down to this class, so the logic for setting the hash is nearby/packaged with this code that retrieves it.