146 lines
3.1 KiB
Go
146 lines
3.1 KiB
Go
package src
|
|
|
|
//import (
|
|
// "acme-mana/src/crypto"
|
|
// "encoding/base64"
|
|
// "encoding/hex"
|
|
// "encoding/json"
|
|
// "github.com/gin-gonic/gin"
|
|
// "log"
|
|
// "os"
|
|
// "path"
|
|
// "path/filepath"
|
|
// "strconv"
|
|
//)
|
|
//
|
|
//func InitHttpServer(host string, port int) {
|
|
//
|
|
// log.Println("Start http server, Listen " + strconv.Itoa(port))
|
|
// h := gin.Default()
|
|
// h.GET("/api/v1/refresh", refreshCert)
|
|
// h.GET("/api/v1/cert", getCert)
|
|
// h.GET("/api/v1/domain/list", domainList)
|
|
// err := h.Run(host + ":" + strconv.Itoa(port))
|
|
// if err != nil {
|
|
// return
|
|
// }
|
|
//}
|
|
//
|
|
//func domainList(c *gin.Context) {
|
|
// token := getToken(c)
|
|
// domains := GetAppConfig().Domains
|
|
// data, err := json.Marshal(domains)
|
|
// if err != nil {
|
|
// log.Fatal(err)
|
|
// }
|
|
//
|
|
// encryptData := encryptResult(string(data), token)
|
|
// c.JSON(200, gin.H{
|
|
// "code": 200,
|
|
// "msg": "success",
|
|
// "data": encryptData,
|
|
// })
|
|
//}
|
|
//
|
|
//func getCert(c *gin.Context) {
|
|
// name := c.Query("name")
|
|
// token := getToken(c)
|
|
//
|
|
// dir := GetAppConfig().CertDir
|
|
// dir = filepath.Join(dir, name)
|
|
// _, err := os.Stat(dir)
|
|
// if os.IsNotExist(err) {
|
|
// c.JSON(200, gin.H{
|
|
// "code": 500,
|
|
// "msg": "Name does not exist.",
|
|
// })
|
|
// return
|
|
// }
|
|
// crtFilePath := path.Join(dir, CertFileName)
|
|
// crtContent, err := os.ReadFile(crtFilePath)
|
|
// if err != nil {
|
|
// c.JSON(200, gin.H{
|
|
// "code": 500,
|
|
// "msg": "Failed to read crt file.",
|
|
// })
|
|
// return
|
|
// }
|
|
// crt := string(crtContent)
|
|
//
|
|
// keyFilePath := path.Join(dir, KeyFileName)
|
|
// keyContent, err := os.ReadFile(keyFilePath)
|
|
// if err != nil {
|
|
// c.JSON(200, gin.H{
|
|
// "code": 500,
|
|
// "msg": "Failed to read key file.",
|
|
// })
|
|
// return
|
|
// }
|
|
// key := string(keyContent)
|
|
//
|
|
// certInfoFilePath := path.Join(dir, CertInfoFileName)
|
|
// certInfoContent, err := os.ReadFile(certInfoFilePath)
|
|
// if err != nil {
|
|
// c.JSON(200, gin.H{
|
|
// "code": 500,
|
|
// "msg": "Failed to read cert info file.",
|
|
// })
|
|
// return
|
|
// }
|
|
// certInfo := string(certInfoContent)
|
|
//
|
|
// data, err := json.Marshal(&DomainData{
|
|
// Fullchain: crt,
|
|
// Key: key,
|
|
// Info: certInfo,
|
|
// })
|
|
// if err != nil {
|
|
// log.Fatal(err)
|
|
// }
|
|
//
|
|
// encryptData := encryptResult(string(data), token)
|
|
// c.JSON(200, gin.H{
|
|
// "code": 200,
|
|
// "msg": "Success",
|
|
// "data": encryptData,
|
|
// })
|
|
//}
|
|
//
|
|
//func refreshCert(c *gin.Context) {
|
|
// name := c.Param("name")
|
|
// domain := GetAppConfig().FindDomain(name)
|
|
// if domain == nil {
|
|
// c.JSON(200, gin.H{
|
|
// "code": 500,
|
|
// "msg": "Name does not exist.",
|
|
// })
|
|
// return
|
|
// }
|
|
// Apply(*domain)
|
|
// c.JSON(200, gin.H{
|
|
// "code": 200,
|
|
// "msg": "Success",
|
|
// })
|
|
//}
|
|
//
|
|
//func getToken(c *gin.Context) (token string) {
|
|
// token = c.Query("token")
|
|
// token = decryptParam(token)
|
|
// return
|
|
//}
|
|
//
|
|
//func decryptParam(param string) string {
|
|
// priKey := GetAppConfig().Encrypt.PriKey
|
|
// tokenBytes, err := hex.DecodeString(param)
|
|
// tokenPlain, err := crypto.DecryptRSABase64(priKey, tokenBytes)
|
|
// if err != nil {
|
|
// log.Fatal(err)
|
|
// }
|
|
// return string(tokenPlain)
|
|
//}
|
|
//
|
|
//func encryptResult(content string, token string) string {
|
|
// result := crypto.EncryptAES([]byte(token), []byte(content))
|
|
// return base64.StdEncoding.EncodeToString(result)
|
|
//}
|