Skip to content

Commit af2b44c

Browse files
committed
bench: add benchmark for FSChaCha20Poly1305
Add a benchmark for FSChaCha20Poly1305 encryption, so the overhead of key generation and authentication can be observed for various message sizes.
1 parent aa8cee9 commit af2b44c

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/bench/chacha20.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include <bench/bench.h>
77
#include <crypto/chacha20.h>
8+
#include <crypto/chacha20poly1305.h>
89

910
/* Number of bytes to process per iteration */
1011
static const uint64_t BUFFER_SIZE_TINY = 64;
@@ -23,6 +24,18 @@ static void CHACHA20(benchmark::Bench& bench, size_t buffersize)
2324
});
2425
}
2526

27+
static void FSCHACHA20POLY1305(benchmark::Bench& bench, size_t buffersize)
28+
{
29+
std::vector<std::byte> key(32);
30+
FSChaCha20Poly1305 ctx(key, 224);
31+
std::vector<std::byte> in(buffersize);
32+
std::vector<std::byte> aad;
33+
std::vector<std::byte> out(buffersize + FSChaCha20Poly1305::EXPANSION);
34+
bench.batch(in.size()).unit("byte").run([&] {
35+
ctx.Encrypt(in, aad, out);
36+
});
37+
}
38+
2639
static void CHACHA20_64BYTES(benchmark::Bench& bench)
2740
{
2841
CHACHA20(bench, BUFFER_SIZE_TINY);
@@ -38,6 +51,24 @@ static void CHACHA20_1MB(benchmark::Bench& bench)
3851
CHACHA20(bench, BUFFER_SIZE_LARGE);
3952
}
4053

54+
static void FSCHACHA20POLY1305_64BYTES(benchmark::Bench& bench)
55+
{
56+
FSCHACHA20POLY1305(bench, BUFFER_SIZE_TINY);
57+
}
58+
59+
static void FSCHACHA20POLY1305_256BYTES(benchmark::Bench& bench)
60+
{
61+
FSCHACHA20POLY1305(bench, BUFFER_SIZE_SMALL);
62+
}
63+
64+
static void FSCHACHA20POLY1305_1MB(benchmark::Bench& bench)
65+
{
66+
FSCHACHA20POLY1305(bench, BUFFER_SIZE_LARGE);
67+
}
68+
4169
BENCHMARK(CHACHA20_64BYTES, benchmark::PriorityLevel::HIGH);
4270
BENCHMARK(CHACHA20_256BYTES, benchmark::PriorityLevel::HIGH);
4371
BENCHMARK(CHACHA20_1MB, benchmark::PriorityLevel::HIGH);
72+
BENCHMARK(FSCHACHA20POLY1305_64BYTES, benchmark::PriorityLevel::HIGH);
73+
BENCHMARK(FSCHACHA20POLY1305_256BYTES, benchmark::PriorityLevel::HIGH);
74+
BENCHMARK(FSCHACHA20POLY1305_1MB, benchmark::PriorityLevel::HIGH);

0 commit comments

Comments
 (0)