internal/ed25519: add benchmarks for scalar mul

This commit is contained in:
Henry de Valence 2019-05-09 00:17:43 -07:00 committed by Filippo Valsorda
parent 8186dbd6e1
commit 1e66180e96
1 changed files with 38 additions and 0 deletions

View File

@ -213,3 +213,41 @@ func TestVartimeMultiScalarMulMatchesBasepointMul(t *testing.T) {
t.Error(err)
}
}
// Benchmarks.
func BenchmarkBasepointMul(t *testing.B) {
var p ProjP3
for i := 0; i < t.N; i++ {
p.BasepointMul(&dalekScalar)
}
}
func BenchmarkScalarMul(t *testing.B) {
var p ProjP3
for i := 0; i < t.N; i++ {
p.ScalarMul(&dalekScalar, &B)
}
}
func BenchmarkVartimeDoubleBaseMul(t *testing.B) {
var p ProjP3
for i := 0; i < t.N; i++ {
p.VartimeDoubleBaseMul(&dalekScalar, &dalekScalar, &B)
}
}
func BenchmarkMultiscalarMulSize8(t *testing.B) {
var p ProjP3
x := dalekScalar
for i := 0; i < t.N; i++ {
p.MultiscalarMul([]scalar.Scalar{x, x, x, x, x, x, x, x}, []*ProjP3{&B, &B, &B, &B, &B, &B, &B, &B})
}
}
// TODO: add BenchmarkVartimeMultiscalarMulSize8 (need to have
// different scalars & points to measure cache effects).