-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathtls.go
More file actions
113 lines (106 loc) · 2.36 KB
/
tls.go
File metadata and controls
113 lines (106 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package main
import (
"fmt"
"github.com/astaxie/beego/logs"
"github.com/lxn/walk"
. "github.com/lxn/walk/declarative"
)
func TlsAction() {
var dlg *walk.Dialog
var acceptPB, cancelPB *walk.PushButton
var tlsCA, tlsCert, tlsKey *walk.TextEdit
_, err := Dialog{
AssignTo: &dlg,
Title: "TLS Certificate Edit",
Icon: walk.IconInformation(),
DefaultButton: &acceptPB,
CancelButton: &acceptPB,
Size: Size{Width: 450, Height: 300},
MinSize: Size{Width: 450, Height: 300},
Layout: VBox{},
Children: []Widget{
Composite{
Layout: Grid{Columns: 2},
Children: []Widget{
Label{
Text: "TLS CA: ",
},
TextEdit{
AssignTo: &tlsCA,
MinSize: Size{Height: 100},
Text: ConfigGet().HttpsInfo.CA,
VScroll: true,
},
Label{
Text: "TLS Cert*: ",
},
TextEdit{
AssignTo: &tlsCert,
MinSize: Size{Height: 100},
Text: ConfigGet().HttpsInfo.Cert,
VScroll: true,
},
Label{
Text: "TLS Key*: ",
},
TextEdit{
AssignTo: &tlsKey,
MinSize: Size{Height: 100},
Text: ConfigGet().HttpsInfo.Key,
VScroll: true,
},
},
},
Composite{
Layout: HBox{},
Children: []Widget{
HSpacer{},
PushButton{
AssignTo: &acceptPB,
Text: "Save",
OnClicked: func() {
if tlsCert.Text() != "" || tlsKey.Text() != "" {
_, err := CreateTlsConfig(tlsCert.Text(), tlsKey.Text())
if err != nil {
ErrorBoxAction(mainWindow, fmt.Sprintf("TLS Cert or Key maybe invalid! %s", err.Error()))
return
}
}
err := HttpsInfoSave(TlsInfo{
CA: tlsCA.Text(),
Cert: tlsCert.Text(),
Key: tlsKey.Text(),
})
if err != nil {
ErrorBoxAction(mainWindow, err.Error())
return
}
dlg.Accept()
},
},
HSpacer{},
PushButton{
Text: "Generate",
OnClicked: func() {
cert, key := GenerateKeyCert(ConfigGet().ListenAddr)
tlsCert.SetText(cert)
tlsKey.SetText(key)
},
},
HSpacer{},
PushButton{
AssignTo: &cancelPB,
Text: "Cancel",
OnClicked: func() {
dlg.Cancel()
},
},
HSpacer{},
},
},
},
}.Run(mainWindow)
if err != nil {
logs.Error(err.Error())
}
}