From 4f696f94df3fb1279c825f60a2d7b43b3f34774a Mon Sep 17 00:00:00 2001
From: Dirk <dirk@testssl.sh>
Date: Wed, 9 Apr 2025 16:39:05 +0200
Subject: [PATCH] Add openssl 3.0.15 (from Debian)

... and set OpenSSL 3.0.3 (git) as not to list
---
 etc/client-simulation.txt             | 47 +++++++++++++++++++++++++++
 etc/client-simulation.wiresharked.txt | 47 +++++++++++++++++++++++++++
 2 files changed, 94 insertions(+)

diff --git a/etc/client-simulation.txt b/etc/client-simulation.txt
index 0c21f46..9fdae08 100644
--- a/etc/client-simulation.txt
+++ b/etc/client-simulation.txt
@@ -2419,6 +2419,29 @@ names+=("Opera 66 (Win 10)")
      requiresSha2+=(false)
      current+=(false)
 
+     names+=("Safari 18.4 (iOS 18.4)")
+     short+=("safari_184_ios_184")
+     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")
+     handshakebytes+=("1603010200010001fc0303eeadd8d7a16a2094961be3378d634db290ca80a727bbd1b6e9ba8738ff3fad4c20fc75d8ca4ca06f8ff1b6346ea1e212ae68dfd0aef24f7debde69478e64649b2a002a3a3a130113021303c02cc02bcca9c030c02fcca8c00ac009c014c013009d009c0035002fc008c012000a010001891a1a00000000000f000d00000a7465737473736c2e736800170000ff01000100000a000c000a6a6a001d001700180019000b000201000010000e000c02683208687474702f312e31000500050100000000000d001600140403080404010503080508050501080606010201001200000033002b00296a6a000100001d0020fd184de04a7fe5cdfd7317a41c36031805a53c2f45eb8f14634c10efae08db32002d00020101002b000b0ababa0304030303020301001b0003020001fafa000100001500c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+     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)
+     ja3+=("773906b0efdefa24a7f2b8eb6985bf37")
+     ja4+=("t13d2014h2_a09f3c656075_e42f34c56612")
+     current+=(true)
+
      names+=("Safari 10 OS X 10.12")
      short+=("safari_10_osx1012")
      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")
@@ -3062,6 +3085,30 @@ names+=("Opera 66 (Win 10)")
      minEcdsaBits+=(-1)
      curves+=("X25519:secp256r1:x448:secp521r1:secp384r1")
      requiresSha2+=(true)
+     current+=(false)
+
+     names+=("OpenSSL 3.0.15 (Debian)")
+     short+=("openssl_315")
+     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+=("16030101370100013303036f9d8f9a79de979a60dbac5722c4a58be4b20b2342db4eda46c8195e8a217cfe208652a8cbfb13eec33fac6d45b34306d92639d9794222011a84e1a425feb976f3003e130213031301c02cc030009fcca9cca8ccaac02bc02f009ec024c028006bc023c0270067c00ac0140039c009c0130033009d009c003d003c0035002f00ff010000ac0000000f000d00000a7465737473736c2e7368000b000403000102000a00160014001d0017001e0019001801000101010201030104002300000016000000170000000d002a0028040305030603080708080809080a080b080408050806040105010601030303010302040205020602002b0009080304030303020301002d00020101003300260024001d0020324298346f49ce8830d64571f62b45f7a1d133cfbbbcbe4442902418f3539e74")
+     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:ffdhe2048:ffdhe3072:ffdhe4096:ffdhe6144:ffdhe8192")
+     requiresSha2+=(true)
+     ja3+=("a3afc2c46ba4a7d7fbe1cfb7a3031c2f")
+     ja4+=("t13d311000_e8f1e7e78f70_1f22a2ca17c4")
      current+=(true)
 
      names+=("OpenSSL 3.5.0 (git)")
diff --git a/etc/client-simulation.wiresharked.txt b/etc/client-simulation.wiresharked.txt
index fc4ae6f..ee42473 100644
--- a/etc/client-simulation.wiresharked.txt
+++ b/etc/client-simulation.wiresharked.txt
@@ -661,6 +661,30 @@
      minEcdsaBits+=(-1)
      curves+=("X25519:secp256r1:x448:secp521r1:secp384r1")
      requiresSha2+=(true)
+     current+=(false)
+
+     names+=("OpenSSL 3.0.15 (Debian)")
+     short+=("openssl_315")
+     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+=("16030101370100013303036f9d8f9a79de979a60dbac5722c4a58be4b20b2342db4eda46c8195e8a217cfe208652a8cbfb13eec33fac6d45b34306d92639d9794222011a84e1a425feb976f3003e130213031301c02cc030009fcca9cca8ccaac02bc02f009ec024c028006bc023c0270067c00ac0140039c009c0130033009d009c003d003c0035002f00ff010000ac0000000f000d00000a7465737473736c2e7368000b000403000102000a00160014001d0017001e0019001801000101010201030104002300000016000000170000000d002a0028040305030603080708080809080a080b080408050806040105010601030303010302040205020602002b0009080304030303020301002d00020101003300260024001d0020324298346f49ce8830d64571f62b45f7a1d133cfbbbcbe4442902418f3539e74")
+     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:ffdhe2048:ffdhe3072:ffdhe4096:ffdhe6144:ffdhe8192")
+     requiresSha2+=(true)
+     ja3+=("a3afc2c46ba4a7d7fbe1cfb7a3031c2f")
+     ja4+=("t13d311000_e8f1e7e78f70_1f22a2ca17c4")
      current+=(true)
 
      names+=("OpenSSL 3.5.0 (git)")
@@ -794,6 +818,29 @@
      maxRsaBits+=(-1)
      minEcdsaBits+=(-1)
      requiresSha2+=(false)
+     current+=(false)
+
+     names+=("Safari 18.4 (iOS 18.4)")
+     short+=("safari_184_ios_184")
+     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")
+     handshakebytes+=("1603010200010001fc0303eeadd8d7a16a2094961be3378d634db290ca80a727bbd1b6e9ba8738ff3fad4c20fc75d8ca4ca06f8ff1b6346ea1e212ae68dfd0aef24f7debde69478e64649b2a002a3a3a130113021303c02cc02bcca9c030c02fcca8c00ac009c014c013009d009c0035002fc008c012000a010001891a1a00000000000f000d00000a7465737473736c2e736800170000ff01000100000a000c000a6a6a001d001700180019000b000201000010000e000c02683208687474702f312e31000500050100000000000d001600140403080404010503080508050501080606010201001200000033002b00296a6a000100001d0020fd184de04a7fe5cdfd7317a41c36031805a53c2f45eb8f14634c10efae08db32002d00020101002b000b0ababa0304030303020301001b0003020001fafa000100001500c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+     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)
+     ja3+=("773906b0efdefa24a7f2b8eb6985bf37")
+     ja4+=("t13d2014h2_a09f3c656075_e42f34c56612")
      current+=(true)
 
      names+=("Safari 12.1 (macOS 10.13.6)")