123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /*
- * Copyright (C)2013-2020 ZeroTier, Inc.
- *
- * Use of this software is governed by the Business Source License included
- * in the LICENSE.TXT file in the project's root directory.
- *
- * Change Date: 2025-01-01
- *
- * On the date above, in accordance with the Business Source License, use
- * of this software will be governed by version 2.0 of the Apache License.
- */
- /****/
- package main
- import (
- "bytes"
- "fmt"
- "zerotier/pkg/zerotier"
- )
- func TestLocator() bool {
- fmt.Printf("Creating Endpoint instances... ")
- ep0, err := zerotier.NewEndpointFromString("1.1.1.1/1")
- if err != nil {
- fmt.Printf("IPv4 FAILED (%s)\n",err.Error())
- return false
- }
- ep1, err := zerotier.NewEndpointFromString("2600:1901:0:4006::1234/2")
- if err != nil {
- fmt.Printf("IPv6 FAILED (%s)\n",err.Error())
- return false
- }
- eps := []*zerotier.Endpoint{ep0, ep1}
- fmt.Printf("OK\n")
- fmt.Printf("Creating signing Identity... ")
- signer, err := zerotier.NewIdentity(zerotier.IdentityTypeP384)
- if err != nil {
- fmt.Printf("FAILED (%s)\n", err.Error())
- return false
- }
- fmt.Printf("OK %s\n",signer.String())
- fmt.Printf("Creating Locator instance... ")
- loc, err := zerotier.NewLocator(zerotier.TimeMs(), eps, signer)
- if err != nil {
- fmt.Printf("FAILED (%s)\n",err.Error())
- return false
- }
- locStr := loc.String()
- locBytes := loc.Bytes()
- fmt.Printf("OK (%d bytes)\n",len(locBytes))
- fmt.Printf("Testing Locator Validate()... ")
- if !loc.Validate(signer) {
- fmt.Printf("FAILED (should have validated)\n")
- return false
- }
- fmt.Printf("OK\n")
- fmt.Printf("Testing Locator marshal/unmarshal... ")
- loc2, err := zerotier.NewLocatorFromString(locStr)
- if err != nil {
- fmt.Printf("FAILED (%s)\n",err.Error())
- return false
- }
- if !bytes.Equal(locBytes, loc2.Bytes()) {
- fmt.Printf("FAILED (not equal)\n")
- return false
- }
- loc2, err = zerotier.NewLocatorFromBytes(locBytes)
- if err != nil {
- fmt.Printf("FAILED (%s)\n",err.Error())
- return false
- }
- if !bytes.Equal(locBytes, loc2.Bytes()) {
- fmt.Printf("FAILED (not equal)\n")
- return false
- }
- fmt.Printf("OK\n")
- return true
- }
|