summaryrefslogtreecommitdiff
path: root/src/regress/lib/libssl/handshake/valid_handshakes_terminate.c
diff options
context:
space:
mode:
authortb <>2019-01-20 06:47:38 +0000
committertb <>2019-01-20 06:47:38 +0000
commitf29bd5bc9ace612445a36458f6162c4f61f86b68 (patch)
tree11fe0191a80c3c411451601fbc47b83f5a4d8976 /src/regress/lib/libssl/handshake/valid_handshakes_terminate.c
parent286245a37ad22098035305429d59dd2ba6959084 (diff)
downloadopenbsd-f29bd5bc9ace612445a36458f6162c4f61f86b68.tar.gz
openbsd-f29bd5bc9ace612445a36458f6162c4f61f86b68.tar.bz2
openbsd-f29bd5bc9ace612445a36458f6162c4f61f86b68.zip
Add a simple test that verifies that every valid handshake
sets action->handshake_complete.
Diffstat (limited to 'src/regress/lib/libssl/handshake/valid_handshakes_terminate.c')
-rw-r--r--src/regress/lib/libssl/handshake/valid_handshakes_terminate.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/regress/lib/libssl/handshake/valid_handshakes_terminate.c b/src/regress/lib/libssl/handshake/valid_handshakes_terminate.c
new file mode 100644
index 0000000000..df87087644
--- /dev/null
+++ b/src/regress/lib/libssl/handshake/valid_handshakes_terminate.c
@@ -0,0 +1,56 @@
1/* $OpenBSD: valid_handshakes_terminate.c,v 1.1 2019/01/20 06:47:38 tb Exp $ */
2/*
3 * Copyright (c) 2019 Theo Buehler <tb@openbsd.org>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#include <err.h>
19#include <stdio.h>
20
21#include "tls13_handshake.c"
22
23int
24main(int argc, char *argv[])
25{
26 size_t i, j;
27 int terminates;
28 int fail = 0;
29
30 for (i = 1; i < NUM_HANDSHAKES; i++) {
31 enum tls13_message_type mt = handshakes[i][0];
32
33 if (mt == INVALID)
34 continue;
35 terminates = 0;
36
37 for (j = 0; j < TLS13_NUM_MESSAGE_TYPES; j++) {
38 mt = handshakes[i][j];
39 if (state_machine[mt].handshake_complete) {
40 terminates = 1;
41 break;
42 }
43 }
44
45 if (!terminates) {
46 fail = 1;
47 printf("FAIL: handshake_complete never true in "
48 "handshake %zu\n", i);
49 }
50 }
51
52 if (!fail)
53 printf("SUCCESS\n");
54
55 return fail;
56}