From c9a79ea026c0f3ca479a6914ff5f525810f499e2 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Thu, 26 Sep 2024 22:36:23 +0300 Subject: [PATCH] bench: crypto/ecdsa.v --- bench/crypto/ecdsa/ecdsa.v | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 bench/crypto/ecdsa/ecdsa.v diff --git a/bench/crypto/ecdsa/ecdsa.v b/bench/crypto/ecdsa/ecdsa.v new file mode 100644 index 0000000000..f6c91cf6c0 --- /dev/null +++ b/bench/crypto/ecdsa/ecdsa.v @@ -0,0 +1,44 @@ +import time +import crypto.ecdsa + +fn main() { + iterations := 1000 + + println('Benchmarking key generation...') + mut total_gen_time := i64(0) + for _ in 0 .. iterations { + sw := time.new_stopwatch() + _, _ := ecdsa.generate_key() or { panic(err) } + elapsed := sw.elapsed().microseconds() + total_gen_time += elapsed + } + avg_gen_time := total_gen_time / iterations + println('Average key generation time: ${avg_gen_time} µs') + + pub_key, priv_key := ecdsa.generate_key() or { panic(err) } + message := 'Benchmark message'.bytes() + + println('Benchmarking signing...') + mut total_sign_time := i64(0) + for _ in 0 .. iterations { + sw := time.new_stopwatch() + _ := priv_key.sign(message) or { panic(err) } + elapsed := sw.elapsed().microseconds() + total_sign_time += elapsed + } + avg_sign_time := total_sign_time / iterations + println('Average sign time: ${avg_sign_time} µs') + + sig := priv_key.sign(message) or { panic(err) } + + println('Benchmarking verification...') + mut total_verify_time := i64(0) + for _ in 0 .. iterations { + sw := time.new_stopwatch() + _ := pub_key.verify(message, sig) or { panic(err) } + elapsed := sw.elapsed().microseconds() + total_verify_time += elapsed + } + avg_verify_time := total_verify_time / iterations + println('Average verify time: ${avg_verify_time} µs') +}