mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Fix verification of subkeys of default gpg key (#11713)
* Fix verification of subkeys of default gpg key Fix #10309 Signed-off-by: Andrew Thornton <art27@cantab.net> * Remove debug log * Update models/gpg_key.go * As per @6543 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		@@ -76,6 +76,53 @@ nARUPZ9SqaUmRm+KGsSyoYnvN9apiDk5KVQoyfrmweNN7DCIIcoh/B9Ax8nmouKz
 | 
				
			|||||||
yBB2fjCM/bJNtN/AsgYbZIScuYK/xqTkwNtbe5WdCyD/QJOHTsPJzx59hgSVo6gf
 | 
					yBB2fjCM/bJNtN/AsgYbZIScuYK/xqTkwNtbe5WdCyD/QJOHTsPJzx59hgSVo6gf
 | 
				
			||||||
Fe8VBnxHtrY8gPSUU3gkhYLvLzyVX+YLNzRcffobd8gJbfumwFJUkz91oGvYz7xg
 | 
					Fe8VBnxHtrY8gPSUU3gkhYLvLzyVX+YLNzRcffobd8gJbfumwFJUkz91oGvYz7xg
 | 
				
			||||||
XN2qmsgBNCbTIzWZMpRDMAbY+n2QFImGf+EJZlMdj6gOrIYq8N4+nMW1FwJivsOb
 | 
					XN2qmsgBNCbTIzWZMpRDMAbY+n2QFImGf+EJZlMdj6gOrIYq8N4+nMW1FwJivsOb
 | 
				
			||||||
muqySyjZnD2AYjEA6OYPXfCVhaB5fTfhQXbIrZbgsEh4ob/eIdM=
 | 
					muqySyjZnD2AYjEA6OYPXfCVhaB5fTfhQXbIrZbgsEh4ob/eIdOdBVgEXta5egEM
 | 
				
			||||||
=oSDR
 | 
					AMYlmZ47NqBMBeaN0o/ahYMe8eIMaroWkufMfC9VRBSMAkpbDl34oNp0cflmnMYo
 | 
				
			||||||
 | 
					AFAl8ucRMFTiUnjiWpo27q14tjSyDVsn/CqwbnrgJgCFNV/MGsYsToEkb4JwDIRC
 | 
				
			||||||
 | 
					bky+1BvqvI8RMlO3MlwzrlIaMrlQfx5NtUb9TyO7S4xZTz864+Ty5p3HhRwbdZMe
 | 
				
			||||||
 | 
					Ko8sfXFhCcCHFXosI0mX83EyzsrXlbkGRawId7jvrdOAUg/cYP8f/XmV6z1NHHH9
 | 
				
			||||||
 | 
					cvz+3oLOGuVxUdG0KuS/jigHrLWdRuKM3xfEeesp870yZU3AbyFdoHnGXROJePTl
 | 
				
			||||||
 | 
					FV8j2P5Ahf/yuVhjdyJSKdZC2h6+HtLG9RiGgLviLLYhtlZG2H6pYyKY5Ud3php+
 | 
				
			||||||
 | 
					qw1aYL1xtdxrHYkQlAa0vLY/mwpuPfMke9I+rtnrwlLRMCstdiN34ybZ4sRD+gL1
 | 
				
			||||||
 | 
					w5VIZ/aM6/Gsczd3s/T8psIi09TKPfEU2gWLMGvlDsgz+aSDdVP7XYQpNglaEPet
 | 
				
			||||||
 | 
					PwARAQABAAv8CHg6+hnV2pblTwGTlTU7V8DO3gwMfn/QhQ/8ju66G5a7J6p/ZreQ
 | 
				
			||||||
 | 
					nfCJnqYq4AgoW0SuqVSBbbTENF6YjixNmiSlb9iHMZ+ilms24xG0Y3lOMBYYCY3Y
 | 
				
			||||||
 | 
					nTSNf6nXyconz31TW7jLmTdG9hpykKEKO9WFgt5UpgWe+2CAgtUoBDZyaLrVBZ2h
 | 
				
			||||||
 | 
					te99WmziDbPQZeZPm7UQ0aX0iRBclxy4+dxjcnrcmi1mdQAM/glgs2sHbEjN7JnV
 | 
				
			||||||
 | 
					dTOvUSN7/8ixj6I719Wx6MN6jE+BNd0ytZOun6tcDl0vamfT5fBpqbQoJMib2ggo
 | 
				
			||||||
 | 
					+FGg9VFnzEMLqyI47LfOKUjCIhwVsxS4q9HXa2FtpO8UfRMPjDKgDZQzRTRJScrP
 | 
				
			||||||
 | 
					s1NJ9HiM/eCHS1YjRmgroo60HygxkoLVCHp+Rz/hi0tG/ptv4q6mdnm8Mwb5JJtV
 | 
				
			||||||
 | 
					48EvmZoNTWl9xOez1wmQn6caVHipc0qDqn/veoe8N5wdc+3hoMEXbSXqU+kx2KUa
 | 
				
			||||||
 | 
					cVxCCVoUeURhBgDUGWtx34j1y17zE92BYhtVJTCU89dDe4wOEqGPyCGvRtgTmZ+1
 | 
				
			||||||
 | 
					KwWr66pij91MV9mlY+7Ue2QHUSmgav2EFGIjVes956p4/F/CJ6qaYoekirMSnmX5
 | 
				
			||||||
 | 
					jhRt4p6RW7m4omha3LAQ+gN4Fqa4acZUywENBvv1x3v+IWbjGJGn3eBnRrP3o9P+
 | 
				
			||||||
 | 
					QUAtyMifiRm0ZN8J767o+bzUVmscXrkh7Qml47lQfDToyRI1UZZQmP2izpwHcwbZ
 | 
				
			||||||
 | 
					NtfkgRUdeEq4GJUGAO8o4Oebbt0ALZ54E2LHhk8xi4ofKkFBDCkUFjcqS3bJJNck
 | 
				
			||||||
 | 
					rkhfqEkMLETNhPbiC4TRNiunI5PXOinwNPkKI8P/hfp4S49WdIvnARazCoxjZNtl
 | 
				
			||||||
 | 
					0Cbo+F1wtOH9FZaaWzNlU2lCQ2JJ3MCpLHz+nEmdYWOIWGQu2/s7smLODVEFbYKR
 | 
				
			||||||
 | 
					50VWVRL7mB83v1XdfMFvExdQ7i5MOX4hFvmwi/WJIKClJfhNwTrHp6Jrm9jA66RL
 | 
				
			||||||
 | 
					+dNyPKfwcFcYrqt1gwYAruZzP7QgTYVL+cmvGtCaHY4KoR8hanbpqR4YbzzyEXwS
 | 
				
			||||||
 | 
					ll2FUCaVSokuRAdH3+/CHF9bqog3Zvn6HYcCS/A/rHVGIU9a+7s5IbRe0Ysc2FAN
 | 
				
			||||||
 | 
					Nm9AsC5YnuyoAjW3cJGaZLYxp2WOZcMEXZeLPFYrNz22R1nRoxnUIPRpsKICXcK0
 | 
				
			||||||
 | 
					aC4rSMk479jc/8WprWx4d45EVG+6Gsh1AT8LVhDL9yHFrh50ss2jCe1Fnftet6DI
 | 
				
			||||||
 | 
					V5zHcxBx4sCs91aPxxe12UiJA2wEGAEKACAWIQQ4G/p4KVUOUEVu5g5R68KXFICq
 | 
				
			||||||
 | 
					DwUCXta5egIbAgHACRBR68KXFICqD8D0IAQZAQoAHRYhBKAm5ShdO9gmF/o8jan0
 | 
				
			||||||
 | 
					RkmWoKbKBQJe1rl6AAoJEKn0RkmWoKbKacUL/3YYKmiVvcr5LYFzMdwdahkla+6m
 | 
				
			||||||
 | 
					hEEkL0l3dJNuU97Ou71tA1ieF0fjbVRSWjXKsntKwhyPoXjaZEZwMmv7iZ8BXV+b
 | 
				
			||||||
 | 
					oO/EG5sg2/6iukJFXZqGnQwMdLVo1jPoXDteZU1qYiCoxLHhGhHL7ivtD1ygEi6w
 | 
				
			||||||
 | 
					/cMbbOEB5Le1vOWIwqazs8dDcAYyy1PKthRl0ygvh8CpqPwy+AK3uLm0TVwetQAp
 | 
				
			||||||
 | 
					taux0bDYWCb5Aft1r1nlV44gU4RiC131TDo+TKd754+UuI+UHk1D+LjTmZxRX2S6
 | 
				
			||||||
 | 
					fXgoMXzrWmthGPdqvVOgKWm7Ef18hmaBECvPnp/tUJeDVVe02KrYQi8Bf2kxveSd
 | 
				
			||||||
 | 
					8T0N/ExcydU9HgzTL8MuyPI+yp086elQzKJu6vb9tpgxCcglQZrUNT9Uy82pzTRY
 | 
				
			||||||
 | 
					z9MmhnCDI2SD5L/CW5PsNpPTPy7s3f9DOV0G5Vka4LTSBOCK64NvAGBmRf8rFjJU
 | 
				
			||||||
 | 
					lPtRPhC7h6uHdUIx3Q550Xogvq5sQm8UBCsbG8OJDADT3FJSIulR9Sh96OsES3sc
 | 
				
			||||||
 | 
					H09juN4KcbpS03MAeUFwXqw3jBMhDoGKlsjX17Jf31qh/nI/XjigS3XWyj1BLSMG
 | 
				
			||||||
 | 
					rJfH0NyYoGDCnff37tf+8lD9km9TlnV4Qjd9ujYbDRsefhaSjLVcy/gqdxZEuNBC
 | 
				
			||||||
 | 
					BWmGwsmLI3nyZ4KDtNsa5JUHUNNZLBN20hvmE41Eszmz4Yg9Ho9DxKiFKvzUULMc
 | 
				
			||||||
 | 
					bnMHaVHseHHq6+NVUnN1SAcOA0ygjnEid8D57RtdBCD90LXjLB7vlR+HaSMZYOnr
 | 
				
			||||||
 | 
					DtseivHvqqy4+rxhwV2S3avnls9vRwE4bV6GCiqhoBnWIZRrARLZc2OTBIya82vS
 | 
				
			||||||
 | 
					BIS1eyhjif1mE7Lqhs6aPD+eqQK2mBtQ/sidN8P/IfKfVF5siXfFbuGZLz5nRIho
 | 
				
			||||||
 | 
					Yp1z7oO3OZ09lpUk0G1h+ouIFF6goDP48M/AKtbvs9OWk3QKxnOUZD8sRncq95x6
 | 
				
			||||||
 | 
					m4q1MVb+aJyxwBqDRGaFY+3TVArB1b+kG1JsAvV5dag=
 | 
				
			||||||
 | 
					=511T
 | 
				
			||||||
-----END PGP PRIVATE KEY BLOCK-----
 | 
					-----END PGP PRIVATE KEY BLOCK-----
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -741,6 +741,21 @@ func verifyWithGPGSettings(gpgSettings *git.GPGSettings, sig *packet.Signature,
 | 
				
			|||||||
		CanSign: pubkey.CanSign(),
 | 
							CanSign: pubkey.CanSign(),
 | 
				
			||||||
		KeyID:   pubkey.KeyIdString(),
 | 
							KeyID:   pubkey.KeyIdString(),
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						for _, subKey := range ekey.Subkeys {
 | 
				
			||||||
 | 
							content, err := base64EncPubKey(subKey.PublicKey)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return &CommitVerification{
 | 
				
			||||||
 | 
									CommittingUser: committer,
 | 
				
			||||||
 | 
									Verified:       false,
 | 
				
			||||||
 | 
									Reason:         "gpg.error.generate_hash",
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							k.SubsKey = append(k.SubsKey, &GPGKey{
 | 
				
			||||||
 | 
								Content: content,
 | 
				
			||||||
 | 
								CanSign: subKey.PublicKey.CanSign(),
 | 
				
			||||||
 | 
								KeyID:   subKey.PublicKey.KeyIdString(),
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if commitVerification := hashAndVerifyWithSubKeys(sig, payload, k, committer, &User{
 | 
						if commitVerification := hashAndVerifyWithSubKeys(sig, payload, k, committer, &User{
 | 
				
			||||||
		Name:  gpgSettings.Name,
 | 
							Name:  gpgSettings.Name,
 | 
				
			||||||
		Email: gpgSettings.Email,
 | 
							Email: gpgSettings.Email,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user