|
|
|
@ -86,10 +86,7 @@ func TestSignAndRecover(t *testing.T) { |
|
|
|
|
func TestRandomMessagesWithSameKey(t *testing.T) { |
|
|
|
|
pubkey, seckey := GenerateKeyPair() |
|
|
|
|
keys := func() ([]byte, []byte) { |
|
|
|
|
// Sign function zeroes the privkey so we need a new one in each call
|
|
|
|
|
newkey := make([]byte, len(seckey)) |
|
|
|
|
copy(newkey, seckey) |
|
|
|
|
return pubkey, newkey |
|
|
|
|
return pubkey, seckey |
|
|
|
|
} |
|
|
|
|
signAndRecoverWithRandomMessages(t, keys) |
|
|
|
|
} |
|
|
|
@ -209,30 +206,32 @@ func compactSigCheck(t *testing.T, sig []byte) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// godep go test -v -run=XXX -bench=BenchmarkSignRandomInputEachRound
|
|
|
|
|
// godep go test -v -run=XXX -bench=BenchmarkSign
|
|
|
|
|
// add -benchtime=10s to benchmark longer for more accurate average
|
|
|
|
|
func BenchmarkSignRandomInputEachRound(b *testing.B) { |
|
|
|
|
|
|
|
|
|
// to avoid compiler optimizing the benchmarked function call
|
|
|
|
|
var err error |
|
|
|
|
|
|
|
|
|
func BenchmarkSign(b *testing.B) { |
|
|
|
|
for i := 0; i < b.N; i++ { |
|
|
|
|
b.StopTimer() |
|
|
|
|
_, seckey := GenerateKeyPair() |
|
|
|
|
msg := randentropy.GetEntropyCSPRNG(32) |
|
|
|
|
b.StartTimer() |
|
|
|
|
if _, err := Sign(msg, seckey); err != nil { |
|
|
|
|
b.Fatal(err) |
|
|
|
|
} |
|
|
|
|
_, e := Sign(msg, seckey) |
|
|
|
|
err = e |
|
|
|
|
b.StopTimer() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//godep go test -v -run=XXX -bench=BenchmarkRecoverRandomInputEachRound
|
|
|
|
|
func BenchmarkRecoverRandomInputEachRound(b *testing.B) { |
|
|
|
|
//godep go test -v -run=XXX -bench=BenchmarkECRec
|
|
|
|
|
func BenchmarkRecover(b *testing.B) { |
|
|
|
|
for i := 0; i < b.N; i++ { |
|
|
|
|
b.StopTimer() |
|
|
|
|
_, seckey := GenerateKeyPair() |
|
|
|
|
msg := randentropy.GetEntropyCSPRNG(32) |
|
|
|
|
sig, _ := Sign(msg, seckey) |
|
|
|
|
b.StartTimer() |
|
|
|
|
if _, err := RecoverPubkey(msg, sig); err != nil { |
|
|
|
|
b.Fatal(err) |
|
|
|
|
} |
|
|
|
|
_, e := RecoverPubkey(msg, sig) |
|
|
|
|
err = e |
|
|
|
|
b.StopTimer() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|