aboutsummaryrefslogtreecommitdiffhomepage
path: root/benchmark
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2022-08-29 19:41:24 +0300
committerlevlam <levlam@telegram.org>2022-08-29 19:41:24 +0300
commitb1000734186c12060ad1f43c2dd520ba974bc430 (patch)
treef154d374d15912fc308e43520aa7285a04a127a3 /benchmark
parentad4638d3c95be1e3e7f29c8673e449ef02672052 (diff)
Add HMAC benchmarks.
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/bench_crypto.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/benchmark/bench_crypto.cpp b/benchmark/bench_crypto.cpp
index 1fe3a2b21..40d7602d2 100644
--- a/benchmark/bench_crypto.cpp
+++ b/benchmark/bench_crypto.cpp
@@ -112,6 +112,46 @@ class SHA512ShortBench final : public td::Benchmark {
}
};
+class HmacSha256ShortBench final : public td::Benchmark {
+ public:
+ alignas(64) unsigned char data[SHORT_DATA_SIZE];
+
+ std::string get_description() const final {
+ return PSTRING() << "HMAC-SHA256 [" << SHORT_DATA_SIZE << "B]";
+ }
+
+ void start_up() final {
+ std::fill(std::begin(data), std::end(data), static_cast<unsigned char>(123));
+ }
+
+ void run(int n) final {
+ unsigned char md[32];
+ for (int i = 0; i < n; i++) {
+ td::hmac_sha256(td::Slice(data, SHORT_DATA_SIZE), td::Slice(data, SHORT_DATA_SIZE), td::MutableSlice(md, 32));
+ }
+ }
+};
+
+class HmacSha512ShortBench final : public td::Benchmark {
+ public:
+ alignas(64) unsigned char data[SHORT_DATA_SIZE];
+
+ std::string get_description() const final {
+ return PSTRING() << "HMAC-SHA512 [" << SHORT_DATA_SIZE << "B]";
+ }
+
+ void start_up() final {
+ std::fill(std::begin(data), std::end(data), static_cast<unsigned char>(123));
+ }
+
+ void run(int n) final {
+ unsigned char md[32];
+ for (int i = 0; i < n; i++) {
+ td::hmac_sha256(td::Slice(data, SHORT_DATA_SIZE), td::Slice(data, SHORT_DATA_SIZE), td::MutableSlice(md, 32));
+ }
+ }
+};
+
class AesEcbBench final : public td::Benchmark {
public:
alignas(64) unsigned char data[DATA_SIZE];
@@ -478,6 +518,8 @@ int main() {
td::bench(SHA1ShortBench());
td::bench(SHA256ShortBench());
td::bench(SHA512ShortBench());
+ td::bench(HmacSha256ShortBench());
+ td::bench(HmacSha512ShortBench());
td::bench(Crc32Bench());
td::bench(Crc64Bench());
}