Cipher suite performance
emSSL is built for high performance with target independent code. It is completely written in ANSI C and can be used in any embedded application, as well as in PC applications.
Performance
The following results show the connection time of a Cortex-M4, running at 200MHz from internal flash memory, using internal RAM.
Performance Test: The times are measured for the negotiation phase, connecting to www.segger.com and www.google.com with the key exchange algorithms (marked in bold). Cipher Suite is the used cipher suite for this connection which is supported by emSSL and the server. SSL time is the time required by emSSL to fully agree the session keys for a secure connection — it excludes transmission and reception times over the IP transport which are highly variable.
Cipher Suite | Key algorithm | SSL time [ms]1 |
---|---|---|
C008 TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA | ECDSA | 278 ms |
C009 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA | ECDSA | 274 ms |
C023 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | ECDSA | 273 ms |
C0AC TLS_ECDHE_ECDSA_WITH_AES_128_CCM | ECDSA | 277 ms |
C0AE TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 | ECDSA | 276 ms |
C02B TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 | ECDSA | 272 ms |
C00A TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA | ECDSA | 276 ms |
C024 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 | ECDSA | 279 ms |
C0AD TLS_ECDHE_ECDSA_WITH_AES_256_CCM | ECDSA | 275 ms |
C0AF TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 | ECDSA | 277 ms |
C02C TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 | ECDSA | 277 ms |
C048 TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 | ECDSA | 280 ms |
C05C TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 | ECDSA | 272 ms |
C049 TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 | ECDSA | 286 ms |
C05D TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 | ECDSA | 276 ms |
C072 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 | ECDSA | 280 ms |
C086 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 | ECDSA | 272 ms |
C073 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 | ECDSA | 277 ms |
C087 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 | ECDSA | 283 ms |
C007 TLS_ECDHE_ECDSA_WITH_RC4_128_SHA | ECDSA | 293 ms |
CCA9 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 | ECDSA | 269 ms |
C012 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA | RSA | 197 ms |
C013 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | RSA | 195 ms |
C027 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | RSA | 205 ms |
C02F TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | RSA | 198 ms |
C014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA | RSA | 192 ms |
C028 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 | RSA | 202 ms |
C030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | RSA | 196 ms |
C04C TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 | RSA | 194 ms |
C060 TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 | RSA | 202 ms |
C04D TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 | RSA | 200 ms |
C061 TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 | RSA | 192 ms |
C076 TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 | RSA | 186 ms |
C08A TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 | RSA | 191 ms |
C077 TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 | RSA | 200 ms |
C08B TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 | RSA | 194 ms |
C011 TLS_ECDHE_RSA_WITH_RC4_128_SHA | RSA | 200 ms |
CCA8 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 | RSA | 200 ms |
C002 TLS_ECDH_ECDSA_WITH_RC4_128_SHA | ECDSA | 186 ms |
C003 TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA | ECDSA | 181 ms |
C004 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA | ECDSA | 186 ms |
C025 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 | ECDSA | 193 ms |
C02D TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 | ECDSA | 191 ms |
C005 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA | ECDSA | 184 ms |
C026 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 | ECDSA | 194 ms |
C02E TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 | ECDSA | 186 ms |
C04A TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 | ECDSA | 195 ms |
C05E TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 | ECDSA | 194 ms |
C04B TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 | ECDSA | 187 ms |
C05F TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 | ECDSA | 181 ms |
C074 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 | ECDSA | 183 ms |
C088 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 | ECDSA | 184 ms |
C075 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 | ECDSA | 181 ms |
C089 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 | ECDSA | 178 ms |
C00D TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA | RSA | 194 ms |
C00E TLS_ECDH_RSA_WITH_AES_128_CBC_SHA | RSA | 186 ms |
C029 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 | RSA | 182 ms |
C031 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 | RSA | 185 ms |
C00F TLS_ECDH_RSA_WITH_AES_256_CBC_SHA | RSA | 189 ms |
C02A TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 | RSA | 191 ms |
C032 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 | RSA | 188 ms |
C04E TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 | RSA | 187 ms |
C062 TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 | RSA | 182 ms |
C04F TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 | RSA | 190 ms |
C063 TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 | RSA | 185 ms |
C078 TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 | RSA | 187 ms |
C08C TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 | RSA | 192 ms |
C079 TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 | RSA | 192 ms |
C08D TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 | RSA | 186 ms |
C00C TLS_ECDH_RSA_WITH_RC4_128_SHA | RSA | 185 ms |
000A TLS_RSA_WITH_3DES_EDE_CBC_SHA | RSA | 13 ms |
0096 TLS_RSA_WITH_SEED_CBC_SHA | RSA | 11 ms |
002F TLS_RSA_WITH_AES_128_CBC_SHA | RSA | 12 ms |
003C TLS_RSA_WITH_AES_128_CBC_SHA256 | RSA | 12 ms |
C09C TLS_RSA_WITH_AES_128_CCM | RSA | 12 ms |
009C TLS_RSA_WITH_AES_128_GCM_SHA256 | RSA | 12 ms |
0035 TLS_RSA_WITH_AES_256_CBC_SHA | RSA | 12 ms |
003D TLS_RSA_WITH_AES_256_CBC_SHA256 | RSA | 12 ms |
C09D TLS_RSA_WITH_AES_256_CCM | RSA | 13 ms |
009D TLS_RSA_WITH_AES_256_GCM_SHA384 | RSA | 15 ms |
0041 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA | RSA | 12 ms |
0084 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA | RSA | 12 ms |
00BA TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 | RSA | 12 ms |
00C0 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 | RSA | 12 ms |
C07A TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 | RSA | 12 ms |
C07B TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 | RSA | 15 ms |
C03C TLS_RSA_WITH_ARIA_128_CBC_SHA256 | RSA | 13 ms |
C03D TLS_RSA_WITH_ARIA_256_CBC_SHA384 | RSA | 18 ms |
C050 TLS_RSA_WITH_ARIA_128_GCM_SHA256 | RSA | 14 ms |
C051 TLS_RSA_WITH_ARIA_256_GCM_SHA384 | RSA | 16 ms |
0004 TLS_RSA_WITH_RC4_128_MD5 | RSA | 13 ms |
0005 TLS_RSA_WITH_RC4_128_SHA | RSA | 12 ms |
1 Results may vary depending on the compiler, compiler settings and memory timings of the microcontroller used.
Performance Test – emSSL Server
The times are measured for the negotiation phase, using the scan tool that is part of the emSSL package. The server side is running on an STM32F7 using the emWeb web server and emSSL. The scan tool verifies and measures the key exchange algorithms. Cipher Suite is the used cipher suite for this connection which is supported by the emSSL server. SSL time is the time required by emSSL to fully agree the session keys for a secure connection — it excludes transmission and reception times over the IP transport which are highly variable.
Cipher Suite | Key algorithm | SSL time [ms]1 |
---|---|---|
C008 TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA | ECDSA | 272 ms |
C009 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA | ECDSA | 276 ms |
C023 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | ECDSA | 271 ms |
C0AC TLS_ECDHE_ECDSA_WITH_AES_128_CCM | ECDSA | 276 ms |
C0AE TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 | ECDSA | 266 ms |
C02B TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 | ECDSA | 272 ms |
C00A TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA | ECDSA | 271 ms |
C024 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 | ECDSA | 274 ms |
C0AD TLS_ECDHE_ECDSA_WITH_AES_256_CCM | ECDSA | 268 ms |
C0AF TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 | ECDSA | 273 ms |
C02C TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 | ECDSA | 275 ms |
C048 TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 | ECDSA | 268 ms |
C05C TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 | ECDSA | 273 ms |
C049 TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 | ECDSA | 275 ms |
C05D TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 | ECDSA | 269 ms |
C072 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 | ECDSA | 274 ms |
C086 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 | ECDSA | 270 ms |
C073 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 | ECDSA | 281 ms |
C087 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 | ECDSA | 265 ms |
C007 TLS_ECDHE_ECDSA_WITH_RC4_128_SHA | ECDSA | 266 ms |
CCA9 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 | ECDSA | 277 ms |
C012 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA | RSA | 616 ms |
C013 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | RSA | 613 ms |
C027 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | RSA | 610 ms |
C02F TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | RSA | 608 ms |
C014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA | RSA | 611 ms |
C028 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 | RSA | 619 ms |
C030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | RSA | 614 ms |
C04C TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 | RSA | 617 ms |
C060 TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 | RSA | 610 ms |
C04D TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 | RSA | 609 ms |
C061 TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 | RSA | 614 ms |
C076 TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 | RSA | 607 ms |
C08A TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 | RSA | 616 ms |
C077 TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 | RSA | 613 ms |
C08B TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 | RSA | 616 ms |
C011 TLS_ECDHE_RSA_WITH_RC4_128_SHA | RSA | 611 ms |
CCA8 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 | RSA | 614 ms |
C002 TLS_ECDH_ECDSA_WITH_RC4_128_SHA | ECDSA | 90 ms |
C003 TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA | ECDSA | 90 ms |
C004 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA | ECDSA | 91 ms |
C025 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 | ECDSA | 91 ms |
C02D TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 | ECDSA | 91 ms |
C005 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA | ECDSA | 90 ms |
C026 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 | ECDSA | 94 ms |
C02E TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 | ECDSA | 94 ms |
C04A TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 | ECDSA | 92 ms |
C05E TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 | ECDSA | 92 ms |
C04B TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 | ECDSA | 95 ms |
C05F TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 | ECDSA | 94 ms |
C074 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 | ECDSA | 92 ms |
C088 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 | ECDSA | 91 ms |
C075 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 | ECDSA | 94 ms |
C089 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 | ECDSA | 95 ms |
C00D TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA | RSA | 91 ms |
C00E TLS_ECDH_RSA_WITH_AES_128_CBC_SHA | RSA | 92 ms |
C029 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 | RSA | 92 ms |
C031 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 | RSA | 92 ms |
C00F TLS_ECDH_RSA_WITH_AES_256_CBC_SHA | RSA | 90 ms |
C02A TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 | RSA | 96 ms |
C032 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 | RSA | 93 ms |
C04E TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 | RSA | 90 ms |
C062 TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 | RSA | 92 ms |
C04F TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 | RSA | 96 ms |
C063 TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 | RSA | 95 ms |
C078 TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 | RSA | 90 ms |
C08C TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 | RSA | 91 ms |
C079 TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 | RSA | 95 ms |
C08D TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 | RSA | 93 ms |
C00C TLS_ECDH_RSA_WITH_RC4_128_SHA | RSA | 90 ms |
000A TLS_RSA_WITH_3DES_EDE_CBC_SHA | RSA | 437 ms |
0096 TLS_RSA_WITH_SEED_CBC_SHA | RSA | 436 ms |
002F TLS_RSA_WITH_AES_128_CBC_SHA | RSA | 436 ms |
003C TLS_RSA_WITH_AES_128_CBC_SHA256 | RSA | 437 ms |
C09C TLS_RSA_WITH_AES_128_CCM | RSA | 436 ms |
009C TLS_RSA_WITH_AES_128_GCM_SHA256 | RSA | 438 ms |
0035 TLS_RSA_WITH_AES_256_CBC_SHA | RSA | 437 ms |
003D TLS_RSA_WITH_AES_256_CBC_SHA256 | RSA | 436 ms |
C09D TLS_RSA_WITH_AES_256_CCM | RSA | 436 ms |
009D TLS_RSA_WITH_AES_256_GCM_SHA384 | RSA | 439 ms |
0041 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA | RSA | 436 ms |
0084 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA | RSA | 437 ms |
00BA TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 | RSA | 437 ms |
00C0 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 | RSA | 436 ms |
C07A TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 | RSA | 437 ms |
C07B TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 | RSA | 440 ms |
C03C TLS_RSA_WITH_ARIA_128_CBC_SHA256 | RSA | 437 ms |
C03D TLS_RSA_WITH_ARIA_256_CBC_SHA384 | RSA | 441 ms |
C050 TLS_RSA_WITH_ARIA_128_GCM_SHA256 | RSA | 436 ms |
C051 TLS_RSA_WITH_ARIA_256_GCM_SHA384 | RSA | 439 ms |
0004 TLS_RSA_WITH_RC4_128_MD5 | RSA | 434 ms |
0005 TLS_RSA_WITH_RC4_128_SHA | RSA | 435 ms |
1 Results may vary depending on the compiler, compiler settings and memory timings of the microcontroller used.