quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

test_suite_ssl.tls-defrag.data (19457B)


      1 # (Minimal) ClientHello breakdown:
      2 # 160303rlrl - record header, 2-byte record contents len
      3 # 01hlhlhl - handshake header, 3-byte handshake message len
      4 # 0303 - protocol version: 1.2
      5 # 0123456789abcdef (repeated, 4 times total) - 32-byte "random"
      6 # 00 - session ID (empty)
      7 # 0002cvcv - ciphersuite list: 2-byte len + list of 2-byte values (see below)
      8 # 0100 - compression methods: 1-byte len then "null" (only legal value now)
      9 # [then end, or extensions, see notes below]
     10 # elel - 2-byte extensions length
     11 # ...
     12 # 000a - elliptic_curves aka supported_groups
     13 # 0004 - extension length
     14 # 0002 - length of named_curve_list / named_group_list
     15 # 0017 - secp256r1 aka NIST P-256
     16 # ...
     17 # 002b - supported version (for TLS 1.3)
     18 # 0003 - extension length
     19 # 02   - length of versions
     20 # 0304 - TLS 1.3 ("SSL 3.4")
     21 # ...
     22 # 000d - signature algorithms
     23 # 0004 - extension length
     24 # 0002 - SignatureSchemeList length
     25 # 0403 - ecdsa_secp256r1_sha256
     26 # ...
     27 # 0033 - key share
     28 # 0002 - extension length
     29 # 0000 - length of client_shares (empty is valid)
     30 #
     31 # Note: currently our TLS "1.3 or 1.2" code requires extension length to be
     32 # present even it it's 0. This is not strictly compliant but doesn't matter
     33 # much in practice as these days everyone wants to use signature_algorithms
     34 # (for hashes better than SHA-1), secure_renego (even if you have renego
     35 # disabled), and most people want either ECC or PSK related extensions.
     36 # See https://github.com/Mbed-TLS/mbedtls/issues/9963
     37 #
     38 # Also, currently we won't negotiate ECC ciphersuites unless at least the
     39 # supported_groups extension is present, see
     40 # https://github.com/Mbed-TLS/mbedtls/issues/7458
     41 #
     42 # For TLS 1.3 with ephemeral key exchange, mandatory extensions are:
     43 # - supported versions (as for all of TLS 1.3)
     44 # - supported groups
     45 # - key share
     46 # - signature algorithms
     47 # (see ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange()).
     48 #
     49 # Note: cccc is currently not assigned, so can be used get a consistent
     50 # "no matching ciphersuite" behaviour regardless of the configuration.
     51 # c02b is MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (1.2)
     52 # 1301 is MBEDTLS_TLS1_3_AES_128_GCM_SHA256 (1.3)
     53 
     54 # See "ClientHello breakdown" above
     55 # MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 with secp256r1
     56 Inject ClientHello - TLS 1.2 good (for reference)
     57 depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_MD_CAN_SHA1
     58 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"16030300370100003303030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef000002c02b01000008000a000400020017":"<= parse client hello":0
     59 
     60 # See "ClientHello breakdown" above
     61 # Same as the above test with s/c02b/cccc/ as the ciphersuite
     62 Inject ClientHello - TLS 1.2 unknown ciphersuite (for reference)
     63 depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_MD_CAN_SHA1
     64 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303002f0100002b03030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef000002cccc01000000":"got no ciphersuites in common":MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE
     65 
     66 # See "ClientHello breakdown" above
     67 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
     68 Inject ClientHello - TLS 1.3 good (for reference)
     69 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
     70 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303004c0100004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"key exchange mode\: ephemeral":0
     71 
     72 # See "ClientHello breakdown" above
     73 # Same as the above test with s/1301/cccc/ as the ciphersuite
     74 Inject ClientHello - TLS 1.3 unknown ciphersuite (for reference)
     75 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
     76 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303004c0100004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef000002cccc0100001d000a000400020017002b0003020304000d000400020403003300020000":"No matched ciphersuite":MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE
     77 
     78 # See "ClientHello breakdown" above
     79 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
     80 # The purpose of this test case is to ensure nothing bad happens when the
     81 # connection is closed while we're waiting for more fragments.
     82 Inject ClientHello - TLS 1.3 4 + 71 then EOF (missing 1 byte)
     83 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
     84 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303000401000048160303004703030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d0004000204030033000200":"waiting for more handshake fragments":MBEDTLS_ERR_SSL_WANT_READ
     85 
     86 # See "ClientHello breakdown" above
     87 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
     88 # The purpose of this test case is to ensure nothing bad happens when the
     89 # connection is closed while we're waiting for more fragments.
     90 Inject ClientHello - TLS 1.3 4 then EOF (missing 72 bytes)
     91 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
     92 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303000401000048":"waiting for more handshake fragments":MBEDTLS_ERR_SSL_WANT_READ
     93 
     94 # See "ClientHello breakdown" above
     95 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
     96 Inject ClientHello - TLS 1.3 fragmented 4 + 72 OK
     97 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
     98 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303000401000048160303004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"key exchange mode\: ephemeral":0
     99 
    100 # See "ClientHello breakdown" above
    101 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    102 Inject ClientHello - TLS 1.3 fragmented 3 + 73 rejected
    103 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    104 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303000301000016030300494803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"handshake message too short":MBEDTLS_ERR_SSL_INVALID_RECORD
    105 
    106 # See "ClientHello breakdown" above
    107 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    108 Inject ClientHello - TLS 1.3 fragmented 2 + 74 rejected
    109 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    110 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"16030300020100160303004a004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"handshake message too short":MBEDTLS_ERR_SSL_INVALID_RECORD
    111 
    112 # See "ClientHello breakdown" above
    113 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    114 Inject ClientHello - TLS 1.3 fragmented 1 + 75 rejected
    115 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    116 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303000101160303004b00004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"handshake message too short":MBEDTLS_ERR_SSL_INVALID_RECORD
    117 
    118 # See "ClientHello breakdown" above
    119 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    120 Inject ClientHello - TLS 1.3 fragmented 0 + 76 rejected
    121 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    122 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"1603030000160303004c0100004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"ssl_get_next_record() returned":MBEDTLS_ERR_SSL_INVALID_RECORD
    123 
    124 # See "ClientHello breakdown" above
    125 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    126 Inject ClientHello - TLS 1.3 fragmented 72 + 4 OK
    127 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    128 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"16030300480100004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d0004000204030033160303000400020000":"key exchange mode\: ephemeral":0
    129 
    130 # See "ClientHello breakdown" above
    131 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    132 Inject ClientHello - TLS 1.3 fragmented 73 + 3 OK
    133 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    134 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"16030300490100004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d0004000204030033001603030003020000":"key exchange mode\: ephemeral":0
    135 
    136 # See "ClientHello breakdown" above
    137 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    138 Inject ClientHello - TLS 1.3 fragmented 74 + 2 OK
    139 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    140 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303004a0100004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d0004000204030033000216030300020000":"key exchange mode\: ephemeral":0
    141 
    142 # See "ClientHello breakdown" above
    143 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    144 Inject ClientHello - TLS 1.3 fragmented 73 + 1 OK
    145 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    146 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303004b0100004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d0004000204030033000200160303000100":"key exchange mode\: ephemeral":0
    147 
    148 # See "ClientHello breakdown" above
    149 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    150 Inject ClientHello - TLS 1.3 fragmented 4 + appdata + 72 rejected
    151 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    152 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"16030300040100004817030300020102160303004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"non-handshake message in the middle of a fragmented handshake message":MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE
    153 
    154 # See "ClientHello breakdown" above
    155 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    156 Inject ClientHello - TLS 1.3 fragmented 4 + alert(warn) + 72 rejected
    157 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    158 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"1603030004010000481503030002015a160303004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"non-handshake message in the middle of a fragmented handshake message":MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE
    159 
    160 # See "ClientHello breakdown" above
    161 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    162 Inject ClientHello - TLS 1.3 fragmented 4 + alert(fatal) + 72 rejected
    163 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    164 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"1603030004010000481503030002025a160303004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"non-handshake message in the middle of a fragmented handshake message":MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE
    165 
    166 # See "ClientHello breakdown" above
    167 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    168 Inject ClientHello - TLS 1.3 fragmented 4 + CCS + 72 rejected
    169 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    170 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"160303000401000048140303000101160303004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"non-handshake message in the middle of a fragmented handshake message":MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE
    171 
    172 # See "ClientHello breakdown" above
    173 # ephemeral with secp256r1 + MBEDTLS_TLS1_3_AES_128_GCM_SHA256
    174 Inject ClientHello - TLS 1.3 fragmented 4 + invalid type + 72 rejected
    175 depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED:MBEDTLS_SSL_HAVE_AES:MBEDTLS_MD_CAN_SHA256:MBEDTLS_SSL_HAVE_GCM:MBEDTLS_ECP_HAVE_SECP256R1:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_PK_CAN_ECDSA_SIGN:MBEDTLS_PK_CAN_ECDSA_VERIFY
    176 inject_client_content_on_the_wire:MBEDTLS_PK_ECDSA:MBEDTLS_SSL_CLIENT_HELLO:"1603030004010000481003030002015a160303004803030123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef00000213010100001d000a000400020017002b0003020304000d000400020403003300020000":"unknown record type":MBEDTLS_ERR_SSL_INVALID_RECORD
    177 
    178 # The buffer is actually larger than IN_CONTENT_LEN as we leave room for
    179 # record protection overhead (IV, MAC/tag, padding (up to 256 bytes)), CID...
    180 # The maximum size for an unencrypted (and without CID which is DTLS only)
    181 # handshake message we can hold in the buffer is
    182 #   MBEDTLS_SSL_IN_BUFFER_LEN - MBEDTLS_SSL_HEADER_LEN - 4
    183 # (the 4 is for the handshake header).
    184 # However, due to overhead, fragmented messages need to be 5 bytes shorter in
    185 # order to actually fit (leave room for an extra record header).
    186 Send large fragmented ClientHello: reassembled 1 byte larger than the buffer
    187 send_large_fragmented_hello:MBEDTLS_SSL_IN_BUFFER_LEN - MBEDTLS_SSL_HEADER_LEN - 3:0:"requesting more data than fits":MBEDTLS_ERR_SSL_BAD_INPUT_DATA
    188 
    189 Send large fragmented ClientHello: would just fit except for overhead
    190 send_large_fragmented_hello:MBEDTLS_SSL_IN_BUFFER_LEN - MBEDTLS_SSL_HEADER_LEN - 4:0:"requesting more data than fits":MBEDTLS_ERR_SSL_BAD_INPUT_DATA
    191 
    192 Send large fragmented ClientHello: would fit except for overhead (1)
    193 send_large_fragmented_hello:MBEDTLS_SSL_IN_BUFFER_LEN - MBEDTLS_SSL_HEADER_LEN - 5:0:"requesting more data than fits":MBEDTLS_ERR_SSL_BAD_INPUT_DATA
    194 
    195 Send large fragmented ClientHello: would fit except for overhead (2)
    196 send_large_fragmented_hello:MBEDTLS_SSL_IN_BUFFER_LEN - MBEDTLS_SSL_HEADER_LEN - 6:0:"requesting more data than fits":MBEDTLS_ERR_SSL_BAD_INPUT_DATA
    197 
    198 Send large fragmented ClientHello: would fit except for overhead (3)
    199 send_large_fragmented_hello:MBEDTLS_SSL_IN_BUFFER_LEN - MBEDTLS_SSL_HEADER_LEN - 7:0:"requesting more data than fits":MBEDTLS_ERR_SSL_BAD_INPUT_DATA
    200 
    201 Send large fragmented ClientHello: would fit except for overhead (4)
    202 send_large_fragmented_hello:MBEDTLS_SSL_IN_BUFFER_LEN - MBEDTLS_SSL_HEADER_LEN - 8:0:"requesting more data than fits":MBEDTLS_ERR_SSL_BAD_INPUT_DATA
    203 
    204 # Since we're sending dummy contents (all 0x2a) for the ClientHello,
    205 # the first thing that's going to fail is the version check. The fact that we
    206 # got around to checking it confirms reassembly completed sucessfully.
    207 Send large fragmented ClientHello: just fits
    208 send_large_fragmented_hello:MBEDTLS_SSL_IN_BUFFER_LEN - MBEDTLS_SSL_HEADER_LEN - 9:0:"Unsupported version of TLS":MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION
    209 
    210 # We're generating a virtual record header for the reassembled HS message,
    211 # which requires that the length fits in two bytes. Of course we won't get
    212 # there because if the length doesn't fit in two bytes then the message won't
    213 # fit in the buffer, but still add a test just in case.
    214 Send large fragmented ClientHello: length doesn't fit in two bytes
    215 send_large_fragmented_hello:0x10000:0:"requesting more data than fits":MBEDTLS_ERR_SSL_BAD_INPUT_DATA