Commit Briefs
add field to got_packidx to propagate the hash algo
allows to drop all the `algo' hardcodings in lib/pack.c and pack_idx.c
handle both sha1 and sha256 object ids in pack files
bump got_packidx_object_id so it can hold a sha256 digest and adapt the code to read the needed type of hash.
rename "sha1" field to "hash"
done with X ,x/\.sha1/c/hash X ,x/->sha1/c/->hash in sam after loading all the C files; except for one manual tweak in hash.c
add got_repo_get_object_format()
...and use it to avoid hardcoding the algo in a few places.
add functions to compute hashes
This adds a set of functions to abstract over SHA1Init, SHA1Update, SHA1Final, their respective SHA256 variants and how to compare digests. It's a preparatory step for sha256 pack handling.
provide functions to parse/serialize sha256 digest plus a generic helper
it abstracts over the hash type. Needed by the incoming sha256 support.