Fix GPG email checking to be case insensitive (#1988)
This commit is contained in:
		
							parent
							
								
									6678593b3c
								
							
						
					
					
						commit
						1a906f800d
					
				| 
						 | 
					@ -211,9 +211,9 @@ func parseGPGKey(ownerID int64, e *openpgp.Entity) (*GPGKey, error) {
 | 
				
			||||||
	emails := make([]*EmailAddress, len(e.Identities))
 | 
						emails := make([]*EmailAddress, len(e.Identities))
 | 
				
			||||||
	n := 0
 | 
						n := 0
 | 
				
			||||||
	for _, ident := range e.Identities {
 | 
						for _, ident := range e.Identities {
 | 
				
			||||||
 | 
							email := strings.ToLower(strings.TrimSpace(ident.UserId.Email))
 | 
				
			||||||
		for _, e := range userEmails {
 | 
							for _, e := range userEmails {
 | 
				
			||||||
			if e.Email == ident.UserId.Email && e.IsActivated {
 | 
								if e.Email == email && e.IsActivated {
 | 
				
			||||||
				emails[n] = e
 | 
									emails[n] = e
 | 
				
			||||||
				break
 | 
									break
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -183,3 +183,42 @@ Unknown GPG key with good email
 | 
				
			||||||
	err = verifySign(goodSig, goodHash, cannotsignkey)
 | 
						err = verifySign(goodSig, goodHash, cannotsignkey)
 | 
				
			||||||
	assert.Error(t, err, "Validate a bad signature with a kay that can not sign")
 | 
						assert.Error(t, err, "Validate a bad signature with a kay that can not sign")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestCheckGPGUserEmail(t *testing.T) {
 | 
				
			||||||
 | 
						testEmailWithUpperCaseLetters := `-----BEGIN PGP PUBLIC KEY BLOCK-----
 | 
				
			||||||
 | 
					Version: GnuPG v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mQENBFlEBvMBCADe+EQcfv/aKbMFy7YB8e/DE+hY39sfjvdvSgeXtNhfmYvIOUjT
 | 
				
			||||||
 | 
					ORMCvce2Oxzb3HTI0rjYsJpzo9jEQ53dB3vdr0ne5Juby6N7QPjof3NR+ko50Ki2
 | 
				
			||||||
 | 
					0ilOjYuA0v6VHLIn70UBa9NEf+XDuE7P+Lbtl2L9B9OMXtcTAZoA3cJySgtNFNIG
 | 
				
			||||||
 | 
					AVefPi8LeOcekL39wxJEA8OzdCyO5oENEwAG1tzjy9DDNJf74/dBBh2NiXeSeMxZ
 | 
				
			||||||
 | 
					RYeYzqEa2UTDP1fkUl7d2/hV36cKZWZr+l4SQ5bM7HeLj2SsfabLfqKoVWgkfAzQ
 | 
				
			||||||
 | 
					VwtkbRpzMiDLMte2ZAyTJUc+77YbFoyAmOcjABEBAAG0HFVzZXIgT25lIDxVc2Vy
 | 
				
			||||||
 | 
					MUBFeGFtcGxlLmNvbT6JATgEEwECACIFAllEBvMCGwMGCwkIBwMCBhUIAgkKCwQW
 | 
				
			||||||
 | 
					AgMBAh4BAheAAAoJEFMOzOY274DFw5EIAKc4jiYaMb1HDKrSv0tphgNxPFEY83/J
 | 
				
			||||||
 | 
					9CZggO7BINxlb7z/lH1i0U2h2Ha9E3VJTJQF80zBCaIvtU2UNrgVmSKoc0BdE/2S
 | 
				
			||||||
 | 
					rS9MAl29sXxf1BfvXHu12Suvo8O/ZFP45Vm/3kkHuasHyOV1GwUWnynt1qo0zUEn
 | 
				
			||||||
 | 
					WMIcB8USlmMT1TnSb10YKBd/BpGF3crFDJLfAHRumZUk4knDDWUOWy5RCOG8cedc
 | 
				
			||||||
 | 
					VTAhfdoKRRO3PchOfz6Rls/hew12mRNayqxuLQl2+BX+BWu+25dR3qyiS+twLbk6
 | 
				
			||||||
 | 
					Rjpb0S+RQTkYIUoI0SEZpxcTZso11xF5KNpKZ9aAoiLJqkNF5h4oPSe5AQ0EWUQG
 | 
				
			||||||
 | 
					8wEIALiMMqh3NF3ON/z7hQfeU24bCl/WdfJwCR9CWU/jx4X4gZq2C2aGtytGN5g/
 | 
				
			||||||
 | 
					qoYQ3poTOPzh/4Dvs+r6CtHqi0CvPiEOfSxzmaK+F+vA0GMn2i3Sx5gq/VB0mr+j
 | 
				
			||||||
 | 
					RIYMCjf68Tifo2RAT0VDzn6t304l5+VPr4OgbobMRH+wDe7Hhd2pZXl7ty8DooBn
 | 
				
			||||||
 | 
					vqaqoKgdiccUXGBKe4Oihl/oZ4qrYH6K4ACP1Sco1rs4mNeKDAW8k/Y7zLjg6d59
 | 
				
			||||||
 | 
					g0YQ1YI+CX/bKB7/cpMHLupyMLqvCcqIpjBXRJNMdjuMHgKckjr89DwnqXqgXz7W
 | 
				
			||||||
 | 
					u0B39MZQn9nn6vq8BdkoDFgrTQ8AEQEAAYkBHwQYAQIACQUCWUQG8wIbDAAKCRBT
 | 
				
			||||||
 | 
					DszmNu+Axf4IB/0S9NTc6kpwW+ZPZQNTWR5oKDEaXVCRLccOlkt33txMvk/z2jNM
 | 
				
			||||||
 | 
					trEke99ss5L1bRyWB5fRA+XVsPmW9kIk8pmGFmxqp2nSxr9m9rlL5oTYH8u6dfSm
 | 
				
			||||||
 | 
					zwGhqkfITjPI7hyNN52PLANwoS0o4dLzIE65ewigx6cnRlrT2IENObxG/tlxaYg1
 | 
				
			||||||
 | 
					NHahJX0uFlVk0W0bLBrs3fTDw1lS/N8HpyQb+5ryQmiIb2a48aygCS/h2qeRlX1d
 | 
				
			||||||
 | 
					Q0KHb+QcycSgbDx0ZAvdIacuKvBBcbxrsmFUI4LR+oIup0G9gUc0roPvr014jYQL
 | 
				
			||||||
 | 
					7f8r/8fpcN8t+I/41QHCs6L/BEIdTHW3rTQ6
 | 
				
			||||||
 | 
					=zHo9
 | 
				
			||||||
 | 
					-----END PGP PUBLIC KEY BLOCK-----`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						key, err := AddGPGKey(1, testEmailWithUpperCaseLetters)
 | 
				
			||||||
 | 
						assert.NoError(t, err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						assert.Len(t, key.Emails, 1)
 | 
				
			||||||
 | 
						assert.Equal(t, "user1@example.com", key.Emails[0].Email)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue