mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 19:38:23 +00:00 
			
		
		
		
	Use ProtonMail/go-crypto to replace keybase/go-crypto (#33402)
Fix #33400 The keybase/go-crypto is no longer maintained and it generates malformed signatures, ProtonMail/go-crypto is the actively maintained fork.
This commit is contained in:
		| @@ -13,7 +13,8 @@ import ( | ||||
| 	"code.gitea.io/gitea/modules/timeutil" | ||||
| 	"code.gitea.io/gitea/modules/util" | ||||
|  | ||||
| 	"github.com/keybase/go-crypto/openpgp/packet" | ||||
| 	"github.com/ProtonMail/go-crypto/openpgp" | ||||
| 	"github.com/ProtonMail/go-crypto/openpgp/packet" | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| 	"github.com/stretchr/testify/require" | ||||
| ) | ||||
| @@ -403,3 +404,25 @@ func TestTryGetKeyIDFromSignature(t *testing.T) { | ||||
| 		IssuerFingerprint: []uint8{0xb, 0x23, 0x24, 0xc7, 0xe6, 0xfe, 0x4f, 0x3a, 0x6, 0x26, 0xc1, 0x21, 0x3, 0x8d, 0x1a, 0x3e, 0xad, 0xdb, 0xea, 0x9c}, | ||||
| 	})) | ||||
| } | ||||
|  | ||||
| func TestParseGPGKey(t *testing.T) { | ||||
| 	assert.NoError(t, unittest.PrepareTestDatabase()) | ||||
| 	assert.NoError(t, db.Insert(db.DefaultContext, &user_model.EmailAddress{UID: 1, Email: "email1@example.com", IsActivated: true})) | ||||
|  | ||||
| 	// create a key for test email | ||||
| 	e, err := openpgp.NewEntity("name", "comment", "email1@example.com", nil) | ||||
| 	require.NoError(t, err) | ||||
| 	k, err := parseGPGKey(db.DefaultContext, 1, e, true) | ||||
| 	require.NoError(t, err) | ||||
| 	assert.NotEmpty(t, k.KeyID) | ||||
| 	assert.NotEmpty(t, k.Emails) // the key is valid, matches the email | ||||
|  | ||||
| 	// then revoke the key | ||||
| 	for _, id := range e.Identities { | ||||
| 		id.Revocations = append(id.Revocations, &packet.Signature{RevocationReason: util.ToPointer(packet.KeyCompromised)}) | ||||
| 	} | ||||
| 	k, err = parseGPGKey(db.DefaultContext, 1, e, true) | ||||
| 	require.NoError(t, err) | ||||
| 	assert.NotEmpty(t, k.KeyID) | ||||
| 	assert.Empty(t, k.Emails) // the key is revoked, matches no email | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user