You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

14 KiB

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