This repository has been archived by the owner on Aug 25, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
serialize_test.go
65 lines (45 loc) · 1.46 KB
/
serialize_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
61
62
63
64
65
package hdkeys
import (
"github.com/stretchr/testify/require"
"testing"
)
var (
testingKeySerialization = "vnF1ChYmOqO4R55gYuU98qDMD51p83DXP8XP1VHjI/wYPoUUEbDMeNVW+vNUQ9PLKyNCKdrjYFdy0lfgLy3LZgEAAAAAAAAAAA"
testingFinalKeySerialization = "vnF1ChYmOqO4R55gYuU98qDMD51p83DXP8XP1VHjI/wYPoUUEbDMeNVW+vNUQ9PLKyNCKdrjYFdy0lfgLy3LZgEAAAAAAAAAAQ"
)
func TestHDKey_SerializeKey(t *testing.T) {
a := require.New(t)
key := NewHDKey()
key, err := key.DerivePassword("hello from the crypto side")
a.NoError(err)
raw, err := key.SerializeKey()
a.NoError(err)
a.EqualValues(testingKeySerialization, raw)
key.isFinal = true
raw, err = key.SerializeKey()
a.NoError(err)
a.EqualValues(testingFinalKeySerialization, raw)
key.int = []byte("Hello")
_, err = key.SerializeKey()
a.Error(err)
a.EqualValues("Key is not properly derived", err.Error())
}
func TestHDKey_UnserializeKey(t *testing.T) {
a := require.New(t)
orgkey, err := NewHDKey().DerivePassword("hello from the crypto side")
a.NoError(err)
key := NewHDKey()
err = key.UnserializeKey(testingKeySerialization)
a.NoError(err)
a.EqualValues(orgkey, key)
err = key.UnserializeKey(testingFinalKeySerialization)
orgkey.isFinal = true
a.NoError(err)
a.EqualValues(orgkey, key)
err = key.UnserializeKey("AAAA")
a.Error(err)
a.EqualValues("Input data is not a serialized key", err.Error())
err = key.UnserializeKey("....")
a.Error(err)
a.EqualValues("illegal base64 data at input byte 0", err.Error())
}