github.com/line/ostracon@v1.0.10-0.20230328032236-7f20145f065d/crypto/encoding/codec_test.go (about)

     1  package encoding
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  
     7  	"github.com/line/ostracon/crypto"
     8  	"github.com/line/ostracon/crypto/ed25519"
     9  )
    10  
    11  func testPubKeyFromToProto(t *testing.T, sk crypto.PrivKey) {
    12  	pk := sk.PubKey()
    13  	pbPubKey, err := PubKeyToProto(pk)
    14  	if err != nil {
    15  		t.Fatalf("The public key could not be converted to a ProtocolBuffers format: %s; %+v", err, pk)
    16  	}
    17  	pk2, err := PubKeyFromProto(&pbPubKey)
    18  	if err != nil {
    19  		t.Fatalf("The public key could not be retrieved from a ProtocolBuffers format: %s; %+v", err, pbPubKey)
    20  	}
    21  	if reflect.TypeOf(pk2) != reflect.TypeOf(pk) {
    22  		t.Fatalf("The retrieved public key was not %s key: %+v", reflect.TypeOf(pk), pk2)
    23  	}
    24  	if !pk2.Equals(pk) {
    25  		t.Fatalf("The retrieved public key was not match: %+v != %+v", pk2, pk)
    26  	}
    27  }
    28  
    29  func TestPubKeyFromToProto(t *testing.T) {
    30  	testPubKeyFromToProto(t, ed25519.GenPrivKey())
    31  }