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) //}