diff options
| author | levlam <levlam@telegram.org> | 2022-08-29 19:41:24 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2022-08-29 19:41:24 +0300 |
| commit | b1000734186c12060ad1f43c2dd520ba974bc430 (patch) | |
| tree | f154d374d15912fc308e43520aa7285a04a127a3 /benchmark | |
| parent | ad4638d3c95be1e3e7f29c8673e449ef02672052 (diff) | |
Add HMAC benchmarks.
Diffstat (limited to 'benchmark')
| -rw-r--r-- | benchmark/bench_crypto.cpp | 42 |
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()); } |
