In #235 we added a digest_function field to virtually all RPCs, allowing clients to specify the exact digest function that's used. This allows the server to distinguish between hashes of equal length (MD5 vs MURMUR3, SHA256 vs SHA256TREE). For compatibility, we allow clients to leave it unset for traditional hashing algorithms:
// If the digest function used is one of MD5, MURMUR3, SHA1, SHA256,
// SHA384, SHA512, or VSO, the client MAY leave this field unset. In
// that case the server SHOULD infer the digest function using the
// length of the action digest hash and the digest functions announced
// in the server's capabilities.
In REv3, we should eliminate these clauses, requiring clients to provide a valid digest function. Furthermore, we should consider making the digest_function component of Bytestream URLs mandatory, assuming Bytestream is still around then.
In #235 we added a
digest_functionfield to virtually all RPCs, allowing clients to specify the exact digest function that's used. This allows the server to distinguish between hashes of equal length (MD5 vs MURMUR3, SHA256 vs SHA256TREE). For compatibility, we allow clients to leave it unset for traditional hashing algorithms:In REv3, we should eliminate these clauses, requiring clients to provide a valid digest function. Furthermore, we should consider making the
digest_functioncomponent of Bytestream URLs mandatory, assuming Bytestream is still around then.