MCPcopy
hub / github.com/canopy-network/canopy / TestNewPublicKeyFromString

Function TestNewPublicKeyFromString

lib/crypto/key_test.go:9–63  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

7)
8
9func TestNewPublicKeyFromString(t *testing.T) {
10 // pre-generate a secp256k1
11 secp256k1Pk, err := secp256k1.GeneratePrivateKey()
12 require.NoError(t, err)
13 secp256k1Public, err := BytesToEthSECP256K1Public(secp256k1Pk.PubKey().SerializeUncompressed())
14 require.NoError(t, err)
15 // pre-generate a ED25519
16 ed25519Pk, err := NewEd25519PrivateKey()
17 require.NoError(t, err)
18 // pre-generate a BLS12381
19 blsPrivateKey, err := NewBLS12381PrivateKey()
20 require.NoError(t, err)
21 tests := []struct {
22 name string
23 string string
24 expected PublicKeyI
25 error string
26 }{
27 {
28 name: "not a recognized key",
29 string: "abcd",
30 error: "unrecognized public key format",
31 },
32 {
33 name: "secp256k1 public key",
34 string: secp256k1Public.String(),
35 expected: secp256k1Public,
36 },
37 {
38 name: "ed25519 public key",
39 string: ed25519Pk.PublicKey().String(),
40 expected: ed25519Pk.PublicKey(),
41 },
42 {
43 name: "bls12381 public key",
44 string: blsPrivateKey.PublicKey().String(),
45 expected: blsPrivateKey.PublicKey(),
46 },
47 }
48 for _, test := range tests {
49 t.Run(test.name, func(t *testing.T) {
50 // execute the function call
51 got, e := NewPublicKeyFromString(test.string)
52 // check if an error is expected or not
53 require.Equal(t, test.error != "", e != nil)
54 // check the error
55 if e != nil {
56 require.ErrorContains(t, e, test.error)
57 return
58 }
59 // compare got vs expected
60 require.EqualExportedValues(t, test.expected, got)
61 })
62 }
63}
64
65func TestNewPublicKeyFromBytes(t *testing.T) {
66 // pre-generate a secp256k1

Callers

nothing calls this directly

Calls 9

PublicKeyMethod · 0.95
NewEd25519PrivateKeyFunction · 0.85
NewBLS12381PrivateKeyFunction · 0.85
NewPublicKeyFromStringFunction · 0.85
RunMethod · 0.80
EqualMethod · 0.80
StringMethod · 0.65
PublicKeyMethod · 0.65

Tested by

no test coverage detected