package blindsecp256k1
|
|
|
|
import (
|
|
"math/big"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFlow(t *testing.T) {
|
|
// message to be signed
|
|
msg := new(big.Int).SetBytes([]byte("test"))
|
|
|
|
// create new signer
|
|
signerPrivateData := NewSigner()
|
|
signerPublicData := signerPrivateData.PublicData()
|
|
|
|
// user blinds the msg
|
|
msgBlinded, user := Blind(msg, signerPublicData)
|
|
|
|
// signer signs the blinded message
|
|
sBlind := signerPrivateData.BlindSign(msgBlinded)
|
|
|
|
// user unblinds the blinded signature
|
|
sig := Unblind(sBlind, msg, user)
|
|
|
|
// signature can be verified with signer PublicKey (Q)
|
|
verified := Verify(msg, sig, signerPublicData.Q)
|
|
assert.True(t, verified)
|
|
}
|