gitea源码

key_display.go 955B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright 2025 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package asymkey
  4. import (
  5. "os"
  6. "code.gitea.io/gitea/modules/git"
  7. "code.gitea.io/gitea/modules/log"
  8. "code.gitea.io/gitea/modules/setting"
  9. )
  10. func GetDisplaySigningKey(key *git.SigningKey) string {
  11. if key == nil || key.Format == "" {
  12. return ""
  13. }
  14. switch key.Format {
  15. case git.SigningKeyFormatOpenPGP:
  16. return key.KeyID
  17. case git.SigningKeyFormatSSH:
  18. content, err := os.ReadFile(key.KeyID)
  19. if err != nil {
  20. log.Error("Unable to read SSH key %s: %v", key.KeyID, err)
  21. return "(Unable to read SSH key)"
  22. }
  23. display, err := CalcFingerprint(string(content))
  24. if err != nil {
  25. log.Error("Unable to calculate fingerprint for SSH key %s: %v", key.KeyID, err)
  26. return "(Unable to calculate fingerprint for SSH key)"
  27. }
  28. return display
  29. }
  30. setting.PanicInDevOrTesting("Unknown signing key format: %s", key.Format)
  31. return "(Unknown key format)"
  32. }