We could probably attach some contextual information to errors, e.g. `KdfError` could say what hashes it was trying to compute with.