|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- # Additional information
-
- A lot of, mostly useless, details
-
- ## Appendix A
-
- Default NDK flags
-
- * CC:
- ```
- --target=aarch64-none-linux-android
- -DBORINGSSL_IMPLEMENTATION
- -g
- -DANDROID
- -ffunction-sections
- -funwind-tables
- -fstack-protector-strong
- -no-canonical-prefixes
- -Wa,--noexecstack
- -Wformat
- -Werror=format-security
- -Werror
- -Wformat=2
- -Wsign-compare
- -Wmissing-field-initializers
- -Wwrite-strings
- -Wall
- -ggdb
- -fvisibility=hidden
- -fno-common
- -Wnewline-eof
- -fcolor-diagnostics
- -Wimplicit-fallthrough
- -Wmissing-prototypes
- -Wold-style-definition
- -Wstrict-prototypes
- -Wshadow
- -D_XOPEN_SOURCE=700
- -O2
- -DNDEBUG
- -fPIC
- ```
-
- * CPP:
- ```
- -cc1
- -triple aarch64-none-linux-android
- -emit-obj
- -mnoexecstack
- -disable-free
- -disable-llvm-verifier
- -discard-value-names
- -mrelocation-model pic
- -pic-level 2
- -pic-is-pie
- -mthread-model posix
- -mdisable-fp-elim
- -fmath-errno
- -masm-verbose
- -mconstructor-aliases
- -munwind-tables
- -fuse-init-array
- -target-cpu generic
- -target-feature +neon
- -target-abi aapcs
- -dwarf-column-info
- -debug-info-kind=limited
- -dwarf-version=4
- -debugger-tuning=gdb
- -ffunction-sections
- -D BORINGSSL_IMPLEMENTATION
- -D ANDROID
- -D NDEBUG
- -O2
- -Wformat
- -Werror=format-security
- -Werror
- -Wformat=2
- -Wsign-compare
- -Wmissing-field-initializers
- -Wwrite-strings
- -Wall
- -Wnewline-eof
- -Wimplicit-fallthrough
- -Wmissing-declarations
- -Wmissing-prototypes
- -Wshadow
- -std=c++11
- -fdeprecated-macro
- -fdebug-compilation-dir /home/hdc/repos/mbedtls_vs_boringssl/bssl/src/build/crypto
- -ferror-limit 19
- -fmessage-length 238
- -fvisibility hidden
- -femulated-tls
- -stack-protector 2
- -fallow-half-arguments-and-returns
- -fno-rtti
- -fno-signed-char
- -fobjc-runtime=gcc
- -fno-common
- -fdiagnostics-show-option
- -fcolor-diagnostics
- -vectorize-loops
- -vectorize-slp
- ```
-
- ## Appendix B
-
- Test platform settings
-
- ```
- [ro.build.id]: [OPR6.170623.013]
- [ro.bootimage.build.date]: [Wed Oct 11 15:46:15 BST 2017]
- [ro.bootimage.build.fingerprint]: [Android/hikey/hikey:8.0.0/OPR6.170623.013/110:userdebug/test-keys]
- [ro.product.cpu.abi]: [arm64-v8a]
- [ro.product.cpu.abilist]: [arm64-v8a,armeabi-v7a,armeabi]
- [ro.product.cpu.abilist32]: [armeabi-v7a,armeabi]
- [ro.product.cpu.abilist64]: [arm64-v8a]
- [ro.build.version.sdk]: [26]
- [ro.build.version.security_patch]: [2017-08-05]
- ```
-
- ## Appendix C
-
- Performance measures provied by ``bssl speed``:
-
- | Operation | Small | Default |
- |-----------|------|---------|
- |RSA 2048 signing | (59.5 ops/sec) | (108.1 ops/sec) |
- |RSA 2048 verify | (2377.5 ops/sec) | (4078.3 ops/sec) |
- |RSA 4096 signing | (8.3 ops/sec) | (14.9 ops/sec) |
- |RSA 4096 verify | (668.0 ops/sec) | (1088.4 ops/sec) |
- |AES-128-GCM (16 bytes) | (497832.2 ops/sec): 8.0 MB/s | (1690241.1 ops/sec): 27.0 MB/s |
- |AES-128-GCM (1350 bytes) | (17675.4 ops/sec): 23.9 MB/s | (291430.3 ops/sec): 393.4 MB/s |
- |AES-128-GCM (8192 bytes) | (2991.6 ops/sec): 24.5 MB/s | (57088.8 ops/sec): 467.7 MB/s |
- |AES-256-GCM (16 bytes) | (444847.4 ops/sec): 7.1 MB/s | (1615148.8 ops/sec): 25.8 MB/s |
- |AES-256-GCM (1350 bytes) | (14792.6 ops/sec): 20.0 MB/s | (254718.5 ops/sec): 343.9 MB/s |
- |AES-256-GCM (8192 bytes) | (2525.7 ops/sec): 20.7 MB/s | (49056.6 ops/sec): 401.9 MB/s |
- |ChaCha20-Poly1305 (16 bytes) | (385043.6 ops/sec): 6.2 MB/s | (460788.5 ops/sec): 7.4 MB/s |
- |ChaCha20-Poly1305 (1350 bytes) | (33108.8 ops/sec): 44.7 MB/s | (67622.8 ops/sec): 91.3 MB/s |
- |ChaCha20-Poly1305 (8192 bytes) | (5905.1 ops/sec): 48.4 MB/s | (13219.5 ops/sec): 108.3 MB/s |
- |DES-EDE3-CBC-SHA1 (16 bytes) | (100311.5 ops/sec): 1.6 MB/s | (110073.3 ops/sec): 1.8 MB/s |
- |DES-EDE3-CBC-SHA1 (1350 bytes) | (3787.2 ops/sec): 5.1 MB/s | (3926.7 ops/sec): 5.3 MB/s |
- |DES-EDE3-CBC-SHA1 (8192 bytes) | (638.4 ops/sec): 5.2 MB/s | (661.2 ops/sec): 5.4 MB/s |
- |AES-128-CBC-SHA1 (16 bytes) | (268159.9 ops/sec): 4.3 MB/s | (540844.8 ops/sec): 8.7 MB/s |
- |AES-128-CBC-SHA1 (1350 bytes) | (22535.6 ops/sec): 30.4 MB/s | (162597.6 ops/sec): 219.5 MB/s |
- |AES-128-CBC-SHA1 (8192 bytes) | (3959.9 ops/sec): 32.4 MB/s | (37787.3 ops/sec): 309.6 MB/s |
- |AES-256-CBC-SHA1 (16 bytes) | (244904.2 ops/sec): 3.9 MB/s | (524976.9 ops/sec): 8.4 MB/s |
- |AES-256-CBC-SHA1 (1350 bytes) | (18272.3 ops/sec): 24.7 MB/s | (141626.7 ops/sec): 191.2 MB/s |
- |AES-256-CBC-SHA1 (8192 bytes) | (3181.3 ops/sec): 26.1 MB/s | (31195.9 ops/sec): 255.6 MB/s |
- |AES-128-GCM-SIV (16 bytes) | (244929.5 ops/sec): 3.9 MB/s | (776750.7 ops/sec): 12.4 MB/s |
- |AES-128-GCM-SIV (1350 bytes) | (14640.5 ops/sec): 19.8 MB/s | (66627.7 ops/sec): 89.9 MB/s |
- |AES-128-GCM-SIV (8192 bytes) | (2531.6 ops/sec): 20.7 MB/s | (11850.0 ops/sec): 97.1 MB/s |
- |AES-256-GCM-SIV (16 bytes) | (171899.3 ops/sec): 2.8 MB/s | (660748.9 ops/sec): 10.6 MB/s |
- |AES-256-GCM-SIV (1350 bytes) | (12489.6 ops/sec): 16.9 MB/s | (61124.5 ops/sec): 82.5 MB/s |
- |AES-256-GCM-SIV (8192 bytes) | (2182.7 ops/sec): 17.9 MB/s | (10936.1 ops/sec): 89.6 MB/s |
- |AES-128-GCM-SIV (16 bytes) | (239698.0 ops/sec): 3.8 MB/s | (733661.0 ops/sec): 11.7 MB/s |
- |AES-128-GCM-SIV (1350 bytes) | (14616.0 ops/sec): 19.7 MB/s | (65984.0 ops/sec): 89.1 MB/s |
- |AES-128-GCM-SIV (8192 bytes) | (2529.8 ops/sec): 20.7 MB/s | (11745.7 ops/sec): 96.2 MB/s |
- |AES-256-GCM-SIV (16 bytes) | (170826.1 ops/sec): 2.7 MB/s | (626465.6 ops/sec): 10.0 MB/s |
- |AES-256-GCM-SIV (1350 bytes) | (12474.8 ops/sec): 16.8 MB/s | (60595.5 ops/sec): 81.8 MB/s |
- |AES-256-GCM-SIV (8192 bytes) | (2182.1 ops/sec): 17.9 MB/s | (10841.9 ops/sec): 88.8 MB/s |
- |AES-128-CCM-Bluetooth (16 bytes) | (438558.8 ops/sec): 7.0 MB/s | (1405567.1 ops/sec): 22.5 MB/s |
- |AES-128-CCM-Bluetooth (1350 bytes) | (14776.5 ops/sec): 19.9 MB/s | (140168.4 ops/sec): 189.2 MB/s |
- |AES-128-CCM-Bluetooth (8192 bytes) | (2498.7 ops/sec): 20.5 MB/s | (25890.2 ops/sec): 212.1 MB/s |
- |SHA-1 (16 bytes) | (1244563.2 ops/sec): 19.9 MB/s | (2567122.0 ops/sec): 41.1 MB/s |
- |SHA-1 (256 bytes) | (341934.0 ops/sec): 87.5 MB/s | (1162590.8 ops/sec): 297.6 MB/s |
- |SHA-1 (8192 bytes) | (14574.3 ops/sec): 119.4 MB/s | (66844.3 ops/sec): 547.6 MB/s |
- |SHA-256 (16 bytes) | (691326.6 ops/sec): 11.1 MB/s | (2431927.0 ops/sec): 38.9 MB/s |
- |SHA-256 (256 bytes) | (166138.9 ops/sec): 42.5 MB/s | (1120621.2 ops/sec): 286.9 MB/s |
- |SHA-256 (8192 bytes) | (6824.7 ops/sec): 55.9 MB/s | (63214.7 ops/sec): 517.9 MB/s |
- |SHA-512 (16 bytes) | (688007.9 ops/sec): 11.0 MB/s | (729988.3 ops/sec): 11.7 MB/s |
- |SHA-512 (256 bytes) | (272146.5 ops/sec): 69.7 MB/s | (289178.7 ops/sec): 74.0 MB/s |
- |SHA-512 (8192 bytes) | (14014.7 ops/sec): 114.8 MB/s | (14759.6 ops/sec): 120.9 MB/s |
- |RNG (16 bytes) | (137217.4 ops/sec): 2.2 MB/s | (249239.3 ops/sec): 4.0 MB/s |
- |RNG (256 bytes) | (69898.9 ops/sec): 17.9 MB/s | (224698.5 ops/sec): 57.5 MB/s |
- |RNG (8192 bytes) | (4058.7 ops/sec): 33.2 MB/s | (55705.4 ops/sec): 456.3 MB/s |
- |ECDH P-224 operations | (151.0 ops/sec) | (1602.4 ops/sec) |
- |ECDH P-256 operations | (594.7 ops/sec) | (642.8 ops/sec) |
- |ECDH P-384 operations | (59.0 ops/sec) | (97.4 ops/sec) |
- |ECDH P-521 operations | (27.1 ops/sec) | (43.4 ops/sec) |
- |ECDSA P-224 signing | (277.8 ops/sec) | (3312.7 ops/sec) |
- |ECDSA P-224 verify | (241.2 ops/sec) | (1451.7 ops/sec) |
- |ECDSA P-256 signing | (1396.6 ops/sec) | (1738.5 ops/sec) |
- |ECDSA P-256 verify | (672.1 ops/sec) | (704.2 ops/sec) |
- |ECDSA P-384 signing | (107.0 ops/sec) | (177.6 ops/sec) |
- |ECDSA P-384 verify | (94.4 ops/sec) | (156.9 ops/sec) |
- |ECDSA P-521 signing | (49.0 ops/sec) | (78.2 ops/sec) |
- |ECDSA P-521 verify | (43.8 ops/sec) | (70.8 ops/sec) |
-
- Performance measures provided by ``benchmark``:
-
- | Algo | Small | Normal |
- |-------------------------------|----------------------|----------------------|
- |MD5 | 131223 KiB/s | 131761 KiB/s |
- |RIPEMD160 | 81451 KiB/s | 89899 KiB/s |
- |SHA-1 | 104117 KiB/s | 104375 KiB/s |
- |SHA-256 | 46809 KiB/s | 52044 KiB/s |
- |SHA-512 | 56760 KiB/s | 57648 KiB/s |
- |ARC4 | 65014 KiB/s | 65023 KiB/s |
- |3DES | 7785 KiB/s | 7885 KiB/s |
- |DES | 19071 KiB/s | 19512 KiB/s |
- |AES-CBC-128 | 32460 KiB/s | 35995 KiB/s |
- |AES-CBC-192 | 28392 KiB/s | 31044 KiB/s |
- |AES-CBC-256 | 25213 KiB/s | 27296 KiB/s |
- |AES-GCM-128 | 16399 KiB/s | 16398 KiB/s |
- |AES-GCM-192 | 15272 KiB/s | 15271 KiB/s |
- |AES-GCM-256 | 14287 KiB/s | 14286 KiB/s |
- |AES-CCM-128 | 15824 KiB/s | 15887 KiB/s |
- |AES-CCM-192 | 13853 KiB/s | 13899 KiB/s |
- |AES-CCM-256 | 12315 KiB/s | 12356 KiB/s |
- |CAMELLIA-CBC-128 | 19735 KiB/s | 26762 KiB/s |
- |CAMELLIA-CBC-192 | 15458 KiB/s | 20839 KiB/s |
- |CAMELLIA-CBC-256 | 15459 KiB/s | 20839 KiB/s |
- |BLOWFISH-CBC-128 | 25188 KiB/s | 28955 KiB/s |
- |BLOWFISH-CBC-192 | 25189 KiB/s | 28954 KiB/s |
- |BLOWFISH-CBC-256 | 25183 KiB/s | 28955 KiB/s |
- |CTR_DRBG (NOPR) | 27122 KiB/s | 27050 KiB/s |
- |CTR_DRBG (PR) | 18397 KiB/s | 19111 KiB/s |
- |HMAC_DRBG SHA-1 (NOPR) | 6746 KiB/s | 6968 KiB/s |
- |HMAC_DRBG SHA-1 (PR) | 6208 KiB/s | 6426 KiB/s |
- |HMAC_DRBG SHA-256 (NOPR) | 5321 KiB/s | 5795 KiB/s |
- |HMAC_DRBG SHA-256 (PR) | 4657 KiB/s | 5083 KiB/s |
- |RSA-2048 | 652 public/s | 653 public/s |
- |RSA-2048 | 17 private/s | 17 private/s |
- |RSA-4096 | 168 public/s | 168 public/s |
- |RSA-4096 | 3 private/s | 3 private/s |
- |DHE-2048 | 3 handshake/s | 3 handshake/s |
- |DH-2048 | 5 handshake/s | 6 handshake/s |
- |DHE-3072 | 1 handshake/s | 1 handshake/s |
- |DH-3072 | 2 handshake/s | 2 handshake/s |
- |ECDSA-secp521r1 | 70 sign/s | 74 sign/s |
- |ECDSA-brainpoolP512r1 | 8 sign/s | 9 sign/s |
- |ECDSA-secp384r1 | 126 sign/s | 133 sign/s |
- |ECDSA-brainpoolP384r1 | 16 sign/s | 18 sign/s |
- |ECDSA-secp256r1 | 189 sign/s | 195 sign/s |
- |ECDSA-secp256k1 | 176 sign/s | 189 sign/s |
- |ECDSA-brainpoolP256r1 | 27 sign/s | 31 sign/s |
- |ECDSA-secp224r1 | 277 sign/s | 291 sign/s |
- |ECDSA-secp224k1 | 216 sign/s | 230 sign/s |
- |ECDSA-secp192r1 | 329 sign/s | 352 sign/s |
- |ECDSA-secp192k1 | 264 sign/s | 277 sign/s |
- |ECDSA-secp521r1 | 19 verify/s | 21 verify/s |
- |ECDSA-brainpoolP512r1 | 2 verify/s | 2 verify/s |
- |ECDSA-secp384r1 | 35 verify/s | 36 verify/s |
- |ECDSA-brainpoolP384r1 | 4 verify/s | 4 verify/s |
- |ECDSA-secp256r1 | 54 verify/s | 57 verify/s |
- |ECDSA-secp256k1 | 53 verify/s | 57 verify/s |
- |ECDSA-brainpoolP256r1 | 7 verify/s | 8 verify/s |
- |ECDSA-secp224r1 | 82 verify/s | 86 verify/s |
- |ECDSA-secp224k1 | 63 verify/s | 67 verify/s |
- |ECDSA-secp192r1 | 102 verify/s | 110 verify/s |
- |ECDSA-secp192k1 | 77 verify/s | 82 verify/s |
- |ECDHE-secp521r1 | 20 handshake/s | 21 handshake/s |
- |ECDHE-brainpoolP512r1 | 2 handshake/s | 2 handshake/s |
- |ECDHE-secp384r1 | 37 handshake/s | 39 handshake/s |
- |ECDHE-brainpoolP384r1 | 4 handshake/s | 4 handshake/s |
- |ECDHE-secp256r1 | 57 handshake/s | 60 handshake/s |
- |ECDHE-secp256k1 | 56 handshake/s | 60 handshake/s |
- |ECDHE-brainpoolP256r1 | 7 handshake/s | 8 handshake/s |
- |ECDHE-secp224r1 | 89 handshake/s | 92 handshake/s |
- |ECDHE-secp224k1 | 67 handshake/s | 71 handshake/s |
- |ECDHE-secp192r1 | 111 handshake/s | 118 handshake/s |
- |ECDHE-secp192k1 | 83 handshake/s | 87 handshake/s |
- |ECDHE-Curve25519 | 41 handshake/s | 41 handshake/s |
- |ECDH-secp521r1 | 27 handshake/s | 28 handshake/s |
- |ECDH-brainpoolP512r1 | 3 handshake/s | 3 handshake/s |
- |ECDH-secp384r1 | 49 handshake/s | 51 handshake/s |
- |ECDH-brainpoolP384r1 | 5 handshake/s | 5 handshake/s |
- |ECDH-secp256r1 | 77 handshake/s | 81 handshake/s |
- |ECDH-secp256k1 | 78 handshake/s | 82 handshake/s |
- |ECDH-brainpoolP256r1 | 9 handshake/s | 11 handshake/s |
- |ECDH-secp224r1 | 121 handshake/s | 126 handshake/s |
- |ECDH-secp224k1 | 91 handshake/s | 97 handshake/s |
- |ECDH-secp192r1 | 150 handshake/s | 159 handshake/s |
- |ECDH-secp192k1 | 113 handshake/s | 120 handshake/s |
- |ECDH-Curve25519 | 80 handshake/s | 82 handshake/s |
-
|