English ▾ Themen ▾ Neueste Version ▾ gitformat-signature zuletzt aktualisiert in 2.40.0

NAME

gitformat-signature - Git kryptografische Signaturformate

SYNOPSIS

<[tag|commit] object header(s)>
<over-the-wire protocol>

BESCHREIBUNG

Git verwendet an verschiedenen Stellen kryptografische Signaturen, derzeit Objekte (Tags, Commits, Mergetags) und Transaktionen (Pushes). In jedem Fall ermittelt der Befehl, der gerade ein Objekt oder eine Transaktion erstellen soll, daraus eine Nutzlast, ruft ein externes Programm auf, um eine getrennte Signatur für die Nutzlast zu erhalten (gpg -bsa im Falle von PGP-Signaturen) und bettet die Signatur in das Objekt oder die Transaktion ein.

Signaturen beginnen mit einer "ASCII Armor"-Headerzeile und enden mit einer Fußzeile, die sich je nach Signaturtyp unterscheiden (wie von gpg.format ausgewählt, siehe git-config[1]). Dies sind für die Werte von gpg.format:

gpg (PGP)

-----BEGIN PGP SIGNATURE----- und -----END PGP SIGNATURE-----. Oder, wenn gpg angewiesen wird, RFC1991-Signaturen zu erzeugen, -----BEGIN PGP MESSAGE----- und -----END PGP MESSAGE-----

ssh (SSH)

-----BEGIN SSH SIGNATURE----- und -----END SSH SIGNATURE-----

x509 (X.509)

-----BEGIN SIGNED MESSAGE----- und -----END SIGNED MESSAGE-----

Signaturen erscheinen manchmal als Teil der normalen Nutzlast (z. B. hat ein signiertes Tag den Signaturbereich nach der Nutzlast angehängt, auf die sich die Signatur bezieht) und manchmal im Wert eines Objekt-Headers (z. B. hätte ein Merge-Commit, der ein signiertes Tag zusammengeführt hat, den gesamten Tag-Inhalt im "mergetag"-Header). Im letzteren Fall gilt die übliche Regel für die mehrzeilige Formatierung von Objekt-Headern. Das heißt, die zweite und nachfolgende Zeilen werden mit einem Leerzeichen (SP) versehen, um anzuzeigen, dass die Zeile von der vorherigen Zeile fortgesetzt wird.

Dies gilt sogar für eine ursprünglich leere Zeile. In den folgenden Beispielen wird das Ende einer Zeile, die mit einem Leerzeichen endet, mit einem $-Zeichen hervorgehoben. Wenn Sie versuchen, diese Beispiele von Hand nachzubilden, kopieren und fügen Sie sie nicht ein – sie sind hauptsächlich dazu da, zusätzliche Leerzeichen am Ende einiger Zeilen hervorzuheben.

Die signierte Nutzlast und die Art und Weise, wie die Signatur eingebettet wird, hängt vom Objekttyp bzw. der Transaktion ab.

Tag-Signaturen

  • erstellt von: git tag -s

  • Nutzlast: annotiertes Tag-Objekt

  • Einbettung: Hängen Sie die Signatur an das unsignierte Tag-Objekt an

  • Beispiel: Tag signedtag mit Betreff signed tag

object 04b871796dc0420f8e7561a895b52484b701d51a
type commit
tag signedtag
tagger C O Mitter <committer@example.com> 1465981006 +0000

signed tag

signed tag message body
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAABAgAGBQJXYRhOAAoJEGEJLoW3InGJklkIAIcnhL7RwEb/+QeX9enkXhxn
rxfdqrvWd1K80sl2TOt8Bg/NYwrUBw/RWJ+sg/hhHp4WtvE1HDGHlkEz3y11Lkuh
8tSxS3qKTxXUGozyPGuE90sJfExhZlW4knIQ1wt/yWqM+33E9pN4hzPqLwyrdods
q8FWEqPPUbSJXoMbRPw04S5jrLtZSsUWbRYjmJCHzlhSfFWW4eFd37uquIaLUBS0
rkC3Jrx7420jkIpgFcTI2s60uhSQLzgcCwdA2ukSYIRnjg/zDkj8+3h/GaROJ72x
lZyI6HWixKJkWw8lE9aAOD9TmTW9sFJwcVAzmAuFX2kUreDUKMZduGcoRYGpD7E=
=jpXa
-----END PGP SIGNATURE-----
  • Überprüfung mit: git verify-tag [-v] oder git tag -v

gpg: Signature made Wed Jun 15 10:56:46 2016 CEST using RSA key ID B7227189
gpg: Good signature from "Eris Discordia <discord@example.net>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA  29A4 6109 2E85 B722 7189
object 04b871796dc0420f8e7561a895b52484b701d51a
type commit
tag signedtag
tagger C O Mitter <committer@example.com> 1465981006 +0000

signed tag

signed tag message body

Commit-Signaturen

  • erstellt von: git commit -S

  • Nutzlast: Commit-Objekt

  • Einbettung: Header-Eintrag gpgsig (Inhalt wird durch ein Leerzeichen eingeleitet)

  • Beispiel: Commit mit Betreff signed commit

