Home | History | Annotate | Line # | Download | only in ssl-tests
      1  1.1  christos # -*- mode: perl; -*-
      2  1.1  christos # Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
      3  1.1  christos #
      4  1.1  christos # Licensed under the Apache License 2.0 (the "License").  You may not use
      5  1.1  christos # this file except in compliance with the License.  You can obtain a copy
      6  1.1  christos # in the file LICENSE in the source distribution or at
      7  1.1  christos # https://www.openssl.org/source/license.html
      8  1.1  christos 
      9  1.1  christos 
     10  1.1  christos ## SSL test configurations
     11  1.1  christos 
     12  1.1  christos package ssltests;
     13  1.1  christos 
     14  1.1  christos our @tests = (
     15  1.1  christos 
     16  1.1  christos     # Sanity-check that verification indeed succeeds without the
     17  1.1  christos     # restrictive callback.
     18  1.1  christos     {
     19  1.1  christos         name => "verify-success",
     20  1.1  christos         server => { },
     21  1.1  christos         client => { },
     22  1.1  christos         test   => { "ExpectedResult" => "Success" },
     23  1.1  christos     },
     24  1.1  christos 
     25  1.1  christos     # Same test as above but with a custom callback that always fails.
     26  1.1  christos     {
     27  1.1  christos         name => "verify-custom-reject",
     28  1.1  christos         server => { },
     29  1.1  christos         client => {
     30  1.1  christos             extra => {
     31  1.1  christos                 "VerifyCallback" => "RejectAll",
     32  1.1  christos             },
     33  1.1  christos         },
     34  1.1  christos         test   => {
     35  1.1  christos             "ExpectedResult" => "ClientFail",
     36  1.1  christos             "ExpectedClientAlert" => "HandshakeFailure",
     37  1.1  christos         },
     38  1.1  christos     },
     39  1.1  christos 
     40  1.1  christos     # Same test as above but with a custom callback that always succeeds.
     41  1.1  christos     {
     42  1.1  christos         name => "verify-custom-allow",
     43  1.1  christos         server => { },
     44  1.1  christos         client => {
     45  1.1  christos             extra => {
     46  1.1  christos                 "VerifyCallback" => "AcceptAll",
     47  1.1  christos             },
     48  1.1  christos         },
     49  1.1  christos         test   => {
     50  1.1  christos             "ExpectedResult" => "Success",
     51  1.1  christos         },
     52  1.1  christos     },
     53  1.1  christos 
     54  1.1  christos     # Same test as above but with a custom callback that requests retry once.
     55  1.1  christos     {
     56  1.1  christos         name => "verify-custom-retry",
     57  1.1  christos         server => { },
     58  1.1  christos         client => {
     59  1.1  christos             extra => {
     60  1.1  christos                 "VerifyCallback" => "RetryOnce",
     61  1.1  christos             },
     62  1.1  christos         },
     63  1.1  christos         test   => {
     64  1.1  christos             "ExpectedResult" => "Success",
     65  1.1  christos         },
     66  1.1  christos     },
     67  1.1  christos 
     68  1.1  christos     # Sanity-check that verification indeed succeeds if peer verification
     69  1.1  christos     # is not requested.
     70  1.1  christos     {
     71  1.1  christos         name => "noverify-success",
     72  1.1  christos         server => { },
     73  1.1  christos         client => {
     74  1.1  christos             "VerifyMode" => undef,
     75  1.1  christos             "VerifyCAFile" => undef,
     76  1.1  christos         },
     77  1.1  christos         test   => { "ExpectedResult" => "Success" },
     78  1.1  christos     },
     79  1.1  christos 
     80  1.1  christos     # Same test as above but with a custom callback that always fails.
     81  1.1  christos     # The callback return has no impact on handshake success in this mode.
     82  1.1  christos     {
     83  1.1  christos         name => "noverify-ignore-custom-reject",
     84  1.1  christos         server => { },
     85  1.1  christos         client => {
     86  1.1  christos             "VerifyMode" => undef,
     87  1.1  christos             "VerifyCAFile" => undef,
     88  1.1  christos             extra => {
     89  1.1  christos                 "VerifyCallback" => "RejectAll",
     90  1.1  christos             },
     91  1.1  christos         },
     92  1.1  christos         test   => {
     93  1.1  christos             "ExpectedResult" => "Success",
     94  1.1  christos         },
     95  1.1  christos     },
     96  1.1  christos 
     97  1.1  christos     # Same test as above but with a custom callback that always succeeds.
     98  1.1  christos     # The callback return has no impact on handshake success in this mode.
     99  1.1  christos     {
    100  1.1  christos         name => "noverify-accept-custom-allow",
    101  1.1  christos         server => { },
    102  1.1  christos         client => {
    103  1.1  christos             "VerifyMode" => undef,
    104  1.1  christos             "VerifyCAFile" => undef,
    105  1.1  christos             extra => {
    106  1.1  christos                 "VerifyCallback" => "AcceptAll",
    107  1.1  christos             },
    108  1.1  christos         },
    109  1.1  christos         test   => {
    110  1.1  christos             "ExpectedResult" => "Success",
    111  1.1  christos         },
    112  1.1  christos     },
    113  1.1  christos 
    114  1.1  christos     # Sanity-check that verification indeed fails without the
    115  1.1  christos     # permissive callback.
    116  1.1  christos     {
    117  1.1  christos         name => "verify-fail-no-root",
    118  1.1  christos         server => { },
    119  1.1  christos         client => {
    120  1.1  christos             # Don't set up the client root file.
    121  1.1  christos             "VerifyCAFile" => undef,
    122  1.1  christos         },
    123  1.1  christos         test   => {
    124  1.1  christos           "ExpectedResult" => "ClientFail",
    125  1.1  christos           "ExpectedClientAlert" => "UnknownCA",
    126  1.1  christos         },
    127  1.1  christos     },
    128  1.1  christos 
    129  1.1  christos     # Same test as above but with a custom callback that always succeeds.
    130  1.1  christos     {
    131  1.1  christos         name => "verify-custom-success-no-root",
    132  1.1  christos         server => { },
    133  1.1  christos         client => {
    134  1.1  christos             "VerifyCAFile" => undef,
    135  1.1  christos             extra => {
    136  1.1  christos                 "VerifyCallback" => "AcceptAll",
    137  1.1  christos             },
    138  1.1  christos         },
    139  1.1  christos         test   => {
    140  1.1  christos             "ExpectedResult" => "Success"
    141  1.1  christos         },
    142  1.1  christos     },
    143  1.1  christos 
    144  1.1  christos     # Same test as above but with a custom callback that always fails.
    145  1.1  christos     {
    146  1.1  christos         name => "verify-custom-fail-no-root",
    147  1.1  christos         server => { },
    148  1.1  christos         client => {
    149  1.1  christos             "VerifyCAFile" => undef,
    150  1.1  christos             extra => {
    151  1.1  christos                 "VerifyCallback" => "RejectAll",
    152  1.1  christos             },
    153  1.1  christos         },
    154  1.1  christos         test   => {
    155  1.1  christos             "ExpectedResult" => "ClientFail",
    156  1.1  christos             "ExpectedClientAlert" => "HandshakeFailure",
    157  1.1  christos         },
    158  1.1  christos     },
    159  1.1  christos );
    160