summaryrefslogtreecommitdiffstats
path: root/etc/client-simulation.wiresharked.txt
diff options
context:
space:
mode:
Diffstat (limited to 'etc/client-simulation.wiresharked.txt')
-rw-r--r--etc/client-simulation.wiresharked.txt816
1 files changed, 816 insertions, 0 deletions
diff --git a/etc/client-simulation.wiresharked.txt b/etc/client-simulation.wiresharked.txt
new file mode 100644
index 0000000..12dc1b7
--- /dev/null
+++ b/etc/client-simulation.wiresharked.txt
@@ -0,0 +1,816 @@
+# This file contains client handshake data manually created from Wireshark.
+# The content needs to be added to client-simulation.txt which other part
+# comes from the SSLlabs client API via update_client_sim_data.pl
+# The whole process is done manually.
+#
+# Instructions how to add a client simulation see file "client-simulation.wiresharked.md".
+
+ names+=("Android 7.0 (native)")
+ short+=("android_70")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA")
+ ciphersuites+=("")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("160301009d0100009903036cea0f867ae9fdd087adedaa810119e62971b36c0486d44fb3099e51403c8a1e000018c02bc02ccca9c02fc030cca8c013c014009c009d002f003501000058ff010001000000000d000b00000873796e6f642e696d0017000000230000000d0016001406010603050105030401040303010303020102030010000e000c02683208687474702f312e31000b00020100000a000400020017")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0303")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP,FTP")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("prime256v1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Android 8.1 (native)")
+ short+=("android_81")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA")
+ ciphersuites+=("")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030100c0010000bc030346fcc7d3e5a9f68af0aa05de62de63c4ad1a4f472da56aa1424041106922370720ef51a7595abfd5bb32038c96c481bb6449053ba08023a752d124b1c1ca7d34fe001cc02bc02ccca9c02fc030cca8c009c00ac013c014009c009d002f0035010000570000001700150000127777772e676f6f676c65617069732e636f6d00170000ff01000100000a00080006001d00170018000b00020100000500050100000000000d00140012040308040401050308050501080606010201")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0303")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Android 9.0 (native)")
+ short+=("android_90")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010246010002420303d6259dca682ab368c7e095da7189996da830514896063d4acdc83cb5d2c2568d2041a787bf8dd3d7a1ceda514a6606f1068432a13063ea320fd7e7b367af47ecae00220a0a130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035000a010001d77a7a00000000001e001c0000196c68332e676f6f676c6575736572636f6e74656e742e636f6d00170000ff01000100000a000a0008aaaa001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201001200000033002b0029aaaa000100001d00203e67895a11e9ce5c69df2995782adaddb7a03ef30b245000ca332d5940ecff20002d00020101002b000b0aeaea0304030303020301001b00030200026a6a0001000029010500e000da001c9941f6b101f853f370851e583bd22e03150fc67298947270c6058707fe1670efe590d777a34b9e2e2d0ec6aa8d0ddc375c2535934c75c9623d1a271f735417fdd9190dae7f4c8541c262f8fbfeee2e820f54f59f68e78503f5c093f6084037be22c20dad3d057f64dc73f2dd45948e27c707f3f2107b32040a21fa9c1273e7797aaf5a5bc8994e9eafc4bd43b2951e10f952564a910f146344ec6d0c49f75fc6a070c75f0ffdd84fe9e10f77c23f1062e90f9e1e396eddb84d8ac00bf7ac87c557622dd18c54bbc229268699c60434648b279dd86e996baee9d1c155002120235d43319c7d5bb4725a52fa782468cd2280bd622c40a36296b354759f6d4389")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Android 10.0 (native)")
+ short+=("android_X")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc0303b0e379bbe0d7058b2d0b548d7f240da621716032e8a1577d3f3a34c2cc6794c420c44a8b4cae0a1a53970f394f078373ad2cc8962a87fad719ff8a637633792a9a00223a3a130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035000a010001919a9a00000000002500230000206b6964736d616e6167656d656e742d70612e676f6f676c65617069732e636f6d00170000ff01000100000a000a0008aaaa001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201001200000033002b0029aaaa000100001d002068d49fc35d239c0ebf95fecdc700b5a4e3f99a7c3411f90c2dd51cb9431d3330002d00020101002b000b0a2a2a0304030303020301001b0003020002caca000100001500b800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Android 11 (native)")
+ short+=("android_11")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc03030cd23f97801d202c5827875ff92bbcdcaba7bab8063f6a8203f260e12e3dffe920d864f831a405b2eeff3d9bfb107d8600518c0fb6a45492b134fbf7f828b08a860022130113021303c02bc02ccca9c02fc030cca8c009c00ac013c014009c009d002f00350100019100000010000e00000b662d64726f69642e6f726700170000ff01000100000a00080006001d00170018000b00020100002300000010000b000908687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201003300260024001d002047a6c973047a94414d8db841fd3128a5915046c2b6ae19b69043eb0fd9cee156002d00020101002b0009080304030303020301001500ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Android 12 (native)")
+ short+=("android_12")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc0303ef9015ea56c63737ffffc0accb09384a436f080a39f77fe113356ae5bfd1254a20163dc9147addf7e7fdb45852fbfe8e3fb2b79ec6f725bfda838d429eba22e6670022130113021303c02bc02ccca9c02fc030cca8c009c00ac013c014009c009d002f00350100019100000010000e00000b662d64726f69642e6f726700170000ff01000100000a00080006001d00170018000b00020100002300000010000b000908687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201003300260024001d0020f209906d70ae4ba88ac3c89810eb7092be23e377f98d8c96696dec9296358c3e002d00020101002b0009080304030303020301001500ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Edge 17 Win 10")
+ short+=("edge_17_win10")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA")
+ ciphersuites+=("")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("160303018d0100018903035cbeb3c560acfb3dfe583ba45f51f5e2e36f99dfe5e22f1a230724dfaf5ddbde000026c02cc02bc030c02fc024c023c028c027c00ac009c014c013009d009c003d003c0035002f000a0100013a0000001a0018000015737570706f72742e6d6963726f736f66742e636f6d000500050100000000000a00080006001d00170018000b00020100000d00140012040105010201040305030203020206010603002300c000000f032566a8435c845ce7de67f2f4fd6c75ed3206c9448a513d4b4f8cd2fedb5f7d1eb4573ce68756fdad198bd3e4eadfd4db2d7794cc69198366edcb9b9ff5803a58718c1de4d6dffeb4354cd48f5dba6de719cebb27d544f6b2f4427e4e5d46f564d3098134d9b69a4e83e233f5dfea099733f75022dba07665d7c35dd09742082a06f080871caaa6a7770ebc9e2c792eb88c44d0d56ae6ba068a189b674491cee28155148c86d53071e170ab354e0fd0e390b9ddda0886b9fa8c70ee1a0010000e000c02683208687474702f312e310017000000180006001003020100ff01000100")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0303")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP,FTP")
+ minDhBits+=(1024)
+ maxDhBits+=(4096)
+ minRsaBits+=(-1)
+ maxRsaBits+=(16384)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Edge 101 Win 10 21H2")
+ short+=("edge_101_win10_21h2")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc030360a807485e4eb933f7a4f3266e30eca613800f1d226e9604f68a10f3c92ed3bb2080fa39190e2a30e50dca37242c336e382fb27b0ce0373bbf56d97c959886bf0d00204a4a130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035010001933a3a00000000000f000d00000a7465737473736c2e736800170000ff01000100000a000a0008caca001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d0012001004030804040105030805050108060601001200000033002b0029caca000100001d0020ad8d8b31297a70087d0535f9dd2555b9d04747b409cd5958fccde237f8893d3c002d00020101002b000706aaaa03040303001b0003020002446900050003026832caca000100001500cd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2")
+ lowest_protocol+=("0x0303")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(16384)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(true)
+ current+=(true)
+
+ names+=("Chrome 73 (Win 10)")
+ short+=("chrome_73_win10")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc0303a719e434922565bbd59fe0dfec21b7f5c8549fdf52566af99cce87ecb276992b20bbf979b5fbe4ebd1412e55ffe6b811e561d3f04ce451fc229d329babda4de91d00227a7a130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035000a010001914a4a000000000012001000000d7777772e676f6f676c652e646500170000ff01000100000a000a0008aaaa001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201001200000033002b0029aaaa000100001d00205c2f12fabe8b2ff843aa9f347816b7d3a8b8c051f0830f4bbf13d44b5ec37c2b002d00020101002b000b0aeaea0304030303020301001b0003020002eaea000100001500cb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Chrome 74 (Win 10)")
+ short+=("chrome_74_win10")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc0303b95f99af8f312f71a9bc94bec54911187cb29365a901f40ef1cc193c51f23afc2074daa030d03808edadb1ac4bc435e41cd106166b6436f925a6501f7314eae2a600222a2a130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035000a01000191baba000000000012001000000d7777772e676f6f676c652e646500170000ff01000100000a000a00087a7a001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201001200000033002b00297a7a000100001d002062d1679f47bf75d0486d6fc6fa041c13b6cbb4c53984998d0b2db4c3f6b1277a002d00020101002b000b0aaaaa0304030303020301001b00030200027a7a000100001500cb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Chrome 78 (Win 10)")
+ short+=("chrome_78_win10")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc030332e6eabb5d4b9818074f79423b0a9cde127a309671fcf0d0420bdb68f98bbc9320085a3e18e8e5cf4060c1e7065523d344f09186ffb835c10095df30b1611bc49a0022eaea130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035000a010001912a2a000000000014001200000f73736c2e677374617469632e636f6d00170000ff01000100000a000a0008eaea001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201001200000033002b0029eaea000100001d0020e0a5bb30a2a14bc13685b4a19ba59628aad22b761dceb63a9dcfa10475f84260002d00020101002b000b0a0a0a0304030303020301001b00030200025a5a000100001500c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Chrome 79 (Win 10)")
+ short+=("chrome_79_win10")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc03032f8eea63ff25d05264565777081b6d1a326e12f37751c33c7e953973af65b2ab20a62f96b75b1c41454679b64cd32fb0fbbf99ff019501d92184d589a529c21c590022caca130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035000a010001917a7a000000000014001200000f73736c2e677374617469632e636f6d00170000ff01000100000a000a0008eaea001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201001200000033002b0029eaea000100001d0020465dfa0295bf9cd3578d2f23bbfdf58d6468c5dd0c071f0b7c6bb92fc507685b002d00020101002b000b0ababa0304030303020301001b00030200029a9a000100001500c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Chrome 101 (Win 10)")
+ short+=("chrome_101_win10")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc030387502355f7a317c3c0ff03e7ff6841b941dd76ba48071f621d19c7a43786167b20d2a6df6c9967eaf101fbb914d49535bfdfefc61a6c147ad8eb7865671dd4280500201a1a130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035010001932a2a00000000000f000d00000a7465737473736c2e736800170000ff01000100000a000a00083a3a001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d0012001004030804040105030805050108060601001200000033002b00293a3a000100001d00205daf6d36d377a66de529cf4ab9a428842a46c9671f818d8d816b13cc4c49704b002d00020101002b000706aaaa03040303001b00030200024469000500030268324a4a000100001500cd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2")
+ lowest_protocol+=("0x0303")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(true)
+ current+=(true)
+
+ names+=("Firefox 66 (Win 8.1/10)")
+ short+=("firefox_66_win")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc0303f488fc07f89155dba6560e527e1708e0b36458f32492fcf3074386f169d447e5204ed6d2d9d162b792388e9cee6c838b6b1e82dacdf1837f7279bc42339c70b79c0024130113031302c02bc02fcca9cca8c02cc030c00ac009c013c01400330039002f0035000a0100018f0000000f000d00000a7465737473736c2e736800170000ff01000100000a000e000c001d00170018001901000101000b00020100002300000010000e000c02683208687474702f312e310005000501000000000033006b0069001d0020f3c22d5492b1230da8895790bea5e5a3af7e63517cfa31b37d1d2a817a628f690017004104a373b66bce1c5d411d78d93b3c3ee6eb7c4519a52abf29e98bbc355a94f8f52a1c8bb7d6320c0104e98ec3895bc5e89ddc1d8f2b76305912992df46c546f2cf5002b0009080304030303020301000d0018001604030503060308040805080604010501060102030201002d00020101001c000240010015009400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ minDhBits+=(1023)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1:secp521r1:ffdhe2048:ffdhe3072")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Firefox 71 (Win 10)")
+ short+=("firefox_71_win10")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030102580100025403036d4532515bff048c5c74cb0d39518c9c02e2dfd4d8ecae6591ee67d29ea62eab20c70c3e8feae9ed79d54914215aab37d3d5b7966a422edc41d2c027f9973d6b160024130113031302c02bc02fcca9cca8c02cc030c00ac009c013c01400330039002f0035000a010001e700000014001200000f7777772e6d6f7a696c6c612e6f726700170000ff01000100000a000e000c001d00170018001901000101000b000201000010000e000c02683208687474702f312e310005000501000000000033006b0069001d002005dcfe2c42419119e518fb087071ba68445b825e4f4dd9ddb8679c3011d3e75800170041046bd8e6b1818d3985e55a8514d3ec5091945df5eb48136c3a9f67bb6d6665758ef088520626748d59bba63786c0164b948013e0f8eee0ba425d643b7c5d4bfa8f002b0009080304030303020301000d0018001604030503060308040805080604010501060102030201002d00020101001c00024001002900eb00c600c0995b148219e66aca5e58a74de1551ae6c76897f50fc853147cf22db9a937361496395112ab0382a942c95fbd48b787d031ae89a8f23f9b7a56c2a0ed5158e919d2491c003ab7d1ca1944b7e5d068d4e6a0c83d9096e9cb76ad2ac081075551cf4bdbfff1194a71c54bf8f88cbe7c246c728155e92f94015e4c5140ce84087c842033ea00fa92f5bd5b601f9650aee0eb0d000175e447945fd28e1df361c5cce443351fd0f7f13cb6cab2e2cc8c3951eb4367dc5004415ab6c3cf0adbca1e3be4f149f74100212008a1f3195cd13d7b4386acd47cdfae0afad06cf8d245744e815ec6989e3cdd6c")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ minDhBits+=(1023)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1:secp521r1:ffdhe2048:ffdhe3072")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Firefox 100 (Win 10)")
+ short+=("firefox_100_win10")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc03033586b7a64a26c288145531ee4d59285a375f267e66e5feb12ece8decdbaabeee208f15cc72bce2a42c4095c6b4015a82dc137298167c615f103e0c9985600ac8b60022130113031302c02bc02fcca9cca8c02cc030c00ac009c013c014009c009d002f0035010001910000000f000d00000a7465737473736c2e736800170000ff01000100000a000e000c001d00170018001901000101000b00020100002300000010000e000c02683208687474702f312e310005000501000000000022000a000804030503060302030033006b0069001d00209dcc2f0c8fe0baf461c114288632a90723f2cab45573b70fd8a07e2f743f63340017004104907687ae8e8da3f272b887ce11b2a40d5c8bf5e135a58c7575ea8f421d923e6a6883f8dae7fb1db8502f983005bd26e3a444b08c6debf5226d355bc64c189832002b00050403040303000d0018001604030503060308040805080604010501060102030201002d00020101001c000240010015008c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2")
+ lowest_protocol+=("0x0303")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ minDhBits+=(1023)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1:secp521r1:ffdhe2048:ffdhe3072")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Java 11.0.2 (OpenJDK)")
+ short+=("java1102")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:AES128-GCM-SHA256:ECDH-ECDSA-AES128-GCM-SHA256:ECDH-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:AES256-SHA256:ECDH-ECDSA-AES256-SHA384:ECDH-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:ECDH-ECDSA-AES256-SHA:ECDH-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:ECDH-ECDSA-AES128-SHA256:ECDH-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA:ECDH-ECDSA-AES128-SHA:ECDH-RSA-AES128-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030301b8010001b40303ca5f7e4933a89ce4d71df403c75e71e6068fbc14a00fc4f0edd5b0dc80fee88120ded1f3aacfab0d011cd1327a4049e0e15dc4f9c6ff512bf3792687227b238af4005813011302c02cc02bc030009dc02ec032009f00a3c02f009cc02dc031009e00a2c024c028003dc026c02a006b006ac00ac0140035c005c00f00390038c023c027003cc025c02900670040c009c013002fc004c00e003300320100011300000010000e00000b6369706865726c692e7374000500050100000000000a0020001e0017001800190009000a000b000c000d000e001601000101010201030104000b00020100000d002800260403050306030804080508060809080a080b04010501060104020303030103020203020102020032002800260403050306030804080508060809080a080b04010501060104020303030103020203020102020011000900070200040000000000170000002b0009080304030303020301002d000201010033004700450017004104c762a2d3f3ac33e332935a4b7bf0fd4a8f3b7ab7bbc630f78e35bd86a132b32b811a1defe5f4e18a26dc698a01513c6a6467ee10a20397fc7462b1f0b4b85f42ff01000100")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ service+=("ANY")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(224)
+ curves+=("secp256r1:secp384r1:secp521r1:sect283k1:sect283r1:sect409k1:sect409r1:sect571k1:sect571r1:ffdhe2048:ffdhe3072:ffdhe4096:ffdhe6144:ffdhe8192")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Java 12.0.1 (OpenJDK)")
+ short+=("java1201")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:DHE-DSS-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:AES128-GCM-SHA256:ECDH-ECDSA-AES128-GCM-SHA256:ECDH-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:AES256-SHA256:ECDH-ECDSA-AES256-SHA384:ECDH-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:ECDH-ECDSA-AES256-SHA:ECDH-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:ECDH-ECDSA-AES128-SHA256:ECDH-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA:ECDH-ECDSA-AES128-SHA:ECDH-RSA-AES128-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030301bd010001b90303179b0759c355875657d31c7c03293ac94c6f5c75a45689d8f073db3858e90b44207c60386fec70ab935d7d554482f153112b05c449fc1f718f97c09d9bdfb882fa0062130113021303c02cc02bcca9c030cca8009dc02ec032009fccaa00a3c02f009cc02dc031009e00a2c024c028003dc026c02a006b006ac00ac0140035c005c00f00390038c023c027003cc025c02900670040c009c013002fc004c00e0033003200ff0100010e00000010000e00000b6369706865726c692e7374000500050100000000000a0020001e0017001800190009000a000b000c000d000e001601000101010201030104000b00020100000d002800260403050306030804080508060809080a080b04010501060104020303030103020203020102020032002800260403050306030804080508060809080a080b04010501060104020303030103020203020102020011000900070200040000000000170000002b0009080304030303020301002d0002010100330047004500170041047fee265885ea4db5694f11d45e5a219052a2cab3d12339f07163a8e5cb6e822853ed990d130e356ee8ef2e37bb757d9fe9edff99478784a47c0350f66c2ce87e")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ service+=("ANY")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(224)
+ curves+=("secp256r1:secp384r1:secp521r1:sect283k1:sect283r1:sect409k1:sect409r1:sect571k1:sect571r1:ffdhe2048:ffdhe3072:ffdhe4096:ffdhe6144:ffdhe8192")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Java 17.0.3 (OpenJDK)")
+ short+=("java1703")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA")
+ ciphersuites+=("TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030301a6010001a203031c34c4ac5ef5ba1ade5e678607fbe6d28d9e23421d185b24a30ffab293706cbd20d70d8ee01cfe86e031a4aa86264b7740ce072f6fe346bb9f405d79183c037b6a003e130213011303c02cc02bcca9c030cca8c02f009fccaa009ec024c028c023c027006b0067c00ac014c009c01300390033009d009c003d003c0035002f00ff0100011b0000000f000d00000a7465737473736c2e7368000500050100000000000a00160014001d001700180019001e01000101010201030104000b00020100001100090007020004000000000017000000230000000d00220020040305030603080708080804080508060809080a080b04010501060103030301002b00050403040303002d00020101003200220020040305030603080708080804080508060809080a080b040105010601030303010033006b0069001d00205c36e17a8c09191c270fda0dce029fe19ce8cd677509b3bc875454e7904b6a6700170041047e12aff13aeee1b8690e5be53549c26f5a3b94e32462d18bb076e095471ac05be1dbce117b77b322969b32a0fe68fd0ea955e8bbfdda8c4b413cb0fecc305782")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ service+=("ANY")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(224)
+ curves+=("x25519:secp256r1:secp384r1:secp521r1:x448:ffdhe2048:ffdhe3072:ffdhe4096:ffdhe6144:ffdhe8192")
+ requiresSha2+=(true)
+ current+=(true)
+
+ names+=("go 1.17.8")
+ short+=("go_1178")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030101130100010f03031029d230a9b311180dec08b33ed809c3516adcf841cd3ec640a6d1b0ad6470e8204a279851f3e8a94a156e37b13d79f30c2ddbdc6907f30f663df9f43c9dd82b8e0026c02bc02fc02cc030cca9cca8c009c013c00ac014009c009d002f0035c012000a130113021303010000a00000000f000d00000a7465737473736c2e7368000500050100000000000a000a0008001d001700180019000b00020100000d001a0018080404030807080508060401050106010503060302010203ff010001000010000e000c02683208687474702f312e3100120000002b0009080304030303020301003300260024001d0020a3704893c7f1fb37d84dda6c10a6b1b7315d8f05e2a7946c239aaa13a33efa28")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(224)
+ curves+=("x25519:secp256r1:secp384r1:secp521r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Opera 60 (Win 10)")
+ short+=("opera_60_win10")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc03033503bae63f0cf8ef9d0a55623327a28e3c3525a2ce28153242e132279d3940e3206a440f32e7a8488b012b12d4b7d1b2b1764c784a944662a7f305e90f7d15168500228a8a130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035000a01000191eaea000000000012001000000d7777772e6f706572612e636f6d00170000ff01000100000a000a0008caca001d00170018000b00020100002300c07505f51cc349fe3f9e022858dcd1eb12ca07a302fd9f43a4cbffec031296e77b07122bb9532dd112770b686a4898e20462c514c5fb043dc325a5453753c499774bfab673024a86543064c33d40b67b2e4e9dfa177305e8cdc39f3d8afe0fe7c80406a9e07ea836dd8a46ab7ef9aa5dc66301a346585f7ff26615a28cbea2544d4ba8101be6f528b4bba3a5ce9a6683537b29cd16d4c5015de6f9a93d3c132389e56ff20853d952f6ee06b46ca89dc52b67583fbb0fb61e2b78c03ef97892c6a90010000e000c02683208687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201001200000033002b0029caca000100001d00204aeb26ec670ce59e094a8b97c281186b4e87706df48667a24193e268a069cd54002d00020101002b000b0a3a3a0304030303020301001b00030200027a7a0001000015000b0000000000000000000000")
+ protos+=("-no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0300")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP,FTP")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Opera 65 (Win 10)")
+ short+=("opera_65_win10")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc03039eee8c108ed7b040285658cddb0022e7e1f17bc92084335edf8ad5404fbf424a203bedd34c83b59c3e302af681b449490895335de0d8a0f10d20a0ff610130229b00224a4a130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035000a010001912a2a000000000014001200000f626c6f67732e6f706572612e636f6d00170000ff01000100000a000a00081a1a001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201001200000033002b00291a1a000100001d0020cc29a9f8b3a69149c38b29ccb7341b98efd1714c3887fc1e84512470f783921a002d00020101002b000b0adada0304030303020301001b0003020002dada000100001500c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl2 -no_ssl3")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP,FTP")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Opera 66 (Win 10)")
+ short+=("opera_66_win10")
+ ch_ciphers+=("TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc0303a7ab90aa0987b33da751017bb78958f51bc1aa76e116c21eb4bb0b51a9f88f77203658175a55b25ab41867568b52e8fb8eaf4c8e91ceccf30ae498879e468579b100222a2a130113021303c02bc02fc02cc030cca9cca8c013c014009c009d002f0035000a010001911a1a000000000014001200000f626c6f67732e6f706572612e636f6d00170000ff01000100000a000a00087a7a001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201001200000033002b00297a7a000100001d0020488d0d07b77098f98cb97ee85ae88b358404a8004633896e5110966ab3c18f66002d00020101002b000b0ababa0304030303020301001b00030200023a3a000100001500c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl2 -no_ssl3")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP,FTP")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("LibreSSL 2.8.3 (Apple)")
+ short+=("libressl_283")
+ ch_ciphers+=("ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:GOST2012256-GOST89-GOST89:DHE-RSA-CAMELLIA256-SHA256:DHE-RSA-CAMELLIA256-SHA:GOST2001-GOST89-GOST89:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:CAMELLIA256-SHA256:CAMELLIA256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-CAMELLIA128-SHA256:DHE-RSA-CAMELLIA128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:CAMELLIA128-SHA256:CAMELLIA128-SHA:ECDHE-RSA-RC4-SHA:ECDHE-ECDSA-RC4-SHA:RC4-SHA:RC4-MD5:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:DES-CBC3-SHA")
+ ciphersuites+=("")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030100d2010000ce0303b92919aa3a64d5be518c116c52fc2fd6aab43535432e0702668527957473b6b400005ccca9cca8ccaac030c02cc028c024c014c00a009f006b0039ff8500c400880081009d003d003500c00084c02fc02bc027c023c013c009009e0067003300be0045009c003c002f00ba0041c011c00700050004c012c0080016000a00ff010000490000000f000d00000a7465737473736c2e7368000b00020100000a00080006001d0017001800230000000d001c001a06010603efef0501050304010403eeeeeded0301030302010203")
+ protos+=("-no_ssl2 -no_ssl3")
+ tlsvers+=("-tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0303")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("OpenSSL 1.1.0j (Debian)")
+ short+=("openssl_110j")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA")
+ ciphersuites+=("")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030100c2010000be03036468410c4ae36f78a4357ad19fa61353e46aed101eff4e0c9f77ec654dc12eb4000038c02cc030009fcca9cca8ccaac02bc02f009ec024c028006bc023c0270067c00ac0140039c009c0130033009d009c003d003c0035002f00ff0100005d00000013001100000e7465737473736c2e73683a343433000b000403000102000a000a0008001d001700190018002300000016000000170000000d0020001e060106020603050105020503040104020403030103020303020102020203")
+ protos+=("-no_ssl2 -no_ssl3")
+ tlsvers+=("-tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0300")
+ highest_protocol+=("0x0303")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp521r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("OpenSSL 1.1.0l (Debian)")
+ short+=("openssl_110l")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA")
+ ciphersuites+=("")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030100bf010000bb030350a1cc6c1ae6c9726ce0a025f4d2c522e6b503d5ccd2d1740bd1bb2e7af108d5000038c02cc030009fcca9cca8ccaac02bc02f009ec024c028006bc023c0270067c00ac0140039c009c0130033009d009c003d003c0035002f00ff0100005a00000010000e00000b7465737473736c2e6e6574000b000403000102000a000a0008001d001700190018002300000016000000170000000d0020001e060106020603050105020503040104020403030103020303020102020203")
+ protos+=("-no_ssl2 -no_ssl3")
+ tlsvers+=("-tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0303")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp521r1:secp384r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("OpenSSL 1.1.1b (Debian)")
+ short+=("openssl_111b")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA")
+ ciphersuites+=("TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("160301012d010001290303ac67ab7c72eea2e0f68615f02c9e566ed4a3bb0022c2ca1db7615acfb9dedd0120415470391af467e708e8983b134defcb4f4855e774606ae8223265af0fbb802a003e130213031301c02cc030009fcca9cca8ccaac02bc02f009ec024c028006bc023c0270067c00ac0140039c009c0130033009d009c003d003c0035002f00ff010000a200000013001100000e7465737473736c2e73683a343433000b000403000102000a000c000a001d0017001e00190018002300000016000000170000000d002a0028040305030603080708080809080a080b080408050806040105010601030303010302040205020602002b00050403040303002d00020101003300260024001d0020b4556edddf807eb6b6bbcd61e25775a3992dd6f5caeee76d37f8895436efc972")
+ protos+=("-no_ssl2 -no_ssl3")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:x448:secp521r1:secp384r1")
+ requiresSha2+=(true)
+ current+=(false)
+
+ names+=("OpenSSL 1.1.1d (Debian)")
+ short+=("openssl_111d")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA")
+ ciphersuites+=("TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030101290100012503036f18cf85cf24e3676f0e79a3503aa9feefc961e3baed7b00fd876a2c6d2395b3205f4fb8769aa1e5279b848b3f35bec3d7aa9966595d22ebcd35e72f79b9d9fcc9003e130213031301c02cc030009fcca9cca8ccaac02bc02f009ec024c028006bc023c0270067c00ac0140039c009c0130033009d009c003d003c0035002f00ff0100009e0000000f000d00000a7465737473736c2e7368000b000403000102000a000c000a001d0017001e00190018002300000016000000170000000d002a0028040305030603080708080809080a080b080408050806040105010601030303010302040205020602002b00050403040303002d00020101003300260024001d0020a12c2f7e04adcb76ce5eb8b05cf631e7cdf46f5e28cbe86a676d704098507b40")
+ protos+=("-no_ssl2 -no_ssl3")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:x448:secp521r1:secp384r1")
+ requiresSha2+=(true)
+ current+=(true)
+
+ names+=("OpenSSL 3.0.3 (git)")
+ short+=("openssl_303")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA")
+ ciphersuites+=("TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030101370100013303031bd0fe6e109e027d3c6368ac3629f9ecdb499a4a284df7fea7084bcbc8975900206db4bfae530aef2092a0faa3668bc23924b4a333f31eb48c0a55e4e420e9a417003e130213031301c02cc030009fcca9cca8ccaac02bc02f009ec024c028006bc023c0270067c00ac0140039c009c0130033009d009c003d003c0035002f00ff010000ac0000000f000d00000a7465737473736c2e7368000b000403000102000a00160014001d0017001e0019001801000101010201030104002300000016000000170000000d002a0028040305030603080708080809080a080b080408050806040105010601030303010302040205020602002b0009080304030303020301002d00020101003300260024001d00207112b9de757a3a6a8afac74621c945419bbadd8e74f35a5958b2969328b73d4e")
+ protos+=("-no_ssl2 -no_ssl3")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("ANY")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:x448:secp521r1:secp384r1")
+ requiresSha2+=(true)
+ current+=(true)
+
+ names+=("Apple Mail (16.0)")
+ short+=("apple_mail_16_0")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA")
+ ciphersuites+=("")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030100a9010000a50303629610e27d8327bb7869cb85b066cd04b5c5caa9bfb14740edc358ac9dcd843b00002c00ffc02cc02bc024c023c00ac009c008c030c02fc028c027c014c013c012009d009c003d003c0035002f000a0100005000000013001100000e696d61702e676d61696c2e636f6d000a00080006001700180019000b00020100000d00120010040102010501060104030203050306030005000501000000000012000000170000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_2 -tls1_1 -tls1_0")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0303")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP,SMTP,POP,IMAP")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("secp256r1:secp384r1:secp521r1")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Thunderbird (60.6)")
+ short+=("thunderbird_60_6_1")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc03039f5f6a4903cf739091fca37e8f43e6d173ffeb64905977b2dede05e061f3a24c20f958c20b0edd50e0716d108e1d6046178a8974d868c138eac8a6ab8becdf81cd001c130113031302c02bc02fcca9cca8c02cc030c013c014002f0035000a0100019700000013001100000e696d61702e676d61696c2e636f6d00170000ff01000100000a000e000c001d00170018001901000101000b00020100002300000005000501000000000033006b0069001d00200ff08104aea54116caac222c2b7661e05d852847fcfd6860a0ec2f09804bd5330017004104d7afd4ac669de5312ff866d84381723c1d5ff549d409658f9300644d76e33b5c953499a89bdb1fc8930587645bf3452a47fbe6e3f00a59e232c39c269791d871002b0009080304030303020301000d0018001604030503060308040805080604010501060102030201002d00020101001c00024001001500aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP,SMTP,POP,IMAP")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1:secp521r1:ffdhe2048:ffdhe3072")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Thunderbird (68.3)")
+ short+=("thunderbird_68_3_1")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc030342ffc6c8b96ea60586a63fe7d97ec8d5c962b55ccfe02177cd94c8ea42f7333e209c9b6129e250f6fb8127664d26a46c410a6c217d4c2c4dc49125edd7191043810024130113031302c02bc02fcca9cca8c02cc030c00ac009c013c01400330039002f0035000a0100018f00000013001100000e696d61702e676d61696c2e636f6d00170000ff01000100000a000e000c001d00170018001901000101000b00020100002300000005000501000000000033006b0069001d0020fb48d75e98e9e9c7a7aa32106b8856384f9af1e50f9bd45f2ae3dc349858741b00170041047138476a2fbfd6dc6fa4b351b99248abc20bf27ccb962445161036ec3df7bf7566e048374b72d4cbcf4526475a8a13bbaea75e5925514d6db1a4ae60f6a961fd002b0009080304030303020301000d0018001604030503060308040805080604010501060102030201002d00020101001c00024001001500a2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP,SMTP,POP,IMAP")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1:secp521r1:ffdhe2048:ffdhe3072")
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Thunderbird (91.9)")
+ short+=("thunderbird_91_9")
+ ch_ciphers+=("ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc030398fea60c514a1aa7931c86651b3486f0f9caca127093a7b213b8ea135f0a89ad20f2f096a2f33d57fe91ad3398b3e76d5d5620eafc6cffa6586b230d207f8912bf0024130113031302c02bc02fcca9cca8c02cc030c00ac009c013c014009c009d002f0035000a0100018f00000011000f00000c696d61702e676d782e6e657400170000ff01000100000a000e000c001d00170018001901000101000b00020100002300000005000501000000000022000a000804030503060302030033006b0069001d00208a798abebb2289f6cd1d87d0e79b101714dd6d21832c95cc0900c246a74189470017004104e84182d790cbb409acc446aa7b2da35b9d91e5c3ab9a1306f3a737092c06616f9f0373483fa3f41dbbbcfb1c51ecb6994c796787ce2f516fe860905f35dd48db002b00050403040303000d0018001604030503060308040805080604010501060102030201002d00020101001c000240010015009a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2")
+ lowest_protocol+=("0x0303")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP,SMTP,POP,IMAP")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ curves+=("X25519:secp256r1:secp384r1:secp521r1:ffdhe2048:ffdhe3072")
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Safari 12.1 (iOS 12.2)")
+ short+=("safari_121_ios_122")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384")
+ ch_sni+=("$SNI")
+ handshakebytes+=("1603010200010001fc03035695ccca492a68de5adfabb7e70c87b694974ddb17344e9f8d80d51aa64a881d204aca76c4eec10c3b9851b5f02fe71f371d896ba7c9c5a8cd78370b4af27896d60034130313011302c02cc02bc024c023c00ac009cca9c030c02fc028c027c014c013cca8009d009c003d003c0035002fc008c012000a0100017fff0100010000000010000e00000b6369706865726c692e737400170000000d0018001604030804040105030203080508050501080606010201000500050100000000337400000012000000100030002e0268320568322d31360568322d31350568322d313408737064792f332e3106737064792f3308687474702f312e31000b00020100003300260024001d00204090ee7a8be9431345ddcec031c3024ad13d968357e337da3882606afd91405f002d00020101002b0009080304030303020301000a000a0008001d0017001800190015004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029005b002600205d10265edd7f80daa4cb33e036860f0817903b6f7ffeeaf69977cef1170892485c26fc13003130de816ac91ce4c32f5f7beb18209f6d917cb15fe2a0fd624d5500c64a583899aae55a1d64921d86878eccd66004f1b27f")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ curves+=("X25519:secp256r1:secp384r1:secp521r1")
+ minDhBits+=(-1)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Safari 12.1 (macOS 10.13.6)")
+ short+=("safari_121_osx_10136")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA")
+ ciphersuites+=("")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("16030100e3010000df03039c6af5b589ea930473487870a111e2088f4c71c4497310945d571b318f259f47000028c02cc02bc024c023c00ac009cca9c030c02fc028c027c014c013cca8009d009c003d003c0035002f0100008eff0100010000000010000e00000b6369706865726c692e737400170000000d00140012040308040401050308050501080606010201000500050100000000337400000012000000100030002e0268320568322d31360568322d31350568322d313408737064792f332e3106737064792f3308687474702f312e31000b00020100000a000a0008001d001700180019")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0303")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ curves+=("X25519:secp256r1:secp384r1:secp521r1")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ requiresSha2+=(false)
+ current+=(false)
+
+ names+=("Safari 13.0 (macOS 10.14.6)")
+ short+=("safari_130_osx_10146")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc030320ed560be50a8d6545d0409dfc0f6fd560d886fc62a514ee9923c642455fb5832084efe206b1c656b3abab810251eb260834abb7b0ec0d30450e50594c3a7f74120034130313011302c02cc02bc024c023c00ac009cca9c030c02fc028c027c014c013cca8009d009c003d003c0035002fc008c012000a0100017fff0100010000000010000e00000b6369706865726c692e737400170000000d0018001604030804040105030203080508050501080606010201000500050100000000337400000012000000100030002e0268320568322d31360568322d31350568322d313408737064792f332e3106737064792f3308687474702f312e31000b00020100003300260024001d00205465c46a55942e9fe02115c0cc2ab46ee074d4d164222f2ce6510bd91fa18419002d00020101002b0009080304030303020301000a000a0008001d001700180019001500ac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,h2-16,h2-15,h2-14,spdy/3.1,spdy/3,http/1.1")
+ service+=("HTTP")
+ curves+=("X25519:secp256r1:secp384r1:secp521r1")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ requiresSha2+=(false)
+ current+=(true)
+
+ names+=("Safari 15.4 (macOS 12.3.1)")
+ short+=("safari_154_osx_1231")
+ ch_ciphers+=("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA")
+ ciphersuites+=("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256")
+ ch_sni+=("$SNI")
+ warning+=("")
+ handshakebytes+=("1603010200010001fc030345ecc5bc82ce47ee1a3491d46343fc5f36d43856d141c9896c323600b3bf2009203dfd825c6b7164a52872e5041ded637d67094f385b32086eb97d375a5ec6e362002ababa130113021303c02cc02bcca9c030c02fcca8c00ac009c014c013009d009c0035002fc008c012000a01000189dada00000000000f000d00000a7465737473736c2e736800170000ff01000100000a000c000a4a4a001d001700180019000b000201000010000e000c02683208687474702f312e31000500050100000000000d0018001604030804040105030203080508050501080606010201001200000033002b00294a4a000100001d00201911629f64c7dbfaa854871ab7f55545c784c1ef5ea5211c30dee96aaf64b53d002d00020101002b000b0a9a9a0304030303020301001b0003020001caca000100001500c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+ protos+=("-no_ssl3 -no_ssl2")
+ tlsvers+=("-tls1_3 -tls1_2 -tls1_1 -tls1")
+ lowest_protocol+=("0x0301")
+ highest_protocol+=("0x0304")
+ alpn+=("h2,http/1.1")
+ service+=("HTTP")
+ curves+=("X25519:secp256r1:secp384r1:secp521r1")
+ minDhBits+=(1024)
+ maxDhBits+=(-1)
+ minRsaBits+=(-1)
+ maxRsaBits+=(-1)
+ minEcdsaBits+=(-1)
+ requiresSha2+=(false)
+ current+=(true)