tree eebfed94e75e7760540d1485c740902590a00332
parent 04b871796dc0420f8e7561a895b52484b701d51a
author A U Thor <author@example.com> 1465981137 +0000
committer C O Mitter <committer@example.com> 1465981137 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 $
 iQEcBAABAgAGBQJXYRjRAAoJEGEJLoW3InGJ3IwIAIY4SA6GxY3BjL60YyvsJPh/
 HRCJwH+w7wt3Yc/9/bW2F+gF72kdHOOs2jfv+OZhq0q4OAN6fvVSczISY/82LpS7
 DVdMQj2/YcHDT4xrDNBnXnviDO9G7am/9OE77kEbXrp7QPxvhjkicHNwy2rEflAA
 zn075rtEERDHr8nRYiDh8eVrefSO7D+bdQ7gv+7GsYMsd2auJWi1dHOSfTr9HIF4
 HJhWXT9d2f8W+diRYXGh4X0wYiGg6na/soXc+vdtDYBzIxanRqjg8jCAeo1eOTk1
 EdTwhcTZlI0x5pvJ3H0+4hA2jtldVtmPM4OTB0cTrEWBad7XV6YgiyuII73Ve3I=
 =jKHM
 -----END PGP SIGNATURE-----

signed commit

signed commit message body
  • Überprüfung mit: git verify-commit [-v] (oder git show --show-signature)

gpg: Signature made Wed Jun 15 10:58:57 2016 CEST using RSA key ID B7227189
gpg: Good signature from "Eris Discordia <discord@example.net>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA  29A4 6109 2E85 B722 7189
tree eebfed94e75e7760540d1485c740902590a00332
parent 04b871796dc0420f8e7561a895b52484b701d51a
author A U Thor <author@example.com> 1465981137 +0000
committer C O Mitter <committer@example.com> 1465981137 +0000

signed commit

signed commit message body

Mergetag-Signaturen

  • erstellt von: git merge auf einem signierten Tag

  • Nutzlast/Einbettung: das gesamte signierte Tag-Objekt wird in das (Merge-)Commit-Objekt als Header-Eintrag mergetag eingebettet

  • Beispiel: Merge des signierten Tags signedtag wie oben

tree c7b1cff039a93f3600a1d18b82d26688668c7dea
parent c33429be94b5f2d3ee9b0adad223f877f174b05d
parent 04b871796dc0420f8e7561a895b52484b701d51a
author A U Thor <author@example.com> 1465982009 +0000
committer C O Mitter <committer@example.com> 1465982009 +0000
mergetag object 04b871796dc0420f8e7561a895b52484b701d51a
 type commit
 tag signedtag
 tagger C O Mitter <committer@example.com> 1465981006 +0000
 $
 signed tag
 $
 signed tag message body
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 $
 iQEcBAABAgAGBQJXYRhOAAoJEGEJLoW3InGJklkIAIcnhL7RwEb/+QeX9enkXhxn
 rxfdqrvWd1K80sl2TOt8Bg/NYwrUBw/RWJ+sg/hhHp4WtvE1HDGHlkEz3y11Lkuh
 8tSxS3qKTxXUGozyPGuE90sJfExhZlW4knIQ1wt/yWqM+33E9pN4hzPqLwyrdods
 q8FWEqPPUbSJXoMbRPw04S5jrLtZSsUWbRYjmJCHzlhSfFWW4eFd37uquIaLUBS0
 rkC3Jrx7420jkIpgFcTI2s60uhSQLzgcCwdA2ukSYIRnjg/zDkj8+3h/GaROJ72x
 lZyI6HWixKJkWw8lE9aAOD9TmTW9sFJwcVAzmAuFX2kUreDUKMZduGcoRYGpD7E=
 =jpXa
 -----END PGP SIGNATURE-----

Merge tag 'signedtag' into downstream

signed tag

signed tag message body

# gpg: Signature made Wed Jun 15 08:56:46 2016 UTC using RSA key ID B7227189
# gpg: Good signature from "Eris Discordia <discord@example.net>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA  29A4 6109 2E85 B722 7189
  • Überprüfung mit: Überprüfung ist standardmäßig in der Merge-Commit-Nachricht eingebettet, alternativ mit git show --show-signature

commit 9863f0c76ff78712b6800e199a46aa56afbcbd49
merged tag 'signedtag'
gpg: Signature made Wed Jun 15 10:56:46 2016 CEST using RSA key ID B7227189
gpg: Good signature from "Eris Discordia <discord@example.net>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA  29A4 6109 2E85 B722 7189
Merge: c33429b 04b8717
Author: A U Thor <author@example.com>
Date:   Wed Jun 15 09:13:29 2016 +0000

    Merge tag 'signedtag' into downstream

    signed tag

    signed tag message body

    # gpg: Signature made Wed Jun 15 08:56:46 2016 UTC using RSA key ID B7227189
    # gpg: Good signature from "Eris Discordia <discord@example.net>"
    # gpg: WARNING: This key is not certified with a trusted signature!
    # gpg:          There is no indication that the signature belongs to the owner.
    # Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA  29A4 6109 2E85 B722 7189

GIT

Teil der git[1] Suite