Add some tests

This commit is contained in:
mcrakhman 2023-03-28 21:29:12 +02:00 committed by Mikhail Iudin
parent 7246126f84
commit 120306a1df
No known key found for this signature in database
GPG Key ID: FAAAA8BAABDFF1C0
4 changed files with 61 additions and 3 deletions

View 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)
}

View File

@ -9,12 +9,25 @@ import (
func Test_EncryptDecrypt(t *testing.T) {
privKey, pubKey, err := GenerateEd25519Key(rand.Reader)
require.NoError(t, err)
msg := make([]byte, 32768)
msg := make([]byte, 32000)
_, err = rand.Read(msg)
require.NoError(t, err)
enc, err := pubKey.Encrypt(msg)
require.NoError(t, err)
dec, err := privKey.Decrypt(enc)
require.NoError(t, err)
require.NotEqual(t, enc, dec)
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)
}

View 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)
}

View File

@ -10,11 +10,9 @@ func IdFromSigningPubKey(pubKey PubKey) (peer.ID, error) {
if err != nil {
return "", err
}
libp2pKey, err := crypto.UnmarshalEd25519PublicKey(rawSigning)
if err != nil {
return "", err
}
return peer.IDFromPublicKey(libp2pKey)
}