[Developers][BREAKING CHANGES] A new CryptoHasher derivation!


PR #1511 is a breaking change for all stored files / hashes, beware of its landing, which will require wiping Most Things™, including signed transactions.

What this is about

In the Libra code base, we care about domain separation for hashing and serialization. Two different structures, used for different purposes in the code base, should never hash or serialize to the same thing, even if they semantically carry the same content.

We do this with globally unique salts for hashing and serializing each structure. So far, we’ve been defining salts manually, but they weren’t always unique (ouch). We’re introducing a way that offers a better ergonomy by offering to pick unique salts automatically. As we roll this out to most data structures and correct bugs, It’s a breaking change.

More details?

Look into the documentation of libra_crypto::hash and libra_crypto::crypto-derive!