domain list

This commit is contained in:
ZhuoQinghui 2024-10-25 17:50:14 +08:00
parent c26ea0fe41
commit ee6ef8dde3
4 changed files with 57 additions and 5 deletions

View File

@ -26,6 +26,8 @@ func Start() {
} }
command := args[1] command := args[1]
switch command { switch command {
case "block":
doTask()
case "start": case "start":
daemonStart() daemonStart()
case "stop": case "stop":

View File

@ -7,6 +7,8 @@ import (
"crypto/rand" "crypto/rand"
"crypto/rsa" "crypto/rsa"
"crypto/x509" "crypto/x509"
"encoding/base64"
"encoding/json"
"encoding/pem" "encoding/pem"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"io" "io"
@ -23,12 +25,28 @@ func InitHttpServer(host string, port int) {
h := gin.Default() h := gin.Default()
h.GET("/api/v1/refresh", refreshCert) h.GET("/api/v1/refresh", refreshCert)
h.GET("/api/v1/cert", getCert) h.GET("/api/v1/cert", getCert)
h.GET("/api/v1/domain/list", domainList)
err := h.Run(host + ":" + strconv.Itoa(port)) err := h.Run(host + ":" + strconv.Itoa(port))
if err != nil { if err != nil {
return return
} }
} }
func domainList(c *gin.Context) {
token := getToken(c)
domains := GetAppConfig().Domains
data, err := json.Marshal(domains)
if err != nil {
log.Fatal(err)
}
c.JSON(200, gin.H{
"code": 200,
"msg": "Success",
"data": encryptResult(string(data), token),
})
}
func getCert(c *gin.Context) { func getCert(c *gin.Context) {
name := c.Param("name") name := c.Param("name")
token := getToken(c) token := getToken(c)
@ -137,7 +155,7 @@ func encryptResult(content string, token string) string {
ciphertext := make([]byte, len(plaintext)) ciphertext := make([]byte, len(plaintext))
mode.CryptBlocks(ciphertext, plaintext) mode.CryptBlocks(ciphertext, plaintext)
return string(ciphertext) return base64.StdEncoding.EncodeToString(ciphertext)
} }
func pad(src []byte, blockSize int) []byte { func pad(src []byte, blockSize int) []byte {

View File

@ -13,10 +13,11 @@ func GenRsa() (priKey string, pubKey string, err error) {
return "", "", err return "", "", err
} }
publicKey := &privateKey.PublicKey publicKey := &privateKey.PublicKey
publicKeyBytes, err := x509.MarshalPKIXPublicKey(publicKey) publicKeyBytes := x509.MarshalPKCS1PublicKey(publicKey)
if err != nil { //publicKeyBytes, err := x509.MarshalPKIXPublicKey(publicKey)
return "", "", err //if err != nil {
} // return "", "", err
//}
pubKey = base64.StdEncoding.EncodeToString(publicKeyBytes) pubKey = base64.StdEncoding.EncodeToString(publicKeyBytes)
//pemBlock := &pem.Block{ //pemBlock := &pem.Block{
// Type: "", // Type: "",

31
test/encrypt_test.go Normal file
View File

@ -0,0 +1,31 @@
package test
import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/base64"
"fmt"
"log"
"testing"
)
func TestGenRsa(t *testing.T) {
privateKey, err := rsa.GenerateKey(rand.Reader, 2048)
if err != nil {
log.Fatal(err)
}
publicKeyBytes, err := x509.MarshalPKIXPublicKey(&privateKey.PublicKey)
if err != nil {
log.Fatal(err)
}
pubKey := base64.StdEncoding.EncodeToString(publicKeyBytes)
//publicKey := &privateKey.PublicKey
//publicKeyBytes := x509.MarshalPKCS1PublicKey(publicKey)
//pubKey := base64.StdEncoding.EncodeToString(publicKeyBytes)
key := x509.MarshalPKCS1PrivateKey(privateKey)
priKey := base64.StdEncoding.EncodeToString(key)
fmt.Println(pubKey)
fmt.Println()
fmt.Println(priKey)
}