wolfssl
wolfssl copied to clipboard
updating the build with SGX
https://www.wolfssl.com/forums/topic1535-aesni-and-intel-sgx.html
Making use of the example changes here (https://github.com/wolfSSL/wolfssl-examples/pull/488). This is a comparison of performance:
With assembly optimizations:
$ ./App -b
Benchmark Test:
wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each)
RNG_HEALTH_TEST_CHECK_SIZE = 128
sizeof(seedB_data) = 128
RNG_HEALTH_TEST_CHECK_SIZE = 128
sizeof(seedB_data) = 128
RNG 80 MiB took 1.011 seconds, 79.112 MiB/s
AES-128-CBC-enc 1035 MiB took 1.002 seconds, 1032.945 MiB/s
AES-128-CBC-dec 4045 MiB took 1.000 seconds, 4044.483 MiB/s
AES-192-CBC-enc 885 MiB took 1.005 seconds, 880.944 MiB/s
AES-192-CBC-dec 3490 MiB took 1.001 seconds, 3486.384 MiB/s
AES-256-CBC-enc 765 MiB took 1.002 seconds, 763.182 MiB/s
AES-256-CBC-dec 3030 MiB took 1.001 seconds, 3027.351 MiB/s
AES-128-GCM-enc 3370 MiB took 1.000 seconds, 3369.508 MiB/s
AES-128-GCM-dec 3390 MiB took 1.001 seconds, 3386.380 MiB/s
AES-192-GCM-enc 3145 MiB took 1.001 seconds, 3142.386 MiB/s
AES-192-GCM-dec 3120 MiB took 1.000 seconds, 3119.697 MiB/s
AES-256-GCM-enc 2810 MiB took 1.001 seconds, 2808.096 MiB/s
AES-256-GCM-dec 2795 MiB took 1.002 seconds, 2790.226 MiB/s
AES-128-GCM-enc-no_AAD 3375 MiB took 1.001 seconds, 3373.253 MiB/s
AES-128-GCM-dec-no_AAD 3395 MiB took 1.001 seconds, 3390.000 MiB/s
AES-192-GCM-enc-no_AAD 3150 MiB took 1.001 seconds, 3145.320 MiB/s
AES-192-GCM-dec-no_AAD 3125 MiB took 1.002 seconds, 3120.279 MiB/s
AES-256-GCM-enc-no_AAD 2820 MiB took 1.001 seconds, 2817.194 MiB/s
AES-256-GCM-dec-no_AAD 2810 MiB took 1.001 seconds, 2807.858 MiB/s
GMAC Default 1315 MiB took 1.000 seconds, 1314.683 MiB/s
3DES 30 MiB took 1.165 seconds, 25.760 MiB/s
MD5 535 MiB took 1.002 seconds, 534.025 MiB/s
SHA 435 MiB took 1.004 seconds, 433.438 MiB/s
SHA-256 195 MiB took 1.025 seconds, 190.312 MiB/s
HMAC-MD5 535 MiB took 1.002 seconds, 534.189 MiB/s
HMAC-SHA 430 MiB took 1.007 seconds, 427.133 MiB/s
HMAC-SHA256 195 MiB took 1.026 seconds, 190.064 MiB/s
PBKDF2 23 KiB took 1.001 seconds, 22.547 KiB/s
RSA 2048 public 44900 ops took 1.000 sec, avg 0.022 ms, 44886.173 ops/sec
RSA 2048 private 1600 ops took 1.065 sec, avg 0.666 ms, 1501.930 ops/sec
DH 2048 key gen 3028 ops took 1.000 sec, avg 0.330 ms, 3027.761 ops/sec
DH 2048 agree 3100 ops took 1.008 sec, avg 0.325 ms, 3076.740 ops/sec
ECC [ SECP256R1] 256 key gen 56900 ops took 1.002 sec, avg 0.018 ms, 56801.667 ops/sec
ECDHE [ SECP256R1] 256 agree 15500 ops took 1.004 sec, avg 0.065 ms, 15441.874 ops/sec
ECDSA [ SECP256R1] 256 sign 37600 ops took 1.000 sec, avg 0.027 ms, 37593.421 ops/sec
ECDSA [ SECP256R1] 256 verify 14000 ops took 1.006 sec, avg 0.072 ms, 13917.731 ops/sec
Benchmark complete
wolfSSL Entering wolfCrypt_Cleanup
Benchmark Test: Return code 0
Without assembly optimizations:
$ ./App -b
Benchmark Test:
wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each)
RNG_HEALTH_TEST_CHECK_SIZE = 128
sizeof(seedB_data) = 128
RNG_HEALTH_TEST_CHECK_SIZE = 128
sizeof(seedB_data) = 128
RNG 75 MiB took 1.020 seconds, 73.553 MiB/s
AES-128-CBC-enc 240 MiB took 1.004 seconds, 239.136 MiB/s
AES-128-CBC-dec 280 MiB took 1.014 seconds, 276.167 MiB/s
AES-192-CBC-enc 205 MiB took 1.018 seconds, 201.288 MiB/s
AES-192-CBC-dec 225 MiB took 1.009 seconds, 223.033 MiB/s
AES-256-CBC-enc 180 MiB took 1.028 seconds, 175.080 MiB/s
AES-256-CBC-dec 195 MiB took 1.021 seconds, 191.078 MiB/s
AES-128-GCM-enc 55 MiB took 1.063 seconds, 51.728 MiB/s
AES-128-GCM-dec 55 MiB took 1.061 seconds, 51.824 MiB/s
AES-192-GCM-enc 50 MiB took 1.005 seconds, 49.757 MiB/s
AES-192-GCM-dec 50 MiB took 1.006 seconds, 49.689 MiB/s
AES-256-GCM-enc 50 MiB took 1.042 seconds, 47.965 MiB/s
AES-256-GCM-dec 50 MiB took 1.044 seconds, 47.914 MiB/s
AES-128-GCM-enc-no_AAD 55 MiB took 1.061 seconds, 51.843 MiB/s
AES-128-GCM-dec-no_AAD 55 MiB took 1.062 seconds, 51.792 MiB/s
AES-192-GCM-enc-no_AAD 50 MiB took 1.005 seconds, 49.763 MiB/s
AES-192-GCM-dec-no_AAD 50 MiB took 1.005 seconds, 49.763 MiB/s
AES-256-GCM-enc-no_AAD 50 MiB took 1.043 seconds, 47.957 MiB/s
AES-256-GCM-dec-no_AAD 50 MiB took 1.043 seconds, 47.954 MiB/s
GMAC Default 67 MiB took 1.005 seconds, 66.678 MiB/s
3DES 30 MiB took 1.154 seconds, 25.989 MiB/s
MD5 535 MiB took 1.000 seconds, 534.753 MiB/s
SHA 425 MiB took 1.010 seconds, 420.867 MiB/s
SHA-256 195 MiB took 1.012 seconds, 192.623 MiB/s
HMAC-MD5 535 MiB took 1.000 seconds, 534.753 MiB/s
HMAC-SHA 425 MiB took 1.010 seconds, 420.669 MiB/s
HMAC-SHA256 195 MiB took 1.013 seconds, 192.520 MiB/s
PBKDF2 23 KiB took 1.001 seconds, 22.675 KiB/s
RSA 2048 public 6000 ops took 1.012 sec, avg 0.169 ms, 5927.999 ops/sec
RSA 2048 private 200 ops took 1.849 sec, avg 9.247 ms, 108.139 ops/sec
DH 2048 key gen 261 ops took 1.002 sec, avg 3.839 ms, 260.505 ops/sec
DH 2048 agree 300 ops took 1.149 sec, avg 3.829 ms, 261.162 ops/sec
ECC [ SECP256R1] 256 key gen 7400 ops took 1.005 sec, avg 0.136 ms, 7364.569 ops/sec
ECDHE [ SECP256R1] 256 agree 2800 ops took 1.020 sec, avg 0.364 ms, 2744.463 ops/sec
ECDSA [ SECP256R1] 256 sign 4900 ops took 1.008 sec, avg 0.206 ms, 4859.371 ops/sec
ECDSA [ SECP256R1] 256 verify 2500 ops took 1.026 sec, avg 0.411 ms, 2435.650 ops/sec
Benchmark complete
wolfSSL Entering wolfCrypt_Cleanup
Benchmark Test: Return code 0
CPU used:
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 78
model name : Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
stepping : 3
microcode : 0xf0
cpu MHz : 800.008
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d arch_capabilities
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit srbds mmio_stale_data
bogomips : 4999.90
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
Retest this Jenkins
Retest this please Jenkins
Found unhandled hudson.remoting.RequestAbortedException