- package ed25519_test
-
- import (
- "testing"
-
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- "github.com/tendermint/tendermint/crypto"
- "github.com/tendermint/tendermint/crypto/ed25519"
- )
-
- func TestSignAndValidateEd25519(t *testing.T) {
-
- privKey := ed25519.GenPrivKey()
- pubKey := privKey.PubKey()
-
- msg := crypto.CRandBytes(128)
- sig, err := privKey.Sign(msg)
- require.Nil(t, err)
-
- // Test the signature
- assert.True(t, pubKey.VerifyBytes(msg, sig))
-
- // Mutate the signature, just one bit.
- // TODO: Replace this with a much better fuzzer, tendermint/ed25519/issues/10
- sigEd := sig.(ed25519.SignatureEd25519)
- sigEd[7] ^= byte(0x01)
- sig = sigEd
-
- assert.False(t, pubKey.VerifyBytes(msg, sig))
- }
|