5 _"github.com/davecgh/go-spew/spew"
6 "github.com/bytom/errors"
9 const dirPath = "testdata/pseudo"
12 func TestPseudoHSMChainKDKeys(t *testing.T) {
13 hsm , _:= New(dirPath)
14 xpub, err := hsm.XCreate("password", "")
18 xpub2, err := hsm.XCreate("nopassword", "bytom")
22 msg := []byte("In the face of ignorance and resistance I wrote financial systems into existence")
23 sig, err := hsm.XSign(xpub.XPub, nil, msg, "password")
27 if !xpub.XPub.Verify(msg, sig) {
28 t.Error("expected verify to succeed")
30 if xpub2.XPub.Verify(msg, sig) {
31 t.Error("expected verify with wrong pubkey to fail")
33 path := [][]byte{{3, 2, 6, 3, 8, 2, 7}}
34 sig, err = hsm.XSign(xpub2.XPub, path, msg, "nopassword")
38 if xpub2.XPub.Verify(msg, sig) {
39 t.Error("expected verify with underived pubkey of sig from derived privkey to fail")
41 if !xpub2.XPub.Derive(path).Verify(msg, sig) {
42 t.Error("expected verify with derived pubkey of sig from derived privkey to succeed")
44 /* xpubs, _, err := hsm.ListKeys(0, 100)
49 t.Error("expected 2 entries in the db")
51 err = hsm.UpdateAlias(xpub.XPub, "password", "updatealias")
55 err = hsm.ResetPassword(xpub2.XPub, "nopassword", "1password")
59 err = hsm.XDelete(xpub.XPub, "password")
63 err = hsm.XDelete(xpub2.XPub, "1password")
69 func TestKeyWithEmptyAlias(t *testing.T) {
71 for i := 0; i < 2; i++ {
72 xpub, err := hsm.XCreate("xx", "")
73 if errors.Root(err) != nil {
76 err = hsm.XDelete(xpub.XPub, "xx")
84 func BenchmarkSign(b *testing.B) {
89 xpub, err := hsm.XCreate(auth, "")
94 msg := []byte("In the face of ignorance and resistance I wrote financial systems into existence")
97 for i := 0; i < b.N; i++ {
98 _, err := hsm.XSign(xpub.XPub, nil, msg, auth)
103 err = hsm.XDelete(xpub.XPub, auth)