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 }