package sr25519_test import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/tendermint/tendermint/crypto" "github.com/tendermint/tendermint/crypto/sr25519" ) func TestSignAndValidateSr25519(t *testing.T) { privKey := sr25519.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)) 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 sig[7] ^= byte(0x01) assert.False(t, pubKey.VerifyBytes(msg, sig)) }