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 { logger.Fatal(err) } } else { _, ipnet, err := net.ParseCIDR(ctx.String("CIDR")) if err != nil { logger.Fatalf("cidr parse error: %s", err) } secret = secure.NewNetworkSecret(ipnet) } keyStr := secret.Marshal() logger.Printf("key: %s", keyStr) }