forked from 0xPolygon/polygon-edge
-
Notifications
You must be signed in to change notification settings - Fork 0
/
public_test.go
60 lines (42 loc) · 1.37 KB
/
public_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package bls
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestPublic_Marshal(t *testing.T) {
t.Parallel()
blsKey, err := GenerateBlsKey() // structure which holds private/public key pair
require.NoError(t, err)
pubKey := blsKey.PublicKey() // structure which holds public key
// marshal public key
publicKeyMarshalled := pubKey.Marshal()
// unmarshal public key
publicKeyUnmarshalled, err := UnmarshalPublicKey(publicKeyMarshalled)
require.NoError(t, err)
assert.Equal(t, pubKey, publicKeyUnmarshalled)
assert.Equal(t, publicKeyMarshalled, publicKeyUnmarshalled.Marshal())
}
func TestPublic_UnmarshalPublicKeyFromBigInt(t *testing.T) {
t.Parallel()
key, _ := GenerateBlsKey()
pub := key.PublicKey()
pub2, err := UnmarshalPublicKeyFromBigInt(pub.ToBigInt())
require.NoError(t, err)
require.Equal(t, pub, pub2)
}
func TestPublic_MarshalUnmarshalText(t *testing.T) {
t.Parallel()
key, err := GenerateBlsKey()
require.NoError(t, err)
pubKey := key.PublicKey()
marshaledPubKey, err := pubKey.MarshalText()
require.NoError(t, err)
newPubKey := new(PublicKey)
require.NoError(t, newPubKey.UnmarshalText(marshaledPubKey))
require.Equal(t, pubKey, newPubKey)
}
func TestPublicKey_UnmarshalInfinityPoint(t *testing.T) {
_, err := UnmarshalPublicKey(make([]byte, 128))
require.Error(t, err, errInfinityPoint)
}