Skip to content

Commit d3af10f

Browse files
committed
fix error handling and add comments about what function verifies which config
1 parent 66194b2 commit d3af10f

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

services/asymkey/commit.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@ func ParseCommitWithSSHSignature(ctx context.Context, c *git.Commit, committer *
414414

415415
defaultReason := asymkey_model.NoKeyFound
416416

417+
// Covers ssh verification for the default SSH signing key specifed in gitea config
417418
if setting.Repository.Signing.SigningFormat == git.KeyTypeSSH && setting.Repository.Signing.SigningKey != "" && setting.Repository.Signing.SigningKey != "default" && setting.Repository.Signing.SigningKey != "none" {
418419
// OK we should try the default key
419420
gpgSettings := git.GPGSettings{
@@ -425,9 +426,9 @@ func ParseCommitWithSSHSignature(ctx context.Context, c *git.Commit, committer *
425426
}
426427
if err := gpgSettings.LoadPublicKeyContent(); err != nil {
427428
log.Error("Error getting default signing key: %s %v", gpgSettings.KeyID, err)
428-
}
429-
fingerprint, _ := asymkey_model.CalcFingerprint(gpgSettings.PublicKeyContent)
430-
if commitVerification := verifySSHCommitVerification(c.Signature.Signature, c.Signature.Payload, &asymkey_model.PublicKey{
429+
} else if fingerprint, err := asymkey_model.CalcFingerprint(gpgSettings.PublicKeyContent); err != nil {
430+
log.Error("Error calculating the fingerprint public key: %s %v", gpgSettings.KeyID, err)
431+
} else if commitVerification := verifySSHCommitVerification(c.Signature.Signature, c.Signature.Payload, &asymkey_model.PublicKey{
431432
Verified: true,
432433
Content: gpgSettings.PublicKeyContent,
433434
Fingerprint: fingerprint,
@@ -444,18 +445,19 @@ func ParseCommitWithSSHSignature(ctx context.Context, c *git.Commit, committer *
444445
}
445446
}
446447

448+
// Covers ssh verification for the default SSH signing key specifed in the .gitconfig file in Git.HomePath setting
447449
defaultGPGSettings, err := c.GetRepositoryDefaultPublicGPGKey(false)
448450
if defaultGPGSettings.Format == git.KeyTypeSSH {
449451
if err != nil {
450-
log.Error("Error getting default public gpg key: %v", err)
452+
log.Error("Error getting default public ssh key: %v", err)
451453
} else if defaultGPGSettings == nil {
452454
log.Warn("Unable to get defaultGPGSettings for unattached commit: %s", c.ID.String())
453455
} else if defaultGPGSettings.Sign {
454456
if err := defaultGPGSettings.LoadPublicKeyContent(); err != nil {
455457
log.Error("Error getting default signing key: %s %v", defaultGPGSettings.KeyID, err)
456-
}
457-
fingerprint, _ := asymkey_model.CalcFingerprint(defaultGPGSettings.PublicKeyContent)
458-
if commitVerification := verifySSHCommitVerification(c.Signature.Signature, c.Signature.Payload, &asymkey_model.PublicKey{
458+
} else if fingerprint, err := asymkey_model.CalcFingerprint(defaultGPGSettings.PublicKeyContent); err != nil {
459+
log.Error("Error calculating the fingerprint public key: %s %v", defaultGPGSettings.KeyID, err)
460+
} else if commitVerification := verifySSHCommitVerification(c.Signature.Signature, c.Signature.Payload, &asymkey_model.PublicKey{
459461
Verified: true,
460462
Content: defaultGPGSettings.PublicKeyContent,
461463
Fingerprint: fingerprint,

0 commit comments

Comments
 (0)