blob: 74c63c86a8b8d0878836a7efe9debc009e796694 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# $OpenBSD: Makefile,v 1.14 2025/01/15 10:54:17 tb Exp $
# Connect a client to a server. Both can be current libressl, or
# openssl 3.x. Create client and server certificates
# that are signed by a CA and not signed by a fake CA. Try all
# combinations with, without, and with wrong CA for client and server
# and check the result of certificate verification.
LIBRARIES = libressl
.if exists(/usr/local/bin/eopenssl33)
LIBRARIES += openssl33
.endif
.if exists(/usr/local/bin/eopenssl34)
LIBRARIES += openssl34
.endif
.for cca in noca ca fakeca
.for sca in noca ca fakeca
.for ccert in nocert cert
.for scert in nocert cert
.for cv in noverify verify
.for sv in noverify verify certverify
# remember when certificate verification should fail
.if (("${cv}" == verify && "${cca}" == ca && "${scert}" == cert) || \
"${cv}" == noverify) && \
(("${sv}" == verify && "${ccert}" == nocert) || \
("${sv}" == verify && "${sca}" == ca && "${ccert}" == cert) || \
("${sv}" == certverify && "${sca}" == ca && "${ccert}" == cert) || \
"${sv}" == noverify)
FAIL_${cca}_${sca}_${ccert}_${scert}_${cv}_${sv} =
.else
FAIL_${cca}_${sca}_${ccert}_${scert}_${cv}_${sv} = !
.endif
.for clib in ${LIBRARIES}
.for slib in ${LIBRARIES}
.if ("${clib}" == "libressl" || "${slib}" == "libressl")
REGRESS_TARGETS += run-cert-client-${clib}-${cca}-${ccert}-${cv}-server-${slib}-${sca}-${scert}-${sv}
.else
# Don't use REGRESS_SLOW_TARGETS since its handling in bsd.regress.mk is slow.
SLOW_TARGETS += run-cert-client-${clib}-${cca}-${ccert}-${cv}-server-${slib}-${sca}-${scert}-${sv}
.endif
run-cert-client-${clib}-${cca}-${ccert}-${cv}-server-${slib}-${sca}-${scert}-${sv}: \
127.0.0.1.crt ca.crt fake-ca.crt client.crt server.crt \
../${clib}/client ../${slib}/server
LD_LIBRARY_PATH=/usr/local/lib/e${slib} \
../${slib}/server >${@:S/^run/server/}.out \
${sca:S/^noca//:S/^fakeca/-C fake-ca.crt/:S/^ca/-C ca.crt/} \
${scert:S/^nocert//:S/^cert/-c server.crt -k server.key/} \
${sv:S/^noverify//:S/^verify/-v/:S/^certverify/-vv/} \
127.0.0.1 0
${FAIL_${cca}_${sca}_${ccert}_${scert}_${cv}_${sv}} \
LD_LIBRARY_PATH=/usr/local/lib/e${clib} \
../${clib}/client >${@:S/^run/client/}.out \
${cca:S/^noca//:S/^fakeca/-C fake-ca.crt/:S/^ca/-C ca.crt/} \
${ccert:S/^nocert//:S/^cert/-c server.crt -k server.key/} \
${cv:S/^noverify//:S/^verify/-v/} \
`sed -n 's/listen sock: //p' ${@:S/^run/server/}.out`
.if empty(${FAIL_${cca}_${sca}_${ccert}_${scert}_${cv}_${sv}})
grep '^success$$' ${@:S/^run/server/}.out || \
{ sleep 1; grep '^success$$' ${@:S/^run/server/}.out; }
grep '^success$$' ${@:S/^run/client/}.out
.elif ! ("${sv}" == certverify && "${ccert}" == nocert) || \
("${cv}" == verify && "${scert}" != cert)
grep '^verify: fail' ${@:S/^run/client/}.out ${@:S/^run/server/}.out
.endif
.endfor
.endfor
.endfor
.endfor
.endfor
.endfor
.endfor
.endfor
.include <bsd.own.mk>
REGRESS_SKIP_SLOW ?= no
.if ${REGRESS_SKIP_SLOW:L} != "yes"
REGRESS_TARGETS += ${SLOW_TARGETS}
.endif
REGRESS_TARGETS += run-bob
run-bob:
@echo Bob, be happy! Tests finished.
# argument list too long for a single rm *
clean: _SUBDIRUSE
rm -f client-*.out
rm -f server-*.out
rm -f a.out [Ee]rrs mklog *.core y.tab.h \
${PROG} ${PROGS} ${OBJS} ${_LEXINTM} ${_YACCINTM} ${CLEANFILES}
.include <bsd.regress.mk>
|