GithubHelp home page GithubHelp logo

caybro / status-sha-bench Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 90.45 MB

Simple test and benchmark for various SHA1 and AES implementations

CMake 0.44% C++ 6.20% C 93.36%
benchmark qt sha1 test aes

status-sha-bench's Introduction

status-sha-bench

Simple test and benchmark for various SHA1 and AES implementations

The goal is to compare and benchmark various implementations of the SHA1 hash algorithm and the AES cipher

Frameworks/APIs tested:

  1. Qt 5.15 / QCryptoGraphicHash; plain C/C++

  2. libtomcrypt; plain C (some ASM but disabled); as used currently in https://github.com/status-im/go-sqlcipher

  3. OpenSSL; C/ASM/intrinsics

  4. git-sha1; plain C; (as used in Linux kernel)

  5. nayuki; highly optimized C and ASM

  6. intrinsics - using Intel SHA/ARM Neon extensions; C/ASM, highly optimized

  7. and finally, libtomcrypt_new which replaces the C-based sha1_compress subroutine with optimized versions from intrinsics (SHA/Neon) plus a fallback from nayuki

For AES:

  1. libtomcrypt; plain C (some ASM but disabled); as used currently in https://github.com/status-im/go-sqlcipher
  2. OpenSSL; C/ASM/intrinsics

Machine 1: Linux, AMD Ryzen 7 6800HS, 16 GB RAM

image

image

image

CSV bench results

"bench_QCryptographicHash_sha1","","WalltimeMilliseconds",0.0001144409179688,60,524288
"bench_QCryptographicHash_sha1_static","","WalltimeMilliseconds",0.0001316070556641,69,524288
"bench_tomcrypt_sha1","","WalltimeMilliseconds",0.0001354217529297,71,524288
"bench_tomcrypt_sha1_new","","WalltimeMilliseconds",4.720687866211e-05,99,2097152
"bench_openssl_sha1","","WalltimeMilliseconds",4.52995300293e-05,95,2097152
"bench_git_sha1","","WalltimeMilliseconds",9.441375732422e-05,99,1048576
"bench_nayuki_sha1","","WalltimeMilliseconds",7.152557373047e-05,75,1048576
"bench_intrinsics_sha1","","WalltimeMilliseconds",3.433227539062e-05,72,2097152
"bench_qch_file_sha1","","WalltimeMilliseconds",114,114,1
"bench_tomcrypt_file_sha1","","WalltimeMilliseconds",179,179,1
"bench_tomcrypt_file_sha1_new","","WalltimeMilliseconds",43.5,85,2
"bench_openssl_file_sha1","","WalltimeMilliseconds",39,77,2
"bench_nayuki_file_sha1","","WalltimeMilliseconds",93,93,1
"bench_intr_file_sha1","","WalltimeMilliseconds",43,86,2

status-sha-bench's People

Contributors

caybro avatar alexjba avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.