mirror of https://github.com/status-im/go-waku.git
test: public_key and resolver (#147)
This commit is contained in:
parent
6d04308716
commit
54f647aa4f
|
@ -0,0 +1,49 @@
|
|||
package discovery
|
||||
|
||||
import (
|
||||
"crypto/ecdsa"
|
||||
"crypto/rand"
|
||||
"testing"
|
||||
|
||||
"github.com/libp2p/go-libp2p-core/crypto"
|
||||
pb "github.com/libp2p/go-libp2p-core/crypto/pb"
|
||||
"github.com/minio/sha256-simd"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestBasicEquals(t *testing.T) {
|
||||
_, pub1, err := crypto.GenerateECDSAKeyPair(rand.Reader)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, pub2, err := crypto.GenerateECDSAKeyPair(rand.Reader)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.False(t, basicEquals(pub1, pub2))
|
||||
require.True(t, basicEquals(pub1, pub1))
|
||||
}
|
||||
|
||||
func TestSignAndVerify(t *testing.T) {
|
||||
priv1, err := ecdsa.GenerateKey(crypto.ECDSACurve, rand.Reader)
|
||||
require.NoError(t, err)
|
||||
pub1 := ECDSAPublicKey{pub: &priv1.PublicKey}
|
||||
|
||||
require.Equal(t, pb.KeyType_Secp256k1, pub1.Type())
|
||||
|
||||
msg := []byte("hello world")
|
||||
|
||||
data := sha256.Sum256(msg)
|
||||
sig, err := priv1.Sign(rand.Reader, data[:], nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
ok, err := pub1.Verify(msg, sig)
|
||||
require.NoError(t, err)
|
||||
require.True(t, ok)
|
||||
|
||||
// change data
|
||||
data[0] = ^data[0]
|
||||
ok, err = pub1.Verify(data[:], sig)
|
||||
require.NoError(t, err)
|
||||
require.False(t, ok)
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package discovery
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestResolver(t *testing.T) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
resolver1 := GetResolver(ctx, "")
|
||||
require.Equal(t, net.DefaultResolver, resolver1)
|
||||
|
||||
resolver2 := GetResolver(ctx, "1.1.1.1")
|
||||
require.NotEqual(t, net.DefaultResolver, resolver2)
|
||||
require.True(t, resolver2.PreferGo)
|
||||
|
||||
cname, err := resolver2.LookupCNAME(ctx, "status.im")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "status.im.", cname)
|
||||
}
|
Loading…
Reference in New Issue