aboutsummaryrefslogtreecommitdiff
path: root/tests/benchmark
diff options
context:
space:
mode:
authorYawning Angel <yawning@schwanenlied.me>2024-08-20 12:03:04 +0900
committerYawning Angel <yawning@schwanenlied.me>2025-03-23 19:14:33 +0900
commit9fdcc4e39a4cfd160b36cbd144f77e4502f133f9 (patch)
treed39c933d625a541e5c1f1ba3d881b1df4beba4f5 /tests/benchmark
parentbb395aeb41873632c35846f2077eea01a69ce1c1 (diff)
core/crypto/x448: Initial import
Diffstat (limited to 'tests/benchmark')
-rw-r--r--tests/benchmark/crypto/benchmark_crypto.odin21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/benchmark/crypto/benchmark_crypto.odin b/tests/benchmark/crypto/benchmark_crypto.odin
index b139ea669..72e6d0932 100644
--- a/tests/benchmark/crypto/benchmark_crypto.odin
+++ b/tests/benchmark/crypto/benchmark_crypto.odin
@@ -14,6 +14,7 @@ import "core:crypto/chacha20poly1305"
import "core:crypto/ed25519"
import "core:crypto/poly1305"
import "core:crypto/x25519"
+import "core:crypto/x448"
// Cryptographic primitive benchmarks.
@@ -237,6 +238,26 @@ benchmark_crypto :: proc(t: ^testing.T) {
time.duration_microseconds(elapsed) / iters,
)
}
+ {
+ point_str := "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
+ scalar_str := "cafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabe"
+
+ point, _ := hex.decode(transmute([]byte)(point_str), context.temp_allocator)
+ scalar, _ := hex.decode(transmute([]byte)(scalar_str), context.temp_allocator)
+ out: [x448.POINT_SIZE]byte = ---
+
+ iters :: 10000
+ start := time.now()
+ for i := 0; i < iters; i = i + 1 {
+ x448.scalarmult(out[:], scalar[:], point[:])
+ }
+ elapsed := time.since(start)
+
+ fmt.sbprintfln(&str,
+ "x448.scalarmult: ~%f us/op",
+ time.duration_microseconds(elapsed) / iters,
+ )
+ }
}
@(private)