Skip to content
This repository was archived by the owner on Sep 11, 2020. It is now read-only.

Commit e5268e9

Browse files
authored
Merge pull request #1118 from filipnavara/fix1104
plumbing: object, Fix tag message decoding
2 parents aa6f288 + 612e827 commit e5268e9

File tree

2 files changed

+73
-1
lines changed

2 files changed

+73
-1
lines changed

plumbing/object/tag.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ func (t *Tag) Decode(o plumbing.EncodedObject) (err error) {
141141
if pgpsig {
142142
if bytes.Contains(l, []byte(endpgp)) {
143143
t.PGPSignature += endpgp + "\n"
144-
pgpsig = false
144+
break
145145
} else {
146146
t.PGPSignature += string(l) + "\n"
147147
}

plumbing/object/tag_test.go

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,3 +375,75 @@ sYyf9RfOnw/KUFAQbdtvLx3ikODQC+D3KBtuKI9ISHQfgw==
375375
_, ok := e.Identities["Sunny <[email protected]>"]
376376
c.Assert(ok, Equals, true)
377377
}
378+
379+
func (s *TagSuite) TestDecodeAndVerify(c *C) {
380+
objectText := `object 7dba2f128d1298e385b28b56a7e1c579779eac82
381+
type commit
382+
tag v1.6
383+
tagger Filip Navara <[email protected]> 1555269936 +0200
384+
385+
Hello
386+
387+
world
388+
389+
boo
390+
-----BEGIN PGP SIGNATURE-----
391+
392+
iQEzBAABCAAdFiEEdRIEYXeoLk1t7PBDqeqoMkraaZ4FAlyziT4ACgkQqeqoMkra
393+
aZ502wgAxG4+69l8PYfq45u1R3CCf4x0m5WwcYwvaa4ang0S9mExh/C32NHnpM/V
394+
DbqMpAlFvBlixOsZ8FNWaM8VXnvRWyx64E6WnInxjx9+Wgv2fy5P1N5rtpvi+S2V
395+
iGc0RQJlIloqXr7qPYDrwcbgg6AFg9EPhgJxLyizglu9nYvNsH1InaPXMjzgGX8+
396+
3irnIYEMIrLcKPrCyHo4Q6gdBjEEBF8hFclPJ8OwXBPc6uNYjnDYx0me9TTQYqoG
397+
oGgO/rADU9fy4c/Q1ZQpocba/ca6abRJ9LAx9VXFOSlQrMKLgHCYfqU/MAZXKcZM
398+
6XXOL4+8Z3FJN6CapZKX7cdYB8LJnw==
399+
=t5Px
400+
-----END PGP SIGNATURE-----
401+
402+
`
403+
404+
armoredKeyRing := `
405+
-----BEGIN PGP PUBLIC KEY BLOCK-----
406+
407+
mQENBFyzedYBCADN3lVNUNkrjn0kfwKAxGQOI8a1977UaIq9ktFg+Uv4Jyq2Y59L
408+
ZVx2WYk1iDaRhxhv203HV//CA/Hr4IoPjK53qAkg2bPyi8UuDbL+gU+4Z+IiSeXd
409+
18ZcAbcYt188PWoUq9/82ofO8EiaBbUEEZJjEegLDtX8gxBDG0aI3Yj4Txj73mno
410+
w6+E5HDkgPElmH3oNQcr8iK9U2Kuj+ZAHkzbWL++gDCPiLl2eWf0Cr1nlVsv6YLa
411+
Fsn5vjMGT3dMJFc78ZqCHOeyYK7KHjW1EjzgqeG2eJVay+ZQ5zEx4Fp/dL0RdUSV
412+
U7zslRiraaPxshdhYOjQ0o72RpSkP1G6+8OhABEBAAG0JUZpbGlwIE5hdmFyYSA8
413+
ZmlsaXAubmF2YXJhQGdtYWlsLmNvbT6JAVQEEwEIAD4WIQR1EgRhd6guTW3s8EOp
414+
6qgyStppngUCXLN51gIbAwUJA8JnAAULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK
415+
CRCp6qgyStppnlzjB/sFu7HqJrTRsnHsoWo2+nDeicXnR0VAhiLvv7uRRw4i90FJ
416+
0zDwjAmIH+po6vPffWRMcWOFVvAwZCX7/XcvDNF9OupFj/aold334+VVN0ha47IQ
417+
g44bJZie9mvLagEsqUXggpKQjd414Tk08aUucfaN9RFJIOGCwF05j2eXOBGR2HTe
418+
FLq3obeObryEPf0c8N/nw4RQ8OOcq98gxiHx5Gk+nLCcJCTvOlc9ULqpJ2a6cZry
419+
kxgSOI9dd74ilRQdpfPvoEeEGSqkY+daf+dhgSMT2mII0UJ6qQeY0DpCZZNsL8dr
420+
PxR4SPRlzLBuJIpnHY21ebOqwOPOLjzR+J2RBufkuQENBFyzedYBCADTCglXrST6
421+
DRz7Uq3zrrrzdCchHH0/+LgYOEoGs82UvdFfigQYGTydmXz27bHKfWNfGIa9IlLF
422+
MhasFueCnKnmfVxnlINRdyAXv7Tmx4mSjuCEmGkvM1nPpdhxWXptnVMqhQMddiMO
423+
N55bElDK2ftPc2s4dBmTItXXbet2kFZiv7MZBZpA4eRAHj5DDSwl8pnQArU50RDZ
424+
q3qYKvAP/z2SLjekcOFtMhZ9BXMvwAW4FWV0ztpfP3LvUUb0T7fSo5cXlm/0eqwa
425+
MUrUlbbwJMDg1/wJ3pbKhZlP+xXNLj5UE86TtfqNqaohOcIBdCsdTUQgbkLVlibP
426+
JmZH7lGDhvi3ABEBAAGJATwEGAEIACYWIQR1EgRhd6guTW3s8EOp6qgyStppngUC
427+
XLN51gIbDAUJA8JnAAAKCRCp6qgyStppntq1B/9bmw4XjEm5KyXwWnlAVGr8skXY
428+
KIJr6drUOOwQzl7rxsJRjUsFdX0IjaZwx303G/23eQMIvVkoaWpHrT0Y7EsTQ55x
429+
+GSuANhEzobks4spzQ66VW9FHRlRr5wg5PTwWnGtV/5QVSTY/zeC9R/AFUJFsDWe
430+
tgHlNrb6MWx5EtypZDpAkubAMvD/QoZHX0oPXYAA2CugD4uSdzjf6Ys3xUuwjKKG
431+
5hvimAg1/Hympq71Znb6Ec1m4ZM22Br7dcWHIX2GWfDPyRG+rYPu4Fk9KKAD4FRz
432+
HdzbB2ak/HxIeCqmHVlmUqa+WfTMUJcsgOm3/ZFPCSoL6l0bz9Z1XVbiyD03
433+
=+gC9
434+
-----END PGP PUBLIC KEY BLOCK-----
435+
`
436+
437+
tagEncodedObject := &plumbing.MemoryObject{}
438+
439+
_, err := tagEncodedObject.Write([]byte(objectText))
440+
tagEncodedObject.SetType(plumbing.TagObject)
441+
c.Assert(err, IsNil)
442+
443+
tag := &Tag{}
444+
err = tag.Decode(tagEncodedObject)
445+
c.Assert(err, IsNil)
446+
447+
_, err = tag.Verify(armoredKeyRing)
448+
c.Assert(err, IsNil)
449+
}

0 commit comments

Comments
 (0)