Add some tests
This commit is contained in:
parent
7246126f84
commit
120306a1df
22
util/crypto/derived_test.go
Normal file
22
util/crypto/derived_test.go
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package crypto
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/rand"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestDerivedKey(t *testing.T) {
|
||||||
|
seed := make([]byte, 32)
|
||||||
|
_, err := rand.Read(seed)
|
||||||
|
require.NoError(t, err)
|
||||||
|
key, err := DeriveSymmetricKey(seed, AnytypeAccountPath)
|
||||||
|
require.NoError(t, err)
|
||||||
|
_, err = rand.Read(seed)
|
||||||
|
require.NoError(t, err)
|
||||||
|
res, err := key.Encrypt(seed)
|
||||||
|
require.NoError(t, err)
|
||||||
|
dec, err := key.Decrypt(res)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, seed, dec)
|
||||||
|
}
|
||||||
@ -9,12 +9,25 @@ import (
|
|||||||
func Test_EncryptDecrypt(t *testing.T) {
|
func Test_EncryptDecrypt(t *testing.T) {
|
||||||
privKey, pubKey, err := GenerateEd25519Key(rand.Reader)
|
privKey, pubKey, err := GenerateEd25519Key(rand.Reader)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
msg := make([]byte, 32768)
|
msg := make([]byte, 32000)
|
||||||
_, err = rand.Read(msg)
|
_, err = rand.Read(msg)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
enc, err := pubKey.Encrypt(msg)
|
enc, err := pubKey.Encrypt(msg)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
dec, err := privKey.Decrypt(enc)
|
dec, err := privKey.Decrypt(enc)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
require.NotEqual(t, enc, dec)
|
||||||
require.Equal(t, dec, msg)
|
require.Equal(t, dec, msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Test_SignVerify(t *testing.T) {
|
||||||
|
privKey, pubKey, err := GenerateEd25519Key(rand.Reader)
|
||||||
|
require.NoError(t, err)
|
||||||
|
msg := make([]byte, 32000)
|
||||||
|
_, err = rand.Read(msg)
|
||||||
|
sign, err := privKey.Sign(msg)
|
||||||
|
require.NoError(t, err)
|
||||||
|
res, err := pubKey.Verify(msg, sign)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.True(t, res)
|
||||||
|
}
|
||||||
|
|||||||
25
util/crypto/mnemonic_test.go
Normal file
25
util/crypto/mnemonic_test.go
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package crypto
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/rand"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMnemonic(t *testing.T) {
|
||||||
|
phrase, err := NewMnemonicGenerator().WithWordCount(12)
|
||||||
|
require.NoError(t, err)
|
||||||
|
parts := strings.Split(string(phrase), " ")
|
||||||
|
require.Equal(t, 12, len(parts))
|
||||||
|
key, err := phrase.DeriveEd25519Key(0)
|
||||||
|
require.NoError(t, err)
|
||||||
|
bytes := make([]byte, 64)
|
||||||
|
_, err = rand.Read(bytes)
|
||||||
|
require.NoError(t, err)
|
||||||
|
sign, err := key.Sign(bytes)
|
||||||
|
require.NoError(t, err)
|
||||||
|
res, err := key.GetPublic().Verify(bytes, sign)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.True(t, res)
|
||||||
|
}
|
||||||
@ -10,11 +10,9 @@ func IdFromSigningPubKey(pubKey PubKey) (peer.ID, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
libp2pKey, err := crypto.UnmarshalEd25519PublicKey(rawSigning)
|
libp2pKey, err := crypto.UnmarshalEd25519PublicKey(rawSigning)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
return peer.IDFromPublicKey(libp2pKey)
|
return peer.IDFromPublicKey(libp2pKey)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user