mirror of
https://github.com/arnaucube/go-iden3-crypto.git
synced 2026-02-07 11:36:41 +01:00
Add babujub eddsa benchmarks
This commit is contained in:
@@ -141,3 +141,54 @@ func TestCompressDecompress(t *testing.T) {
|
||||
assert.Equal(t, true, ok)
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkBabyjubEddsa(b *testing.B) {
|
||||
var k PrivateKey
|
||||
hex.Decode(k[:], []byte("0001020304050607080900010203040506070809000102030405060708090001"))
|
||||
pk := k.Public()
|
||||
|
||||
const n = 256
|
||||
|
||||
msgBuf, err := hex.DecodeString("00010203040506070809")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
msg := utils.SetBigIntFromLEBytes(new(big.Int), msgBuf)
|
||||
var msgs [n]*big.Int
|
||||
for i := 0; i < n; i++ {
|
||||
msgs[i] = new(big.Int).Add(msg, big.NewInt(int64(i)))
|
||||
}
|
||||
var sigs [n]*Signature
|
||||
|
||||
b.Run("SignMimc7", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
k.SignMimc7(msgs[i%n])
|
||||
}
|
||||
})
|
||||
|
||||
for i := 0; i < n; i++ {
|
||||
sigs[i%n] = k.SignMimc7(msgs[i%n])
|
||||
}
|
||||
|
||||
b.Run("VerifyMimc7", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
pk.VerifyMimc7(msgs[i%n], sigs[i%n])
|
||||
}
|
||||
})
|
||||
|
||||
b.Run("SignPoseidon", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
k.SignPoseidon(msgs[i%n])
|
||||
}
|
||||
})
|
||||
|
||||
for i := 0; i < n; i++ {
|
||||
sigs[i%n] = k.SignPoseidon(msgs[i%n])
|
||||
}
|
||||
|
||||
b.Run("VerifyPoseidon", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
pk.VerifyPoseidon(msgs[i%n], sigs[i%n])
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user