A server receives from a client device a hash value and metadata associated with an electronic file.
A digest function updates the intermediate hash value by processing the input blocks in turn.