1
0
mirror of https://github.com/fumiama/WireGold.git synced 2026-06-28 06:40:26 +08:00

完善密钥分发

This commit is contained in:
fumiama
2021-10-25 21:20:28 +08:00
parent 34d48859d9
commit 51b557f06f
7 changed files with 62 additions and 12 deletions

View File

@@ -1,13 +1,15 @@
package link
import "net"
import (
"net"
)
var (
// 本机私钥
// 利用 Curve25519 生成
// https://pkg.go.dev/golang.org/x/crypto/curve25519
// https://www.zhihu.com/question/266758647
privKey [32]byte
privKey []byte
// 本机虚拟 ip
me net.IP
// 本机 endpoint
@@ -15,7 +17,7 @@ var (
)
// SetMyself 设置本机参数
func SetMyself(privateKey [32]byte, myIP string, myEndpoint string) {
func SetMyself(privateKey []byte, myIP string, myEndpoint string) {
privKey = privateKey
var err error
myend, err = net.ResolveUDPAddr("udp", myEndpoint)
@@ -32,11 +34,31 @@ func SetMyself(privateKey [32]byte, myIP string, myEndpoint string) {
// Encode 使用 ChaCha20-Poly1305 加密
// https://pkg.go.dev/golang.org/x/crypto/chacha20poly1305
func (l *Link) Encode(b []byte) (eb []byte, err error) {
return b, nil
if b == nil {
return
}
if l.key == nil {
eb = b
} else {
// 在此处填写加密逻辑密钥是l.key输入是b输出是eb
// 不用写return直接赋值给eb即可
eb = b
}
return
}
// Decode 使用 ChaCha20-Poly1305 解密
// https://pkg.go.dev/golang.org/x/crypto/chacha20poly1305
func (l *Link) Decode(b []byte) (db []byte, err error) {
return b, nil
if b == nil {
return
}
if l.key == nil {
db = b
} else {
// 在此处填写解密逻辑密钥是l.key输入是b输出是db
// 不用写return直接赋值给db即可
db = b
}
return
}