Ævar Arnfjörð Bjarmason <[email protected]> writes:
> @@ -125,19 +122,19 @@ Detailed Design
> ---------------
> Repository format extension
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -A NewHash repository uses repository format version `1` (see
> +A SHA-256 repository uses repository format version `1` (see
> Documentation/technical/repository-version.txt) with extensions
> `objectFormat` and `compatObjectFormat`:
>
> [core]
> repositoryFormatVersion = 1
> [extensions]
> - objectFormat = newhash
> + objectFormat = sha256
> compatObjectFormat = sha1
Whenever we said SHA1, somebody came and told us that the name of
the hash is SHA-1 (with dash). Would we be nitpicker-prone in the
same way with "sha256" here?
> @@ -155,36 +152,36 @@ repository extensions.
> Object names
> ~~~~~~~~~~~~
> Objects can be named by their 40 hexadecimal digit sha1-name or 64
> -hexadecimal digit newhash-name, plus names derived from those (see
> +hexadecimal digit sha256-name, plus names derived from those (see
> gitrevisions(7)).
Seeing this hunk makes me respond to the above question with another
question: "having to write sha-256-name, sha-1-name, gpgsig-sha-256,
and sha-256-content is sort of ugly, no?"
I guess names with two dashes are not _too_ bad, so I dunno.
> Selection of a New Hash
> -----------------------
> @@ -611,6 +608,10 @@ collisions in 2^69 operations. In August they published
> details.
> Luckily, no practical demonstrations of a collision in full SHA-1 were
> published until 10 years later, in 2017.
>
> +It was decided that Git needed to transition to a new hash
> +function. Initially no decision was made as to what function this was,
> +the "NewHash" placeholder name was picked to describe it.
> +
> The hash function NewHash to replace SHA-1 should be stronger than
> SHA-1 was: we would like it to be trustworthy and useful in practice
> for at least 10 years.
This sentence needs a bit of updating to match the new paragraph
inserted above. "should be stronger" is something said by those
who are still looking for one and/or trying to decide. Perhaps
something like this?
...
the "NewHash" placeholder name was used to describe it.
We wanted to choose a hash function to replace SHA-1 that is
stronger than SHA-1 was, and would like it to be trustworthy
and useful in practice for at least 10 years.
Some other relevant properties we wanted in NewHash are:
> @@ -630,14 +631,19 @@ Some other relevant properties:
> 4. As a tiebreaker, the hash should be fast to compute (fortunately
> many contenders are faster than SHA-1).
>
> -Some hashes under consideration are SHA-256, SHA-512/256, SHA-256x16,
> +Some hashes under consideration were SHA-256, SHA-512/256, SHA-256x16,
> K12, and BLAKE2bp-256.
>
> +Eventually in July 2018 SHA-256 was chosen to be the NewHash. See the
> +thread starting at <[email protected]>
> +for the discussion
> +(https://public-inbox.org/git/[email protected]/)
> +