mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-11-27 03:58:06 +00:00
44 lines
943 B
Go
44 lines
943 B
Go
|
package consensus
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/CityOfZion/neo-go/pkg/crypto/keys"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestCrypt(t *testing.T) {
|
||
|
key, err := keys.NewPrivateKey()
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
priv := privateKey{key}
|
||
|
data, err := priv.MarshalBinary()
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
key1, err := keys.NewPrivateKey()
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
priv1 := privateKey{key1}
|
||
|
require.NotEqual(t, priv, priv1)
|
||
|
require.NoError(t, priv1.UnmarshalBinary(data))
|
||
|
require.Equal(t, priv, priv1)
|
||
|
|
||
|
pub := publicKey{key.PublicKey()}
|
||
|
data, err = pub.MarshalBinary()
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
pub1 := publicKey{key1.PublicKey()}
|
||
|
require.NotEqual(t, pub, pub1)
|
||
|
require.NoError(t, pub1.UnmarshalBinary(data))
|
||
|
require.Equal(t, pub, pub1)
|
||
|
|
||
|
data = []byte{1, 2, 3, 4}
|
||
|
|
||
|
sign, err := priv.Sign(data)
|
||
|
require.NoError(t, err)
|
||
|
require.NoError(t, pub.Verify(data, sign))
|
||
|
|
||
|
sign[0] = ^sign[0]
|
||
|
require.Error(t, pub.Verify(data, sign))
|
||
|
}
|