Files
honoka-chan/internal/handler/ghome/basic/publickey.go
T
2026-07-13 08:03:01 +08:00

46 lines
1002 B
Go

package basic
import (
"encoding/base64"
"encoding/pem"
"honoka-chan/config"
"honoka-chan/internal/router"
ghomeschema "honoka-chan/internal/schema/ghome"
"honoka-chan/internal/session"
"honoka-chan/pkg/utils"
"github.com/gin-gonic/gin"
)
func publicKey(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.FinalizeOrRollback()
publicKeyCode := 0
publicKeyMsg := "ok"
publicKeyData := ghomeschema.PublicKeyData{
Result: publicKeyCode,
Message: publicKeyMsg,
}
publicKey := utils.ReadAllText(config.PublicKeyPath)
block, _ := pem.Decode([]byte(publicKey))
if block == nil || block.Type != "PUBLIC KEY" {
publicKeyMsg = "公钥读取失败!"
publicKeyCode = 31
} else {
publicKeyData.Key = base64.StdEncoding.EncodeToString(block.Bytes)
publicKeyData.Method = "rsa"
}
ss.Respond(ghomeschema.PublicKeyResp{
Code: publicKeyCode,
Msg: publicKeyMsg,
Data: publicKeyData,
})
}
func init() {
router.AddHandler("v1", "POST", "/basic/publickey", publicKey)
}