Instead of creating CHECKSUM_FUNCTIONS, we could very easily support everything that hashlib supports:

hasher = getattr(hashlib, checksum_type, None)
if not hasher:
    raise ValueError('...')

It's very clean and makes it really easy to automatically track everything that hashlib offers. No big deal if you'd rather keep it this way, just a suggestion.