func NewHandshakePacket(sessionKey []byte, networkSecret *secure.NetworkSecret) *Packet { sessionKey = append(magicKey, sessionKey...) data := networkSecret.Encode(sessionKey) body := Body{ Type: TypeHandshake, Msg: HandshakeMessage(data), } return &Packet{ Head: Header{ Length: body.Len(), Version: CurrentVersion, }, Data: body, } }
func actionNew(ctx *cli.Context) { var secret *secure.NetworkSecret var err error if len(ctx.Args()) > 0 { keyStr := ctx.Args().First() secret, err = secure.NetworkSecretUnmarshal(keyStr) if err != nil { log.Fatal("error on decode network key, %v", err) } } else { _, ipNet, err := net.ParseCIDR(ctx.String("CIDR")) if err != nil { log.Fatal("cidr parse error, %v", err) } secret = secure.NewNetworkSecret(ipNet) } fmt.Println(secret.Marshal()) }