Skip to content

Commit a2ef645

Browse files
bk2204gitster
authored andcommitted
docs: reflect actual double signature for tags
The documentation for the hash function transition reflects the original design where the SHA-256 signature would always be placed in a header. However, due to a missed patch in Git 2.29, we shipped SHA-256 support such that the signature for the current algorithm is always an in-body signature and the opposite algorithm is always in a header. Since the documentation is inaccurate, update it to reflect the correct information. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 4bd1be0 commit a2ef645

1 file changed

Lines changed: 13 additions & 11 deletions

File tree

Documentation/technical/hash-function-transition.adoc

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -425,17 +425,19 @@ ordinary unsigned commit.
425425

426426
Signed Tags
427427
~~~~~~~~~~~
428-
We add a new field "gpgsig-sha256" to the tag object format to allow
429-
signing tags without relying on SHA-1. Its signed payload is the
430-
SHA-256 content of the tag with its gpgsig-sha256 field and "-----BEGIN PGP
431-
SIGNATURE-----" delimited in-body signature removed.
432-
433-
This means tags can be signed
434-
435-
1. using SHA-1 only, as in existing signed tag objects
436-
2. using both SHA-1 and SHA-256, by using gpgsig-sha256 and an in-body
437-
signature.
438-
3. using only SHA-256, by only using the gpgsig-sha256 field.
428+
We add new fields "gpgsig" and "gpgsig-sha256" to the tag object format to
429+
allow signing tags in both formats. The in-body signature is used for the
430+
signature in the current hash algorithm and the header is used for the
431+
signature in the other algorithm. Thus, a dual-signature tag will contain both
432+
an in-body signature and a gpgsig-sha256 header for the SHA-1 format of an
433+
object or both an in-body signature and a gpgsig header for the SHA-256 format
434+
of and object.
435+
436+
The signed payload of the tag is the content of the tag in the current
437+
algorithm with both its gpgsig and gpgsig-sha256 fields and
438+
"-----BEGIN PGP SIGNATURE-----" delimited in-body signature removed.
439+
440+
This means tags can be signed using one or both algorithms.
439441

440442
Mergetag embedding
441443
~~~~~~~~~~~~~~~~~~

0 commit comments

Comments
 (0)