quickjs-tart

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

sample.sh (12938B)


      1 # Test that SSL sample programs can interoperate with each other
      2 # and with OpenSSL and GnuTLS.
      3 
      4 # Copyright The Mbed TLS Contributors
      5 # SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
      6 
      7 : ${PROGRAMS_DIR:=../programs/ssl}
      8 
      9 run_test    "Sample: ssl_client1, ssl_server2" \
     10             -P 4433 \
     11             "$PROGRAMS_DIR/ssl_server2" \
     12             "$PROGRAMS_DIR/ssl_client1" \
     13             0 \
     14             -s "[1-9][0-9]* bytes read" \
     15             -s "[1-9][0-9]* bytes written" \
     16             -c "[1-9][0-9]* bytes read" \
     17             -c "[1-9][0-9]* bytes written" \
     18             -S "error" \
     19             -C "error"
     20 
     21 requires_protocol_version tls12
     22 run_test    "Sample: ssl_client1, openssl server, TLS 1.2" \
     23             -P 4433 \
     24             "$O_SRV -tls1_2" \
     25             "$PROGRAMS_DIR/ssl_client1" \
     26             0 \
     27             -c "Protocol.*TLSv1.2" \
     28             -S "ERROR" \
     29             -C "error"
     30 
     31 requires_protocol_version tls12
     32 run_test    "Sample: ssl_client1, gnutls server, TLS 1.2" \
     33             -P 4433 \
     34             "$G_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2" \
     35             "$PROGRAMS_DIR/ssl_client1" \
     36             0 \
     37             -s "Version: TLS1.2" \
     38             -c "<TD>Protocol version:</TD><TD>TLS1.2</TD>" \
     39             -S "Error" \
     40             -C "error"
     41 
     42 requires_protocol_version tls13
     43 requires_openssl_tls1_3
     44 run_test    "Sample: ssl_client1, openssl server, TLS 1.3" \
     45             -P 4433 \
     46             "$O_NEXT_SRV -tls1_3" \
     47             "$PROGRAMS_DIR/ssl_client1" \
     48             0 \
     49             -c "New, TLSv1.3, Cipher is" \
     50             -S "ERROR" \
     51             -C "error"
     52 
     53 requires_protocol_version tls13
     54 requires_gnutls_tls1_3
     55 run_test    "Sample: ssl_client1, gnutls server, TLS 1.3" \
     56             -P 4433 \
     57             "$G_NEXT_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3" \
     58             "$PROGRAMS_DIR/ssl_client1" \
     59             0 \
     60             -s "Version: TLS1.3" \
     61             -c "<TD>Protocol version:</TD><TD>TLS1.3</TD>" \
     62             -S "Error" \
     63             -C "error"
     64 
     65 # The server complains of extra data after it closes the connection
     66 # because the client keeps sending data, so the server receives
     67 # more application data when it expects a new handshake. We consider
     68 # the test a success if both sides have sent and received application
     69 # data, no matter what happens afterwards.
     70 run_test    "Sample: dtls_client, ssl_server2" \
     71             -P 4433 \
     72             "$PROGRAMS_DIR/ssl_server2 dtls=1 server_addr=localhost" \
     73             "$PROGRAMS_DIR/dtls_client" \
     74             0 \
     75             -s "[1-9][0-9]* bytes read" \
     76             -s "[1-9][0-9]* bytes written" \
     77             -c "[1-9][0-9]* bytes read" \
     78             -c "[1-9][0-9]* bytes written" \
     79             -C "error"
     80 
     81 # The dtls_client program connects to localhost. This test case fails on
     82 # systems where the name "localhost" resolves to an IPv6 address, but
     83 # the IPv6 connection is not possible. Possible reasons include:
     84 # * OpenSSL is too old (IPv6 support was added in 1.1.0).
     85 # * OpenSSL was built without IPv6 support.
     86 # * A firewall blocks IPv6.
     87 #
     88 # To facilitate working with this test case, have it run with $OPENSSL_NEXT
     89 # which is at least 1.1.1a. At the time it was introduced, this test case
     90 # passed with OpenSSL 1.0.2g on an environment where IPv6 is disabled.
     91 requires_protocol_version dtls12
     92 run_test    "Sample: dtls_client, openssl server, DTLS 1.2" \
     93             -P 4433 \
     94             "$O_NEXT_SRV -dtls1_2" \
     95             "$PROGRAMS_DIR/dtls_client" \
     96             0 \
     97             -s "Echo this" \
     98             -c "Echo this" \
     99             -c "[1-9][0-9]* bytes written" \
    100             -c "[1-9][0-9]* bytes read" \
    101             -S "ERROR" \
    102             -C "error"
    103 
    104 requires_protocol_version dtls12
    105 run_test    "Sample: dtls_client, gnutls server, DTLS 1.2" \
    106             -P 4433 \
    107             "$G_SRV -u --echo --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2" \
    108             "$PROGRAMS_DIR/dtls_client" \
    109             0 \
    110             -s "Server listening" \
    111             -s "[1-9][0-9]* bytes command:" \
    112             -c "Echo this" \
    113             -c "[1-9][0-9]* bytes written" \
    114             -c "[1-9][0-9]* bytes read" \
    115             -S "Error" \
    116             -C "error"
    117 
    118 run_test    "Sample: ssl_server, ssl_client2" \
    119             -P 4433 \
    120             "$PROGRAMS_DIR/ssl_server" \
    121             "$PROGRAMS_DIR/ssl_client2" \
    122             0 \
    123             -s "[1-9][0-9]* bytes read" \
    124             -s "[1-9][0-9]* bytes written" \
    125             -c "[1-9][0-9]* bytes read" \
    126             -c "[1-9][0-9]* bytes written" \
    127             -S "error" \
    128             -C "error"
    129 
    130 run_test    "Sample: ssl_client1 with ssl_server" \
    131             -P 4433 \
    132             "$PROGRAMS_DIR/ssl_server" \
    133             "$PROGRAMS_DIR/ssl_client1" \
    134             0 \
    135             -s "[1-9][0-9]* bytes read" \
    136             -s "[1-9][0-9]* bytes written" \
    137             -c "[1-9][0-9]* bytes read" \
    138             -c "[1-9][0-9]* bytes written" \
    139             -S "error" \
    140             -C "error"
    141 
    142 requires_protocol_version tls12
    143 run_test    "Sample: ssl_server, openssl client, TLS 1.2" \
    144             -P 4433 \
    145             "$PROGRAMS_DIR/ssl_server" \
    146             "$O_CLI -tls1_2" \
    147             0 \
    148             -s "Successful connection using: TLS-" \
    149             -c "Protocol.*TLSv1.2" \
    150             -S "error" \
    151             -C "ERROR"
    152 
    153 requires_protocol_version tls12
    154 run_test    "Sample: ssl_server, gnutls client, TLS 1.2" \
    155             -P 4433 \
    156             "$PROGRAMS_DIR/ssl_server" \
    157             "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
    158             0 \
    159             -s "Successful connection using: TLS-" \
    160             -c "Description:.*TLS1.2" \
    161             -S "error" \
    162             -C "ERROR"
    163 
    164 requires_protocol_version tls13
    165 requires_openssl_tls1_3
    166 run_test    "Sample: ssl_server, openssl client, TLS 1.3" \
    167             -P 4433 \
    168             "$PROGRAMS_DIR/ssl_server" \
    169             "$O_NEXT_CLI -tls1_3" \
    170             0 \
    171             -s "Successful connection using: TLS1-3-" \
    172             -c "New, TLSv1.3, Cipher is" \
    173             -S "error" \
    174             -C "ERROR"
    175 
    176 requires_protocol_version tls13
    177 requires_gnutls_tls1_3
    178 run_test    "Sample: ssl_server, gnutls client, TLS 1.3" \
    179             -P 4433 \
    180             "$PROGRAMS_DIR/ssl_server" \
    181             "$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \
    182             0 \
    183             -s "Successful connection using: TLS1-3-" \
    184             -c "Description:.*TLS1.3" \
    185             -S "error" \
    186             -C "ERROR"
    187 
    188 run_test    "Sample: ssl_fork_server, ssl_client2" \
    189             -P 4433 \
    190             "$PROGRAMS_DIR/ssl_fork_server" \
    191             "$PROGRAMS_DIR/ssl_client2" \
    192             0 \
    193             -s "[1-9][0-9]* bytes read" \
    194             -s "[1-9][0-9]* bytes written" \
    195             -c "[1-9][0-9]* bytes read" \
    196             -c "[1-9][0-9]* bytes written" \
    197             -S "error" \
    198             -C "error"
    199 
    200 run_test    "Sample: ssl_client1 with ssl_fork_server" \
    201             -P 4433 \
    202             "$PROGRAMS_DIR/ssl_fork_server" \
    203             "$PROGRAMS_DIR/ssl_client1" \
    204             0 \
    205             -s "[1-9][0-9]* bytes read" \
    206             -s "[1-9][0-9]* bytes written" \
    207             -c "[1-9][0-9]* bytes read" \
    208             -c "[1-9][0-9]* bytes written" \
    209             -S "error" \
    210             -C "error"
    211 
    212 requires_protocol_version tls12
    213 run_test    "Sample: ssl_fork_server, openssl client, TLS 1.2" \
    214             -P 4433 \
    215             "$PROGRAMS_DIR/ssl_fork_server" \
    216             "$O_CLI -tls1_2" \
    217             0 \
    218             -s "Successful connection using: TLS-" \
    219             -c "Protocol.*TLSv1.2" \
    220             -S "error" \
    221             -C "ERROR"
    222 
    223 requires_protocol_version tls12
    224 run_test    "Sample: ssl_fork_server, gnutls client, TLS 1.2" \
    225             -P 4433 \
    226             "$PROGRAMS_DIR/ssl_fork_server" \
    227             "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
    228             0 \
    229             -s "Successful connection using: TLS-" \
    230             -c "Description:.*TLS1.2" \
    231             -S "error" \
    232             -C "ERROR"
    233 
    234 requires_protocol_version tls13
    235 requires_openssl_tls1_3
    236 run_test    "Sample: ssl_fork_server, openssl client, TLS 1.3" \
    237             -P 4433 \
    238             "$PROGRAMS_DIR/ssl_fork_server" \
    239             "$O_NEXT_CLI -tls1_3" \
    240             0 \
    241             -s "Successful connection using: TLS1-3-" \
    242             -c "New, TLSv1.3, Cipher is" \
    243             -S "error" \
    244             -C "ERROR"
    245 
    246 requires_protocol_version tls13
    247 requires_gnutls_tls1_3
    248 run_test    "Sample: ssl_fork_server, gnutls client, TLS 1.3" \
    249             -P 4433 \
    250             "$PROGRAMS_DIR/ssl_fork_server" \
    251             "$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \
    252             0 \
    253             -s "Successful connection using: TLS1-3-" \
    254             -c "Description:.*TLS1.3" \
    255             -S "error" \
    256             -C "ERROR"
    257 
    258 run_test    "Sample: ssl_pthread_server, ssl_client2" \
    259             -P 4433 \
    260             "$PROGRAMS_DIR/ssl_pthread_server" \
    261             "$PROGRAMS_DIR/ssl_client2" \
    262             0 \
    263             -s "[1-9][0-9]* bytes read" \
    264             -s "[1-9][0-9]* bytes written" \
    265             -c "[1-9][0-9]* bytes read" \
    266             -c "[1-9][0-9]* bytes written" \
    267             -S "error" \
    268             -C "error"
    269 
    270 run_test    "Sample: ssl_client1 with ssl_pthread_server" \
    271             -P 4433 \
    272             "$PROGRAMS_DIR/ssl_pthread_server" \
    273             "$PROGRAMS_DIR/ssl_client1" \
    274             0 \
    275             -s "[1-9][0-9]* bytes read" \
    276             -s "[1-9][0-9]* bytes written" \
    277             -c "[1-9][0-9]* bytes read" \
    278             -c "[1-9][0-9]* bytes written" \
    279             -S "error" \
    280             -C "error"
    281 
    282 requires_protocol_version tls12
    283 run_test    "Sample: ssl_pthread_server, openssl client, TLS 1.2" \
    284             -P 4433 \
    285             "$PROGRAMS_DIR/ssl_pthread_server" \
    286             "$O_CLI -tls1_2" \
    287             0 \
    288             -s "Successful connection using: TLS-" \
    289             -c "Protocol.*TLSv1.2" \
    290             -S "error" \
    291             -C "ERROR"
    292 
    293 requires_protocol_version tls12
    294 run_test    "Sample: ssl_pthread_server, gnutls client, TLS 1.2" \
    295             -P 4433 \
    296             "$PROGRAMS_DIR/ssl_pthread_server" \
    297             "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
    298             0 \
    299             -s "Successful connection using: TLS-" \
    300             -c "Description:.*TLS1.2" \
    301             -S "error" \
    302             -C "ERROR"
    303 
    304 requires_protocol_version tls13
    305 requires_openssl_tls1_3
    306 run_test    "Sample: ssl_pthread_server, openssl client, TLS 1.3" \
    307             -P 4433 \
    308             "$PROGRAMS_DIR/ssl_pthread_server" \
    309             "$O_NEXT_CLI -tls1_3" \
    310             0 \
    311             -s "Successful connection using: TLS1-3-" \
    312             -c "New, TLSv1.3, Cipher is" \
    313             -S "error" \
    314             -C "ERROR"
    315 
    316 requires_protocol_version tls13
    317 requires_gnutls_tls1_3
    318 run_test    "Sample: ssl_pthread_server, gnutls client, TLS 1.3" \
    319             -P 4433 \
    320             "$PROGRAMS_DIR/ssl_pthread_server" \
    321             "$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \
    322             0 \
    323             -s "Successful connection using: TLS1-3-" \
    324             -c "Description:.*TLS1.3" \
    325             -S "error" \
    326             -C "ERROR"
    327 
    328 run_test    "Sample: dtls_client with dtls_server" \
    329             -P 4433 \
    330             "$PROGRAMS_DIR/dtls_server" \
    331             "$PROGRAMS_DIR/dtls_client" \
    332             0 \
    333             -s "[1-9][0-9]* bytes read" \
    334             -s "[1-9][0-9]* bytes written" \
    335             -c "[1-9][0-9]* bytes read" \
    336             -c "[1-9][0-9]* bytes written" \
    337             -S "error" \
    338             -C "error"
    339 
    340 run_test    "Sample: ssl_client2, dtls_server" \
    341             -P 4433 \
    342             "$PROGRAMS_DIR/dtls_server" \
    343             "$PROGRAMS_DIR/ssl_client2 dtls=1" \
    344             0 \
    345             -s "[1-9][0-9]* bytes read" \
    346             -s "[1-9][0-9]* bytes written" \
    347             -c "[1-9][0-9]* bytes read" \
    348             -c "[1-9][0-9]* bytes written" \
    349             -S "error" \
    350             -C "error"
    351 
    352 requires_protocol_version dtls12
    353 run_test    "Sample: dtls_server, openssl client, DTLS 1.2" \
    354             -P 4433 \
    355             "$PROGRAMS_DIR/dtls_server" \
    356             "$O_CLI -dtls1_2" \
    357             0 \
    358             -s "[1-9][0-9]* bytes read" \
    359             -s "[1-9][0-9]* bytes written" \
    360             -c "Protocol.*TLSv1.2" \
    361             -S "error" \
    362             -C "ERROR"
    363 
    364 requires_protocol_version dtls12
    365 run_test    "Sample: dtls_server, gnutls client, DTLS 1.2" \
    366             -P 4433 \
    367             "$PROGRAMS_DIR/dtls_server" \
    368             "$G_CLI -u --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
    369             0 \
    370             -s "[1-9][0-9]* bytes read" \
    371             -s "[1-9][0-9]* bytes written" \
    372             -c "Description:.*DTLS1.2" \
    373             -S "error" \
    374             -C "ERROR"