:art:完成基本构想的全部
All checks were successful
continuous-integration/drone/tag Build is passing

This commit is contained in:
coward
2024-06-06 17:02:45 +08:00
parent 1bc4e7869a
commit b02ce4b0ba
24 changed files with 432 additions and 40 deletions

View File

@@ -131,16 +131,40 @@ func (r clientRepo) Save(p param.SaveClient, adminId string) (client *entity.Cli
return nil, errors.New("该客户端的IP已经存在请检查后再添加")
}
// 为空,新增
privateKey, err := wgtypes.GeneratePrivateKey()
if err != nil {
return
var privateKey, presharedKey wgtypes.Key
var publicKey string
if p.Keys.PrivateKey == "" {
// 为空,新增
privateKey, err = wgtypes.GeneratePrivateKey()
if err != nil {
log.Errorf("生成密钥对失败: %v", err.Error())
return nil, errors.New("解析密钥失败")
}
} else {
privateKey, err = wgtypes.ParseKey(p.Keys.PrivateKey)
if err != nil {
log.Errorf("解析密钥对失败: %v", err.Error())
return nil, errors.New("解析密钥失败")
}
}
publicKey := privateKey.PublicKey().String()
presharedKey, err := wgtypes.GenerateKey()
if err != nil {
return
publicKey = privateKey.PublicKey().String()
if p.Keys.PresharedKey == "" {
presharedKey, err = wgtypes.GenerateKey()
if err != nil {
log.Errorf("生成共享密钥失败: %v", err.Error())
return nil, errors.New("解析密钥失败")
}
} else {
presharedKey, err = wgtypes.ParseKey(p.Keys.PresharedKey)
if err != nil {
log.Errorf("解析共享密钥失败: %v", err.Error())
return nil, errors.New("解析密钥失败")
}
}
keys := template_data.Keys{
PrivateKey: privateKey.String(),
PublicKey: publicKey,