summaryrefslogtreecommitdiff
path: root/src/regress/lib/libssl/interop/netcat/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/regress/lib/libssl/interop/netcat/Makefile')
-rw-r--r--src/regress/lib/libssl/interop/netcat/Makefile89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/regress/lib/libssl/interop/netcat/Makefile b/src/regress/lib/libssl/interop/netcat/Makefile
new file mode 100644
index 0000000000..def90c1ffb
--- /dev/null
+++ b/src/regress/lib/libssl/interop/netcat/Makefile
@@ -0,0 +1,89 @@
1# $OpenBSD: Makefile,v 1.1 2018/11/11 00:15:04 bluhm Exp $
2
3LIBRARIES = libressl
4.if exists(/usr/local/bin/eopenssl)
5LIBRARIES += openssl
6.endif
7.if exists(/usr/local/bin/eopenssl11)
8LIBRARIES += openssl11
9.endif
10
11# run netcat server and connect with test client
12
13.for clib in ${LIBRARIES}
14
15REGRESS_TARGETS += run-netcat-client-${clib}-server-nc
16REGRESS_TARGETS += run-protocol-client-${clib}
17
18run-netcat-client-${clib}-server-nc: ../${clib}/client 127.0.0.1.crt
19 @echo '\n======== $@ ========'
20 echo "greeting" | \
21 nc >${@:S/^run/server/}.out \
22 -l -c -C 127.0.0.1.crt -K 127.0.0.1.key \
23 127.0.0.1 0 & \
24 for i in `jot 1000`; do fstat -p $$! >netcat.fstat; \
25 grep -q ' stream tcp .*:[1-9][0-9]*$$' netcat.fstat && \
26 exit 0; done; exit 1
27 LD_LIBRARY_PATH=/usr/local/lib/e${clib} \
28 ../${clib}/client >${@:S/^run/client/}.out \
29 `sed -n 's/.* stream tcp .*:/127.0.0.1 /p' netcat.fstat`
30 # check that the client run successfully to the end
31 grep -q '^success$$' ${@:S/^run/client/}.out
32 # client must have read server greeting
33 grep -q '^<<< greeting$$' ${@:S/^run/client/}.out
34 # netstat server must have read client hello
35 grep -q '^hello$$' ${@:S/^run/server/}.out
36
37.endfor
38
39# run test server and connect with netcat client
40
41.for slib in ${LIBRARIES}
42
43REGRESS_TARGETS += run-netcat-client-nc-server-${slib}
44
45run-netcat-client-nc-server-${slib}: ../${slib}/server 127.0.0.1.crt
46 @echo '\n======== $@ ========'
47 LD_LIBRARY_PATH=/usr/local/lib/e${slib} \
48 ../${slib}/server >${@:S/^run/server/}.out \
49 127.0.0.1 0
50 echo "hello" | \
51 nc >${@:S/^run/client/}.out \
52 -c -R 127.0.0.1.crt \
53 `sed -n 's/listen sock: //p' ${@:S/^run/server/}.out`
54 # check that the server child run successfully to the end
55 grep -q '^success$$' ${@:S/^run/server/}.out
56 # server must have read client hello
57 grep -q '^<<< hello$$' ${@:S/^run/server/}.out
58 # client must have read server greeting
59 grep -q '^greeting$$' ${@:S/^run/client/}.out
60
61.endfor
62
63# check the TLS protocol version in client and server logs
64
65.for clib in ${LIBRARIES}
66
67REGRESS_TARGETS += run-protocol-client-${clib}
68
69run-protocol-client-${clib}: client-netcat-client-${clib}-server-nc.out
70 @echo '\n======== $@ ========'
71 # check that LibTLS protocol version is TLS 1.2
72 # XXX adapt when LibreSSL supports TLS 1.3
73 grep 'Protocol *: TLSv1.2' client-netcat-client-${clib}-server-nc.out
74
75.endfor
76
77.for slib in ${LIBRARIES}
78
79REGRESS_TARGETS += run-protocol-server-${slib}
80
81run-protocol-server-${slib}: server-netcat-client-nc-server-${slib}.out
82 @echo '\n======== $@ ========'
83 # check that LibTLS protocol version is TLS 1.2
84 # XXX adapt when LibreSSL supports TLS 1.3
85 grep 'Protocol *: TLSv1.2' server-netcat-client-nc-server-${slib}.out
86
87.endfor
88
89.include <bsd.regress.mk>