mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
tests/benchmark/crypto: Benchmark AES256-CTR
This commit is contained in:
@@ -28,6 +28,32 @@ benchmark_crypto :: proc(t: ^testing.T) {
|
|||||||
strings.builder_destroy(&str)
|
strings.builder_destroy(&str)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name := "AES256-CTR 64 bytes"
|
||||||
|
options := &time.Benchmark_Options {
|
||||||
|
rounds = 1_000,
|
||||||
|
bytes = 64,
|
||||||
|
setup = _setup_sized_buf,
|
||||||
|
bench = _benchmark_aes256_ctr,
|
||||||
|
teardown = _teardown_sized_buf,
|
||||||
|
}
|
||||||
|
|
||||||
|
err := time.benchmark(options, context.allocator)
|
||||||
|
testing.expect(t, err == nil, name)
|
||||||
|
benchmark_print(&str, name, options)
|
||||||
|
|
||||||
|
name = "AES256-CTR 1024 bytes"
|
||||||
|
options.bytes = 1024
|
||||||
|
err = time.benchmark(options, context.allocator)
|
||||||
|
testing.expect(t, err == nil, name)
|
||||||
|
benchmark_print(&str, name, options)
|
||||||
|
|
||||||
|
name = "AES256-CTR 65536 bytes"
|
||||||
|
options.bytes = 65536
|
||||||
|
err = time.benchmark(options, context.allocator)
|
||||||
|
testing.expect(t, err == nil, name)
|
||||||
|
benchmark_print(&str, name, options)
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name := "ChaCha20 64 bytes"
|
name := "ChaCha20 64 bytes"
|
||||||
options := &time.Benchmark_Options {
|
options := &time.Benchmark_Options {
|
||||||
@@ -323,6 +349,36 @@ _benchmark_chacha20poly1305 :: proc(
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@(private)
|
||||||
|
_benchmark_aes256_ctr :: proc(
|
||||||
|
options: ^time.Benchmark_Options,
|
||||||
|
allocator := context.allocator,
|
||||||
|
) -> (
|
||||||
|
err: time.Benchmark_Error,
|
||||||
|
) {
|
||||||
|
buf := options.input
|
||||||
|
key := [aes.KEY_SIZE_256]byte {
|
||||||
|
0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
|
||||||
|
0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
|
||||||
|
0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
|
||||||
|
0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
|
||||||
|
}
|
||||||
|
nonce := [aes.CTR_IV_SIZE]byte {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx: aes.Context_CTR = ---
|
||||||
|
aes.init_ctr(&ctx, key[:], nonce[:])
|
||||||
|
|
||||||
|
for _ in 0 ..= options.rounds {
|
||||||
|
aes.xor_bytes_ctr(&ctx, buf, buf)
|
||||||
|
}
|
||||||
|
options.count = options.rounds
|
||||||
|
options.processed = options.rounds * options.bytes
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
_benchmark_aes256_gcm :: proc(
|
_benchmark_aes256_gcm :: proc(
|
||||||
options: ^time.Benchmark_Options,
|
options: ^time.Benchmark_Options,
|
||||||
allocator := context.allocator,
|
allocator := context.allocator,
|
||||||
|
|||||||
Reference in New Issue
Block a user