From 1628aac0554d2478d7225750634a44512c12cc20 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 22:27:47 +0000 Subject: [PATCH 01/35] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- ocserv.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ocserv.spec b/ocserv.spec index f2dc5c0..bb03199 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,5 +1,5 @@ Version: 1.1.6 -Release: 2%{?dist} +Release: 3%{?dist} %global _hardened_build 1 %if 0%{?fedora} || 0%{?rhel} >= 7 @@ -272,6 +272,9 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %endif %changelog +* Thu Jan 19 2023 Fedora Release Engineering - 1.1.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Fri Jul 22 2022 Fedora Release Engineering - 1.1.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 7bc9463df441ea599ab31cedea710d297744b54d Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Sun, 7 May 2023 14:32:21 +0200 Subject: [PATCH 02/35] updated to 1.1.7 --- .gitignore | 2 ++ ocserv.spec | 9 ++++++--- sources | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index d8812e1..1435b3a 100644 --- a/.gitignore +++ b/.gitignore @@ -237,3 +237,5 @@ /ocserv-1.1.4.tar.xz.sig /ocserv-1.1.6.tar.xz.sig /ocserv-1.1.6.tar.xz +/ocserv-1.1.7.tar.xz +/ocserv-1.1.7.tar.xz.sig diff --git a/ocserv.spec b/ocserv.spec index bb03199..adc065b 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,5 +1,5 @@ -Version: 1.1.6 -Release: 3%{?dist} +Version: 1.1.7 +Release: 1%{?dist} %global _hardened_build 1 %if 0%{?fedora} || 0%{?rhel} >= 7 @@ -250,7 +250,7 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %config(noreplace) %{_sysconfdir}/pam.d/ocserv %config(noreplace) %{_localstatedir}/lib/ocserv/profile.xml -%doc AUTHORS ChangeLog NEWS COPYING LICENSE README.md PACKAGE-LICENSING +%doc AUTHORS ChangeLog NEWS COPYING COPYING README.md PACKAGE-LICENSING %doc src/ccan/licenses/CC0 src/ccan/licenses/LGPL-2.1 src/ccan/licenses/BSD-MIT %{_mandir}/man8/ocserv.8* @@ -272,6 +272,9 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %endif %changelog +* Sun May 07 2023 Nikos Mavrogiannopoulos - 1.1.7-1 +- Updated to 1.1.7 + * Thu Jan 19 2023 Fedora Release Engineering - 1.1.6-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild diff --git a/sources b/sources index bb03d35..30fa688 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ocserv-1.1.6.tar.xz.sig) = 2a87768ad63d40053732fa011bbeb3532c9673296b9be299bf8f7d8dd3dd35571eee96c0b4fa9bf5a30633b4c844337ab3d562d6ea2b6ad8efca084eb5e6f502 -SHA512 (ocserv-1.1.6.tar.xz) = d1c5e5cf0e84aab168ed51516534df8b2968194dd1421f33563c61b3e47d5d79ebe9e6ffbf7cbcc9ff1242fae05151024f70ef586d063bec0b3eec00050bfdfa +SHA512 (ocserv-1.1.7.tar.xz) = 5b6182b98c0406a27dae7121ec0d8771b158e0d8ce2056bd35451c8ed087a8b7f7d40035f9db5c19aa9a9a3b2c6b07be8f0bad4b6b96569584815a5358202ba4 +SHA512 (ocserv-1.1.7.tar.xz.sig) = 96d2562fdf918f2b6ea829d747330a3be2e015ab25897e01bd0d387cb69ef3592aacabbeec9612e95eca1fbce6178a176dbf76d553b7626c09d453d216ddd63d From 8536d0e5f064fb8fee9098ca18172f39f4f300e9 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Thu, 22 Jun 2023 12:27:36 +0200 Subject: [PATCH 03/35] Backported fixes for expired certificates --- expired-certs.patch | 2308 +++++++++++++++++++++++++++++++++++++++++++ ocserv.spec | 9 +- 2 files changed, 2316 insertions(+), 1 deletion(-) create mode 100644 expired-certs.patch diff --git a/expired-certs.patch b/expired-certs.patch new file mode 100644 index 0000000..443bd7b --- /dev/null +++ b/expired-certs.patch @@ -0,0 +1,2308 @@ +diff --git a/tests/Makefile.am b/tests/Makefile.am +index d965eae..ecc417c 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -44,7 +44,8 @@ EXTRA_DIST = certs/ca-key.pem certs/ca.pem ns.sh common.sh certs/server-cert.pem + data/disconnect-user2.config data/ping-leases.config data/haproxy-proxyproto.config \ + data/haproxy-proxyproto.cfg scripts/proxy-connectscript data/haproxy-proxyproto-v1.config \ + data/haproxy-proxyproto-v1.cfg scripts/proxy-connectscript-v1 data/test-multiple-client-ip.config \ +- data/test-client-bypass-protocol.config asan.supp ++ data/test-client-bypass-protocol.config asan.supp certs/ca.tmpl certs/server-cert.tmpl \ ++ certs/user-cert.tmpl + + xfail_scripts = + dist_check_SCRIPTS = ocpasswd-test +@@ -176,6 +177,25 @@ gen_oidc_test_data_CPPFLAGS = $(AM_CPPFLAGS) + gen_oidc_test_data_SOURCES = generate_oidc_test_data.c + gen_oidc_test_data_LDADD = $(LDADD) $(CJOSE_LIBS) $(JANSSON_LIBS) + ++certs/ca.pem: certs/ca-key.pem certs/ca.tmpl ++ certtool --generate-self-signed --template certs/ca.tmpl --load-privkey certs/ca-key.pem --outfile certs/ca.pem ++ ++certs/server-cert-ca.pem: certs/ca.pem certs/server-cert.pem ++ cat certs/server-cert.pem certs/ca.pem > certs/server-cert-ca.pem ++ ++certs/server-cert.pem: certs/server-cert.tmpl certs/ca.pem certs/server-key.pem certs/ca-key.pem ++ certtool --generate-certificate --template certs/server-cert.tmpl --load-privkey certs/server-key.pem --load-ca-certificate certs/ca.pem --load-ca-privkey certs/ca-key.pem --outfile certs/server-cert.pem ++ ++certs/user-cert.pem: certs/user-cert.tmpl certs/ca.pem certs/user-key.pem certs/ca-key.pem ++ certtool --generate-certificate --template certs/user-cert.tmpl --load-privkey certs/user-key.pem --load-ca-certificate certs/ca.pem --load-ca-privkey certs/ca-key.pem --outfile certs/user-cert.pem ++ ++# make the user certificate invalid by signing it with another CA ++certs/user-cert-invalid.pem: certs/user-cert.tmpl ++ certtool --generate-privkey --outfile ca-key.tmp ++ certtool --generate-self-signed --template certs/ca.tmpl --load-privkey ca-key.tmp --outfile ca.tmp ++ certtool --generate-certificate --template certs/user-cert.tmpl --load-privkey certs/user-key.pem --load-ca-certificate ca.tmp --load-ca-privkey ca-key.tmp --outfile certs/user-cert-invalid.pem ++ rm -f ca-key.tmp ca.tmp ++ + if ENABLE_OIDC_AUTH_TESTS + check_PROGRAMS += gen_oidc_test_data + dist_check_SCRIPTS += test-oidc +diff --git a/tests/apple-ios b/tests/apple-ios +index 897d823..45b0cd3 100755 +--- a/tests/apple-ios ++++ b/tests/apple-ios +@@ -54,11 +54,11 @@ wait_server $PID + sleep 2 + + echo " * Connecting to obtain cookie... " +-( echo "!@#$%^&*()<>" | $OPENCONNECT localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null ) || ++( echo "!@#$%^&*()<>" | $OPENCONNECT localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null ) || + fail $PID "Could not receive cookie from server" + + echo " * Re-connect to force script run with platform... " +-echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT --verbose localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >${TMPFILE} 2>&1 ++echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT --verbose localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >${TMPFILE} 2>&1 + + sleep 5 + +@@ -87,7 +87,7 @@ fi + rm -f ${TMPFILE} + + echo " * Re-connecting to force script run with user agent... " +-echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT --verbose --useragent="Cisco AnyConnect VPN Agent for Apple" localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >${TMPFILE} 2>&1 ++echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT --verbose --useragent="Cisco AnyConnect VPN Agent for Apple" localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >${TMPFILE} 2>&1 + + sleep 5 + +@@ -114,7 +114,7 @@ fi + sleep 5 + echo " - Check server status" + +-( echo "!@#$%^&*()<>" | $OPENCONNECT localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "!@#$%^&*()<>" | $OPENCONNECT localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + echo " - Killing server" +diff --git a/tests/banner b/tests/banner +index 44954e2..08f8f19 100755 +--- a/tests/banner ++++ b/tests/banner +@@ -50,7 +50,7 @@ wait_server $PID + sleep 3 + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >${TMPFILE} 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >${TMPFILE} 2>&1 ) || + fail $PID "Could not receive cookie from server" + + grep "${BANNER}" ${TMPFILE} >/dev/null +@@ -61,7 +61,7 @@ if test $? != 0;then + fi + + echo "Connecting to obtain cookie with wrong password... " +-( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >${TMPFILE} 2>&1 ) && ++( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >${TMPFILE} 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + grep "${BANNER}" ${TMPFILE} >/dev/null +diff --git a/tests/certs/ca-key.pem b/tests/certs/ca-key.pem +index 9bd0754..ee5599c 100644 +--- a/tests/certs/ca-key.pem ++++ b/tests/certs/ca-key.pem +@@ -31,25 +31,3 @@ y1hvTfWRAoGZALNT3AbF9EDnJmZlS30MWtBggw83UhszC8XN2tY30AsvsDOS6a0F + UVhyNvBTKo6lPqXqUsVxp16TKeeQKF+DuYuuNZN3pXXsHTiHkRMDCRVEqz7UnZEc + /Bq/Kh2aOkelkX2S27QzTZGL + -----END RSA PRIVATE KEY----- +------BEGIN CERTIFICATE----- +-MIIDtDCCAmygAwIBAgIETeC0yjANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDEw5H +-bnVUTFMgVGVzdCBDQTAeFw0xMTA1MjgwODM5MzlaFw0zODEwMTIwODM5NDBaMC8x +-LTArBgNVBAMTJEdudVRMUyBUZXN0IFNlcnZlciAoUlNBIGNlcnRpZmljYXRlKTCC +-AVIwDQYJKoZIhvcNAQEBBQADggE/ADCCAToCggExALRrJ5glr8H/HsqwfvTYvO1D +-hmdUXdq0HsKQX4M8AhH8E3KFsoikZUELdl8jvoqf/nlLczsux0s8vxbJl1U1F/Oh +-ckswwuAnlBLzVgDmzoJLEV2kHpv6+rkbKk0Ytbql5gzHqKihbaqIhNyWDrJsHDWq +-58eUPfnVx8KiDUuzbnr3CF/FCc0Vkxr3mN8qTGaJJO0f0BZjgWWlWDuhzSVim5mB +-VAgXGOx8LwiiOyhXMp0XRwqG+2KxQZnm+96o6iB+8xvuuuqaIWQpkvKtc+UZBZ03 +-U+IRnxhfIrriiw0AjJ4vp4c9QL5KoqWSCAwuYcBYfJqZ4dasgzklzz4b7eujbZ3L +-xTjewcdumzQUvjA+gpAeuUqaduTvMwxGojFy9sNhC/iqZ4n0peV2N6Epn4B5qnUC +-AwEAAaOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDAT +-BgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBR2 +-B1hM6rUp9S2ABoyDSoINCeyT3jAfBgNVHSMEGDAWgBRNVrdqAFjxZ5L0pnVVG45T +-AQPvzzANBgkqhkiG9w0BAQsFAAOCATEAdNWmTsh5uIfngyhOWwm7pK2+vgUMY8nH +-gMoMFHt0yuxuImcUMXu3LRS1dZSoCJACBpTFGi/Dg2U0qvOHQcEmc3OwNqHB90R3 +-LG5jUSCtq/bYW7h/6Gd9KeWCgZczaHbQ9IPTjLH1dLswVPt+fXKB6Eh0ggSrGATE +-/wRZT/XgDCW8t4C+2+TmJ8ZEzvU87KAPQ9rUBS1+p3EUAR/FfMApApsEig1IZ+ZD +-5joaGBW7zh1H0B9mEKidRvD7yuRJyzAcvD25nT15NLW0QR3dEeXosLc720xxJl1h +-h8NJ7YOvn323mOjR9er4i4D6iJlXmJ8tvN9vakCankWvBzb7plFn2sfMQqICFpRc +-w075D8hdQxfpGffL2tEeKSgjyNHXS7x3dFhUpN3IQjUi2x4f2e/ZXg== +------END CERTIFICATE----- +diff --git a/tests/certs/ca.pem b/tests/certs/ca.pem +index c4058ee..02f0b76 100644 +--- a/tests/certs/ca.pem ++++ b/tests/certs/ca.pem +@@ -1,20 +1,20 @@ + -----BEGIN CERTIFICATE----- +-MIIDPzCCAfegAwIBAgIEUdguzDANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD +-QTAiGA8yMDEzMDcwNjE0NTA1MloYDzIwMjMwNTE1MTQ1MDUyWjANMQswCQYDVQQD +-EwJDQTCCAVIwDQYJKoZIhvcNAQEBBQADggE/ADCCAToCggExALRrJ5glr8H/Hsqw +-fvTYvO1DhmdUXdq0HsKQX4M8AhH8E3KFsoikZUELdl8jvoqf/nlLczsux0s8vxbJ +-l1U1F/OhckswwuAnlBLzVgDmzoJLEV2kHpv6+rkbKk0Ytbql5gzHqKihbaqIhNyW +-DrJsHDWq58eUPfnVx8KiDUuzbnr3CF/FCc0Vkxr3mN8qTGaJJO0f0BZjgWWlWDuh +-zSVim5mBVAgXGOx8LwiiOyhXMp0XRwqG+2KxQZnm+96o6iB+8xvuuuqaIWQpkvKt +-c+UZBZ03U+IRnxhfIrriiw0AjJ4vp4c9QL5KoqWSCAwuYcBYfJqZ4dasgzklzz4b +-7eujbZ3LxTjewcdumzQUvjA+gpAeuUqaduTvMwxGojFy9sNhC/iqZ4n0peV2N6Ep +-n4B5qnUCAwEAAaNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwQA +-MB0GA1UdDgQWBBRIIzRTCokxOEpa6sq20qbezh0rGDANBgkqhkiG9w0BAQsFAAOC +-ATEAa1kdd8E1PkM06Isw0S/thEll0rAYsNHwSX17IDUWocTTQlmVXBXcvLqM04QT +-z7WNG4eushLhRpSn8LJQkf4RgvAxOMIjHM9troDbPVoec6k8fZrJ8jfXurOgoOVP +-g+hScT3VDvxgiOVwgXSe2XBryGDaviRuSOHlfy5GPVirLJLZwpcX6RpsHMX9rrZX +-ghvf8dwm4To9H5wT0Le2FnZRoLOTMmpr49bfKJqy/U7AUHaf4saSdkdEIaGOxkPk +-x+SFlr9TjavnJvL0TApkvfNZ1aOVHRHINgaFYHQJ4U0jQ/g7lPmD+UtZWnvSMNXH +-yct5cKOyP4j7Kla1sKPs+oamOQ7pR1Z/GwBxe48FvO7VDi7EkugLwlzoXC2G+4Jg +-fJbi9Ui2FmXEeKkX34f1ONNj9Q== ++MIIDPDCCAfSgAwIBAgIEUdguzDANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD ++QTAgFw0xMzAyMTMxNTMyMTJaGA85OTk5MTIzMTIzNTk1OVowDTELMAkGA1UEAxMC ++Q0EwggFSMA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQC0ayeYJa/B/x7KsH70 ++2LztQ4ZnVF3atB7CkF+DPAIR/BNyhbKIpGVBC3ZfI76Kn/55S3M7LsdLPL8WyZdV ++NRfzoXJLMMLgJ5QS81YA5s6CSxFdpB6b+vq5GypNGLW6peYMx6iooW2qiITclg6y ++bBw1qufHlD351cfCog1Ls2569whfxQnNFZMa95jfKkxmiSTtH9AWY4FlpVg7oc0l ++YpuZgVQIFxjsfC8IojsoVzKdF0cKhvtisUGZ5vveqOogfvMb7rrqmiFkKZLyrXPl ++GQWdN1PiEZ8YXyK64osNAIyeL6eHPUC+SqKlkggMLmHAWHyameHWrIM5Jc8+G+3r ++o22dy8U43sHHbps0FL4wPoKQHrlKmnbk7zMMRqIxcvbDYQv4qmeJ9KXldjehKZ+A ++eap1AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMB0G ++A1UdDgQWBBRIIzRTCokxOEpa6sq20qbezh0rGDANBgkqhkiG9w0BAQsFAAOCATEA ++foqPGdiyJYHih4J5YHwFPQxmkOzPHSa13K/q8sDvobE+HFTzrlTbAFC8bS38Bv2f ++9ZrPME4JvnsGdRGYwxS3LUmNdHHWR8LkvGXBE3u/TZsJfPtOR8JwdulQXpRw7hhL ++ew/mR5IEHZrUZgnnI4dg1kJhE1JPTvmtgqcE1CsikVQ14NvG/ehJbJyPgKTq/Zxm ++Ru4B5N+Jef/LaOqZvK4xK8x2ZaZ/L/ANou+7EY4DoWAkOEEoCU8DQHLAFgf6B7La ++oemLQGNHcBpba81jlS5EXXGJccOvfbw0MJTP3ZvyVIlEYu/X4roC7EJP/UkCZUJG ++f79Nc28q2/2D8tuFOqG7UbP7r2cWSa8OO3cI/V1W1k3iWZ63WltqDwFC0c8iqYFL ++9xKfQ96Q7wrYOCjmuaCLbw== + -----END CERTIFICATE----- +diff --git a/tests/certs/ca.tmpl b/tests/certs/ca.tmpl +new file mode 100644 +index 0000000..da5cc3f +--- /dev/null ++++ b/tests/certs/ca.tmpl +@@ -0,0 +1,6 @@ ++cn = CA ++ca ++cert_signing_key ++expiration_days = -1 ++activation_date = "2013-02-13 16:32:12" ++serial = 0x51d82ecc +diff --git a/tests/certs/server-cert-ca.pem b/tests/certs/server-cert-ca.pem +index 818101a..8ffaad3 100644 +--- a/tests/certs/server-cert-ca.pem ++++ b/tests/certs/server-cert-ca.pem +@@ -1,42 +1,42 @@ + -----BEGIN CERTIFICATE----- +-MIIDkTCCAkmgAwIBAgIEUdgu8DANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD +-QTAiGA8yMDEzMDcwNjE0NTEyOVoYDzIwMjMwNTE1MTQ1MTI5WjAUMRIwEAYDVQQD +-Ewlsb2NhbGhvc3QwggFSMA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQCnOivs +-PxSwLBn28W6QHb+OqfbpcIQJh/NQ81/DlFD6LGTWV4BY4Zb87tC9BBV+X3+lM/j8 +-u5HvN3nDWtv4Ge0DryLW6Tcs6FPCt4srEfCkh5l54LrMmWbhFgkVlN5fTqoY0lnd +-YJx2X8WWldRjeL+8E7nFUcFStWrgi9AzgMFrjsL4pql97YAZRXcMoQXVjbRmzVLZ +-IVumQy7c+tl7Eqz8lx/xS/5Fx9tIRunqNS5jEUs8Nn5E6FvraAcy+eI0gXTGk759 +-KNPYisSqAuFAmmt/XDTTvvOo6dpAseXqtR2/LjZJWOlXdiZ/yjHg5+RKQ5dt3dk5 +-7lAIWER9egIOo/+GAkyek0ZJ5GWU6VxTsFcIl6oy3S7EtB0NCIM7hvhy32QrJ5ZU +-yNncTSf6qMVoedgdAgMBAAGjgY0wgYowDAYDVR0TAQH/BAIwADAUBgNVHREEDTAL +-gglsb2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0PAQH/BAUDAweg +-ADAdBgNVHQ4EFgQUqCVH9o9E1jUb72ys0de5boT536MwHwYDVR0jBBgwFoAUSCM0 +-UwqJMThKWurKttKm3s4dKxgwDQYJKoZIhvcNAQELBQADggExAK7dBCSwM/OJw+6s +-9MJAb7Ygi9xhHSq30Hg3M7DaPC7J9rZB6+IAVb3poOZAtDDtyTqvXH7qY5UMjJC9 +-GsFmHPI/OSk2xuJJpG+ZJaP54b7kzTtUD6UCHETsgBk2aNuqNhjXR2fYnR9QME0C +-zZWIDV+5DFEBI97ln30N6PcXvIxp7Rsac3qwzvwt3zL+23kTwgM+DoRPoPO0PHr/ +-eQ9hvRU5wA2Vc47zhUXIFy1Jmx7Sf//pw0/wq46VUAjDZ5B09EoCpzBNvOD7P+cF +-FQQ7SId8h8OQ2uOWxT2baeJX0pVbVv+qwOOB1F0q3sjx0dZa/2rxOUZ3wnHG9j8j +-LZSUkZxGpPQffCSpSPma5RhYff8/BncdA8soT0dyEfXIX5V91IXnrlI8XZrADvJM +-zzJKdNg= ++MIIDjjCCAkagAwIBAgIEUdgu8DANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD ++QTAgFw0xMzA2MDYxMjUxMjlaGA85OTk5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJ ++bG9jYWxob3N0MIIBUjANBgkqhkiG9w0BAQEFAAOCAT8AMIIBOgKCATEApzor7D8U ++sCwZ9vFukB2/jqn26XCECYfzUPNfw5RQ+ixk1leAWOGW/O7QvQQVfl9/pTP4/LuR ++7zd5w1rb+BntA68i1uk3LOhTwreLKxHwpIeZeeC6zJlm4RYJFZTeX06qGNJZ3WCc ++dl/FlpXUY3i/vBO5xVHBUrVq4IvQM4DBa47C+Kapfe2AGUV3DKEF1Y20Zs1S2SFb ++pkMu3PrZexKs/Jcf8Uv+RcfbSEbp6jUuYxFLPDZ+ROhb62gHMvniNIF0xpO+fSjT ++2IrEqgLhQJprf1w0077zqOnaQLHl6rUdvy42SVjpV3Ymf8ox4OfkSkOXbd3ZOe5Q ++CFhEfXoCDqP/hgJMnpNGSeRllOlcU7BXCJeqMt0uxLQdDQiDO4b4ct9kKyeWVMjZ ++3E0n+qjFaHnYHQIDAQABo4GMMIGJMAwGA1UdEwEB/wQCMAAwFAYDVR0RBA0wC4IJ ++bG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMA4GA1UdDwEB/wQEAwIFoDAd ++BgNVHQ4EFgQUqCVH9o9E1jUb72ys0de5boT536MwHwYDVR0jBBgwFoAUSCM0UwqJ ++MThKWurKttKm3s4dKxgwDQYJKoZIhvcNAQELBQADggExAGQoUMiZVg6+Ibj8kyfq ++l/vfu4QxlUlqAbm/b9PVdOLrhz+T986HMFhL0b2HUGg5Mb0NZcgHjH4VLkei4AIb ++g/1nGdJ2I6EcLiQOvO4h2F3CoU6HkEGVEUXFaBd19tSDm7aM+2h7oPb3Vs3YT9QE ++x7ejmVeA+Qr9+H9xHyModpA1PkKRW31TOYtjUXHdHObT1uar++C1JLHn49ooKDZM ++5p9a4ExQVYd6WMRXKC83py1V4Ne5kBxC/l+3QkVZnMwByChySP7SEMa9yGv4KFM9 ++FT7XvxQsrkqPi5bCllUyGDrVeyTpyPDrb4BKgAu/Cy4tyDxLzBTZ5TXDH7E1IBps ++g1k5llFIyGdO5vQrX8vF61tqK5DBhgVvwu0k/m2lP9esLfaF7I5oGAbUKGhRr8mE ++xs8= + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- +-MIIDPzCCAfegAwIBAgIEUdguzDANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD +-QTAiGA8yMDEzMDcwNjE0NTA1MloYDzIwMjMwNTE1MTQ1MDUyWjANMQswCQYDVQQD +-EwJDQTCCAVIwDQYJKoZIhvcNAQEBBQADggE/ADCCAToCggExALRrJ5glr8H/Hsqw +-fvTYvO1DhmdUXdq0HsKQX4M8AhH8E3KFsoikZUELdl8jvoqf/nlLczsux0s8vxbJ +-l1U1F/OhckswwuAnlBLzVgDmzoJLEV2kHpv6+rkbKk0Ytbql5gzHqKihbaqIhNyW +-DrJsHDWq58eUPfnVx8KiDUuzbnr3CF/FCc0Vkxr3mN8qTGaJJO0f0BZjgWWlWDuh +-zSVim5mBVAgXGOx8LwiiOyhXMp0XRwqG+2KxQZnm+96o6iB+8xvuuuqaIWQpkvKt +-c+UZBZ03U+IRnxhfIrriiw0AjJ4vp4c9QL5KoqWSCAwuYcBYfJqZ4dasgzklzz4b +-7eujbZ3LxTjewcdumzQUvjA+gpAeuUqaduTvMwxGojFy9sNhC/iqZ4n0peV2N6Ep +-n4B5qnUCAwEAAaNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwQA +-MB0GA1UdDgQWBBRIIzRTCokxOEpa6sq20qbezh0rGDANBgkqhkiG9w0BAQsFAAOC +-ATEAa1kdd8E1PkM06Isw0S/thEll0rAYsNHwSX17IDUWocTTQlmVXBXcvLqM04QT +-z7WNG4eushLhRpSn8LJQkf4RgvAxOMIjHM9troDbPVoec6k8fZrJ8jfXurOgoOVP +-g+hScT3VDvxgiOVwgXSe2XBryGDaviRuSOHlfy5GPVirLJLZwpcX6RpsHMX9rrZX +-ghvf8dwm4To9H5wT0Le2FnZRoLOTMmpr49bfKJqy/U7AUHaf4saSdkdEIaGOxkPk +-x+SFlr9TjavnJvL0TApkvfNZ1aOVHRHINgaFYHQJ4U0jQ/g7lPmD+UtZWnvSMNXH +-yct5cKOyP4j7Kla1sKPs+oamOQ7pR1Z/GwBxe48FvO7VDi7EkugLwlzoXC2G+4Jg +-fJbi9Ui2FmXEeKkX34f1ONNj9Q== ++MIIDPDCCAfSgAwIBAgIEUdguzDANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD ++QTAgFw0xMzAyMTMxNTMyMTJaGA85OTk5MTIzMTIzNTk1OVowDTELMAkGA1UEAxMC ++Q0EwggFSMA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQC0ayeYJa/B/x7KsH70 ++2LztQ4ZnVF3atB7CkF+DPAIR/BNyhbKIpGVBC3ZfI76Kn/55S3M7LsdLPL8WyZdV ++NRfzoXJLMMLgJ5QS81YA5s6CSxFdpB6b+vq5GypNGLW6peYMx6iooW2qiITclg6y ++bBw1qufHlD351cfCog1Ls2569whfxQnNFZMa95jfKkxmiSTtH9AWY4FlpVg7oc0l ++YpuZgVQIFxjsfC8IojsoVzKdF0cKhvtisUGZ5vveqOogfvMb7rrqmiFkKZLyrXPl ++GQWdN1PiEZ8YXyK64osNAIyeL6eHPUC+SqKlkggMLmHAWHyameHWrIM5Jc8+G+3r ++o22dy8U43sHHbps0FL4wPoKQHrlKmnbk7zMMRqIxcvbDYQv4qmeJ9KXldjehKZ+A ++eap1AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMB0G ++A1UdDgQWBBRIIzRTCokxOEpa6sq20qbezh0rGDANBgkqhkiG9w0BAQsFAAOCATEA ++foqPGdiyJYHih4J5YHwFPQxmkOzPHSa13K/q8sDvobE+HFTzrlTbAFC8bS38Bv2f ++9ZrPME4JvnsGdRGYwxS3LUmNdHHWR8LkvGXBE3u/TZsJfPtOR8JwdulQXpRw7hhL ++ew/mR5IEHZrUZgnnI4dg1kJhE1JPTvmtgqcE1CsikVQ14NvG/ehJbJyPgKTq/Zxm ++Ru4B5N+Jef/LaOqZvK4xK8x2ZaZ/L/ANou+7EY4DoWAkOEEoCU8DQHLAFgf6B7La ++oemLQGNHcBpba81jlS5EXXGJccOvfbw0MJTP3ZvyVIlEYu/X4roC7EJP/UkCZUJG ++f79Nc28q2/2D8tuFOqG7UbP7r2cWSa8OO3cI/V1W1k3iWZ63WltqDwFC0c8iqYFL ++9xKfQ96Q7wrYOCjmuaCLbw== + -----END CERTIFICATE----- +diff --git a/tests/certs/server-cert.pem b/tests/certs/server-cert.pem +index 4acde02..b304b47 100644 +--- a/tests/certs/server-cert.pem ++++ b/tests/certs/server-cert.pem +@@ -1,22 +1,22 @@ + -----BEGIN CERTIFICATE----- +-MIIDkTCCAkmgAwIBAgIEUdgu8DANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD +-QTAiGA8yMDEzMDcwNjE0NTEyOVoYDzIwMjMwNTE1MTQ1MTI5WjAUMRIwEAYDVQQD +-Ewlsb2NhbGhvc3QwggFSMA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQCnOivs +-PxSwLBn28W6QHb+OqfbpcIQJh/NQ81/DlFD6LGTWV4BY4Zb87tC9BBV+X3+lM/j8 +-u5HvN3nDWtv4Ge0DryLW6Tcs6FPCt4srEfCkh5l54LrMmWbhFgkVlN5fTqoY0lnd +-YJx2X8WWldRjeL+8E7nFUcFStWrgi9AzgMFrjsL4pql97YAZRXcMoQXVjbRmzVLZ +-IVumQy7c+tl7Eqz8lx/xS/5Fx9tIRunqNS5jEUs8Nn5E6FvraAcy+eI0gXTGk759 +-KNPYisSqAuFAmmt/XDTTvvOo6dpAseXqtR2/LjZJWOlXdiZ/yjHg5+RKQ5dt3dk5 +-7lAIWER9egIOo/+GAkyek0ZJ5GWU6VxTsFcIl6oy3S7EtB0NCIM7hvhy32QrJ5ZU +-yNncTSf6qMVoedgdAgMBAAGjgY0wgYowDAYDVR0TAQH/BAIwADAUBgNVHREEDTAL +-gglsb2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0PAQH/BAUDAweg +-ADAdBgNVHQ4EFgQUqCVH9o9E1jUb72ys0de5boT536MwHwYDVR0jBBgwFoAUSCM0 +-UwqJMThKWurKttKm3s4dKxgwDQYJKoZIhvcNAQELBQADggExAK7dBCSwM/OJw+6s +-9MJAb7Ygi9xhHSq30Hg3M7DaPC7J9rZB6+IAVb3poOZAtDDtyTqvXH7qY5UMjJC9 +-GsFmHPI/OSk2xuJJpG+ZJaP54b7kzTtUD6UCHETsgBk2aNuqNhjXR2fYnR9QME0C +-zZWIDV+5DFEBI97ln30N6PcXvIxp7Rsac3qwzvwt3zL+23kTwgM+DoRPoPO0PHr/ +-eQ9hvRU5wA2Vc47zhUXIFy1Jmx7Sf//pw0/wq46VUAjDZ5B09EoCpzBNvOD7P+cF +-FQQ7SId8h8OQ2uOWxT2baeJX0pVbVv+qwOOB1F0q3sjx0dZa/2rxOUZ3wnHG9j8j +-LZSUkZxGpPQffCSpSPma5RhYff8/BncdA8soT0dyEfXIX5V91IXnrlI8XZrADvJM +-zzJKdNg= ++MIIDjjCCAkagAwIBAgIEUdgu8DANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD ++QTAgFw0xMzA2MDYxMjUxMjlaGA85OTk5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJ ++bG9jYWxob3N0MIIBUjANBgkqhkiG9w0BAQEFAAOCAT8AMIIBOgKCATEApzor7D8U ++sCwZ9vFukB2/jqn26XCECYfzUPNfw5RQ+ixk1leAWOGW/O7QvQQVfl9/pTP4/LuR ++7zd5w1rb+BntA68i1uk3LOhTwreLKxHwpIeZeeC6zJlm4RYJFZTeX06qGNJZ3WCc ++dl/FlpXUY3i/vBO5xVHBUrVq4IvQM4DBa47C+Kapfe2AGUV3DKEF1Y20Zs1S2SFb ++pkMu3PrZexKs/Jcf8Uv+RcfbSEbp6jUuYxFLPDZ+ROhb62gHMvniNIF0xpO+fSjT ++2IrEqgLhQJprf1w0077zqOnaQLHl6rUdvy42SVjpV3Ymf8ox4OfkSkOXbd3ZOe5Q ++CFhEfXoCDqP/hgJMnpNGSeRllOlcU7BXCJeqMt0uxLQdDQiDO4b4ct9kKyeWVMjZ ++3E0n+qjFaHnYHQIDAQABo4GMMIGJMAwGA1UdEwEB/wQCMAAwFAYDVR0RBA0wC4IJ ++bG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMA4GA1UdDwEB/wQEAwIFoDAd ++BgNVHQ4EFgQUqCVH9o9E1jUb72ys0de5boT536MwHwYDVR0jBBgwFoAUSCM0UwqJ ++MThKWurKttKm3s4dKxgwDQYJKoZIhvcNAQELBQADggExAGQoUMiZVg6+Ibj8kyfq ++l/vfu4QxlUlqAbm/b9PVdOLrhz+T986HMFhL0b2HUGg5Mb0NZcgHjH4VLkei4AIb ++g/1nGdJ2I6EcLiQOvO4h2F3CoU6HkEGVEUXFaBd19tSDm7aM+2h7oPb3Vs3YT9QE ++x7ejmVeA+Qr9+H9xHyModpA1PkKRW31TOYtjUXHdHObT1uar++C1JLHn49ooKDZM ++5p9a4ExQVYd6WMRXKC83py1V4Ne5kBxC/l+3QkVZnMwByChySP7SEMa9yGv4KFM9 ++FT7XvxQsrkqPi5bCllUyGDrVeyTpyPDrb4BKgAu/Cy4tyDxLzBTZ5TXDH7E1IBps ++g1k5llFIyGdO5vQrX8vF61tqK5DBhgVvwu0k/m2lP9esLfaF7I5oGAbUKGhRr8mE ++xs8= + -----END CERTIFICATE----- +diff --git a/tests/certs/server-cert.tmpl b/tests/certs/server-cert.tmpl +new file mode 100644 +index 0000000..82e34ca +--- /dev/null ++++ b/tests/certs/server-cert.tmpl +@@ -0,0 +1,8 @@ ++cn = localhost ++dns_name = localhost ++tls_www_server ++signing_key ++encryption_key ++expiration_days = -1 ++activation_date = "2013-06-06 14:51:29" ++serial = 0x51d82ef0 +diff --git a/tests/certs/user-cert-invalid.pem b/tests/certs/user-cert-invalid.pem +index 0175bdf..4f5dd96 100644 +--- a/tests/certs/user-cert-invalid.pem ++++ b/tests/certs/user-cert-invalid.pem +@@ -1,107 +1,23 @@ +-X.509 Certificate Information: +- Version: 3 +- Serial Number (hex): 51d82f14 +- Issuer: CN=CA +- Validity: +- Not Before: Sat Jul 06 14:52:05 UTC 2013 +- Not After: Mon May 15 14:52:05 UTC 2023 +- Subject: CN=A user,UID=test +- Subject Public Key Algorithm: RSA +- Algorithm Security Level: Medium (2432 bits) +- Modulus (bits 2432): +- 00:ab:54:98:fc:a9:c6:15:95:9d:a6:c1:94:84:94:91 +- 79:1e:78:db:2d:48:51:99:65:01:02:c0:40:52:49:5d +- eb:70:bc:26:ef:68:39:1e:04:91:e2:db:cb:6f:93:40 +- 45:1e:22:8e:71:5a:58:89:28:79:5e:1a:32:25:3e:8b +- 9d:3b:34:7f:19:f8:d0:2f:37:b7:62:32:b7:53:a5:43 +- 2c:c5:5d:ec:ac:f9:35:fa:14:2b:34:66:f1:d6:a7:a1 +- d0:83:9a:56:f4:19:83:bc:bf:11:74:30:2d:a8:28:5b +- a2:ab:7a:c6:cd:9c:5c:f8:51:e9:a9:0c:48:db:71:bb +- b1:34:77:f7:ee:de:5d:78:c0:48:0a:37:0d:65:1e:3b +- 2b:14:03:89:72:f2:52:ed:5f:00:c5:06:60:ea:80:20 +- d0:43:ec:66:bc:d2:26:db:f0:29:3e:6a:f9:62:20:be +- 58:26:44:ba:d7:8c:6f:76:a6:05:20:e4:98:b7:c4:72 +- 7a:5d:df:4f:0d:23:ec:2e:9c:71:ec:30:f9:14:5f:c8 +- 75:0b:ab:67:f6:7d:fb:4d:76:64:4a:a5:d5:fa:b4:08 +- 50:9d:13:c7:8f:c2:79:b0:b4:3e:2f:89:d3:33:27:4d +- 9f:8b:d3:60:24:07:ab:b2:72:3d:29:a5:c4:4a:ec:3c +- 04:d2:49:3e:26:1b:ec:7a:10:3d:ca:45:5a:80:8b:4d +- 2a:96:63:4f:2d:63:28:0f:3b:47:47:ca:7c:2c:15:41 +- 32:d5:e0:c9:be:a5:55:2c:b3:6b:46:2a:56:b1:1b:ed +- 29 +- Exponent (bits 24): +- 01:00:01 +- Extensions: +- Basic Constraints (critical): +- Certificate Authority (CA): FALSE +- Key Purpose (not critical): +- TLS WWW Client. +- Key Usage (critical): +- Digital signature. +- Key encipherment. +- Subject Key Identifier (not critical): +- 8b01094b3b91ece321b91dec8d6b4c5d9e40805e +- Authority Key Identifier (not critical): +- 482334530a8931384a5aeacab6d2a6dece1d2b18 +- Signature Algorithm: RSA-SHA256 +- Signature: +- 6b:bd:e2:90:d7:11:cf:6c:0d:e3:bd:f4:61:cd:57:83 +- 41:be:2a:92:46:dd:fa:44:6c:60:1c:ef:3e:1e:2f:e1 +- e2:5b:45:88:6a:1e:50:2d:8d:96:c4:c7:80:75:59:7b +- 54:6b:fb:86:b0:f1:6d:45:09:db:48:de:20:0a:87:60 +- 30:5e:35:f0:52:c4:55:44:c1:ff:e1:7c:3d:d6:6d:58 +- ca:1c:fd:bf:04:9a:9b:10:35:05:fc:d1:01:3c:af:bb +- 64:31:5e:59:8f:ef:6f:0d:35:e5:c0:07:77:0e:31:20 +- 8e:e3:2e:f1:a6:4d:f1:be:85:5b:df:04:48:9d:8c:c9 +- c9:c1:b8:e3:e2:d2:4b:55:83:e9:d8:7b:71:2f:8e:89 +- fc:4d:a7:f1:b0:bf:47:9b:97:c4:85:dd:c3:3d:38:15 +- 36:08:73:10:87:08:f6:e6:1c:4e:29:a8:a5:f5:24:b8 +- 0d:e9:d9:b8:19:27:1d:73:35:fe:7b:81:1f:4a:81:6a +- 93:cd:a2:71:d7:60:0e:08:ee:ea:c8:2b:44:1b:e4:45 +- 6c:fe:44:68:d6:86:ad:89:4f:7e:9f:f9:1a:2a:97:0f +- 6b:eb:5d:6e:38:b3:5b:13:b9:e3:4a:10:32:5b:dc:a9 +- b4:a1:4e:b3:f9:4f:91:de:bc:cc:36:91:44:ba:e0:34 +- 74:f7:68:b4:7b:0e:db:4e:ec:28:03:01:cf:0a:63:c4 +- 23:75:0b:4b:41:9d:e0:68:b3:cb:bf:b5:5c:3d:52:93 +- 20:ba:ea:b8:f0:8c:f7:a6:ec:cd:a3:aa:4f:2a:ff:20 +-Other Information: +- SHA1 fingerprint: +- 5509a76b8738216938cdb3ec25048812737170de +- SHA256 fingerprint: +- c93e38ef35f1a9c485a27b161e708f2d45bf8768eb53a23fec841a8f35d6e478 +- Public Key ID: +- 8b01094b3b91ece321b91dec8d6b4c5d9e40805e +- Public key's random art: +- +--[ RSA 2432]----+ +- | o=o | +- |..oE.. | +- |.+=.o | +- |o.*.... | +- | * B +..S | +- |. * o oo . | +- | o . . . | +- | + | +- | . | +- +-----------------+ +- + -----BEGIN CERTIFICATE----- +-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 + -----END CERTIFICATE----- +diff --git a/tests/certs/user-cert.pem b/tests/certs/user-cert.pem +index ef5114c..32ab235 100644 +--- a/tests/certs/user-cert.pem ++++ b/tests/certs/user-cert.pem +@@ -1,21 +1,21 @@ + -----BEGIN CERTIFICATE----- +-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 + -----END CERTIFICATE----- +diff --git a/tests/certs/user-cert.tmpl b/tests/certs/user-cert.tmpl +new file mode 100644 +index 0000000..6a60496 +--- /dev/null ++++ b/tests/certs/user-cert.tmpl +@@ -0,0 +1,7 @@ ++dn = "uid=test,cn=A user" ++tls_www_client ++signing_key ++encryption_key ++expiration_days = -1 ++activation_date = "2013-06-06 14:51:29" ++serial = 0x51d82f14 +diff --git a/tests/cipher-common.sh b/tests/cipher-common.sh +index fb9e2ac..07443a0 100755 +--- a/tests/cipher-common.sh ++++ b/tests/cipher-common.sh +@@ -91,14 +91,14 @@ fi + + # Run clients + echo " * Getting cookie from ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 ${CSTR} --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ${CSTR} --cookieonly ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 + fi + + echo " * Connecting to ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 ${CSTR} -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ${CSTR} -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/disconnect-user b/tests/disconnect-user +index 67a016e..bf4c7ab 100755 +--- a/tests/disconnect-user ++++ b/tests/disconnect-user +@@ -77,7 +77,7 @@ sleep 3 + + # Run clients + echo " * Getting cookie from ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate >${TMPFILE} ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate >${TMPFILE} ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 +@@ -85,7 +85,7 @@ fi + + eval $(cat ${TMPFILE}) + echo " * Connecting to ${ADDRESS}:${PORT}..." +-( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) ++( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +@@ -105,7 +105,7 @@ if test $? != 0;then + fi + + echo " * Re-connecting to obtain cookie after disconnect... " +-( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) ++( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) + if test $? = 0;then + echo "Succeeded using the cookie to connect" + exit 1 +diff --git a/tests/disconnect-user2 b/tests/disconnect-user2 +index ef8c3c1..e00cc67 100755 +--- a/tests/disconnect-user2 ++++ b/tests/disconnect-user2 +@@ -75,7 +75,7 @@ sleep 3 + + # Run clients + echo " * Getting cookie from ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate >${TMPFILE} ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate >${TMPFILE} ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 +@@ -83,7 +83,7 @@ fi + + eval $(cat ${TMPFILE}) + echo " * Connecting to ${ADDRESS}:${PORT}..." +-( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) ++( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +@@ -103,7 +103,7 @@ if test $? != 0;then + fi + + echo " * Re-connecting to obtain cookie after disconnect... " +-( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) ++( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) + if test $? = 0;then + echo "Succeeded using the cookie to connect" + exit 1 +diff --git a/tests/drain-server b/tests/drain-server +index be51cd4..808067f 100755 +--- a/tests/drain-server ++++ b/tests/drain-server +@@ -35,7 +35,7 @@ launch_sr_server -d 1 -p ${PIDFILE} -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) || + fail $PID "Could not receive cookie from server" + + if ! test -f ${PIDFILE};then +@@ -48,7 +48,7 @@ kill -15 $(cat $PIDFILE) + sleep 1 + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) && ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) && + fail $PID "Server is still listening" + + wait +diff --git a/tests/drain-server-fail b/tests/drain-server-fail +index d61106e..a2c495d 100755 +--- a/tests/drain-server-fail ++++ b/tests/drain-server-fail +@@ -48,7 +48,7 @@ launch_simple_sr_server -d 3 -p ${PIDFILE} -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) || + fail $PID "Could not receive cookie from server" + + if ! test -f ${PIDFILE};then +diff --git a/tests/flowcontrol b/tests/flowcontrol +index fb60f67..7ef6b70 100755 +--- a/tests/flowcontrol ++++ b/tests/flowcontrol +@@ -37,39 +37,39 @@ launch_sr_server -d 1 -p ${PIDFILE} -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) || + fail $PID "Could not receive cookie from server" + + echo "Connecting to obtain cookie with wrong password... " +-( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + echo "Connecting to obtain cookie with empty password... " +-( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + echo "Connecting to obtain cookie with wrong username... " +-( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u tost --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u tost --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + # test locked account + + echo "Connecting to obtain cookie with locked account... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u locked --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u locked --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + #test special characters + + echo "Connecting to obtain cookie with special password... " +-( echo "!@#$%^&*()<>" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "!@#$%^&*()<>" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + echo "Connecting to obtain cookie with empty password... " +-( echo "" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "empty" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "empty" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + #echo "Normal connection... " +-#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true ) || ++#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true ) || + # fail $PID "Could not connect to server" + + if ! test -f ${PIDFILE};then +diff --git a/tests/haproxy-auth b/tests/haproxy-auth +index b653714..5261860 100755 +--- a/tests/haproxy-auth ++++ b/tests/haproxy-auth +@@ -51,7 +51,7 @@ LD_PRELOAD=libsocket_wrapper.so:libuid_wrapper.so UID_WRAPPER=1 UID_WRAPPER_ROOT + wait_server ${HAPID} + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + kill ${HAPID} + fail ${PID} "Could not receive cookie from server" +@@ -66,7 +66,7 @@ LD_PRELOAD=libsocket_wrapper.so:libuid_wrapper.so UID_WRAPPER=1 UID_WRAPPER_ROOT + wait_server ${HAPID} + + echo "Re-connecting to obtain cookie after haproxy restart... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + kill ${HAPID} + fail ${PID} "Could not receive cookie from server" +diff --git a/tests/haproxy-connect b/tests/haproxy-connect +index c42b76c..662c08f 100755 +--- a/tests/haproxy-connect ++++ b/tests/haproxy-connect +@@ -91,14 +91,14 @@ sleep 3 + + # Run clients + echo " * Getting cookie from ${ADDRESS}:${HAPORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 + fi + + echo " * Connecting to ${ADDRESS}:${HAPORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +@@ -135,7 +135,7 @@ set +e + sleep 3 + + echo " * Re-connecting to obtain cookie after haproxy restart... " +-( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + echo "Could not receive cookie from server on reconnection" + exit 1 +diff --git a/tests/haproxy-proxyproto b/tests/haproxy-proxyproto +index 70c1390..54e413c 100755 +--- a/tests/haproxy-proxyproto ++++ b/tests/haproxy-proxyproto +@@ -94,14 +94,14 @@ sleep 3 + + # Run clients + echo " * Getting cookie from ${ADDRESS}:${HAPORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 + fi + + echo " * Connecting to ${ADDRESS}:${HAPORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/haproxy-proxyproto-v1 b/tests/haproxy-proxyproto-v1 +index d274575..f767581 100755 +--- a/tests/haproxy-proxyproto-v1 ++++ b/tests/haproxy-proxyproto-v1 +@@ -94,14 +94,14 @@ sleep 3 + + # Run clients + echo " * Getting cookie from ${ADDRESS}:${HAPORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 + fi + + echo " * Connecting to ${ADDRESS}:${HAPORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/ipv6-iface b/tests/ipv6-iface +index d5262e5..9b78d5e 100755 +--- a/tests/ipv6-iface ++++ b/tests/ipv6-iface +@@ -70,7 +70,7 @@ ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! + wait_server $PID + + echo -n "Connecting to setup interface... " +-echo "test" | ${CMDNS1} $OPENCONNECT -q $ADDRESS:$PORT -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ++echo "test" | ${CMDNS1} $OPENCONNECT -q $ADDRESS:$PORT -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/ipv6-small-net b/tests/ipv6-small-net +index 4fc7260..c87b429 100755 +--- a/tests/ipv6-small-net ++++ b/tests/ipv6-small-net +@@ -70,7 +70,7 @@ ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! + wait_server $PID + + echo -n "Connecting to setup interface... " +-echo "test" | ${CMDNS1} $OPENCONNECT -q $ADDRESS:$PORT -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ++echo "test" | ${CMDNS1} $OPENCONNECT -q $ADDRESS:$PORT -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/json b/tests/json +index 72dd4bf..24c66d8 100755 +--- a/tests/json ++++ b/tests/json +@@ -78,7 +78,7 @@ ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! + sleep 4 + + echo " * Connecting to ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/lz4-compression b/tests/lz4-compression +index 76478cf..405b2a2 100755 +--- a/tests/lz4-compression ++++ b/tests/lz4-compression +@@ -81,14 +81,14 @@ sleep 4 + + # Run clients + echo " * Getting cookie from ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 + fi + + echo " * Connecting to ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/lzs-compression b/tests/lzs-compression +index c485df2..eef55f0 100755 +--- a/tests/lzs-compression ++++ b/tests/lzs-compression +@@ -81,14 +81,14 @@ sleep 4 + + # Run clients + echo " * Getting cookie from ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 + fi + + echo " * Connecting to ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/multiple-routes b/tests/multiple-routes +index b6cc0c5..63c7614 100755 +--- a/tests/multiple-routes ++++ b/tests/multiple-routes +@@ -39,13 +39,13 @@ PID=$! + wait_server $PID + + echo -n "Connecting to obtain cookie (with certificate)... " +-( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null ) || ++( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null ) || + fail $PID "Could not connect with certificate!" + + echo ok + + echo -n "Re-connecting to get routes... " +-timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE1} 2>&1 ++timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE1} 2>&1 + + echo ok + +diff --git a/tests/no-route-default b/tests/no-route-default +index 0c6f4f2..6cc68f0 100755 +--- a/tests/no-route-default ++++ b/tests/no-route-default +@@ -43,7 +43,7 @@ PID=$! + wait_server $PID + + echo -n "Connecting to get routes... " +-timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE} 2>&1 ++timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE} 2>&1 + + echo ok + +@@ -68,7 +68,7 @@ PID=$! + wait_server $PID + + echo -n "Connecting to get routes... " +-timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE} 2>&1 ++timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE} 2>&1 + + echo ok + +diff --git a/tests/no-route-group b/tests/no-route-group +index 59ec2f0..25cfaa6 100755 +--- a/tests/no-route-group ++++ b/tests/no-route-group +@@ -43,7 +43,7 @@ PID=$! + wait_server $PID + + echo -n "Connecting to get routes... " +-echo "test" | timeout 15s $OPENCONNECT -v localhost:$PORT --authgroup group1 -u test --passwd-on-stdin --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >${TMPFILE} 2>&1 ++echo "test" | timeout 15s $OPENCONNECT -v localhost:$PORT --authgroup group1 -u test --passwd-on-stdin --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >${TMPFILE} 2>&1 + + echo ok + +@@ -68,7 +68,7 @@ PID=$! + wait_server $PID + + echo -n "Connecting to get routes... " +-echo test | timeout 15s $OPENCONNECT -v localhost:$PORT --authgroup group1 --passwd-on-stdin -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >${TMPFILE} 2>&1 ++echo test | timeout 15s $OPENCONNECT -v localhost:$PORT --authgroup group1 --passwd-on-stdin -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >${TMPFILE} 2>&1 + + echo ok + +diff --git a/tests/ping-leases b/tests/ping-leases +index d97012e..3a43ac5 100755 +--- a/tests/ping-leases ++++ b/tests/ping-leases +@@ -52,12 +52,12 @@ fi + echo "Server started with PID $PID..." + + echo "Connecting to obtain cookie..." +-( echo "test" | $OPENCONNECT -q localhost:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) || ++( echo "test" | $OPENCONNECT -q localhost:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) || + fail $PID "Could not receive cookie from server" + + + echo "Connecting to ping lease..." +-echo "test" | timeout 10 $OPENCONNECT localhost:$PORT -u "test" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ++echo "test" | timeout 10 $OPENCONNECT localhost:$PORT -u "test" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true + + if test $? != 124;then + fail $PID "Could not connect to server" +diff --git a/tests/radius b/tests/radius +index 859671d..7bc705a 100755 +--- a/tests/radius ++++ b/tests/radius +@@ -98,21 +98,21 @@ sleep 4 + + # Run clients + echo " * Testing wrong username at ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u xxx --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u xxx --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? = 0;then + echo "Connected with incorrect username" + exit 1 + fi + + echo " * Testing wrong password at ${ADDRESS}:${PORT}..." +-( echo "xxx" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "xxx" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? = 0;then + echo "Connected with incorrect password" + exit 1 + fi + + echo " * Getting cookie from ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 +@@ -120,7 +120,7 @@ fi + + echo " * Connecting to ${ADDRESS}:${PORT} with special IP..." + USERNAME=test-arb +-( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +@@ -148,7 +148,7 @@ sleep 3 + + echo " * Connecting to ${ADDRESS}:${PORT}..." + USERNAME=test +-( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/radius-config b/tests/radius-config +index 7285091..af9d3f7 100755 +--- a/tests/radius-config ++++ b/tests/radius-config +@@ -123,7 +123,7 @@ sleep 4 + + echo " * Connecting to ${ADDRESS}:${PORT}..." + USERNAME=testtime +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/radius-group b/tests/radius-group +index 1f28cda..9b85889 100755 +--- a/tests/radius-group ++++ b/tests/radius-group +@@ -100,7 +100,7 @@ sleep 4 + + echo " * Tests the radius group functionality" + USERNAME=test-class +-( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} --authgroup group2 -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} --authgroup group2 -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +@@ -137,7 +137,7 @@ sleep 4 + + echo " * Tests the alt radius group functionality" + USERNAME=test-class +-( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} --authgroup group1 -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} --authgroup group1 -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/radius-otp b/tests/radius-otp +index 11c3907..9b4fecb 100755 +--- a/tests/radius-otp ++++ b/tests/radius-otp +@@ -111,7 +111,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do + sleep 0.5 + echo "$USERNAME-stage$COUNT" + done +-} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b >/dev/null 2>&1) ++} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b >/dev/null 2>&1) + if test $? != 0; then + echo "Could not connect to server" + exit 1 +@@ -151,7 +151,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do + sleep 0.5 + echo "$USERNAME-stage" + done +-} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) ++} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) + if test $? == 0; then + echo "Connected with wrong username" + exit 1 +@@ -173,7 +173,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do + echo "$USERNAME-stage$COUNT" + fi + done +-} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) ++} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) + if test $? == 0; then + echo "Connected with wrong OTP" + exit 1 +@@ -197,7 +197,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do + echo "$USERNAME-stage$COUNT" + fi + done +-} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) ++} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) + if test $? == 0; then + echo "Connected with wrong OTP" + exit 1 +@@ -218,7 +218,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do + echo "$USERNAME-stage$COUNT" + fi + done +-} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) ++} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) + if test $? == 0; then + echo "Connected with blank OTP" + exit 1 +@@ -247,7 +247,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do + echo "$USERNAME-stage$COUNT" + fi + done +-} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) ++} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) + if test $? == 0; then + echo "Successful connection with the number of OTP retries greater than allowed by the ban system (default 30)." + ${OCCTL} -s ${OCCTL_SOCKET} show ip ban points +@@ -265,7 +265,7 @@ for (( COUNT=1; COUNT <= 17; COUNT++ )); do + sleep 0.5 + echo "$USERNAME-stage$COUNT" + done +-} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) ++} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) + if test $? == 0; then + echo "Connected to server - MAX_CHALLENGES test failed" + exit 1 +diff --git a/tests/test-append-routes b/tests/test-append-routes +index be71d22..923d0aa 100755 +--- a/tests/test-append-routes ++++ b/tests/test-append-routes +@@ -41,7 +41,7 @@ wait_server $PID + + echo "Checking if routes are appended... " + +-timeout 15s $OPENCONNECT localhost:$PORT -v --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE1} 2>&1 ++timeout 15s $OPENCONNECT localhost:$PORT -v --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE1} 2>&1 + + echo "cat" + cat ${TMPFILE1} +diff --git a/tests/test-ban b/tests/test-ban +index eb6a874..be4695a 100755 +--- a/tests/test-ban ++++ b/tests/test-ban +@@ -59,15 +59,15 @@ ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! + sleep 4 + + echo "Connecting with wrong password 5 times... " +-echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 ++echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= + + echo "" + echo "Connecting with correct password... " +-eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` ++eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` + + if [ -n "$COOKIE" ];then + fail $PID "Obtained cookie although should have been banned" +@@ -90,7 +90,7 @@ sleep 25 + echo "" + + echo "Connecting with correct password after ban time... " +-eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` ++eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` + + if [ -z "$COOKIE" ];then + fail $PID "Could not obtain cookie even though ban should be lifted" +@@ -99,16 +99,16 @@ fi + echo "" + echo "Checking ban reset time... " + +-echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 ++echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= + sleep 11 +-echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 ++echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= + + echo "" + echo "Connecting with correct password after ban reset time... " +-eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` ++eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` + + if [ -z "$COOKIE" ];then + fail $PID "Could not obtain cookie even though ban should be lifted" +diff --git a/tests/test-ban-local b/tests/test-ban-local +index d2a4397..fbe0eb2 100755 +--- a/tests/test-ban-local ++++ b/tests/test-ban-local +@@ -60,15 +60,15 @@ ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! + sleep 4 + + echo "Connecting with wrong password 5 times... " +-echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 +-echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 ++echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ++echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= + + echo "" + echo "Connecting with correct password... " +-eval `echo "test" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` ++eval `echo "test" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` + + if [ -z "$COOKIE" ];then + fail $PID "Could not obtain cookie even though client should be exempt" +diff --git a/tests/test-cert b/tests/test-cert +index 41362aa..7967193 100755 +--- a/tests/test-cert ++++ b/tests/test-cert +@@ -49,19 +49,19 @@ PID=$! + wait_server $PID + + echo -n "Connecting to obtain cookie (without certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && + fail $PID "Connected without certificate!" + + echo "ok (failed as expected)" + + echo -n "Connecting to obtain cookie (with invalid certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-invalid.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-invalid.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && + fail $PID "Connected with invalid certificate!" + + echo "ok (failed as expected)" + + echo -n "Connecting to obtain cookie (with certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok +@@ -80,7 +80,7 @@ kill -HUP $PID + sleep 5 + + echo -n "Connecting to obtain cookie (with DER CRL)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok +@@ -99,13 +99,13 @@ kill -HUP $PID + sleep 5 + + echo -n "Connecting to obtain cookie (with revoked certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && + fail $PID "Connected with revoked certificate!" + + echo "ok (failed as expected)" + + #echo "Normal connection... " +-#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true ) || ++#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true ) || + # fail $PID "Could not connect to server" + + rm -f "${CRLNAME}" "${CRLTMPLNAME}" +diff --git a/tests/test-cert-opt-pass b/tests/test-cert-opt-pass +index 18893d3..0109ef2 100755 +--- a/tests/test-cert-opt-pass ++++ b/tests/test-cert-opt-pass +@@ -34,7 +34,7 @@ opts=$1 + pass=$2 + rm -f ${OUTFILE} + +-echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate >${OUTFILE} 2>&1 ++echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate >${OUTFILE} 2>&1 + if test $? != 0;then + cat ${OUTFILE} + return 1 +diff --git a/tests/test-client-bypass-protocol b/tests/test-client-bypass-protocol +index 09f3cb2..14cb5a5 100755 +--- a/tests/test-client-bypass-protocol ++++ b/tests/test-client-bypass-protocol +@@ -43,7 +43,7 @@ PID=$! + wait_server $PID + + echo -n "Connecting... " +-timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE} 2>&1 ++timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE} 2>&1 + + echo ok + +@@ -68,7 +68,7 @@ PID=$! + wait_server $PID + + echo -n "Reconnecting..." +-timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE} 2>&1 ++timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE} 2>&1 + + echo ok + +diff --git a/tests/test-config-per-group b/tests/test-config-per-group +index 4a8bd60..6b8929a 100755 +--- a/tests/test-config-per-group ++++ b/tests/test-config-per-group +@@ -81,7 +81,7 @@ ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & + sleep 4 + + echo " * Connecting with user NOT in group..." +-( echo "${PASSWORD}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "${PASSWORD}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +@@ -129,7 +129,7 @@ sleep 2 + USERNAME=test + PASSWORD=test + echo " * Connecting with user in group to ${ADDRESS}:${PORT}..." +-( echo "${PASSWORD}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "${PASSWORD}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/test-cookie-invalidation b/tests/test-cookie-invalidation +index 5f77afa..a6f8cea 100755 +--- a/tests/test-cookie-invalidation ++++ b/tests/test-cookie-invalidation +@@ -35,7 +35,7 @@ launch_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` ++eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` + + if [ -z "$COOKIE" ];then + fail $PID "Could not obtain cookie" +@@ -44,7 +44,7 @@ fi + #echo "Cookie: $COOKIE" + + echo "Connecting with cookie... " +-echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background >/dev/null 2>&1 ++echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background >/dev/null 2>&1 + + sleep 4 + +@@ -58,9 +58,9 @@ if test $? != 0;then + fi + + echo "Terminating and connecting again with same cookie... " +-#( echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++#( echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + # fail $PID "Could not connect to server" +-echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background >/dev/null 2>&1 ++echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background >/dev/null 2>&1 + + sleep 4 + +@@ -82,9 +82,9 @@ rm -f "${PIDFILE2}" + sleep 18 + + echo "Proper termination and connecting again with same (invalidated) cookie... " +-#( echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++#( echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + # fail $PID "Could not connect to server" +-echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background >/dev/null 2>&1 ++echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background >/dev/null 2>&1 + + sleep 4 + +diff --git a/tests/test-cookie-timeout b/tests/test-cookie-timeout +index 08081b2..b8b4dda 100755 +--- a/tests/test-cookie-timeout ++++ b/tests/test-cookie-timeout +@@ -34,7 +34,7 @@ launch_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` ++eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` + + if [ -z "$COOKIE" ];then + fail $PID "Could not obtain cookie" +@@ -44,7 +44,7 @@ fi + sleep 16 + echo "" + echo "Connecting with cookie... " +-echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE}" --background ++echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE}" --background + + sleep 4 + +@@ -59,7 +59,7 @@ rm -f "${PIDFILE}" + sleep 16 + echo "" + echo "Connecting again with cookie... " +-echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE}" --background ++echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE}" --background + + sleep 4 + +@@ -74,7 +74,7 @@ rm -f "${PIDFILE}" + sleep 16 + echo "" + echo "Connecting after forced kill with cookie... " +-echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE}" --background ++echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE}" --background + + sleep 4 + +@@ -90,7 +90,7 @@ rm -f "${PIDFILE}" + sleep 45 + echo "" + echo "Connecting with cookie after expiration... " +-echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE}" --background ++echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE}" --background + + sleep 4 + +@@ -104,7 +104,7 @@ fi + # test cookie verification after cookie verification failure. That is to verify whether + # the channel between main and sec-mod is in consistent state. + echo "Connecting (again) to obtain cookie... " +-echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 ++echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= + + if test $? != 0;then + fail $PID "Could not obtain cookie" +diff --git a/tests/test-cookie-timeout-2 b/tests/test-cookie-timeout-2 +index fbeba81..4161eb6 100755 +--- a/tests/test-cookie-timeout-2 ++++ b/tests/test-cookie-timeout-2 +@@ -33,7 +33,7 @@ launch_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` ++eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` + + if [ -z "$COOKIE" ];then + fail $PID "Could not obtain cookie" +@@ -43,7 +43,7 @@ fi + sleep 10 + echo "" + echo "Connecting with cookie... " +-echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file ${srcdir}/pid.$$ --background ++echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file ${srcdir}/pid.$$ --background + + sleep 4 + +@@ -58,7 +58,7 @@ rm -f "${srcdir}/pid2.$$" + sleep 30 + echo "" + echo "Connecting again with cookie (overriding first session)... " +-echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file ${srcdir}/pid2.$$ --background ++echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file ${srcdir}/pid2.$$ --background + + sleep 6 + +diff --git a/tests/test-enc-key b/tests/test-enc-key +index 0ca6249..5d65b62 100755 +--- a/tests/test-enc-key ++++ b/tests/test-enc-key +@@ -33,7 +33,7 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + cleanup +@@ -48,7 +48,7 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + cleanup +diff --git a/tests/test-explicit-ip b/tests/test-explicit-ip +index bfd1a9d..41d4665 100755 +--- a/tests/test-explicit-ip ++++ b/tests/test-explicit-ip +@@ -31,13 +31,13 @@ connect() + opts=$1 + pass=$2 + COOKIE='' +-eval `echo "$pass" | $OPENCONNECT -q localhost:$PORT $opts --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate` ++eval `echo "$pass" | $OPENCONNECT -q localhost:$PORT $opts --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate` + if [ -z "$COOKIE" ];then + return 1 + fi + + rm -f $TMPFILE +-echo "$pass" | $OPENCONNECT -q localhost:$PORT $opts -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file ${srcdir}/pidx >$TMPFILE 2>&1 & ++echo "$pass" | $OPENCONNECT -q localhost:$PORT $opts -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file ${srcdir}/pidx >$TMPFILE 2>&1 & + CPID=$! + + sleep 3 +diff --git a/tests/test-group-pass b/tests/test-group-pass +index 1530f43..7a78237 100755 +--- a/tests/test-group-pass ++++ b/tests/test-group-pass +@@ -33,19 +33,19 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group1 --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group1 --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group2 --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group2 --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group2 --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group2 --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + echo "Connecting to obtain cookie with wrong groupname... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group4 --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group4 --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + cleanup +diff --git a/tests/test-gssapi-opt-cert b/tests/test-gssapi-opt-cert +index 0ef2d55..5cf1105 100755 +--- a/tests/test-gssapi-opt-cert ++++ b/tests/test-gssapi-opt-cert +@@ -29,7 +29,7 @@ opts=$1 + pass=$2 + rm -f ${OUTFILE} + +-echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate >${OUTFILE} 2>&1 ++echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate >${OUTFILE} 2>&1 + if test $? != 0;then + cat ${OUTFILE} + return 1 +diff --git a/tests/test-gssapi-opt-pass b/tests/test-gssapi-opt-pass +index 8999d30..b6ebd11 100755 +--- a/tests/test-gssapi-opt-pass ++++ b/tests/test-gssapi-opt-pass +@@ -29,7 +29,7 @@ opts=$1 + pass=$2 + rm -f ${OUTFILE} + +-echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate >${OUTFILE} 2>&1 ++echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate >${OUTFILE} 2>&1 + if test $? != 0;then + cat ${OUTFILE} + return 1 +diff --git a/tests/test-iroute b/tests/test-iroute +index d7b5f52..caf0a92 100755 +--- a/tests/test-iroute ++++ b/tests/test-iroute +@@ -34,13 +34,13 @@ launch_server -d 1 -f -c "${CONFIG}" & PID=$! + wait_server $PID + + echo -n "Connecting to obtain cookie (with certificate)... " +-( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok +@@ -47,7 +47,7 @@ kill -USR2 $PID + sleep 5 + + echo -n "Connecting to obtain cookie (with certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok +@@ -58,7 +58,7 @@ kill -USR2 $PID + sleep 5 + + echo -n "Connecting to obtain cookie (with certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok +diff --git a/tests/test-max-same-1 b/tests/test-max-same-1 +index 5146483..ec19c0d 100755 +--- a/tests/test-max-same-1 ++++ b/tests/test-max-same-1 +@@ -47,7 +47,7 @@ launch_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` ++eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` + + if [ -z "$COOKIE" ];then + echo "Could not obtain cookie" +@@ -57,12 +57,12 @@ fi + #echo "Cookie: $COOKIE" + + echo "Connecting with cookie... " +-echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background ++echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background + + sleep 4 + + echo "Connecting again with same cookie... " +-echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background ++echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background + + sleep 4 + +diff --git a/tests/test-multi-cookie b/tests/test-multi-cookie +index 83c9cb5..7581f9c 100755 +--- a/tests/test-multi-cookie ++++ b/tests/test-multi-cookie +@@ -47,7 +47,7 @@ launch_server -d 1 -f -c "${CONFIG}" & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` ++eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` + + if [ -z "$COOKIE" ];then + echo "Could not obtain cookie" +@@ -57,12 +57,12 @@ fi + #echo "Cookie: $COOKIE" + + echo "Connecting with cookie... " +-echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background ++echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background + + sleep 4 + + echo "Connecting again with same cookie... " +-echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background ++echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background + + sleep 4 + +diff --git a/tests/test-multiple-client-ip b/tests/test-multiple-client-ip +index 0e799e0..76099fe 100755 +--- a/tests/test-multiple-client-ip ++++ b/tests/test-multiple-client-ip +@@ -84,14 +84,14 @@ sleep 4 + + # Run client 1 + echo " * Getting cookie from ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 + fi + + echo " * Connecting to ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +@@ -99,14 +99,14 @@ fi + + # Run client 2 + echo " * Getting cookie from ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS3} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS3} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 + fi + + echo " * Connecting to ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS3} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID2} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS3} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID2} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 +diff --git a/tests/test-namespace-listen b/tests/test-namespace-listen +index 9691b28..81c3e86 100755 +--- a/tests/test-namespace-listen ++++ b/tests/test-namespace-listen +@@ -77,7 +77,7 @@ if test $? != 0; then + fi + + echo " connecting to server" +-(echo "test" | ${CMDNS3} $OPENCONNECT $ADDRESS:$PORT -u "test" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --pid-file=${CLIPID} -b) || ++(echo "test" | ${CMDNS3} $OPENCONNECT $ADDRESS:$PORT -u "test" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --pid-file=${CLIPID} -b) || + fail $PID "could not connect to server" + sleep 5 + +diff --git a/tests/test-otp b/tests/test-otp +index 5209b0a..ed1fe94 100755 +--- a/tests/test-otp ++++ b/tests/test-otp +@@ -45,27 +45,27 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo -n "Connecting with wrong username... " +-( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u falsetest --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u falsetest --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Connected with wrong username!" + echo ok + + echo -n "Connecting with wrong OTP... " +-( echo -e "test\n999482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "test\n999482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Should not have connected with wrong OTP!" + echo ok + + echo -n "Connecting with correct password and OTP... " +-( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not connect with OTP!" + echo ok + + echo -n "Connecting with empty password and wrong OTP... " +-( echo -e "999999\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "999999\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Should have not connected with wrong OTP!" + echo ok + + echo -n "Connecting with empty password and OTP... " +-( echo -e "328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo -e "328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not connect with OTP-only!" + echo ok + +diff --git a/tests/test-otp-cert b/tests/test-otp-cert +index c8dc12c..61a71db 100755 +--- a/tests/test-otp-cert ++++ b/tests/test-otp-cert +@@ -45,22 +45,22 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo -n "Connecting to obtain cookie (without certificate)... " +-( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Connected without certificate!" + echo ok + + echo -n "Connecting to obtain cookie (with incorrect certificate)... " +-( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-wrong.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-wrong.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Should not have connected with wrong certificate!" + echo ok + + echo -n "Connecting to obtain cookie (with certificate)... " +-( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + echo ok + + echo -n "Connecting to obtain cookie (with no pass and certificate)... " +-( echo -e "328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo -e "328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + echo ok + +diff --git a/tests/test-pam b/tests/test-pam +index 8ec787a..561a140 100755 +--- a/tests/test-pam ++++ b/tests/test-pam +@@ -37,22 +37,22 @@ wait_server $PID + + echo "" + echo "Connecting with wrong password... " +-( echo -e "testuser\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "testuser\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie with wrong cred" + + echo "" + echo "Connecting with empty password... " +-( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie with wrong cred" + + echo "" + echo "Connecting with wrong username... " +-( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie with wrong cred" + + echo "" + echo "Connecting with correct password... " +-( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ||#>/dev/null 2>&1 ) || ++( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) ||#>/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + cleanup +diff --git a/tests/test-pam-noauth b/tests/test-pam-noauth +index dc8dd3d..1f67371 100755 +--- a/tests/test-pam-noauth ++++ b/tests/test-pam-noauth +@@ -35,19 +35,19 @@ launch_sr_pam_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting with correct password but no PAM user... " +-( echo -e "test\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u xtest --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "test\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u xtest --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie with non existing user" + + echo "Connecting with incorrect password (correct in PAM) and existing user... " +-( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie with non existing user" + + echo "Connecting with empty password (correct in PAM) and existing user... " +-( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie with non existing user" + + echo "Connecting with correct password and existing user... " +-( echo -e "test\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ||#>/dev/null 2>&1 ) || ++( echo -e "test\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) ||#>/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + cleanup +diff --git a/tests/test-pass b/tests/test-pass +index 9d5484a..5aaaf48 100755 +--- a/tests/test-pass ++++ b/tests/test-pass +@@ -34,39 +34,39 @@ launch_sr_server -d 1 -p ${PIDFILE} -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) || + fail $PID "Could not receive cookie from server" + + echo "Connecting to obtain cookie with wrong password... " +-( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + echo "Connecting to obtain cookie with empty password... " +-( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + echo "Connecting to obtain cookie with wrong username... " +-( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u tost --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u tost --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + # test locked account + + echo "Connecting to obtain cookie with locked account... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u locked --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u locked --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + #test special characters + + echo "Connecting to obtain cookie with special password... " +-( echo "!@#$%^&*()<>" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "!@#$%^&*()<>" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + echo "Connecting to obtain cookie with empty password... " +-( echo "" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "empty" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "empty" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + #echo "Normal connection... " +-#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true ) || ++#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true ) || + # fail $PID "Could not connect to server" + + if ! test -f ${PIDFILE};then +diff --git a/tests/test-pass-cert b/tests/test-pass-cert +index 8050788..8d284b8 100755 +--- a/tests/test-pass-cert ++++ b/tests/test-pass-cert +@@ -34,26 +34,26 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo -n "Connecting to obtain cookie (without certificate)... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Connected without certificate!" + + echo ok + + echo -n "Connecting to obtain cookie (with certificate)... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok + + echo -n "Connecting to obtain cookie (with incorrect certificate)... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-wrong.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-wrong.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Should not have connected with wrong certificate!" + + echo ok + + + #echo "Normal connection... " +-#( echo "test" | $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true ) || ++#( echo "test" | $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true ) || + # fail $PID "Could not connect to server" + + cleanup +diff --git a/tests/test-pass-group-cert b/tests/test-pass-group-cert +index ff64993..e559ac6 100755 +--- a/tests/test-pass-group-cert ++++ b/tests/test-pass-group-cert +@@ -33,37 +33,37 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo -n "Connecting to obtain cookie (without certificate)... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Connected without certificate!" + + echo ok + + echo -n "Connecting to obtain cookie - group1 (with certificate)... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok + + echo -n "Connecting to obtain cookie - DEFAULT (with certificate)... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup DEFAULT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup DEFAULT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok + + echo -n "Connecting to obtain cookie - group2 (with certificate)... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group2 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group2 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok + + echo -n "Connecting to obtain cookie - group3 (hidden) (with certificate)... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group3 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group3 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok + + echo -n "Connecting to obtain cookie - group4 (with certificate)... " +-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group4 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group4 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Got cookie when it shouldn't!" + + echo ok +diff --git a/tests/test-pass-group-cert-no-pass b/tests/test-pass-group-cert-no-pass +index bc39b45..401b24f 100755 +--- a/tests/test-pass-group-cert-no-pass ++++ b/tests/test-pass-group-cert-no-pass +@@ -33,25 +33,25 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo -n "Connecting to obtain cookie (without certificate)... " +-LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 && ++LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 && + fail $PID "Connected without certificate!" + + echo ok + + echo -n "Connecting to obtain cookie - group1 (with certificate)... " +-LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 || ++LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 || + fail $PID "Could not connect with certificate!" + + echo ok + + echo -n "Connecting to obtain cookie - group2 (with certificate)... " +-LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group2 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 || ++LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group2 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 || + fail $PID "Could not connect with certificate!" + + echo ok + + echo -n "Connecting to obtain cookie - group3 (hidden) (with certificate)... " +-LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group3 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 || ++LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group3 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 || + fail $PID "Could not connect with certificate!" + + echo ok +diff --git a/tests/test-pass-opt-cert b/tests/test-pass-opt-cert +index ac9adc1..1836538 100755 +--- a/tests/test-pass-opt-cert ++++ b/tests/test-pass-opt-cert +@@ -38,7 +38,7 @@ connect() + { + opts=$1 + pass=$2 +-echo ${pass} | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --passwd-on-stdin --authenticate >${TMPFILE} ++echo ${pass} | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --passwd-on-stdin --authenticate >${TMPFILE} + if test $? != 0;then + cat ${TMPFILE} + return 1 +diff --git a/tests/test-pass-script b/tests/test-pass-script +index 89a4094..0f18551 100755 +--- a/tests/test-pass-script ++++ b/tests/test-pass-script +@@ -67,7 +67,7 @@ launch_server -d 1 -f -c "${CONFIG}" & PID=$! + wait_server $PID + + echo " * Connecting to obtain cookie with wrong username... " +-( echo "tost" | $OPENCONNECT -q localhost:$PORT -u tost --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && ++( echo "tost" | $OPENCONNECT -q localhost:$PORT -u tost --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && + fail $PID "Received cookie when we shouldn't" + + rm -f ${builddir}/connect.ok +@@ -76,11 +76,11 @@ rm -f ${builddir}/host-update.ok + #test special characters + + echo " * Connecting to obtain cookie... " +-( echo "!@#$%^&*()<>" | $OPENCONNECT -q localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "!@#$%^&*()<>" | $OPENCONNECT -q localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + echo " * Re-connecting to force script run... " +-echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT -q --local-hostname='mylocalname' localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ++echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT -q --local-hostname='mylocalname' localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true + + TIMEOUT=5 + while ! test -f ${builddir}/disconnect.ok; do +@@ -112,7 +112,7 @@ rm -f ${builddir}/disconnect.ok + rm -f ${builddir}/host-update.ok + + echo " * Re-connecting to get cookie... " +-echo "test2" | $OPENCONNECT -q localhost:$PORT -u "test2" --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >${PARAMSFILE} ++echo "test2" | $OPENCONNECT -q localhost:$PORT -u "test2" --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >${PARAMSFILE} + if test $? != 0;then + echo "Could not connect" + cat ${PARAMSFILE} +@@ -127,7 +127,7 @@ fi + + echo " * Re-connecting to force session stealing... " + eval "$(grep COOKIE ${PARAMSFILE})" +-echo ${COOKIE}| $OPENCONNECT --local-hostname='mylocalname' localhost:$PORT -u "test2" --reconnect-timeout 0 --cookie-on-stdin --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true --pid-file=${OPIDFILE} -b ++echo ${COOKIE}| $OPENCONNECT --local-hostname='mylocalname' localhost:$PORT -u "test2" --reconnect-timeout 0 --cookie-on-stdin --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true --pid-file=${OPIDFILE} -b + + echo " - Pausing client" + TIMEOUT=4 +@@ -156,7 +156,7 @@ rm -f ${builddir}/connect.ok + rm -f ${builddir}/disconnect.ok + + echo " * Re-connecting to steal previous IP address... " +-echo ${COOKIE} | $OPENCONNECT -q --local-hostname='mylocalname' localhost:$PORT -u "test2" --reconnect-timeout 0 --cookie-on-stdin --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true --pid-file=${OPIDFILE2} -b ++echo ${COOKIE} | $OPENCONNECT -q --local-hostname='mylocalname' localhost:$PORT -u "test2" --reconnect-timeout 0 --cookie-on-stdin --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true --pid-file=${OPIDFILE2} -b + + echo " - Resuming (disconnected) client" + kill -s CONT $(cat ${OPIDFILE}) +@@ -205,7 +205,7 @@ done + sleep 5 + echo " - Check server status" + +-( echo "!@#$%^&*()<>" | $OPENCONNECT --local-hostname='mylocalname' -q localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "!@#$%^&*()<>" | $OPENCONNECT --local-hostname='mylocalname' -q localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + echo " - Killing server" +diff --git a/tests/test-replay b/tests/test-replay +index b8aa848..0533893 100755 +--- a/tests/test-replay ++++ b/tests/test-replay +@@ -60,7 +60,7 @@ launch_server -d 9999 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to obtain cookie... " +-eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` ++eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` + + if [ -z "$COOKIE" ];then + echo "Could not obtain cookie" +@@ -70,7 +70,7 @@ fi + #echo "Cookie: $COOKIE" + + echo "Connecting with cookie... " +-echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --verbose --pid-file "${PIDFILE1}" --background ++echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --verbose --pid-file "${PIDFILE1}" --background + + sleep 4 + +diff --git a/tests/test-san-cert b/tests/test-san-cert +index a5040ae..a41c331 100755 +--- a/tests/test-san-cert ++++ b/tests/test-san-cert +@@ -49,25 +49,25 @@ PID=$! + wait_server $PID + + echo -n "Connecting to obtain cookie (without certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && + fail $PID "Connected without certificate!" + + echo "ok (failed as expected)" + + echo -n "Connecting to obtain cookie (with invalid certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-invalid.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-invalid.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && + fail $PID "Connected with invalid certificate!" + + echo "ok (failed as expected)" + + echo -n "Connecting to obtain cookie (with certificate - no SAN)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && + fail $PID "Connected with invalid certificate!" + + echo "ok (failed as expected)" + + echo -n "Connecting to obtain cookie (with certificate - SAN)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-san-cert.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-san-cert.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || + fail $PID "Failed to connect with certificate!" + + echo ok +diff --git a/tests/test-script-multi-user b/tests/test-script-multi-user +index 6327a26..c0bfa3d 100755 +--- a/tests/test-script-multi-user ++++ b/tests/test-script-multi-user +@@ -47,16 +47,16 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! + wait_server $PID + + echo "Connecting to force script block... " +-echo "!@#$%^&*()<>" | timeout 60 $OPENCONNECT -q localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true & ++echo "!@#$%^&*()<>" | timeout 60 $OPENCONNECT -q localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true & + + sleep 3 + + echo "Connecting to obtain cookie... " +-( echo "${USERNAME}" | $OPENCONNECT -q localhost:$PORT -u "${USERNAME}" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || ++( echo "${USERNAME}" | $OPENCONNECT -q localhost:$PORT -u "${USERNAME}" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || + fail $PID "Could not receive cookie from server" + + echo "Connecting in background... " +-( echo "${USERNAME}" | timeout 15 $OPENCONNECT -q localhost:$PORT -u "${USERNAME}" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --background >/dev/null 2>&1 ) || ++( echo "${USERNAME}" | timeout 15 $OPENCONNECT -q localhost:$PORT -u "${USERNAME}" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --background >/dev/null 2>&1 ) || + fail $PID "Could not connect to server; probably blocked" + + sleep 3 +diff --git a/tests/test-sighup b/tests/test-sighup +index add538f..dd424e5 100755 +--- a/tests/test-sighup ++++ b/tests/test-sighup +@@ -34,7 +34,7 @@ PID=$! + wait_server $PID + + echo -n "Connecting to obtain cookie (with certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok +@@ -44,7 +44,7 @@ kill -HUP $PID + sleep 5 + + echo -n "Connecting to obtain cookie (with certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || + fail $PID "Could not connect with certificate!" + + echo ok +@@ -57,7 +57,7 @@ kill -HUP $PID + sleep 5 + + echo -n "Connecting to obtain cookie (with certificate)... " +-( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && ++( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && + fail $PID "Could not connect with certificate!" + + echo ok +diff --git a/tests/test-stress b/tests/test-stress +index 3816604..a2db96e 100755 +--- a/tests/test-stress ++++ b/tests/test-stress +@@ -33,7 +33,7 @@ run_client() { + PASS=$1; + shift; + +- ( echo $PASS | $OPENCONNECT -q $HOST -u $USER --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >/dev/null 2>&1 ) || ++ ( echo $PASS | $OPENCONNECT -q $HOST -u $USER --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >/dev/null 2>&1 ) || + echo "$USER: Could not connect to server" + } + +diff --git a/tests/test-udp-listen-host b/tests/test-udp-listen-host +index f3e6623..956938b 100755 +--- a/tests/test-udp-listen-host ++++ b/tests/test-udp-listen-host +@@ -111,7 +111,7 @@ ${CMDNS2} ${HAPROXY} -f ${HACONFIG} -d & HAPID=$! + sleep 3 + + echo " * Connecting to haproxy and using dtls ... " +-echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} --user test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${CLIPID}" --background ++echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} --user test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${CLIPID}" --background + + wait_file "${CLIPID}" 11 + +@@ -134,7 +134,7 @@ echo "restart ocsev with udp-listen-host set to 127.0.0.1" + ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG_UDP_LISTEN_LOCAL} ${DEBUG} & PID=$! + + echo " * Connecting to haproxy and using dtls again ... " +-echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} --user test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${CLIPID2}" --background ++echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} --user test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${CLIPID2}" --background + + wait_file "${CLIPID2}" 11 + +diff --git a/tests/test-user-config b/tests/test-user-config +index 1c7f518..f8573ce 100755 +--- a/tests/test-user-config ++++ b/tests/test-user-config +@@ -42,20 +42,20 @@ PID=$! + wait_server $PID + + echo -n "Connecting to obtain cookie (with certificate)... " +-( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null ) || ++( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null ) || + fail $PID "Could not connect with certificate!" + + echo ok + + echo -n "Re-connecting to force script run... " +-$OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true /dev/null & ++$OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true /dev/null & + kpid1=$! + echo ok + + sleep 2 + + echo -n "Re-connecting to check the iroutes... " +-$OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE1} 2>&1 & ++$OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE1} 2>&1 & + kpid2=$! + + echo ok +@@ -63,7 +63,7 @@ sleep 3 + + echo -n "Checking if max-same-clients is considered... " + +-timeout 15s $OPENCONNECT localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE2} 2>&1 ++timeout 15s $OPENCONNECT localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE2} 2>&1 + if test $? = 124;then + fail $PID "Max-same-clients directive was ignored" + fi +@@ -155,7 +155,7 @@ rm -f ${TMPFILE1} + rm -f ${TMPFILE2} + + echo -n "Re-connecting to check the ipv4-network... " +-$OPENCONNECT -v localhost:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-testipnet.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE1} 2>&1 & kpid3=$! ++$OPENCONNECT -v localhost:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-testipnet.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE1} 2>&1 & kpid3=$! + + echo ok + sleep 3 +diff --git a/tests/test-vhost b/tests/test-vhost +index 902f011..1a57e60 100755 +--- a/tests/test-vhost ++++ b/tests/test-vhost +@@ -62,7 +62,7 @@ PID=$! + wait_server $PID + + echo -n "Connecting to default host to obtain cookie (user without certificate)... " +-connect "default.example.com" "-u test" "test" "d66b507ae074d03b02eafca40d35f87dd81049d3" ++connect "default.example.com" "-u test" "test" "pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=" + if test $? != 0;then + fail $PID "Failed to connect with user without certificate!" + fi +@@ -111,7 +111,7 @@ fi + echo ok + + echo -n "Connecting to default host to obtain cookie (with certificate)... " +-connect "default.example.com" "-u test --sslkey ./certs/user-key.pem -c ./certs/user-cert.pem" "" "d66b507ae074d03b02eafca40d35f87dd81049d3" ++connect "default.example.com" "-u test --sslkey ./certs/user-key.pem -c ./certs/user-cert.pem" "" "pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=" + if test $? = 0;then + fail $PID "Connected to wrong host with certificate!" + fi +@@ -136,7 +136,7 @@ kill -HUP $PID + sleep 5 + + echo -n "Sanity check to default host..." +-connect "default.example.com" "-u test" "test" "d66b507ae074d03b02eafca40d35f87dd81049d3" ++connect "default.example.com" "-u test" "test" "pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=" + if test $? != 0;then + fail $PID "Failed to connect with user without certificate!" + fi +diff --git a/tests/traffic b/tests/traffic +index 3ea962f..1f0fcaf 100755 +--- a/tests/traffic ++++ b/tests/traffic +@@ -79,14 +79,14 @@ sleep 4 + + # Run clients + echo " * Getting cookie from ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) + if test $? != 0;then + echo "Could not get cookie from server" + exit 1 + fi + + echo " * Connecting to ${ADDRESS}:${PORT}..." +-( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) ++( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) + if test $? != 0;then + echo "Could not connect to server" + exit 1 diff --git a/ocserv.spec b/ocserv.spec index adc065b..bb9f61b 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,5 +1,5 @@ Version: 1.1.7 -Release: 1%{?dist} +Release: 2%{?dist} %global _hardened_build 1 %if 0%{?fedora} || 0%{?rhel} >= 7 @@ -38,6 +38,8 @@ Source8: ocserv-genkey Source9: ocserv-script Source10: gpgkey-56EE7FA9E8173B19FE86268D763712747F343FA7.gpg Source11: ocserv.init +# When removed remove the autoreconf step +Patch0: expired-certs.patch # Taken from upstream: # http://git.infradead.org/ocserv.git/commitdiff/7d70006a2dbddf783213f1856374bacc74217e09 @@ -139,6 +141,8 @@ gpgv2 --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} || gpgv2 --keyring %{SOURCE10} %endif %autosetup -p1 +# temporarily needed to apply patches +autoreconf -fvi rm -f src/http-parser/http_parser.c src/http-parser/http_parser.h %if (0%{?use_local_protobuf} == 0) @@ -272,6 +276,9 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %endif %changelog +* Thu Jun 22 2023 Nikos Mavrogiannopoulos - 1.1.7-2 +- Backported fixes for expired certificates + * Sun May 07 2023 Nikos Mavrogiannopoulos - 1.1.7-1 - Updated to 1.1.7 From 4dfb15142e87e295b5ef7e5a8ecffae29f5537e3 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 11 Jul 2023 17:12:11 +0200 Subject: [PATCH 04/35] use %autorelease and %autochangelog --- ocserv.spec | 361 +--------------------------------------------------- 1 file changed, 2 insertions(+), 359 deletions(-) diff --git a/ocserv.spec b/ocserv.spec index bb9f61b..8f2b22b 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,5 +1,5 @@ Version: 1.1.7 -Release: 2%{?dist} +Release: %autorelease %global _hardened_build 1 %if 0%{?fedora} || 0%{?rhel} >= 7 @@ -276,361 +276,4 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %endif %changelog -* Thu Jun 22 2023 Nikos Mavrogiannopoulos - 1.1.7-2 -- Backported fixes for expired certificates - -* Sun May 07 2023 Nikos Mavrogiannopoulos - 1.1.7-1 -- Updated to 1.1.7 - -* Thu Jan 19 2023 Fedora Release Engineering - 1.1.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Jul 22 2022 Fedora Release Engineering - 1.1.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Thu Feb 17 2022 Nikos Mavrogiannopoulos - 1.1.6-1 -- Updated to 1.1.6 - -* Thu Feb 10 2022 Nikos Mavrogiannopoulos - 1.1.4-3 -- Update seccomp rules to allow the futex syscall -- Workaround incompatible API change in GnuTLS 3.7.3. - -* Thu Jan 20 2022 Fedora Release Engineering - 1.1.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Sat Nov 13 2021 Nikos Mavrogiannopoulos - 1.1.4-1 -- Update to upstream 1.1.4 release - -* Sat Nov 06 2021 Adrian Reber - 1.1.3-4 -- Rebuilt for protobuf 3.19.0 - -* Tue Oct 26 2021 Adrian Reber - 1.1.3-3 -- Rebuilt for protobuf 3.18.1 - -* Thu Jul 22 2021 Fedora Release Engineering - 1.1.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jun 2 2021 Nikos Mavrogiannopoulos - 1.1.3-1 -- Updated to latest release - -* Tue Jan 26 2021 Fedora Release Engineering - 1.1.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Thu Jan 14 08:31:24 CET 2021 Adrian Reber - 1.1.2-2 -- Rebuilt for protobuf 3.14 - -* Sun Dec 6 2020 Nikos Mavrogiannopoulos - 1.1.2-1 -- Update to upstream 1.1.2 release - -* Mon Nov 23 2020 Nikos Mavrogiannopoulos - 1.1.1-5 -- Rebuilt for ronn successor - -* Wed Nov 11 2020 Nikos Mavrogiannopoulos - 1.1.1-4 -- Rebuilt for radcli 1.3.0 - -* Thu Oct 29 2020 Nikos Mavrogiannopoulos - 1.1.1-3 -- Rebuild without pcllib dependency -- Enhanced seccomp filters for tests to run in all architectures - -* Thu Sep 24 2020 Adrian Reber - 1.1.1-2 -- Rebuilt for protobuf 3.13 - -* Mon Sep 21 2020 Nikos Mavrogiannopoulos - 1.1.1-1 -- Update to upstream 1.1.1 release -- Set default priorities to NORMAL as using @SYSTEM is no longer necessary - to follow crypto policies. - -* Tue Jul 28 2020 Fedora Release Engineering - 1.1.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Sun Jun 21 2020 Adrian Reber - 1.1.0-2 -- Rebuilt for protobuf 3.12 - -* Tue Jun 16 2020 Nikos Mavrogiannopoulos - 1.1.0-1 -- Update to upstream 1.1.0 release (introduces ocserv-worker) - -* Wed Apr 15 2020 Igor Raits - 1.0.1-2 -- Rebuild for http-parser 2.9.4 - -* Thu Apr 09 2020 Nikos Mavrogiannopoulos - 1.0.1-1 -- Update to upstream 1.0.1 release - -* Fri Mar 20 2020 Nikos Mavrogiannopoulos - 1.0.0-1 -- Update to upstream 1.0.0 release - -* Wed Jan 29 2020 Fedora Release Engineering - 0.12.6-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sat Dec 28 2019 Nikos Mavrogiannopoulos - 0.12.6-1 -- Update to upstream 0.12.6 release - -* Wed Oct 16 2019 Nikos Mavrogiannopoulos - 0.12.5-1 -- Update to upstream 0.12.5 release - -* Thu Jul 25 2019 Fedora Release Engineering - 0.12.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed Jul 03 2019 Nikos Mavrogiannopoulos - 0.12.4-1 -- Update to upstream 0.12.4 release - -* Tue Mar 12 2019 Nikos Mavrogiannopoulos - 0.12.3-1 -- Update to upstream 0.12.3 release - -* Sun Feb 17 2019 Igor Gnatenko - 0.12.2-4 -- Rebuild for readline 8.0 - -* Fri Feb 01 2019 Fedora Release Engineering - 0.12.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Jan 14 2019 Björn Esser - 0.12.2-2 -- Rebuilt for libcrypt.so.2 (#1666033) - -* Thu Jan 10 2019 Nikos Mavrogiannopoulos - 0.12.2-1 -- Update to upstream 0.12.2 release - -* Tue Jul 24 2018 Nikos Mavrogiannopoulos - 0.12.1-3 -- Added gcc as build-dependency - -* Fri Jul 13 2018 Fedora Release Engineering - 0.12.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Sat May 12 2018 Nikos Mavrogiannopoulos - 0.12.1-1 -- Update to upstream 0.12.1 release - -* Mon Apr 23 2018 Nikos Mavrogiannopoulos - 0.12.0-1 -- Update to upstream 0.12.0 release - -* Thu Apr 12 2018 Nikos Mavrogiannopoulos - 0.11.11-2 -- Update to upstream 0.11.11 release -- include crypt.h to use crypt() - -* Mon Mar 05 2018 Nikos Mavrogiannopoulos - 0.11.11-1 -- Update to upstream 0.11.11 release - -* Thu Feb 08 2018 Fedora Release Engineering - 0.11.10-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sat Jan 20 2018 Björn Esser - 0.11.10-2 -- Rebuilt for switch to libxcrypt - -* Mon Jan 08 2018 Nikos Mavrogiannopoulos - 0.11.10-1 -- Update to upstream 0.11.10 release - -* Tue Nov 21 2017 Nikos Mavrogiannopoulos - 0.11.9-3 -- Update to upstream 0.11.9 release - -* Thu Nov 16 2017 Nikos Mavrogiannopoulos - 0.11.9-2 -- Do not enable libwrap - -* Tue Oct 10 2017 Nikos Mavrogiannopoulos - 0.11.9-1 -- Update to upstream 0.11.9 release - -* Thu Aug 03 2017 Fedora Release Engineering - 0.11.8-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 0.11.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Wed May 03 2017 Nikos Mavrogiannopoulos - 0.11.8-1 -- Update to upstream 0.11.8 release - -* Mon Feb 13 2017 Nikos Mavrogiannopoulos - 0.11.7-1 -- Update to upstream 0.11.7 release - -* Sat Feb 11 2017 Fedora Release Engineering - 0.11.6-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Jan 12 2017 Igor Gnatenko - 0.11.6-3 -- Rebuild for readline 7.x - -* Tue Nov 15 2016 Nikos Mavrogiannopoulos - 0.11.6-2 -- Removed gpgkeys from sources - -* Tue Nov 15 2016 Nikos Mavrogiannopoulos - 0.11.6-1 -- New upstream release - -* Wed Sep 14 2016 Nikos Mavrogiannopoulos - 0.11.4-3 -- Added getrandom to the list of allowed syscalls (#1375851) - -* Thu Sep 8 2016 Nikos Mavrogiannopoulos - 0.11.4-2 -- Rebuild to address http-parser breakage (#1374081) - -* Fri Aug 5 2016 Nikos Mavrogiannopoulos - 0.11.4-1 -- New upstream release - -* Thu Jun 16 2016 Nikos Mavrogiannopoulos - 0.11.3-1 -- New upstream release - -* Tue Apr 26 2016 Nikos Mavrogiannopoulos - 0.11.2-1 -- New upstream release -- Added automatic verification of signature during build - -* Mon Mar 21 2016 Nikos Mavrogiannopoulos - 0.11.1-1 -- new upstream release - -* Fri Feb 19 2016 Nikos Mavrogiannopoulos - 0.11.0-1 -- new upstream release - -* Thu Feb 04 2016 Fedora Release Engineering - 0.10.11-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Mon Jan 11 2016 Nikos Mavrogiannopoulos - 0.10.11-1 -- new upstream release - -* Mon Nov 30 2015 Nikos Mavrogiannopoulos - 0.10.10-1 -- new upstream release - -* Thu Oct 8 2015 Nikos Mavrogiannopoulos - 0.10.9-1 -- new upstream release (#1269479) - -* Thu Sep 17 2015 Nikos Mavrogiannopoulos - 0.10.8-2 -- compile ocserv using radcli - -* Mon Sep 7 2015 Nikos Mavrogiannopoulos - 0.10.8-1 -- new upstream release (#1260327) - -* Fri Aug 7 2015 Nikos Mavrogiannopoulos - 0.10.7-1 -- new upstream release (#1251305) - -* Thu Jul 9 2015 Nikos Mavrogiannopoulos - 0.10.6-2 -- corrected JSON output - -* Thu Jul 2 2015 Nikos Mavrogiannopoulos - 0.10.6-1 -- new upstream release (#1238499) - -* Wed Jun 17 2015 Fedora Release Engineering - 0.10.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Mon May 25 2015 Nikos Mavrogiannopoulos - 0.10.5-1 -- new upstream release (#1215326) - -* Mon Apr 27 2015 Nikos Mavrogiannopoulos - 0.10.4-1 -- new upstream release - -* Mon Mar 30 2015 Nikos Mavrogiannopoulos - 0.10.2-1 -- new upstream release - -* Mon Mar 16 2015 Nikos Mavrogiannopoulos - 0.10.1-1 -- new upstream release - -* Wed Mar 11 2015 Nikos Mavrogiannopoulos - 0.10.0-1 -- new upstream release - -* Wed Feb 18 2015 Nikos Mavrogiannopoulos - 0.9.2-1 -- new upstream release -- enabled lz4 compression - -* Mon Feb 16 2015 Peter Robinson 0.9.1-2 -- aarch64 (and ARMv7) now has seccomp support - -* Mon Feb 16 2015 Nikos Mavrogiannopoulos - 0.9.1-1 -- new upstream release - -* Thu Jan 29 2015 Nikos Mavrogiannopoulos - 0.9.0-2 -- only enable seccomp in x86-64. It seems to be broken in x86: - http://sourceforge.net/p/libseccomp/mailman/message/33275762/ - -* Thu Jan 22 2015 Nikos Mavrogiannopoulos - 0.9.0-1 -- new upstream release - -* Fri Jan 9 2015 Nikos Mavrogiannopoulos - 0.8.9-4 -- enable PIE - -* Tue Jan 6 2015 Nikos Mavrogiannopoulos - 0.8.9-3 -- Comply with system-wide crypto policies (#1179332) - -* Mon Jan 5 2015 Nikos Mavrogiannopoulos - 0.8.9-2 -- ocserv.service: depend on network-online.target (#1178760) -- enable seccomp (on platforms it is available) - -* Thu Dec 11 2014 Nikos Mavrogiannopoulos - 0.8.9-1 -- New upstream release - -* Wed Nov 26 2014 Nikos Mavrogiannopoulos - 0.8.8-1 -- New upstream release - -* Mon Oct 27 2014 Nikos Mavrogiannopoulos - 0.8.7-1 -- New upstream release - -* Tue Sep 09 2014 Nikos Mavrogiannopoulos - 0.8.4-2 -- Ship a default ocserv-script, which will put connecting clients - into the internal firewall zone. - -* Thu Aug 28 2014 Nikos Mavrogiannopoulos - 0.8.4-1 -- New upstream release - -* Sun Aug 17 2014 Fedora Release Engineering - 0.8.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Fri Aug 08 2014 Nikos Mavrogiannopoulos - 0.8.2-3 -- Rebuilt - -* Tue Aug 05 2014 Nikos Mavrogiannopoulos - 0.8.2-2 -- Rebuilt for new protobuf-c - -* Mon Jul 28 2014 Nikos Mavrogiannopoulos - 0.8.2-1 -- New upstream release - -* Mon Jun 30 2014 Nikos Mavrogiannopoulos - 0.8.1-1 -- New upstream release - -* Fri Jun 06 2014 Nikos Mavrogiannopoulos - 0.8.0-2 -- Generate certificates and private keys before the first run -- Corrected chroot path - -* Mon Jun 02 2014 Nikos Mavrogiannopoulos - 0.8.0-1 -- New upstream release - -* Mon May 26 2014 Nikos Mavrogiannopoulos - 0.8.0pre0-1 -- New upstream release - -* Fri May 09 2014 Nikos Mavrogiannopoulos - 0.3.5-1 -- New upstream release - -* Fri May 02 2014 Nikos Mavrogiannopoulos - 0.3.4-1 -- New upstream release - -* Thu Apr 10 2014 Nikos Mavrogiannopoulos - 0.3.3-1 -- New upstream release - -* Fri Mar 14 2014 Nikos Mavrogiannopoulos - 0.3.2-1 -- New upstream release - -* Mon Feb 17 2014 Nikos Mavrogiannopoulos - 0.3.1-2 -- new upstream release - -* Wed Jan 29 2014 Nikos Mavrogiannopoulos - 0.3.0-2 -- Generated certificates no longer carry an expiration date. - -* Mon Jan 27 2014 Nikos Mavrogiannopoulos - 0.3.0-1 -- Updated to latest upstream version (0.3.0). -- Certificates and private keys are auto-generated. - -* Mon Dec 16 2013 Nikos Mavrogiannopoulos - 0.2.3-1 -- Updated to latest upstream version (0.2.3). -- Corrected the chroot directory in config file. - -* Fri Dec 6 2013 Nikos Mavrogiannopoulos - 0.2.1-6 -- Added exception for the bundling of CCAN components. - -* Wed Nov 13 2013 Nikos Mavrogiannopoulos - 0.2.1-5 -- Updated the way PACKAGE-LICENSING is handled. - -* Tue Nov 12 2013 Nikos Mavrogiannopoulos - 0.2.1-4 -- Replaced gnulib's GPLv3+ license with GPLv2+. According to - http://lists.gnu.org/archive/html/bug-gnulib/2013-11/msg00062.html - it was a gnulib bug. -- Reduced the number of applicable licenses by upgrading LGPLv2+ - components to GPLv2+. -- Added PACKAGE-LICENSING. - -* Mon Nov 11 2013 Nikos Mavrogiannopoulos - 0.2.1-3 -- Updated spec to add http-parser and pcllib as dependencies. -- Bundled library files are removed. -- Updated license information. - -* Fri Nov 8 2013 Nikos Mavrogiannopoulos - 0.2.1-2 -- Updated spec to account improvements suggested by Alec Leamas. - -* Thu Nov 7 2013 Nikos Mavrogiannopoulos - 0.2.1-1 -- Initial version of the package +%autochangelog From a9ef7caf17d80eee2b090c456a32080925c1d54f Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 11 Jul 2023 17:31:45 +0200 Subject: [PATCH 05/35] Updated to 1.2.0 --- .gitignore | 2 + expired-certs.patch | 2308 ------------------------------------------- ocserv.conf | 138 ++- ocserv.spec | 14 +- sources | 4 +- 5 files changed, 115 insertions(+), 2351 deletions(-) delete mode 100644 expired-certs.patch diff --git a/.gitignore b/.gitignore index 1435b3a..2113177 100644 --- a/.gitignore +++ b/.gitignore @@ -239,3 +239,5 @@ /ocserv-1.1.6.tar.xz /ocserv-1.1.7.tar.xz /ocserv-1.1.7.tar.xz.sig +/ocserv-1.2.0.tar.xz +/ocserv-1.2.0.tar.xz.sig diff --git a/expired-certs.patch b/expired-certs.patch deleted file mode 100644 index 443bd7b..0000000 --- a/expired-certs.patch +++ /dev/null @@ -1,2308 +0,0 @@ -diff --git a/tests/Makefile.am b/tests/Makefile.am -index d965eae..ecc417c 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -44,7 +44,8 @@ EXTRA_DIST = certs/ca-key.pem certs/ca.pem ns.sh common.sh certs/server-cert.pem - data/disconnect-user2.config data/ping-leases.config data/haproxy-proxyproto.config \ - data/haproxy-proxyproto.cfg scripts/proxy-connectscript data/haproxy-proxyproto-v1.config \ - data/haproxy-proxyproto-v1.cfg scripts/proxy-connectscript-v1 data/test-multiple-client-ip.config \ -- data/test-client-bypass-protocol.config asan.supp -+ data/test-client-bypass-protocol.config asan.supp certs/ca.tmpl certs/server-cert.tmpl \ -+ certs/user-cert.tmpl - - xfail_scripts = - dist_check_SCRIPTS = ocpasswd-test -@@ -176,6 +177,25 @@ gen_oidc_test_data_CPPFLAGS = $(AM_CPPFLAGS) - gen_oidc_test_data_SOURCES = generate_oidc_test_data.c - gen_oidc_test_data_LDADD = $(LDADD) $(CJOSE_LIBS) $(JANSSON_LIBS) - -+certs/ca.pem: certs/ca-key.pem certs/ca.tmpl -+ certtool --generate-self-signed --template certs/ca.tmpl --load-privkey certs/ca-key.pem --outfile certs/ca.pem -+ -+certs/server-cert-ca.pem: certs/ca.pem certs/server-cert.pem -+ cat certs/server-cert.pem certs/ca.pem > certs/server-cert-ca.pem -+ -+certs/server-cert.pem: certs/server-cert.tmpl certs/ca.pem certs/server-key.pem certs/ca-key.pem -+ certtool --generate-certificate --template certs/server-cert.tmpl --load-privkey certs/server-key.pem --load-ca-certificate certs/ca.pem --load-ca-privkey certs/ca-key.pem --outfile certs/server-cert.pem -+ -+certs/user-cert.pem: certs/user-cert.tmpl certs/ca.pem certs/user-key.pem certs/ca-key.pem -+ certtool --generate-certificate --template certs/user-cert.tmpl --load-privkey certs/user-key.pem --load-ca-certificate certs/ca.pem --load-ca-privkey certs/ca-key.pem --outfile certs/user-cert.pem -+ -+# make the user certificate invalid by signing it with another CA -+certs/user-cert-invalid.pem: certs/user-cert.tmpl -+ certtool --generate-privkey --outfile ca-key.tmp -+ certtool --generate-self-signed --template certs/ca.tmpl --load-privkey ca-key.tmp --outfile ca.tmp -+ certtool --generate-certificate --template certs/user-cert.tmpl --load-privkey certs/user-key.pem --load-ca-certificate ca.tmp --load-ca-privkey ca-key.tmp --outfile certs/user-cert-invalid.pem -+ rm -f ca-key.tmp ca.tmp -+ - if ENABLE_OIDC_AUTH_TESTS - check_PROGRAMS += gen_oidc_test_data - dist_check_SCRIPTS += test-oidc -diff --git a/tests/apple-ios b/tests/apple-ios -index 897d823..45b0cd3 100755 ---- a/tests/apple-ios -+++ b/tests/apple-ios -@@ -54,11 +54,11 @@ wait_server $PID - sleep 2 - - echo " * Connecting to obtain cookie... " --( echo "!@#$%^&*()<>" | $OPENCONNECT localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null ) || -+( echo "!@#$%^&*()<>" | $OPENCONNECT localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null ) || - fail $PID "Could not receive cookie from server" - - echo " * Re-connect to force script run with platform... " --echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT --verbose localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >${TMPFILE} 2>&1 -+echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT --verbose localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >${TMPFILE} 2>&1 - - sleep 5 - -@@ -87,7 +87,7 @@ fi - rm -f ${TMPFILE} - - echo " * Re-connecting to force script run with user agent... " --echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT --verbose --useragent="Cisco AnyConnect VPN Agent for Apple" localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >${TMPFILE} 2>&1 -+echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT --verbose --useragent="Cisco AnyConnect VPN Agent for Apple" localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >${TMPFILE} 2>&1 - - sleep 5 - -@@ -114,7 +114,7 @@ fi - sleep 5 - echo " - Check server status" - --( echo "!@#$%^&*()<>" | $OPENCONNECT localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "!@#$%^&*()<>" | $OPENCONNECT localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - echo " - Killing server" -diff --git a/tests/banner b/tests/banner -index 44954e2..08f8f19 100755 ---- a/tests/banner -+++ b/tests/banner -@@ -50,7 +50,7 @@ wait_server $PID - sleep 3 - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >${TMPFILE} 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >${TMPFILE} 2>&1 ) || - fail $PID "Could not receive cookie from server" - - grep "${BANNER}" ${TMPFILE} >/dev/null -@@ -61,7 +61,7 @@ if test $? != 0;then - fi - - echo "Connecting to obtain cookie with wrong password... " --( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >${TMPFILE} 2>&1 ) && -+( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >${TMPFILE} 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - grep "${BANNER}" ${TMPFILE} >/dev/null -diff --git a/tests/certs/ca-key.pem b/tests/certs/ca-key.pem -index 9bd0754..ee5599c 100644 ---- a/tests/certs/ca-key.pem -+++ b/tests/certs/ca-key.pem -@@ -31,25 +31,3 @@ y1hvTfWRAoGZALNT3AbF9EDnJmZlS30MWtBggw83UhszC8XN2tY30AsvsDOS6a0F - UVhyNvBTKo6lPqXqUsVxp16TKeeQKF+DuYuuNZN3pXXsHTiHkRMDCRVEqz7UnZEc - /Bq/Kh2aOkelkX2S27QzTZGL - -----END RSA PRIVATE KEY----- -------BEGIN CERTIFICATE----- --MIIDtDCCAmygAwIBAgIETeC0yjANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDEw5H --bnVUTFMgVGVzdCBDQTAeFw0xMTA1MjgwODM5MzlaFw0zODEwMTIwODM5NDBaMC8x --LTArBgNVBAMTJEdudVRMUyBUZXN0IFNlcnZlciAoUlNBIGNlcnRpZmljYXRlKTCC --AVIwDQYJKoZIhvcNAQEBBQADggE/ADCCAToCggExALRrJ5glr8H/HsqwfvTYvO1D --hmdUXdq0HsKQX4M8AhH8E3KFsoikZUELdl8jvoqf/nlLczsux0s8vxbJl1U1F/Oh --ckswwuAnlBLzVgDmzoJLEV2kHpv6+rkbKk0Ytbql5gzHqKihbaqIhNyWDrJsHDWq --58eUPfnVx8KiDUuzbnr3CF/FCc0Vkxr3mN8qTGaJJO0f0BZjgWWlWDuhzSVim5mB --VAgXGOx8LwiiOyhXMp0XRwqG+2KxQZnm+96o6iB+8xvuuuqaIWQpkvKtc+UZBZ03 --U+IRnxhfIrriiw0AjJ4vp4c9QL5KoqWSCAwuYcBYfJqZ4dasgzklzz4b7eujbZ3L --xTjewcdumzQUvjA+gpAeuUqaduTvMwxGojFy9sNhC/iqZ4n0peV2N6Epn4B5qnUC --AwEAAaOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDAT --BgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBR2 --B1hM6rUp9S2ABoyDSoINCeyT3jAfBgNVHSMEGDAWgBRNVrdqAFjxZ5L0pnVVG45T --AQPvzzANBgkqhkiG9w0BAQsFAAOCATEAdNWmTsh5uIfngyhOWwm7pK2+vgUMY8nH --gMoMFHt0yuxuImcUMXu3LRS1dZSoCJACBpTFGi/Dg2U0qvOHQcEmc3OwNqHB90R3 --LG5jUSCtq/bYW7h/6Gd9KeWCgZczaHbQ9IPTjLH1dLswVPt+fXKB6Eh0ggSrGATE --/wRZT/XgDCW8t4C+2+TmJ8ZEzvU87KAPQ9rUBS1+p3EUAR/FfMApApsEig1IZ+ZD --5joaGBW7zh1H0B9mEKidRvD7yuRJyzAcvD25nT15NLW0QR3dEeXosLc720xxJl1h --h8NJ7YOvn323mOjR9er4i4D6iJlXmJ8tvN9vakCankWvBzb7plFn2sfMQqICFpRc --w075D8hdQxfpGffL2tEeKSgjyNHXS7x3dFhUpN3IQjUi2x4f2e/ZXg== -------END CERTIFICATE----- -diff --git a/tests/certs/ca.pem b/tests/certs/ca.pem -index c4058ee..02f0b76 100644 ---- a/tests/certs/ca.pem -+++ b/tests/certs/ca.pem -@@ -1,20 +1,20 @@ - -----BEGIN CERTIFICATE----- --MIIDPzCCAfegAwIBAgIEUdguzDANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD --QTAiGA8yMDEzMDcwNjE0NTA1MloYDzIwMjMwNTE1MTQ1MDUyWjANMQswCQYDVQQD --EwJDQTCCAVIwDQYJKoZIhvcNAQEBBQADggE/ADCCAToCggExALRrJ5glr8H/Hsqw --fvTYvO1DhmdUXdq0HsKQX4M8AhH8E3KFsoikZUELdl8jvoqf/nlLczsux0s8vxbJ --l1U1F/OhckswwuAnlBLzVgDmzoJLEV2kHpv6+rkbKk0Ytbql5gzHqKihbaqIhNyW --DrJsHDWq58eUPfnVx8KiDUuzbnr3CF/FCc0Vkxr3mN8qTGaJJO0f0BZjgWWlWDuh --zSVim5mBVAgXGOx8LwiiOyhXMp0XRwqG+2KxQZnm+96o6iB+8xvuuuqaIWQpkvKt --c+UZBZ03U+IRnxhfIrriiw0AjJ4vp4c9QL5KoqWSCAwuYcBYfJqZ4dasgzklzz4b --7eujbZ3LxTjewcdumzQUvjA+gpAeuUqaduTvMwxGojFy9sNhC/iqZ4n0peV2N6Ep --n4B5qnUCAwEAAaNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwQA --MB0GA1UdDgQWBBRIIzRTCokxOEpa6sq20qbezh0rGDANBgkqhkiG9w0BAQsFAAOC --ATEAa1kdd8E1PkM06Isw0S/thEll0rAYsNHwSX17IDUWocTTQlmVXBXcvLqM04QT --z7WNG4eushLhRpSn8LJQkf4RgvAxOMIjHM9troDbPVoec6k8fZrJ8jfXurOgoOVP --g+hScT3VDvxgiOVwgXSe2XBryGDaviRuSOHlfy5GPVirLJLZwpcX6RpsHMX9rrZX --ghvf8dwm4To9H5wT0Le2FnZRoLOTMmpr49bfKJqy/U7AUHaf4saSdkdEIaGOxkPk --x+SFlr9TjavnJvL0TApkvfNZ1aOVHRHINgaFYHQJ4U0jQ/g7lPmD+UtZWnvSMNXH --yct5cKOyP4j7Kla1sKPs+oamOQ7pR1Z/GwBxe48FvO7VDi7EkugLwlzoXC2G+4Jg --fJbi9Ui2FmXEeKkX34f1ONNj9Q== -+MIIDPDCCAfSgAwIBAgIEUdguzDANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD -+QTAgFw0xMzAyMTMxNTMyMTJaGA85OTk5MTIzMTIzNTk1OVowDTELMAkGA1UEAxMC -+Q0EwggFSMA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQC0ayeYJa/B/x7KsH70 -+2LztQ4ZnVF3atB7CkF+DPAIR/BNyhbKIpGVBC3ZfI76Kn/55S3M7LsdLPL8WyZdV -+NRfzoXJLMMLgJ5QS81YA5s6CSxFdpB6b+vq5GypNGLW6peYMx6iooW2qiITclg6y -+bBw1qufHlD351cfCog1Ls2569whfxQnNFZMa95jfKkxmiSTtH9AWY4FlpVg7oc0l -+YpuZgVQIFxjsfC8IojsoVzKdF0cKhvtisUGZ5vveqOogfvMb7rrqmiFkKZLyrXPl -+GQWdN1PiEZ8YXyK64osNAIyeL6eHPUC+SqKlkggMLmHAWHyameHWrIM5Jc8+G+3r -+o22dy8U43sHHbps0FL4wPoKQHrlKmnbk7zMMRqIxcvbDYQv4qmeJ9KXldjehKZ+A -+eap1AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMB0G -+A1UdDgQWBBRIIzRTCokxOEpa6sq20qbezh0rGDANBgkqhkiG9w0BAQsFAAOCATEA -+foqPGdiyJYHih4J5YHwFPQxmkOzPHSa13K/q8sDvobE+HFTzrlTbAFC8bS38Bv2f -+9ZrPME4JvnsGdRGYwxS3LUmNdHHWR8LkvGXBE3u/TZsJfPtOR8JwdulQXpRw7hhL -+ew/mR5IEHZrUZgnnI4dg1kJhE1JPTvmtgqcE1CsikVQ14NvG/ehJbJyPgKTq/Zxm -+Ru4B5N+Jef/LaOqZvK4xK8x2ZaZ/L/ANou+7EY4DoWAkOEEoCU8DQHLAFgf6B7La -+oemLQGNHcBpba81jlS5EXXGJccOvfbw0MJTP3ZvyVIlEYu/X4roC7EJP/UkCZUJG -+f79Nc28q2/2D8tuFOqG7UbP7r2cWSa8OO3cI/V1W1k3iWZ63WltqDwFC0c8iqYFL -+9xKfQ96Q7wrYOCjmuaCLbw== - -----END CERTIFICATE----- -diff --git a/tests/certs/ca.tmpl b/tests/certs/ca.tmpl -new file mode 100644 -index 0000000..da5cc3f ---- /dev/null -+++ b/tests/certs/ca.tmpl -@@ -0,0 +1,6 @@ -+cn = CA -+ca -+cert_signing_key -+expiration_days = -1 -+activation_date = "2013-02-13 16:32:12" -+serial = 0x51d82ecc -diff --git a/tests/certs/server-cert-ca.pem b/tests/certs/server-cert-ca.pem -index 818101a..8ffaad3 100644 ---- a/tests/certs/server-cert-ca.pem -+++ b/tests/certs/server-cert-ca.pem -@@ -1,42 +1,42 @@ - -----BEGIN CERTIFICATE----- --MIIDkTCCAkmgAwIBAgIEUdgu8DANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD --QTAiGA8yMDEzMDcwNjE0NTEyOVoYDzIwMjMwNTE1MTQ1MTI5WjAUMRIwEAYDVQQD --Ewlsb2NhbGhvc3QwggFSMA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQCnOivs --PxSwLBn28W6QHb+OqfbpcIQJh/NQ81/DlFD6LGTWV4BY4Zb87tC9BBV+X3+lM/j8 --u5HvN3nDWtv4Ge0DryLW6Tcs6FPCt4srEfCkh5l54LrMmWbhFgkVlN5fTqoY0lnd --YJx2X8WWldRjeL+8E7nFUcFStWrgi9AzgMFrjsL4pql97YAZRXcMoQXVjbRmzVLZ --IVumQy7c+tl7Eqz8lx/xS/5Fx9tIRunqNS5jEUs8Nn5E6FvraAcy+eI0gXTGk759 --KNPYisSqAuFAmmt/XDTTvvOo6dpAseXqtR2/LjZJWOlXdiZ/yjHg5+RKQ5dt3dk5 --7lAIWER9egIOo/+GAkyek0ZJ5GWU6VxTsFcIl6oy3S7EtB0NCIM7hvhy32QrJ5ZU --yNncTSf6qMVoedgdAgMBAAGjgY0wgYowDAYDVR0TAQH/BAIwADAUBgNVHREEDTAL --gglsb2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0PAQH/BAUDAweg --ADAdBgNVHQ4EFgQUqCVH9o9E1jUb72ys0de5boT536MwHwYDVR0jBBgwFoAUSCM0 --UwqJMThKWurKttKm3s4dKxgwDQYJKoZIhvcNAQELBQADggExAK7dBCSwM/OJw+6s --9MJAb7Ygi9xhHSq30Hg3M7DaPC7J9rZB6+IAVb3poOZAtDDtyTqvXH7qY5UMjJC9 --GsFmHPI/OSk2xuJJpG+ZJaP54b7kzTtUD6UCHETsgBk2aNuqNhjXR2fYnR9QME0C --zZWIDV+5DFEBI97ln30N6PcXvIxp7Rsac3qwzvwt3zL+23kTwgM+DoRPoPO0PHr/ --eQ9hvRU5wA2Vc47zhUXIFy1Jmx7Sf//pw0/wq46VUAjDZ5B09EoCpzBNvOD7P+cF --FQQ7SId8h8OQ2uOWxT2baeJX0pVbVv+qwOOB1F0q3sjx0dZa/2rxOUZ3wnHG9j8j --LZSUkZxGpPQffCSpSPma5RhYff8/BncdA8soT0dyEfXIX5V91IXnrlI8XZrADvJM --zzJKdNg= -+MIIDjjCCAkagAwIBAgIEUdgu8DANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD -+QTAgFw0xMzA2MDYxMjUxMjlaGA85OTk5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJ -+bG9jYWxob3N0MIIBUjANBgkqhkiG9w0BAQEFAAOCAT8AMIIBOgKCATEApzor7D8U -+sCwZ9vFukB2/jqn26XCECYfzUPNfw5RQ+ixk1leAWOGW/O7QvQQVfl9/pTP4/LuR -+7zd5w1rb+BntA68i1uk3LOhTwreLKxHwpIeZeeC6zJlm4RYJFZTeX06qGNJZ3WCc -+dl/FlpXUY3i/vBO5xVHBUrVq4IvQM4DBa47C+Kapfe2AGUV3DKEF1Y20Zs1S2SFb -+pkMu3PrZexKs/Jcf8Uv+RcfbSEbp6jUuYxFLPDZ+ROhb62gHMvniNIF0xpO+fSjT -+2IrEqgLhQJprf1w0077zqOnaQLHl6rUdvy42SVjpV3Ymf8ox4OfkSkOXbd3ZOe5Q -+CFhEfXoCDqP/hgJMnpNGSeRllOlcU7BXCJeqMt0uxLQdDQiDO4b4ct9kKyeWVMjZ -+3E0n+qjFaHnYHQIDAQABo4GMMIGJMAwGA1UdEwEB/wQCMAAwFAYDVR0RBA0wC4IJ -+bG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMA4GA1UdDwEB/wQEAwIFoDAd -+BgNVHQ4EFgQUqCVH9o9E1jUb72ys0de5boT536MwHwYDVR0jBBgwFoAUSCM0UwqJ -+MThKWurKttKm3s4dKxgwDQYJKoZIhvcNAQELBQADggExAGQoUMiZVg6+Ibj8kyfq -+l/vfu4QxlUlqAbm/b9PVdOLrhz+T986HMFhL0b2HUGg5Mb0NZcgHjH4VLkei4AIb -+g/1nGdJ2I6EcLiQOvO4h2F3CoU6HkEGVEUXFaBd19tSDm7aM+2h7oPb3Vs3YT9QE -+x7ejmVeA+Qr9+H9xHyModpA1PkKRW31TOYtjUXHdHObT1uar++C1JLHn49ooKDZM -+5p9a4ExQVYd6WMRXKC83py1V4Ne5kBxC/l+3QkVZnMwByChySP7SEMa9yGv4KFM9 -+FT7XvxQsrkqPi5bCllUyGDrVeyTpyPDrb4BKgAu/Cy4tyDxLzBTZ5TXDH7E1IBps -+g1k5llFIyGdO5vQrX8vF61tqK5DBhgVvwu0k/m2lP9esLfaF7I5oGAbUKGhRr8mE -+xs8= - -----END CERTIFICATE----- - -----BEGIN CERTIFICATE----- --MIIDPzCCAfegAwIBAgIEUdguzDANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD --QTAiGA8yMDEzMDcwNjE0NTA1MloYDzIwMjMwNTE1MTQ1MDUyWjANMQswCQYDVQQD --EwJDQTCCAVIwDQYJKoZIhvcNAQEBBQADggE/ADCCAToCggExALRrJ5glr8H/Hsqw --fvTYvO1DhmdUXdq0HsKQX4M8AhH8E3KFsoikZUELdl8jvoqf/nlLczsux0s8vxbJ --l1U1F/OhckswwuAnlBLzVgDmzoJLEV2kHpv6+rkbKk0Ytbql5gzHqKihbaqIhNyW --DrJsHDWq58eUPfnVx8KiDUuzbnr3CF/FCc0Vkxr3mN8qTGaJJO0f0BZjgWWlWDuh --zSVim5mBVAgXGOx8LwiiOyhXMp0XRwqG+2KxQZnm+96o6iB+8xvuuuqaIWQpkvKt --c+UZBZ03U+IRnxhfIrriiw0AjJ4vp4c9QL5KoqWSCAwuYcBYfJqZ4dasgzklzz4b --7eujbZ3LxTjewcdumzQUvjA+gpAeuUqaduTvMwxGojFy9sNhC/iqZ4n0peV2N6Ep --n4B5qnUCAwEAAaNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwQA --MB0GA1UdDgQWBBRIIzRTCokxOEpa6sq20qbezh0rGDANBgkqhkiG9w0BAQsFAAOC --ATEAa1kdd8E1PkM06Isw0S/thEll0rAYsNHwSX17IDUWocTTQlmVXBXcvLqM04QT --z7WNG4eushLhRpSn8LJQkf4RgvAxOMIjHM9troDbPVoec6k8fZrJ8jfXurOgoOVP --g+hScT3VDvxgiOVwgXSe2XBryGDaviRuSOHlfy5GPVirLJLZwpcX6RpsHMX9rrZX --ghvf8dwm4To9H5wT0Le2FnZRoLOTMmpr49bfKJqy/U7AUHaf4saSdkdEIaGOxkPk --x+SFlr9TjavnJvL0TApkvfNZ1aOVHRHINgaFYHQJ4U0jQ/g7lPmD+UtZWnvSMNXH --yct5cKOyP4j7Kla1sKPs+oamOQ7pR1Z/GwBxe48FvO7VDi7EkugLwlzoXC2G+4Jg --fJbi9Ui2FmXEeKkX34f1ONNj9Q== -+MIIDPDCCAfSgAwIBAgIEUdguzDANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD -+QTAgFw0xMzAyMTMxNTMyMTJaGA85OTk5MTIzMTIzNTk1OVowDTELMAkGA1UEAxMC -+Q0EwggFSMA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQC0ayeYJa/B/x7KsH70 -+2LztQ4ZnVF3atB7CkF+DPAIR/BNyhbKIpGVBC3ZfI76Kn/55S3M7LsdLPL8WyZdV -+NRfzoXJLMMLgJ5QS81YA5s6CSxFdpB6b+vq5GypNGLW6peYMx6iooW2qiITclg6y -+bBw1qufHlD351cfCog1Ls2569whfxQnNFZMa95jfKkxmiSTtH9AWY4FlpVg7oc0l -+YpuZgVQIFxjsfC8IojsoVzKdF0cKhvtisUGZ5vveqOogfvMb7rrqmiFkKZLyrXPl -+GQWdN1PiEZ8YXyK64osNAIyeL6eHPUC+SqKlkggMLmHAWHyameHWrIM5Jc8+G+3r -+o22dy8U43sHHbps0FL4wPoKQHrlKmnbk7zMMRqIxcvbDYQv4qmeJ9KXldjehKZ+A -+eap1AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMB0G -+A1UdDgQWBBRIIzRTCokxOEpa6sq20qbezh0rGDANBgkqhkiG9w0BAQsFAAOCATEA -+foqPGdiyJYHih4J5YHwFPQxmkOzPHSa13K/q8sDvobE+HFTzrlTbAFC8bS38Bv2f -+9ZrPME4JvnsGdRGYwxS3LUmNdHHWR8LkvGXBE3u/TZsJfPtOR8JwdulQXpRw7hhL -+ew/mR5IEHZrUZgnnI4dg1kJhE1JPTvmtgqcE1CsikVQ14NvG/ehJbJyPgKTq/Zxm -+Ru4B5N+Jef/LaOqZvK4xK8x2ZaZ/L/ANou+7EY4DoWAkOEEoCU8DQHLAFgf6B7La -+oemLQGNHcBpba81jlS5EXXGJccOvfbw0MJTP3ZvyVIlEYu/X4roC7EJP/UkCZUJG -+f79Nc28q2/2D8tuFOqG7UbP7r2cWSa8OO3cI/V1W1k3iWZ63WltqDwFC0c8iqYFL -+9xKfQ96Q7wrYOCjmuaCLbw== - -----END CERTIFICATE----- -diff --git a/tests/certs/server-cert.pem b/tests/certs/server-cert.pem -index 4acde02..b304b47 100644 ---- a/tests/certs/server-cert.pem -+++ b/tests/certs/server-cert.pem -@@ -1,22 +1,22 @@ - -----BEGIN CERTIFICATE----- --MIIDkTCCAkmgAwIBAgIEUdgu8DANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD --QTAiGA8yMDEzMDcwNjE0NTEyOVoYDzIwMjMwNTE1MTQ1MTI5WjAUMRIwEAYDVQQD --Ewlsb2NhbGhvc3QwggFSMA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQCnOivs --PxSwLBn28W6QHb+OqfbpcIQJh/NQ81/DlFD6LGTWV4BY4Zb87tC9BBV+X3+lM/j8 --u5HvN3nDWtv4Ge0DryLW6Tcs6FPCt4srEfCkh5l54LrMmWbhFgkVlN5fTqoY0lnd --YJx2X8WWldRjeL+8E7nFUcFStWrgi9AzgMFrjsL4pql97YAZRXcMoQXVjbRmzVLZ --IVumQy7c+tl7Eqz8lx/xS/5Fx9tIRunqNS5jEUs8Nn5E6FvraAcy+eI0gXTGk759 --KNPYisSqAuFAmmt/XDTTvvOo6dpAseXqtR2/LjZJWOlXdiZ/yjHg5+RKQ5dt3dk5 --7lAIWER9egIOo/+GAkyek0ZJ5GWU6VxTsFcIl6oy3S7EtB0NCIM7hvhy32QrJ5ZU --yNncTSf6qMVoedgdAgMBAAGjgY0wgYowDAYDVR0TAQH/BAIwADAUBgNVHREEDTAL --gglsb2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0PAQH/BAUDAweg --ADAdBgNVHQ4EFgQUqCVH9o9E1jUb72ys0de5boT536MwHwYDVR0jBBgwFoAUSCM0 --UwqJMThKWurKttKm3s4dKxgwDQYJKoZIhvcNAQELBQADggExAK7dBCSwM/OJw+6s --9MJAb7Ygi9xhHSq30Hg3M7DaPC7J9rZB6+IAVb3poOZAtDDtyTqvXH7qY5UMjJC9 --GsFmHPI/OSk2xuJJpG+ZJaP54b7kzTtUD6UCHETsgBk2aNuqNhjXR2fYnR9QME0C --zZWIDV+5DFEBI97ln30N6PcXvIxp7Rsac3qwzvwt3zL+23kTwgM+DoRPoPO0PHr/ --eQ9hvRU5wA2Vc47zhUXIFy1Jmx7Sf//pw0/wq46VUAjDZ5B09EoCpzBNvOD7P+cF --FQQ7SId8h8OQ2uOWxT2baeJX0pVbVv+qwOOB1F0q3sjx0dZa/2rxOUZ3wnHG9j8j --LZSUkZxGpPQffCSpSPma5RhYff8/BncdA8soT0dyEfXIX5V91IXnrlI8XZrADvJM --zzJKdNg= -+MIIDjjCCAkagAwIBAgIEUdgu8DANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJD -+QTAgFw0xMzA2MDYxMjUxMjlaGA85OTk5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJ -+bG9jYWxob3N0MIIBUjANBgkqhkiG9w0BAQEFAAOCAT8AMIIBOgKCATEApzor7D8U -+sCwZ9vFukB2/jqn26XCECYfzUPNfw5RQ+ixk1leAWOGW/O7QvQQVfl9/pTP4/LuR -+7zd5w1rb+BntA68i1uk3LOhTwreLKxHwpIeZeeC6zJlm4RYJFZTeX06qGNJZ3WCc -+dl/FlpXUY3i/vBO5xVHBUrVq4IvQM4DBa47C+Kapfe2AGUV3DKEF1Y20Zs1S2SFb -+pkMu3PrZexKs/Jcf8Uv+RcfbSEbp6jUuYxFLPDZ+ROhb62gHMvniNIF0xpO+fSjT -+2IrEqgLhQJprf1w0077zqOnaQLHl6rUdvy42SVjpV3Ymf8ox4OfkSkOXbd3ZOe5Q -+CFhEfXoCDqP/hgJMnpNGSeRllOlcU7BXCJeqMt0uxLQdDQiDO4b4ct9kKyeWVMjZ -+3E0n+qjFaHnYHQIDAQABo4GMMIGJMAwGA1UdEwEB/wQCMAAwFAYDVR0RBA0wC4IJ -+bG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMA4GA1UdDwEB/wQEAwIFoDAd -+BgNVHQ4EFgQUqCVH9o9E1jUb72ys0de5boT536MwHwYDVR0jBBgwFoAUSCM0UwqJ -+MThKWurKttKm3s4dKxgwDQYJKoZIhvcNAQELBQADggExAGQoUMiZVg6+Ibj8kyfq -+l/vfu4QxlUlqAbm/b9PVdOLrhz+T986HMFhL0b2HUGg5Mb0NZcgHjH4VLkei4AIb -+g/1nGdJ2I6EcLiQOvO4h2F3CoU6HkEGVEUXFaBd19tSDm7aM+2h7oPb3Vs3YT9QE -+x7ejmVeA+Qr9+H9xHyModpA1PkKRW31TOYtjUXHdHObT1uar++C1JLHn49ooKDZM -+5p9a4ExQVYd6WMRXKC83py1V4Ne5kBxC/l+3QkVZnMwByChySP7SEMa9yGv4KFM9 -+FT7XvxQsrkqPi5bCllUyGDrVeyTpyPDrb4BKgAu/Cy4tyDxLzBTZ5TXDH7E1IBps -+g1k5llFIyGdO5vQrX8vF61tqK5DBhgVvwu0k/m2lP9esLfaF7I5oGAbUKGhRr8mE -+xs8= - -----END CERTIFICATE----- -diff --git a/tests/certs/server-cert.tmpl b/tests/certs/server-cert.tmpl -new file mode 100644 -index 0000000..82e34ca ---- /dev/null -+++ b/tests/certs/server-cert.tmpl -@@ -0,0 +1,8 @@ -+cn = localhost -+dns_name = localhost -+tls_www_server -+signing_key -+encryption_key -+expiration_days = -1 -+activation_date = "2013-06-06 14:51:29" -+serial = 0x51d82ef0 -diff --git a/tests/certs/user-cert-invalid.pem b/tests/certs/user-cert-invalid.pem -index 0175bdf..4f5dd96 100644 ---- a/tests/certs/user-cert-invalid.pem -+++ b/tests/certs/user-cert-invalid.pem -@@ -1,107 +1,23 @@ --X.509 Certificate Information: -- Version: 3 -- Serial Number (hex): 51d82f14 -- Issuer: CN=CA -- Validity: -- Not Before: Sat Jul 06 14:52:05 UTC 2013 -- Not After: Mon May 15 14:52:05 UTC 2023 -- Subject: CN=A user,UID=test -- Subject Public Key Algorithm: RSA -- Algorithm Security Level: Medium (2432 bits) -- Modulus (bits 2432): -- 00:ab:54:98:fc:a9:c6:15:95:9d:a6:c1:94:84:94:91 -- 79:1e:78:db:2d:48:51:99:65:01:02:c0:40:52:49:5d -- eb:70:bc:26:ef:68:39:1e:04:91:e2:db:cb:6f:93:40 -- 45:1e:22:8e:71:5a:58:89:28:79:5e:1a:32:25:3e:8b -- 9d:3b:34:7f:19:f8:d0:2f:37:b7:62:32:b7:53:a5:43 -- 2c:c5:5d:ec:ac:f9:35:fa:14:2b:34:66:f1:d6:a7:a1 -- d0:83:9a:56:f4:19:83:bc:bf:11:74:30:2d:a8:28:5b -- a2:ab:7a:c6:cd:9c:5c:f8:51:e9:a9:0c:48:db:71:bb -- b1:34:77:f7:ee:de:5d:78:c0:48:0a:37:0d:65:1e:3b -- 2b:14:03:89:72:f2:52:ed:5f:00:c5:06:60:ea:80:20 -- d0:43:ec:66:bc:d2:26:db:f0:29:3e:6a:f9:62:20:be -- 58:26:44:ba:d7:8c:6f:76:a6:05:20:e4:98:b7:c4:72 -- 7a:5d:df:4f:0d:23:ec:2e:9c:71:ec:30:f9:14:5f:c8 -- 75:0b:ab:67:f6:7d:fb:4d:76:64:4a:a5:d5:fa:b4:08 -- 50:9d:13:c7:8f:c2:79:b0:b4:3e:2f:89:d3:33:27:4d -- 9f:8b:d3:60:24:07:ab:b2:72:3d:29:a5:c4:4a:ec:3c -- 04:d2:49:3e:26:1b:ec:7a:10:3d:ca:45:5a:80:8b:4d -- 2a:96:63:4f:2d:63:28:0f:3b:47:47:ca:7c:2c:15:41 -- 32:d5:e0:c9:be:a5:55:2c:b3:6b:46:2a:56:b1:1b:ed -- 29 -- Exponent (bits 24): -- 01:00:01 -- Extensions: -- Basic Constraints (critical): -- Certificate Authority (CA): FALSE -- Key Purpose (not critical): -- TLS WWW Client. -- Key Usage (critical): -- Digital signature. -- Key encipherment. -- Subject Key Identifier (not critical): -- 8b01094b3b91ece321b91dec8d6b4c5d9e40805e -- Authority Key Identifier (not critical): -- 482334530a8931384a5aeacab6d2a6dece1d2b18 -- Signature Algorithm: RSA-SHA256 -- Signature: -- 6b:bd:e2:90:d7:11:cf:6c:0d:e3:bd:f4:61:cd:57:83 -- 41:be:2a:92:46:dd:fa:44:6c:60:1c:ef:3e:1e:2f:e1 -- e2:5b:45:88:6a:1e:50:2d:8d:96:c4:c7:80:75:59:7b -- 54:6b:fb:86:b0:f1:6d:45:09:db:48:de:20:0a:87:60 -- 30:5e:35:f0:52:c4:55:44:c1:ff:e1:7c:3d:d6:6d:58 -- ca:1c:fd:bf:04:9a:9b:10:35:05:fc:d1:01:3c:af:bb -- 64:31:5e:59:8f:ef:6f:0d:35:e5:c0:07:77:0e:31:20 -- 8e:e3:2e:f1:a6:4d:f1:be:85:5b:df:04:48:9d:8c:c9 -- c9:c1:b8:e3:e2:d2:4b:55:83:e9:d8:7b:71:2f:8e:89 -- fc:4d:a7:f1:b0:bf:47:9b:97:c4:85:dd:c3:3d:38:15 -- 36:08:73:10:87:08:f6:e6:1c:4e:29:a8:a5:f5:24:b8 -- 0d:e9:d9:b8:19:27:1d:73:35:fe:7b:81:1f:4a:81:6a -- 93:cd:a2:71:d7:60:0e:08:ee:ea:c8:2b:44:1b:e4:45 -- 6c:fe:44:68:d6:86:ad:89:4f:7e:9f:f9:1a:2a:97:0f -- 6b:eb:5d:6e:38:b3:5b:13:b9:e3:4a:10:32:5b:dc:a9 -- b4:a1:4e:b3:f9:4f:91:de:bc:cc:36:91:44:ba:e0:34 -- 74:f7:68:b4:7b:0e:db:4e:ec:28:03:01:cf:0a:63:c4 -- 23:75:0b:4b:41:9d:e0:68:b3:cb:bf:b5:5c:3d:52:93 -- 20:ba:ea:b8:f0:8c:f7:a6:ec:cd:a3:aa:4f:2a:ff:20 --Other Information: -- SHA1 fingerprint: -- 5509a76b8738216938cdb3ec25048812737170de -- SHA256 fingerprint: -- c93e38ef35f1a9c485a27b161e708f2d45bf8768eb53a23fec841a8f35d6e478 -- Public Key ID: -- 8b01094b3b91ece321b91dec8d6b4c5d9e40805e -- Public key's random art: -- +--[ RSA 2432]----+ -- | o=o | -- |..oE.. | -- |.+=.o | -- |o.*.... | -- | * B +..S | -- |. * o oo . | -- | o . . . | -- | + | -- | . | -- +-----------------+ -- - -----BEGIN CERTIFICATE----- --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 - -----END CERTIFICATE----- -diff --git a/tests/certs/user-cert.pem b/tests/certs/user-cert.pem -index ef5114c..32ab235 100644 ---- a/tests/certs/user-cert.pem -+++ b/tests/certs/user-cert.pem -@@ -1,21 +1,21 @@ - -----BEGIN CERTIFICATE----- --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 - -----END CERTIFICATE----- -diff --git a/tests/certs/user-cert.tmpl b/tests/certs/user-cert.tmpl -new file mode 100644 -index 0000000..6a60496 ---- /dev/null -+++ b/tests/certs/user-cert.tmpl -@@ -0,0 +1,7 @@ -+dn = "uid=test,cn=A user" -+tls_www_client -+signing_key -+encryption_key -+expiration_days = -1 -+activation_date = "2013-06-06 14:51:29" -+serial = 0x51d82f14 -diff --git a/tests/cipher-common.sh b/tests/cipher-common.sh -index fb9e2ac..07443a0 100755 ---- a/tests/cipher-common.sh -+++ b/tests/cipher-common.sh -@@ -91,14 +91,14 @@ fi - - # Run clients - echo " * Getting cookie from ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 ${CSTR} --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ${CSTR} --cookieonly ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 - fi - - echo " * Connecting to ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 ${CSTR} -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= ${CSTR} -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/disconnect-user b/tests/disconnect-user -index 67a016e..bf4c7ab 100755 ---- a/tests/disconnect-user -+++ b/tests/disconnect-user -@@ -77,7 +77,7 @@ sleep 3 - - # Run clients - echo " * Getting cookie from ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate >${TMPFILE} ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate >${TMPFILE} ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 -@@ -85,7 +85,7 @@ fi - - eval $(cat ${TMPFILE}) - echo " * Connecting to ${ADDRESS}:${PORT}..." --( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) -+( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -@@ -105,7 +105,7 @@ if test $? != 0;then - fi - - echo " * Re-connecting to obtain cookie after disconnect... " --( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) -+( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) - if test $? = 0;then - echo "Succeeded using the cookie to connect" - exit 1 -diff --git a/tests/disconnect-user2 b/tests/disconnect-user2 -index ef8c3c1..e00cc67 100755 ---- a/tests/disconnect-user2 -+++ b/tests/disconnect-user2 -@@ -75,7 +75,7 @@ sleep 3 - - # Run clients - echo " * Getting cookie from ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate >${TMPFILE} ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate >${TMPFILE} ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 -@@ -83,7 +83,7 @@ fi - - eval $(cat ${TMPFILE}) - echo " * Connecting to ${ADDRESS}:${PORT}..." --( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) -+( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -@@ -103,7 +103,7 @@ if test $? != 0;then - fi - - echo " * Re-connecting to obtain cookie after disconnect... " --( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) -+( ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${PORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script -C "${COOKIE}" --pid-file=${CLIPID} -b ) - if test $? = 0;then - echo "Succeeded using the cookie to connect" - exit 1 -diff --git a/tests/drain-server b/tests/drain-server -index be51cd4..808067f 100755 ---- a/tests/drain-server -+++ b/tests/drain-server -@@ -35,7 +35,7 @@ launch_sr_server -d 1 -p ${PIDFILE} -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) || - fail $PID "Could not receive cookie from server" - - if ! test -f ${PIDFILE};then -@@ -48,7 +48,7 @@ kill -15 $(cat $PIDFILE) - sleep 1 - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) && -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) && - fail $PID "Server is still listening" - - wait -diff --git a/tests/drain-server-fail b/tests/drain-server-fail -index d61106e..a2c495d 100755 ---- a/tests/drain-server-fail -+++ b/tests/drain-server-fail -@@ -48,7 +48,7 @@ launch_simple_sr_server -d 3 -p ${PIDFILE} -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) || - fail $PID "Could not receive cookie from server" - - if ! test -f ${PIDFILE};then -diff --git a/tests/flowcontrol b/tests/flowcontrol -index fb60f67..7ef6b70 100755 ---- a/tests/flowcontrol -+++ b/tests/flowcontrol -@@ -37,39 +37,39 @@ launch_sr_server -d 1 -p ${PIDFILE} -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) || - fail $PID "Could not receive cookie from server" - - echo "Connecting to obtain cookie with wrong password... " --( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - echo "Connecting to obtain cookie with empty password... " --( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - echo "Connecting to obtain cookie with wrong username... " --( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u tost --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u tost --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - # test locked account - - echo "Connecting to obtain cookie with locked account... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u locked --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u locked --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - #test special characters - - echo "Connecting to obtain cookie with special password... " --( echo "!@#$%^&*()<>" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "!@#$%^&*()<>" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - echo "Connecting to obtain cookie with empty password... " --( echo "" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "empty" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "empty" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - #echo "Normal connection... " --#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true ) || -+#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true ) || - # fail $PID "Could not connect to server" - - if ! test -f ${PIDFILE};then -diff --git a/tests/haproxy-auth b/tests/haproxy-auth -index b653714..5261860 100755 ---- a/tests/haproxy-auth -+++ b/tests/haproxy-auth -@@ -51,7 +51,7 @@ LD_PRELOAD=libsocket_wrapper.so:libuid_wrapper.so UID_WRAPPER=1 UID_WRAPPER_ROOT - wait_server ${HAPID} - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - kill ${HAPID} - fail ${PID} "Could not receive cookie from server" -@@ -66,7 +66,7 @@ LD_PRELOAD=libsocket_wrapper.so:libuid_wrapper.so UID_WRAPPER=1 UID_WRAPPER_ROOT - wait_server ${HAPID} - - echo "Re-connecting to obtain cookie after haproxy restart... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - kill ${HAPID} - fail ${PID} "Could not receive cookie from server" -diff --git a/tests/haproxy-connect b/tests/haproxy-connect -index c42b76c..662c08f 100755 ---- a/tests/haproxy-connect -+++ b/tests/haproxy-connect -@@ -91,14 +91,14 @@ sleep 3 - - # Run clients - echo " * Getting cookie from ${ADDRESS}:${HAPORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 - fi - - echo " * Connecting to ${ADDRESS}:${HAPORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -@@ -135,7 +135,7 @@ set +e - sleep 3 - - echo " * Re-connecting to obtain cookie after haproxy restart... " --( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - echo "Could not receive cookie from server on reconnection" - exit 1 -diff --git a/tests/haproxy-proxyproto b/tests/haproxy-proxyproto -index 70c1390..54e413c 100755 ---- a/tests/haproxy-proxyproto -+++ b/tests/haproxy-proxyproto -@@ -94,14 +94,14 @@ sleep 3 - - # Run clients - echo " * Getting cookie from ${ADDRESS}:${HAPORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 - fi - - echo " * Connecting to ${ADDRESS}:${HAPORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/haproxy-proxyproto-v1 b/tests/haproxy-proxyproto-v1 -index d274575..f767581 100755 ---- a/tests/haproxy-proxyproto-v1 -+++ b/tests/haproxy-proxyproto-v1 -@@ -94,14 +94,14 @@ sleep 3 - - # Run clients - echo " * Getting cookie from ${ADDRESS}:${HAPORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 - fi - - echo " * Connecting to ${ADDRESS}:${HAPORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} -q ${ADDRESS}:${HAPORT} -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/ipv6-iface b/tests/ipv6-iface -index d5262e5..9b78d5e 100755 ---- a/tests/ipv6-iface -+++ b/tests/ipv6-iface -@@ -70,7 +70,7 @@ ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! - wait_server $PID - - echo -n "Connecting to setup interface... " --echo "test" | ${CMDNS1} $OPENCONNECT -q $ADDRESS:$PORT -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b -+echo "test" | ${CMDNS1} $OPENCONNECT -q $ADDRESS:$PORT -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/ipv6-small-net b/tests/ipv6-small-net -index 4fc7260..c87b429 100755 ---- a/tests/ipv6-small-net -+++ b/tests/ipv6-small-net -@@ -70,7 +70,7 @@ ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! - wait_server $PID - - echo -n "Connecting to setup interface... " --echo "test" | ${CMDNS1} $OPENCONNECT -q $ADDRESS:$PORT -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b -+echo "test" | ${CMDNS1} $OPENCONNECT -q $ADDRESS:$PORT -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/json b/tests/json -index 72dd4bf..24c66d8 100755 ---- a/tests/json -+++ b/tests/json -@@ -78,7 +78,7 @@ ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! - sleep 4 - - echo " * Connecting to ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/lz4-compression b/tests/lz4-compression -index 76478cf..405b2a2 100755 ---- a/tests/lz4-compression -+++ b/tests/lz4-compression -@@ -81,14 +81,14 @@ sleep 4 - - # Run clients - echo " * Getting cookie from ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 - fi - - echo " * Connecting to ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/lzs-compression b/tests/lzs-compression -index c485df2..eef55f0 100755 ---- a/tests/lzs-compression -+++ b/tests/lzs-compression -@@ -81,14 +81,14 @@ sleep 4 - - # Run clients - echo " * Getting cookie from ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 - fi - - echo " * Connecting to ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/multiple-routes b/tests/multiple-routes -index b6cc0c5..63c7614 100755 ---- a/tests/multiple-routes -+++ b/tests/multiple-routes -@@ -39,13 +39,13 @@ PID=$! - wait_server $PID - - echo -n "Connecting to obtain cookie (with certificate)... " --( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null ) || -+( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null ) || - fail $PID "Could not connect with certificate!" - - echo ok - - echo -n "Re-connecting to get routes... " --timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE1} 2>&1 -+timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE1} 2>&1 - - echo ok - -diff --git a/tests/no-route-default b/tests/no-route-default -index 0c6f4f2..6cc68f0 100755 ---- a/tests/no-route-default -+++ b/tests/no-route-default -@@ -43,7 +43,7 @@ PID=$! - wait_server $PID - - echo -n "Connecting to get routes... " --timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE} 2>&1 -+timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE} 2>&1 - - echo ok - -@@ -68,7 +68,7 @@ PID=$! - wait_server $PID - - echo -n "Connecting to get routes... " --timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE} 2>&1 -+timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE} 2>&1 - - echo ok - -diff --git a/tests/no-route-group b/tests/no-route-group -index 59ec2f0..25cfaa6 100755 ---- a/tests/no-route-group -+++ b/tests/no-route-group -@@ -43,7 +43,7 @@ PID=$! - wait_server $PID - - echo -n "Connecting to get routes... " --echo "test" | timeout 15s $OPENCONNECT -v localhost:$PORT --authgroup group1 -u test --passwd-on-stdin --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >${TMPFILE} 2>&1 -+echo "test" | timeout 15s $OPENCONNECT -v localhost:$PORT --authgroup group1 -u test --passwd-on-stdin --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >${TMPFILE} 2>&1 - - echo ok - -@@ -68,7 +68,7 @@ PID=$! - wait_server $PID - - echo -n "Connecting to get routes... " --echo test | timeout 15s $OPENCONNECT -v localhost:$PORT --authgroup group1 --passwd-on-stdin -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >${TMPFILE} 2>&1 -+echo test | timeout 15s $OPENCONNECT -v localhost:$PORT --authgroup group1 --passwd-on-stdin -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >${TMPFILE} 2>&1 - - echo ok - -diff --git a/tests/ping-leases b/tests/ping-leases -index d97012e..3a43ac5 100755 ---- a/tests/ping-leases -+++ b/tests/ping-leases -@@ -52,12 +52,12 @@ fi - echo "Server started with PID $PID..." - - echo "Connecting to obtain cookie..." --( echo "test" | $OPENCONNECT -q localhost:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) || -+( echo "test" | $OPENCONNECT -q localhost:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) || - fail $PID "Could not receive cookie from server" - - - echo "Connecting to ping lease..." --echo "test" | timeout 10 $OPENCONNECT localhost:$PORT -u "test" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true -+echo "test" | timeout 10 $OPENCONNECT localhost:$PORT -u "test" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true - - if test $? != 124;then - fail $PID "Could not connect to server" -diff --git a/tests/radius b/tests/radius -index 859671d..7bc705a 100755 ---- a/tests/radius -+++ b/tests/radius -@@ -98,21 +98,21 @@ sleep 4 - - # Run clients - echo " * Testing wrong username at ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u xxx --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u xxx --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? = 0;then - echo "Connected with incorrect username" - exit 1 - fi - - echo " * Testing wrong password at ${ADDRESS}:${PORT}..." --( echo "xxx" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "xxx" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? = 0;then - echo "Connected with incorrect password" - exit 1 - fi - - echo " * Getting cookie from ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 -@@ -120,7 +120,7 @@ fi - - echo " * Connecting to ${ADDRESS}:${PORT} with special IP..." - USERNAME=test-arb --( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -@@ -148,7 +148,7 @@ sleep 3 - - echo " * Connecting to ${ADDRESS}:${PORT}..." - USERNAME=test --( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/radius-config b/tests/radius-config -index 7285091..af9d3f7 100755 ---- a/tests/radius-config -+++ b/tests/radius-config -@@ -123,7 +123,7 @@ sleep 4 - - echo " * Connecting to ${ADDRESS}:${PORT}..." - USERNAME=testtime --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/radius-group b/tests/radius-group -index 1f28cda..9b85889 100755 ---- a/tests/radius-group -+++ b/tests/radius-group -@@ -100,7 +100,7 @@ sleep 4 - - echo " * Tests the radius group functionality" - USERNAME=test-class --( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} --authgroup group2 -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} --authgroup group2 -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -@@ -137,7 +137,7 @@ sleep 4 - - echo " * Tests the alt radius group functionality" - USERNAME=test-class --( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} --authgroup group1 -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "${USERNAME}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} --authgroup group1 -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/radius-otp b/tests/radius-otp -index 11c3907..9b4fecb 100755 ---- a/tests/radius-otp -+++ b/tests/radius-otp -@@ -111,7 +111,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do - sleep 0.5 - echo "$USERNAME-stage$COUNT" - done --} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b >/dev/null 2>&1) -+} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b >/dev/null 2>&1) - if test $? != 0; then - echo "Could not connect to server" - exit 1 -@@ -151,7 +151,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do - sleep 0.5 - echo "$USERNAME-stage" - done --} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) -+} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) - if test $? == 0; then - echo "Connected with wrong username" - exit 1 -@@ -173,7 +173,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do - echo "$USERNAME-stage$COUNT" - fi - done --} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) -+} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) - if test $? == 0; then - echo "Connected with wrong OTP" - exit 1 -@@ -197,7 +197,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do - echo "$USERNAME-stage$COUNT" - fi - done --} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) -+} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) - if test $? == 0; then - echo "Connected with wrong OTP" - exit 1 -@@ -218,7 +218,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do - echo "$USERNAME-stage$COUNT" - fi - done --} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) -+} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) - if test $? == 0; then - echo "Connected with blank OTP" - exit 1 -@@ -247,7 +247,7 @@ for (( COUNT=1; COUNT <= 3; COUNT++ )); do - echo "$USERNAME-stage$COUNT" - fi - done --} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) -+} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) - if test $? == 0; then - echo "Successful connection with the number of OTP retries greater than allowed by the ban system (default 30)." - ${OCCTL} -s ${OCCTL_SOCKET} show ip ban points -@@ -265,7 +265,7 @@ for (( COUNT=1; COUNT <= 17; COUNT++ )); do - sleep 0.5 - echo "$USERNAME-stage$COUNT" - done --} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) -+} | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} -b --cookieonly >/dev/null 2>&1) - if test $? == 0; then - echo "Connected to server - MAX_CHALLENGES test failed" - exit 1 -diff --git a/tests/test-append-routes b/tests/test-append-routes -index be71d22..923d0aa 100755 ---- a/tests/test-append-routes -+++ b/tests/test-append-routes -@@ -41,7 +41,7 @@ wait_server $PID - - echo "Checking if routes are appended... " - --timeout 15s $OPENCONNECT localhost:$PORT -v --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE1} 2>&1 -+timeout 15s $OPENCONNECT localhost:$PORT -v --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE1} 2>&1 - - echo "cat" - cat ${TMPFILE1} -diff --git a/tests/test-ban b/tests/test-ban -index eb6a874..be4695a 100755 ---- a/tests/test-ban -+++ b/tests/test-ban -@@ -59,15 +59,15 @@ ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! - sleep 4 - - echo "Connecting with wrong password 5 times... " --echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -+echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= - - echo "" - echo "Connecting with correct password... " --eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` -+eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` - - if [ -n "$COOKIE" ];then - fail $PID "Obtained cookie although should have been banned" -@@ -90,7 +90,7 @@ sleep 25 - echo "" - - echo "Connecting with correct password after ban time... " --eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` -+eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` - - if [ -z "$COOKIE" ];then - fail $PID "Could not obtain cookie even though ban should be lifted" -@@ -99,16 +99,16 @@ fi - echo "" - echo "Checking ban reset time... " - --echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -+echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= - sleep 11 --echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -+echo "notest" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= - - echo "" - echo "Connecting with correct password after ban reset time... " --eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` -+eval `echo "test" | ${CMDNS1} ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` - - if [ -z "$COOKIE" ];then - fail $PID "Could not obtain cookie even though ban should be lifted" -diff --git a/tests/test-ban-local b/tests/test-ban-local -index d2a4397..fbe0eb2 100755 ---- a/tests/test-ban-local -+++ b/tests/test-ban-local -@@ -60,15 +60,15 @@ ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! - sleep 4 - - echo "Connecting with wrong password 5 times... " --echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -+echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -+echo "notest" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= - - echo "" - echo "Connecting with correct password... " --eval `echo "test" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` -+eval `echo "test" | ${OPENCONNECT} --passwd-on-stdin -q ${ADDRESS}:${PORT} -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` - - if [ -z "$COOKIE" ];then - fail $PID "Could not obtain cookie even though client should be exempt" -diff --git a/tests/test-cert b/tests/test-cert -index 41362aa..7967193 100755 ---- a/tests/test-cert -+++ b/tests/test-cert -@@ -49,19 +49,19 @@ PID=$! - wait_server $PID - - echo -n "Connecting to obtain cookie (without certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && - fail $PID "Connected without certificate!" - - echo "ok (failed as expected)" - - echo -n "Connecting to obtain cookie (with invalid certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-invalid.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-invalid.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && - fail $PID "Connected with invalid certificate!" - - echo "ok (failed as expected)" - - echo -n "Connecting to obtain cookie (with certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok -@@ -80,7 +80,7 @@ kill -HUP $PID - sleep 5 - - echo -n "Connecting to obtain cookie (with DER CRL)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok -@@ -99,13 +99,13 @@ kill -HUP $PID - sleep 5 - - echo -n "Connecting to obtain cookie (with revoked certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && - fail $PID "Connected with revoked certificate!" - - echo "ok (failed as expected)" - - #echo "Normal connection... " --#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true ) || -+#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true ) || - # fail $PID "Could not connect to server" - - rm -f "${CRLNAME}" "${CRLTMPLNAME}" -diff --git a/tests/test-cert-opt-pass b/tests/test-cert-opt-pass -index 18893d3..0109ef2 100755 ---- a/tests/test-cert-opt-pass -+++ b/tests/test-cert-opt-pass -@@ -34,7 +34,7 @@ opts=$1 - pass=$2 - rm -f ${OUTFILE} - --echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate >${OUTFILE} 2>&1 -+echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate >${OUTFILE} 2>&1 - if test $? != 0;then - cat ${OUTFILE} - return 1 -diff --git a/tests/test-client-bypass-protocol b/tests/test-client-bypass-protocol -index 09f3cb2..14cb5a5 100755 ---- a/tests/test-client-bypass-protocol -+++ b/tests/test-client-bypass-protocol -@@ -43,7 +43,7 @@ PID=$! - wait_server $PID - - echo -n "Connecting... " --timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE} 2>&1 -+timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE} 2>&1 - - echo ok - -@@ -68,7 +68,7 @@ PID=$! - wait_server $PID - - echo -n "Reconnecting..." --timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE} 2>&1 -+timeout 15s $OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE} 2>&1 - - echo ok - -diff --git a/tests/test-config-per-group b/tests/test-config-per-group -index 4a8bd60..6b8929a 100755 ---- a/tests/test-config-per-group -+++ b/tests/test-config-per-group -@@ -81,7 +81,7 @@ ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & - sleep 4 - - echo " * Connecting with user NOT in group..." --( echo "${PASSWORD}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "${PASSWORD}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -@@ -129,7 +129,7 @@ sleep 2 - USERNAME=test - PASSWORD=test - echo " * Connecting with user in group to ${ADDRESS}:${PORT}..." --( echo "${PASSWORD}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "${PASSWORD}" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/test-cookie-invalidation b/tests/test-cookie-invalidation -index 5f77afa..a6f8cea 100755 ---- a/tests/test-cookie-invalidation -+++ b/tests/test-cookie-invalidation -@@ -35,7 +35,7 @@ launch_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` -+eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` - - if [ -z "$COOKIE" ];then - fail $PID "Could not obtain cookie" -@@ -44,7 +44,7 @@ fi - #echo "Cookie: $COOKIE" - - echo "Connecting with cookie... " --echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background >/dev/null 2>&1 -+echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background >/dev/null 2>&1 - - sleep 4 - -@@ -58,9 +58,9 @@ if test $? != 0;then - fi - - echo "Terminating and connecting again with same cookie... " --#( echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+#( echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - # fail $PID "Could not connect to server" --echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background >/dev/null 2>&1 -+echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background >/dev/null 2>&1 - - sleep 4 - -@@ -82,9 +82,9 @@ rm -f "${PIDFILE2}" - sleep 18 - - echo "Proper termination and connecting again with same (invalidated) cookie... " --#( echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+#( echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - # fail $PID "Could not connect to server" --echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background >/dev/null 2>&1 -+echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background >/dev/null 2>&1 - - sleep 4 - -diff --git a/tests/test-cookie-timeout b/tests/test-cookie-timeout -index 08081b2..b8b4dda 100755 ---- a/tests/test-cookie-timeout -+++ b/tests/test-cookie-timeout -@@ -34,7 +34,7 @@ launch_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` -+eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` - - if [ -z "$COOKIE" ];then - fail $PID "Could not obtain cookie" -@@ -44,7 +44,7 @@ fi - sleep 16 - echo "" - echo "Connecting with cookie... " --echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE}" --background -+echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE}" --background - - sleep 4 - -@@ -59,7 +59,7 @@ rm -f "${PIDFILE}" - sleep 16 - echo "" - echo "Connecting again with cookie... " --echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE}" --background -+echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE}" --background - - sleep 4 - -@@ -74,7 +74,7 @@ rm -f "${PIDFILE}" - sleep 16 - echo "" - echo "Connecting after forced kill with cookie... " --echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE}" --background -+echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE}" --background - - sleep 4 - -@@ -90,7 +90,7 @@ rm -f "${PIDFILE}" - sleep 45 - echo "" - echo "Connecting with cookie after expiration... " --echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE}" --background -+echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE}" --background - - sleep 4 - -@@ -104,7 +104,7 @@ fi - # test cookie verification after cookie verification failure. That is to verify whether - # the channel between main and sec-mod is in consistent state. - echo "Connecting (again) to obtain cookie... " --echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -+echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= - - if test $? != 0;then - fail $PID "Could not obtain cookie" -diff --git a/tests/test-cookie-timeout-2 b/tests/test-cookie-timeout-2 -index fbeba81..4161eb6 100755 ---- a/tests/test-cookie-timeout-2 -+++ b/tests/test-cookie-timeout-2 -@@ -33,7 +33,7 @@ launch_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` -+eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` - - if [ -z "$COOKIE" ];then - fail $PID "Could not obtain cookie" -@@ -43,7 +43,7 @@ fi - sleep 10 - echo "" - echo "Connecting with cookie... " --echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file ${srcdir}/pid.$$ --background -+echo "test" | $OPENCONNECT -q -b localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file ${srcdir}/pid.$$ --background - - sleep 4 - -@@ -58,7 +58,7 @@ rm -f "${srcdir}/pid2.$$" - sleep 30 - echo "" - echo "Connecting again with cookie (overriding first session)... " --echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file ${srcdir}/pid2.$$ --background -+echo "test" | $OPENCONNECT -b -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file ${srcdir}/pid2.$$ --background - - sleep 6 - -diff --git a/tests/test-enc-key b/tests/test-enc-key -index 0ca6249..5d65b62 100755 ---- a/tests/test-enc-key -+++ b/tests/test-enc-key -@@ -33,7 +33,7 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - cleanup -@@ -48,7 +48,7 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - cleanup -diff --git a/tests/test-explicit-ip b/tests/test-explicit-ip -index bfd1a9d..41d4665 100755 ---- a/tests/test-explicit-ip -+++ b/tests/test-explicit-ip -@@ -31,13 +31,13 @@ connect() - opts=$1 - pass=$2 - COOKIE='' --eval `echo "$pass" | $OPENCONNECT -q localhost:$PORT $opts --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate` -+eval `echo "$pass" | $OPENCONNECT -q localhost:$PORT $opts --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate` - if [ -z "$COOKIE" ];then - return 1 - fi - - rm -f $TMPFILE --echo "$pass" | $OPENCONNECT -q localhost:$PORT $opts -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file ${srcdir}/pidx >$TMPFILE 2>&1 & -+echo "$pass" | $OPENCONNECT -q localhost:$PORT $opts -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file ${srcdir}/pidx >$TMPFILE 2>&1 & - CPID=$! - - sleep 3 -diff --git a/tests/test-group-pass b/tests/test-group-pass -index 1530f43..7a78237 100755 ---- a/tests/test-group-pass -+++ b/tests/test-group-pass -@@ -33,19 +33,19 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group1 --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group1 --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group2 --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group2 --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group2 --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group2 --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - echo "Connecting to obtain cookie with wrong groupname... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group4 --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --authgroup group4 --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - cleanup -diff --git a/tests/test-gssapi-opt-cert b/tests/test-gssapi-opt-cert -index 0ef2d55..5cf1105 100755 ---- a/tests/test-gssapi-opt-cert -+++ b/tests/test-gssapi-opt-cert -@@ -29,7 +29,7 @@ opts=$1 - pass=$2 - rm -f ${OUTFILE} - --echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate >${OUTFILE} 2>&1 -+echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate >${OUTFILE} 2>&1 - if test $? != 0;then - cat ${OUTFILE} - return 1 -diff --git a/tests/test-gssapi-opt-pass b/tests/test-gssapi-opt-pass -index 8999d30..b6ebd11 100755 ---- a/tests/test-gssapi-opt-pass -+++ b/tests/test-gssapi-opt-pass -@@ -29,7 +29,7 @@ opts=$1 - pass=$2 - rm -f ${OUTFILE} - --echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --authenticate >${OUTFILE} 2>&1 -+echo "$pass" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --authenticate >${OUTFILE} 2>&1 - if test $? != 0;then - cat ${OUTFILE} - return 1 -diff --git a/tests/test-iroute b/tests/test-iroute -index d7b5f52..caf0a92 100755 ---- a/tests/test-iroute -+++ b/tests/test-iroute -@@ -34,13 +34,13 @@ launch_server -d 1 -f -c "${CONFIG}" & PID=$! - wait_server $PID - - echo -n "Connecting to obtain cookie (with certificate)... " --( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok -@@ -47,7 +47,7 @@ kill -USR2 $PID - sleep 5 - - echo -n "Connecting to obtain cookie (with certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok -@@ -58,7 +58,7 @@ kill -USR2 $PID - sleep 5 - - echo -n "Connecting to obtain cookie (with certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok -diff --git a/tests/test-max-same-1 b/tests/test-max-same-1 -index 5146483..ec19c0d 100755 ---- a/tests/test-max-same-1 -+++ b/tests/test-max-same-1 -@@ -47,7 +47,7 @@ launch_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` -+eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` - - if [ -z "$COOKIE" ];then - echo "Could not obtain cookie" -@@ -57,12 +57,12 @@ fi - #echo "Cookie: $COOKIE" - - echo "Connecting with cookie... " --echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background -+echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background - - sleep 4 - - echo "Connecting again with same cookie... " --echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background -+echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background - - sleep 4 - -diff --git a/tests/test-multi-cookie b/tests/test-multi-cookie -index 83c9cb5..7581f9c 100755 ---- a/tests/test-multi-cookie -+++ b/tests/test-multi-cookie -@@ -47,7 +47,7 @@ launch_server -d 1 -f -c "${CONFIG}" & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` -+eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` - - if [ -z "$COOKIE" ];then - echo "Could not obtain cookie" -@@ -57,12 +57,12 @@ fi - #echo "Cookie: $COOKIE" - - echo "Connecting with cookie... " --echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background -+echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE1}" --background - - sleep 4 - - echo "Connecting again with same cookie... " --echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background -+echo "test" | $OPENCONNECT -q localhost:$PORT -b -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${PIDFILE2}" --background - - sleep 4 - -diff --git a/tests/test-multiple-client-ip b/tests/test-multiple-client-ip -index 0e799e0..76099fe 100755 ---- a/tests/test-multiple-client-ip -+++ b/tests/test-multiple-client-ip -@@ -84,14 +84,14 @@ sleep 4 - - # Run client 1 - echo " * Getting cookie from ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 - fi - - echo " * Connecting to ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -@@ -99,14 +99,14 @@ fi - - # Run client 2 - echo " * Getting cookie from ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS3} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS3} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 - fi - - echo " * Connecting to ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS3} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID2} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS3} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID2} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 -diff --git a/tests/test-namespace-listen b/tests/test-namespace-listen -index 9691b28..81c3e86 100755 ---- a/tests/test-namespace-listen -+++ b/tests/test-namespace-listen -@@ -77,7 +77,7 @@ if test $? != 0; then - fi - - echo " connecting to server" --(echo "test" | ${CMDNS3} $OPENCONNECT $ADDRESS:$PORT -u "test" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --pid-file=${CLIPID} -b) || -+(echo "test" | ${CMDNS3} $OPENCONNECT $ADDRESS:$PORT -u "test" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --pid-file=${CLIPID} -b) || - fail $PID "could not connect to server" - sleep 5 - -diff --git a/tests/test-otp b/tests/test-otp -index 5209b0a..ed1fe94 100755 ---- a/tests/test-otp -+++ b/tests/test-otp -@@ -45,27 +45,27 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo -n "Connecting with wrong username... " --( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u falsetest --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u falsetest --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Connected with wrong username!" - echo ok - - echo -n "Connecting with wrong OTP... " --( echo -e "test\n999482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "test\n999482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Should not have connected with wrong OTP!" - echo ok - - echo -n "Connecting with correct password and OTP... " --( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not connect with OTP!" - echo ok - - echo -n "Connecting with empty password and wrong OTP... " --( echo -e "999999\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "999999\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Should have not connected with wrong OTP!" - echo ok - - echo -n "Connecting with empty password and OTP... " --( echo -e "328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo -e "328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not connect with OTP-only!" - echo ok - -diff --git a/tests/test-otp-cert b/tests/test-otp-cert -index c8dc12c..61a71db 100755 ---- a/tests/test-otp-cert -+++ b/tests/test-otp-cert -@@ -45,22 +45,22 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo -n "Connecting to obtain cookie (without certificate)... " --( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Connected without certificate!" - echo ok - - echo -n "Connecting to obtain cookie (with incorrect certificate)... " --( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-wrong.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-wrong.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Should not have connected with wrong certificate!" - echo ok - - echo -n "Connecting to obtain cookie (with certificate)... " --( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo -e "test\n328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - echo ok - - echo -n "Connecting to obtain cookie (with no pass and certificate)... " --( echo -e "328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo -e "328482\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - echo ok - -diff --git a/tests/test-pam b/tests/test-pam -index 8ec787a..561a140 100755 ---- a/tests/test-pam -+++ b/tests/test-pam -@@ -37,22 +37,22 @@ wait_server $PID - - echo "" - echo "Connecting with wrong password... " --( echo -e "testuser\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "testuser\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie with wrong cred" - - echo "" - echo "Connecting with empty password... " --( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie with wrong cred" - - echo "" - echo "Connecting with wrong username... " --( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie with wrong cred" - - echo "" - echo "Connecting with correct password... " --( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ||#>/dev/null 2>&1 ) || -+( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -v $ADDRESS:$PORT --authgroup group2 -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) ||#>/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - cleanup -diff --git a/tests/test-pam-noauth b/tests/test-pam-noauth -index dc8dd3d..1f67371 100755 ---- a/tests/test-pam-noauth -+++ b/tests/test-pam-noauth -@@ -35,19 +35,19 @@ launch_sr_pam_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting with correct password but no PAM user... " --( echo -e "test\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u xtest --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "test\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u xtest --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie with non existing user" - - echo "Connecting with incorrect password (correct in PAM) and existing user... " --( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "testuser123\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie with non existing user" - - echo "Connecting with empty password (correct in PAM) and existing user... " --( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie with non existing user" - - echo "Connecting with correct password and existing user... " --( echo -e "test\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) ||#>/dev/null 2>&1 ) || -+( echo -e "test\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u testuser --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) ||#>/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - cleanup -diff --git a/tests/test-pass b/tests/test-pass -index 9d5484a..5aaaf48 100755 ---- a/tests/test-pass -+++ b/tests/test-pass -@@ -34,39 +34,39 @@ launch_sr_server -d 1 -p ${PIDFILE} -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) || - fail $PID "Could not receive cookie from server" - - echo "Connecting to obtain cookie with wrong password... " --( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - echo "Connecting to obtain cookie with empty password... " --( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo -e "\n" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - echo "Connecting to obtain cookie with wrong username... " --( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u tost --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "tost" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u tost --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - # test locked account - - echo "Connecting to obtain cookie with locked account... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u locked --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u locked --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - #test special characters - - echo "Connecting to obtain cookie with special password... " --( echo "!@#$%^&*()<>" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "!@#$%^&*()<>" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - echo "Connecting to obtain cookie with empty password... " --( echo "" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "empty" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u "empty" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - #echo "Normal connection... " --#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true ) || -+#( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true ) || - # fail $PID "Could not connect to server" - - if ! test -f ${PIDFILE};then -diff --git a/tests/test-pass-cert b/tests/test-pass-cert -index 8050788..8d284b8 100755 ---- a/tests/test-pass-cert -+++ b/tests/test-pass-cert -@@ -34,26 +34,26 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo -n "Connecting to obtain cookie (without certificate)... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Connected without certificate!" - - echo ok - - echo -n "Connecting to obtain cookie (with certificate)... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok - - echo -n "Connecting to obtain cookie (with incorrect certificate)... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-wrong.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-wrong.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Should not have connected with wrong certificate!" - - echo ok - - - #echo "Normal connection... " --#( echo "test" | $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true ) || -+#( echo "test" | $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true ) || - # fail $PID "Could not connect to server" - - cleanup -diff --git a/tests/test-pass-group-cert b/tests/test-pass-group-cert -index ff64993..e559ac6 100755 ---- a/tests/test-pass-group-cert -+++ b/tests/test-pass-group-cert -@@ -33,37 +33,37 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo -n "Connecting to obtain cookie (without certificate)... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Connected without certificate!" - - echo ok - - echo -n "Connecting to obtain cookie - group1 (with certificate)... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok - - echo -n "Connecting to obtain cookie - DEFAULT (with certificate)... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup DEFAULT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup DEFAULT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok - - echo -n "Connecting to obtain cookie - group2 (with certificate)... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group2 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group2 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok - - echo -n "Connecting to obtain cookie - group3 (hidden) (with certificate)... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group3 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group3 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok - - echo -n "Connecting to obtain cookie - group4 (with certificate)... " --( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group4 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group4 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Got cookie when it shouldn't!" - - echo ok -diff --git a/tests/test-pass-group-cert-no-pass b/tests/test-pass-group-cert-no-pass -index bc39b45..401b24f 100755 ---- a/tests/test-pass-group-cert-no-pass -+++ b/tests/test-pass-group-cert-no-pass -@@ -33,25 +33,25 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo -n "Connecting to obtain cookie (without certificate)... " --LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 && -+LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 && - fail $PID "Connected without certificate!" - - echo ok - - echo -n "Connecting to obtain cookie - group1 (with certificate)... " --LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 || -+LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group1 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 || - fail $PID "Could not connect with certificate!" - - echo ok - - echo -n "Connecting to obtain cookie - group2 (with certificate)... " --LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group2 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 || -+LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group2 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 || - fail $PID "Could not connect with certificate!" - - echo ok - - echo -n "Connecting to obtain cookie - group3 (hidden) (with certificate)... " --LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group3 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 || -+LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --authgroup group3 -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-group-key.pem -c ${srcdir}/certs/user-group-cert.pem -u test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 || - fail $PID "Could not connect with certificate!" - - echo ok -diff --git a/tests/test-pass-opt-cert b/tests/test-pass-opt-cert -index ac9adc1..1836538 100755 ---- a/tests/test-pass-opt-cert -+++ b/tests/test-pass-opt-cert -@@ -38,7 +38,7 @@ connect() - { - opts=$1 - pass=$2 --echo ${pass} | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --passwd-on-stdin --authenticate >${TMPFILE} -+echo ${pass} | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT $opts --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --passwd-on-stdin --authenticate >${TMPFILE} - if test $? != 0;then - cat ${TMPFILE} - return 1 -diff --git a/tests/test-pass-script b/tests/test-pass-script -index 89a4094..0f18551 100755 ---- a/tests/test-pass-script -+++ b/tests/test-pass-script -@@ -67,7 +67,7 @@ launch_server -d 1 -f -c "${CONFIG}" & PID=$! - wait_server $PID - - echo " * Connecting to obtain cookie with wrong username... " --( echo "tost" | $OPENCONNECT -q localhost:$PORT -u tost --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) && -+( echo "tost" | $OPENCONNECT -q localhost:$PORT -u tost --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) && - fail $PID "Received cookie when we shouldn't" - - rm -f ${builddir}/connect.ok -@@ -76,11 +76,11 @@ rm -f ${builddir}/host-update.ok - #test special characters - - echo " * Connecting to obtain cookie... " --( echo "!@#$%^&*()<>" | $OPENCONNECT -q localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "!@#$%^&*()<>" | $OPENCONNECT -q localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - echo " * Re-connecting to force script run... " --echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT -q --local-hostname='mylocalname' localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true -+echo "!@#$%^&*()<>" | timeout 7 $OPENCONNECT -q --local-hostname='mylocalname' localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true - - TIMEOUT=5 - while ! test -f ${builddir}/disconnect.ok; do -@@ -112,7 +112,7 @@ rm -f ${builddir}/disconnect.ok - rm -f ${builddir}/host-update.ok - - echo " * Re-connecting to get cookie... " --echo "test2" | $OPENCONNECT -q localhost:$PORT -u "test2" --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >${PARAMSFILE} -+echo "test2" | $OPENCONNECT -q localhost:$PORT -u "test2" --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >${PARAMSFILE} - if test $? != 0;then - echo "Could not connect" - cat ${PARAMSFILE} -@@ -127,7 +127,7 @@ fi - - echo " * Re-connecting to force session stealing... " - eval "$(grep COOKIE ${PARAMSFILE})" --echo ${COOKIE}| $OPENCONNECT --local-hostname='mylocalname' localhost:$PORT -u "test2" --reconnect-timeout 0 --cookie-on-stdin --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true --pid-file=${OPIDFILE} -b -+echo ${COOKIE}| $OPENCONNECT --local-hostname='mylocalname' localhost:$PORT -u "test2" --reconnect-timeout 0 --cookie-on-stdin --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true --pid-file=${OPIDFILE} -b - - echo " - Pausing client" - TIMEOUT=4 -@@ -156,7 +156,7 @@ rm -f ${builddir}/connect.ok - rm -f ${builddir}/disconnect.ok - - echo " * Re-connecting to steal previous IP address... " --echo ${COOKIE} | $OPENCONNECT -q --local-hostname='mylocalname' localhost:$PORT -u "test2" --reconnect-timeout 0 --cookie-on-stdin --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true --pid-file=${OPIDFILE2} -b -+echo ${COOKIE} | $OPENCONNECT -q --local-hostname='mylocalname' localhost:$PORT -u "test2" --reconnect-timeout 0 --cookie-on-stdin --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true --pid-file=${OPIDFILE2} -b - - echo " - Resuming (disconnected) client" - kill -s CONT $(cat ${OPIDFILE}) -@@ -205,7 +205,7 @@ done - sleep 5 - echo " - Check server status" - --( echo "!@#$%^&*()<>" | $OPENCONNECT --local-hostname='mylocalname' -q localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "!@#$%^&*()<>" | $OPENCONNECT --local-hostname='mylocalname' -q localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - echo " - Killing server" -diff --git a/tests/test-replay b/tests/test-replay -index b8aa848..0533893 100755 ---- a/tests/test-replay -+++ b/tests/test-replay -@@ -60,7 +60,7 @@ launch_server -d 9999 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to obtain cookie... " --eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3` -+eval `echo "test" | $OPENCONNECT -q localhost:$PORT -u test --authenticate --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=` - - if [ -z "$COOKIE" ];then - echo "Could not obtain cookie" -@@ -70,7 +70,7 @@ fi - #echo "Cookie: $COOKIE" - - echo "Connecting with cookie... " --echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --verbose --pid-file "${PIDFILE1}" --background -+echo "test" | $OPENCONNECT -q localhost:$PORT -u test -C "$COOKIE" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --verbose --pid-file "${PIDFILE1}" --background - - sleep 4 - -diff --git a/tests/test-san-cert b/tests/test-san-cert -index a5040ae..a41c331 100755 ---- a/tests/test-san-cert -+++ b/tests/test-san-cert -@@ -49,25 +49,25 @@ PID=$! - wait_server $PID - - echo -n "Connecting to obtain cookie (without certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && - fail $PID "Connected without certificate!" - - echo "ok (failed as expected)" - - echo -n "Connecting to obtain cookie (with invalid certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-invalid.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-invalid.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && - fail $PID "Connected with invalid certificate!" - - echo "ok (failed as expected)" - - echo -n "Connecting to obtain cookie (with certificate - no SAN)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && - fail $PID "Connected with invalid certificate!" - - echo "ok (failed as expected)" - - echo -n "Connecting to obtain cookie (with certificate - SAN)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-san-cert.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-san-cert.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || - fail $PID "Failed to connect with certificate!" - - echo ok -diff --git a/tests/test-script-multi-user b/tests/test-script-multi-user -index 6327a26..c0bfa3d 100755 ---- a/tests/test-script-multi-user -+++ b/tests/test-script-multi-user -@@ -47,16 +47,16 @@ launch_sr_server -d 1 -f -c ${CONFIG} & PID=$! - wait_server $PID - - echo "Connecting to force script block... " --echo "!@#$%^&*()<>" | timeout 60 $OPENCONNECT -q localhost:$PORT -u "sp@c/al" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true & -+echo "!@#$%^&*()<>" | timeout 60 $OPENCONNECT -q localhost:$PORT -u "sp@c/al" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true & - - sleep 3 - - echo "Connecting to obtain cookie... " --( echo "${USERNAME}" | $OPENCONNECT -q localhost:$PORT -u "${USERNAME}" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly >/dev/null 2>&1 ) || -+( echo "${USERNAME}" | $OPENCONNECT -q localhost:$PORT -u "${USERNAME}" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly >/dev/null 2>&1 ) || - fail $PID "Could not receive cookie from server" - - echo "Connecting in background... " --( echo "${USERNAME}" | timeout 15 $OPENCONNECT -q localhost:$PORT -u "${USERNAME}" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --background >/dev/null 2>&1 ) || -+( echo "${USERNAME}" | timeout 15 $OPENCONNECT -q localhost:$PORT -u "${USERNAME}" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --background >/dev/null 2>&1 ) || - fail $PID "Could not connect to server; probably blocked" - - sleep 3 -diff --git a/tests/test-sighup b/tests/test-sighup -index add538f..dd424e5 100755 ---- a/tests/test-sighup -+++ b/tests/test-sighup -@@ -34,7 +34,7 @@ PID=$! - wait_server $PID - - echo -n "Connecting to obtain cookie (with certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok -@@ -44,7 +44,7 @@ kill -HUP $PID - sleep 5 - - echo -n "Connecting to obtain cookie (with certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) || -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) || - fail $PID "Could not connect with certificate!" - - echo ok -@@ -57,7 +57,7 @@ kill -HUP $PID - sleep 5 - - echo -n "Connecting to obtain cookie (with certificate)... " --( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null 2>&1 ) && -+( LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null 2>&1 ) && - fail $PID "Could not connect with certificate!" - - echo ok -diff --git a/tests/test-stress b/tests/test-stress -index 3816604..a2db96e 100755 ---- a/tests/test-stress -+++ b/tests/test-stress -@@ -33,7 +33,7 @@ run_client() { - PASS=$1; - shift; - -- ( echo $PASS | $OPENCONNECT -q $HOST -u $USER --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true >/dev/null 2>&1 ) || -+ ( echo $PASS | $OPENCONNECT -q $HOST -u $USER --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true >/dev/null 2>&1 ) || - echo "$USER: Could not connect to server" - } - -diff --git a/tests/test-udp-listen-host b/tests/test-udp-listen-host -index f3e6623..956938b 100755 ---- a/tests/test-udp-listen-host -+++ b/tests/test-udp-listen-host -@@ -111,7 +111,7 @@ ${CMDNS2} ${HAPROXY} -f ${HACONFIG} -d & HAPID=$! - sleep 3 - - echo " * Connecting to haproxy and using dtls ... " --echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} --user test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${CLIPID}" --background -+echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} --user test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${CLIPID}" --background - - wait_file "${CLIPID}" 11 - -@@ -134,7 +134,7 @@ echo "restart ocsev with udp-listen-host set to 127.0.0.1" - ${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG_UDP_LISTEN_LOCAL} ${DEBUG} & PID=$! - - echo " * Connecting to haproxy and using dtls again ... " --echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} --user test --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --script=/bin/true --verbose --pid-file "${CLIPID2}" --background -+echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${HAPORT} --user test --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --script=/bin/true --verbose --pid-file "${CLIPID2}" --background - - wait_file "${CLIPID2}" 11 - -diff --git a/tests/test-user-config b/tests/test-user-config -index 1c7f518..f8573ce 100755 ---- a/tests/test-user-config -+++ b/tests/test-user-config -@@ -42,20 +42,20 @@ PID=$! - wait_server $PID - - echo -n "Connecting to obtain cookie (with certificate)... " --( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly /dev/null ) || -+( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly /dev/null ) || - fail $PID "Could not connect with certificate!" - - echo ok - - echo -n "Re-connecting to force script run... " --$OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true /dev/null & -+$OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true /dev/null & - kpid1=$! - echo ok - - sleep 2 - - echo -n "Re-connecting to check the iroutes... " --$OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE1} 2>&1 & -+$OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE1} 2>&1 & - kpid2=$! - - echo ok -@@ -63,7 +63,7 @@ sleep 3 - - echo -n "Checking if max-same-clients is considered... " - --timeout 15s $OPENCONNECT localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE2} 2>&1 -+timeout 15s $OPENCONNECT localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE2} 2>&1 - if test $? = 124;then - fail $PID "Max-same-clients directive was ignored" - fi -@@ -155,7 +155,7 @@ rm -f ${TMPFILE1} - rm -f ${TMPFILE2} - - echo -n "Re-connecting to check the ipv4-network... " --$OPENCONNECT -v localhost:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-testipnet.pem" --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE1} 2>&1 & kpid3=$! -+$OPENCONNECT -v localhost:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-testipnet.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true ${TMPFILE1} 2>&1 & kpid3=$! - - echo ok - sleep 3 -diff --git a/tests/test-vhost b/tests/test-vhost -index 902f011..1a57e60 100755 ---- a/tests/test-vhost -+++ b/tests/test-vhost -@@ -62,7 +62,7 @@ PID=$! - wait_server $PID - - echo -n "Connecting to default host to obtain cookie (user without certificate)... " --connect "default.example.com" "-u test" "test" "d66b507ae074d03b02eafca40d35f87dd81049d3" -+connect "default.example.com" "-u test" "test" "pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=" - if test $? != 0;then - fail $PID "Failed to connect with user without certificate!" - fi -@@ -111,7 +111,7 @@ fi - echo ok - - echo -n "Connecting to default host to obtain cookie (with certificate)... " --connect "default.example.com" "-u test --sslkey ./certs/user-key.pem -c ./certs/user-cert.pem" "" "d66b507ae074d03b02eafca40d35f87dd81049d3" -+connect "default.example.com" "-u test --sslkey ./certs/user-key.pem -c ./certs/user-cert.pem" "" "pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=" - if test $? = 0;then - fail $PID "Connected to wrong host with certificate!" - fi -@@ -136,7 +136,7 @@ kill -HUP $PID - sleep 5 - - echo -n "Sanity check to default host..." --connect "default.example.com" "-u test" "test" "d66b507ae074d03b02eafca40d35f87dd81049d3" -+connect "default.example.com" "-u test" "test" "pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8=" - if test $? != 0;then - fail $PID "Failed to connect with user without certificate!" - fi -diff --git a/tests/traffic b/tests/traffic -index 3ea962f..1f0fcaf 100755 ---- a/tests/traffic -+++ b/tests/traffic -@@ -79,14 +79,14 @@ sleep 4 - - # Run clients - echo " * Getting cookie from ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly ) - if test $? != 0;then - echo "Could not get cookie from server" - exit 1 - fi - - echo " * Connecting to ${ADDRESS}:${PORT}..." --( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) -+( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s ${srcdir}/scripts/vpnc-script --pid-file=${CLIPID} --passwd-on-stdin -b ) - if test $? != 0;then - echo "Could not connect to server" - exit 1 diff --git a/ocserv.conf b/ocserv.conf index d5e0814..0ecd600 100644 --- a/ocserv.conf +++ b/ocserv.conf @@ -34,7 +34,7 @@ # and all configuration will be read from radius. That also includes the # Acct-Interim-Interval, and Session-Timeout values. # -# See doc/README-radius.md for the supported radius configuration atributes. +# See doc/README-radius.md for the supported radius configuration attributes. # # gssapi[keytab=/etc/key.tab,require-local-user-map=true,tgt-freshness-time=900] # The gssapi option allows one to use authentication methods supported by GSSAPI, @@ -72,25 +72,29 @@ auth = "pam" # Only one accounting method can be specified. #acct = "radius[config=/etc/radiusclient/radiusclient.conf]" -# Use listen-host to limit to specific IPs or to the IPs of a provided +# Use listen-host to limit to specific IPs or to the IPs of a provided # hostname. #listen-host = [IP|HOSTNAME] +# Use udp-listen-host to limit udp to specific IPs or to the IPs of a provided +# hostname. if not set, listen-host will be used +#udp-listen-host = [IP|HOSTNAME] + # When the server has a dynamic DNS address (that may change), # should set that to true to ask the client to resolve again on # reconnects. #listen-host-is-dyndns = true -# Use udp-listen-host to limit udp to specific IPs or to the IPs of a provided -# hostname. if not set, listen-host will be used -#udp-listen-host = [IP|HOSTNAME] +# move the listen socket within the specified network namespace +# listen-netns = "foo" # TCP and UDP port number tcp-port = 443 udp-port = 443 -# The user the worker processes will be run as. It should be -# unique (no other services run as this user). +# The user the worker processes will be run as. This should be a dedicated +# unprivileged user (e.g., 'ocserv') and no other services should run as this +# user. run-as-user = ocserv run-as-group = ocserv @@ -148,7 +152,10 @@ server-key = /etc/pki/ocserv/private/server.key # is set. #ca-cert = /etc/ocserv/ca.pem - +# The number of sub-processes to use for the security module (authentication) +# processes. Typically this should not be set as the number of processes +# is determined automatically by the initially set maximum number of clients. +#sec-mod-scale = 4 ### All configuration options below this line are reloaded on a SIGHUP. @@ -167,7 +174,7 @@ server-key = /etc/pki/ocserv/private/server.key # Note however, that process isolation is restricted to the specific libc versions # the isolation was tested at. If you get random failures on worker processes, try # disabling that option and report the failures you, along with system and debugging -# information at: https://gitlab.com/ocserv/ocserv/issues +# information at: https://gitlab.com/openconnect/ocserv/issues isolate-workers = true # A banner to be displayed on clients after connection @@ -176,7 +183,8 @@ isolate-workers = true # A banner to be displayed on clients before connection #pre-login-banner = "Welcome" -# Limit the number of clients. Unset or set to zero for unlimited. +# Limit the number of clients. Unset or set to zero if unknown. In +# that case the maximum value is ~8k clients. #max-clients = 1024 max-clients = 16 @@ -238,6 +246,10 @@ switch-to-tcp-timeout = 25 # MTU discovery (DPD must be enabled) try-mtu-discovery = false +# To enable load-balancer connection draining, set server-drain-ms to a value +# higher than your load-balancer health probe interval. +#server-drain-ms = 15000 + # If you have a certificate from a CA that provides an OCSP # service you may provide a fresh OCSP status response within # the TLS handshake. That will prevent the client from connecting @@ -294,11 +306,8 @@ cert-user-oid = 0.9.2342.19200300.100.1.1 tls-priorities = "NORMAL:%SERVER_PRECEDENCE" # That option requires the established DTLS channel to use the same -# cipher as the primary TLS channel. This cannot be combined with -# listen-clear-file since the ciphersuite information is not available -# in that configuration. Note also, that this option implies that -# dtls-legacy option is false; this option cannot be enforced -# in the legacy/compat protocol. +# cipher as the primary TLS channel.Note also, that this option implies +# that the dtls-legacy option is false; this option cannot be enforced #match-tls-dtls-ciphers = true # The time (in seconds) that a client is allowed to stay connected prior @@ -327,11 +336,9 @@ min-reauth-time = 300 # that get a score over that configured number are banned for # min-reauth-time seconds. By default a wrong password attempt is 10 points, # a KKDCP POST is 1 point, and a connection is 1 point. Note that -# due to difference processes being involved the count of points -# will not be real-time precise. -# -# Score banning cannot be reliably used when receiving proxied connections -# locally from an HTTP server (i.e., when listen-clear-file is used). +# due to different processes being involved the count of points +# will not be real-time precise. Local subnet IPs are exempt to allow +# services that check for process health. # # Set to zero to disable. max-ban-score = 80 @@ -381,7 +388,8 @@ rekey-method = ssl # Script to call when a client connects and obtains an IP. # The following parameters are passed on the environment. # REASON, VHOST, USERNAME, GROUPNAME, DEVICE, IP_REAL (the real IP of the client), -# IP_REAL_LOCAL (the local interface IP the client connected), IP_LOCAL +# REMOTE_HOSTNAME (the remotely advertised hostname), IP_REAL_LOCAL +# (the local interface IP the client connected), IP_LOCAL # (the local IP in the P-t-P connection), IP_REMOTE (the VPN IP of the client), # IPV6_LOCAL (the IPv6 local address if there are both IPv4 and IPv6 # assigned), IPV6_REMOTE (the IPv6 remote address), IPV6_PREFIX, and @@ -400,6 +408,12 @@ rekey-method = ssl #connect-script = /usr/bin/ocserv-script #disconnect-script = /usr/bin/ocserv-script +# This script is to be called when the client's advertised hostname becomes +# available. It will contain REASON with "host-update" value and the +# variable REMOTE_HOSTNAME in addition to the connect variables. + +#host-update-script = /usr/bin/myhostnamescript + # UTMP # Register the connected clients to utmp. This will allow viewing # the connected clients using the command 'who'. @@ -412,6 +426,20 @@ use-occtl = true # PID file. It can be overridden in the command line. pid-file = /var/run/ocserv.pid +# Log Level. Ocserv sends the logging messages to standard error +# as well as the system log. The log level can be overridden in the +# command line with the -d option. All messages at the configured +# level and lower will be displayed. +# Supported levels (default 0): +# 0 default (Same as basic) +# 1 basic +# 2 info +# 3 debug +# 4 http +# 8 sensitive +# 9 TLS +log-level = 1 + # Set the protocol-defined priority (SO_PRIORITY) for packets to # be sent. That is a number from 0 to 6 with 0 being the lowest # priority. Alternatively this can be used to set the IP Type- @@ -434,7 +462,8 @@ device = vpns # same for the same user when possible. predictable-ips = true -# The default domain to be advertised +# The default domain to be advertised. Multiple domains (functional on +# openconnect clients) can be provided in a space separated list. default-domain = example.com # The pool of addresses that leases will be given from. If the leases @@ -561,10 +590,10 @@ no-route = 192.168.5.0/255.255.255.0 # per group. Each file name on these directories must match the username # or the groupname. # The options allowed in the configuration files are dns, nbns, -# ipv?-network, ipv4-netmask, rx/tx-per-sec, iroute, route, no-route, -# explicit-ipv4, explicit-ipv6, net-priority, deny-roaming, no-udp, +# ipv?-network, ipv4-netmask, rx/tx-data-per-sec, iroute, route, no-route, +# explicit-ipv4, explicit-ipv6, net-priority, deny-roaming, no-udp, # keepalive, dpd, mobile-dpd, max-same-clients, tunnel-all-dns, -# restrict-user-to-routes, user-profile, cgroup, stats-report-time, +# restrict-user-to-routes, cgroup, stats-report-time, # mtu, idle-timeout, mobile-idle-timeout, restrict-user-to-ports, # split-dns and session-timeout. # @@ -628,10 +657,13 @@ no-route = 192.168.5.0/255.255.255.0 # # # Other fields may be used by some of the CISCO clients. -# This file must be accessible from inside the worker's chroot. -# Note that enabling this option is not recommended as it will allow -# the worker processes to open arbitrary files (when isolate-workers is -# set to true). +# This file must be accessible from inside the worker's chroot. +# Note that: +# (1) enabling this option is not recommended as it will allow the +# worker processes to open arbitrary files (when isolate-workers is +# set to true). +# (2) This option cannot be set per-user or per-group; only the global +# version is being sent to client. #user-profile = profile.xml # @@ -657,6 +689,35 @@ cisco-client-compat = true # by the dtls-psk protocol supported by openconnect 7.08+. dtls-legacy = true +# This option will enable the settings needed for Cisco SVC IPPhone clients +# to connect. It implies dtls-legacy = true and tls-priorities is changed to +# only the ciphers the device supports. +cisco-svc-client-compat = false + +# This option will enable the X-CSTP-Client-Bypass-Protocol (disabled by default). +# If the server has not configured an IPv6 or IPv4 address pool, enabling this option +# will instruct the client to bypass the server for that IP protocol. The option is +# currently only understood by Anyconnect clients. +client-bypass-protocol = false + +# The following options are related to server camouflage (hidden service) + +# This option allows you to enable the camouflage feature of ocserv that makes it look +# like a web server to unauthorized parties. +# With "camouflage" enabled, connection to the VPN can be established only if the client provided a specific +# "secret string" in the connection URL, e.g. "https://example.com/?mysecretkey", +# otherwise the server will return HTTP error for all requests. +camouflage = false + +# The URL prefix that should be set on the client (after '?' sign) to pass through the camouflage check, +# e.g. in case of 'mysecretkey', the server URL on the client should be like "https://example.com/?mysecretkey". +camouflage_secret = "mysecretkey" + +# Defines the realm (browser prompt) for HTTP authentication. +# If no realm is set, the server will return 404 Not found error instead of 401 Unauthorized. +# Better change it from the default value to avoid fingerprinting. +camouflage_realm = "Restricted Content" + #Advanced options # Option to allow sending arbitrary custom headers to the client after @@ -669,8 +730,8 @@ dtls-legacy = true -## An example virtual host with different authentication methods serviced -## by this server. +# An example virtual host with different authentication methods serviced +# by this server. #[vhost:www.example.com] #auth = "certificate" @@ -687,3 +748,18 @@ dtls-legacy = true #ipv4-netmask = 255.255.255.0 #cert-user-oid = 0.9.2342.19200300.100.1.1 + +# HTTP headers +included-http-headers = Strict-Transport-Security: max-age=31536000 ; includeSubDomains +included-http-headers = X-Frame-Options: deny +included-http-headers = X-Content-Type-Options: nosniff +included-http-headers = Content-Security-Policy: default-src 'none' +included-http-headers = X-Permitted-Cross-Domain-Policies: none +included-http-headers = Referrer-Policy: no-referrer +included-http-headers = Clear-Site-Data: "cache","cookies","storage" +included-http-headers = Cross-Origin-Embedder-Policy: require-corp +included-http-headers = Cross-Origin-Opener-Policy: same-origin +included-http-headers = Cross-Origin-Resource-Policy: same-origin +included-http-headers = X-XSS-Protection: 0 +included-http-headers = Pragma: no-cache +included-http-headers = Cache-control: no-store, no-cache diff --git a/ocserv.spec b/ocserv.spec index 8f2b22b..1a72762 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,4 +1,4 @@ -Version: 1.1.7 +Version: 1.2.0 Release: %autorelease %global _hardened_build 1 @@ -38,8 +38,6 @@ Source8: ocserv-genkey Source9: ocserv-script Source10: gpgkey-56EE7FA9E8173B19FE86268D763712747F343FA7.gpg Source11: ocserv.init -# When removed remove the autoreconf step -Patch0: expired-certs.patch # Taken from upstream: # http://git.infradead.org/ocserv.git/commitdiff/7d70006a2dbddf783213f1856374bacc74217e09 @@ -141,8 +139,6 @@ gpgv2 --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} || gpgv2 --keyring %{SOURCE10} %endif %autosetup -p1 -# temporarily needed to apply patches -autoreconf -fvi rm -f src/http-parser/http_parser.c src/http-parser/http_parser.h %if (0%{?use_local_protobuf} == 0) @@ -152,9 +148,6 @@ touch src/*.proto rm -rf src/ccan/talloc sed -i 's|/etc/ocserv.conf|/etc/ocserv/ocserv.conf|g' src/config.c sed -i 's/run-as-group = nogroup/run-as-group = nobody/g' tests/data/*.config -# GPLv3 in headers is a gnulib bug: -# http://lists.gnu.org/archive/html/bug-gnulib/2013-11/msg00062.html -sed -i 's/either version 3 of the License/either version 2 of the License/g' build-aux/snippet/* %if 0%{?rhel} && 0%{?rhel} <= 6 echo "int main() { return 77; }" > tests/valid-hostname.c @@ -199,7 +192,8 @@ mkdir -p -m 700 %{_sysconfdir}/pki/ocserv/private mkdir -p %{_sysconfdir}/pki/ocserv/cacerts %check -make check %{?_smp_mflags} VERBOSE=1 +# The 1.2.0 release has a missing file +make check %{?_smp_mflags} VERBOSE=1 XFAIL_TESTS="test-group-cert" %if %{use_systemd} %post @@ -254,7 +248,7 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %config(noreplace) %{_sysconfdir}/pam.d/ocserv %config(noreplace) %{_localstatedir}/lib/ocserv/profile.xml -%doc AUTHORS ChangeLog NEWS COPYING COPYING README.md PACKAGE-LICENSING +%doc AUTHORS ChangeLog NEWS COPYING README.md PACKAGE-LICENSING doc/README-radius.md %doc src/ccan/licenses/CC0 src/ccan/licenses/LGPL-2.1 src/ccan/licenses/BSD-MIT %{_mandir}/man8/ocserv.8* diff --git a/sources b/sources index 30fa688..bd969b3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ocserv-1.1.7.tar.xz) = 5b6182b98c0406a27dae7121ec0d8771b158e0d8ce2056bd35451c8ed087a8b7f7d40035f9db5c19aa9a9a3b2c6b07be8f0bad4b6b96569584815a5358202ba4 -SHA512 (ocserv-1.1.7.tar.xz.sig) = 96d2562fdf918f2b6ea829d747330a3be2e015ab25897e01bd0d387cb69ef3592aacabbeec9612e95eca1fbce6178a176dbf76d553b7626c09d453d216ddd63d +SHA512 (ocserv-1.2.0.tar.xz) = 23edd48313cb4988cea1e2493ab65784c7a39a062798e1ffd380b6de5629e69bd71ded863eb7a0c9fe1bac3cc2db23014cdedbd5d15801e2a66d5ef4e3f28ffb +SHA512 (ocserv-1.2.0.tar.xz.sig) = 1d8ac24c97c6495adc070f7b24553715ff27e6a9937a020522904559f4c48f3e18ca712b80762d55c285ce8f99eb4cd9a84b2875a351eb1df1ef6c705c5d3199 From 0d6a1f1a428aaffbbaf37750b798246e483a8468 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 18 Jul 2023 20:43:09 +0200 Subject: [PATCH 06/35] Added packit integration --- .packit.yaml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .packit.yaml diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..3902f72 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,25 @@ +upstream_project_url: https://gitlab.com/openconnect/ocserv +issue_repository: https://gitlab.com/openconnect/ocserv +copy_upstream_release_description: true + +jobs: +- job: pull_from_upstream + trigger: release + dist_git_branches: + - fedora-all + - epel-8 + - epel-9 + +- job: koji_build + trigger: commit + dist_git_branches: + - fedora-all + - epel-8 + - epel-9 + +- job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-branched # rawhide updates are created automatically + - epel-8 + - epel-9 From ca1630fd18e366f0eefc4ae3ff1a385685bf054d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jul 2023 17:39:51 +0000 Subject: [PATCH 07/35] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering From e9edd55d41cd6497e0ff6ae709ad99d6a4999446 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 15 Aug 2023 19:16:12 +0200 Subject: [PATCH 08/35] use %systemd_postun_with_restart Signed-off-by: Nikos Mavrogiannopoulos --- ocserv.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocserv.spec b/ocserv.spec index 1a72762..a44cf9c 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -203,7 +203,7 @@ make check %{?_smp_mflags} VERBOSE=1 XFAIL_TESTS="test-group-cert" %systemd_preun ocserv.service %postun -%systemd_postun ocserv.service +%systemd_postun_with_restart ocserv.service %endif %install From 9433e7b6230e0767e1094ca25e974629e7d4906e Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 22 Aug 2023 19:31:54 +0200 Subject: [PATCH 09/35] updated URIs of source --- ocserv.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ocserv.spec b/ocserv.spec index a44cf9c..f940294 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -27,8 +27,8 @@ Summary: OpenConnect SSL VPN server # To simplify licenses LGPLv2+ files have been promoted to GPLv2+. License: GPLv2+ and BSD and MIT and CC0 URL: http://www.infradead.org/ocserv/ -Source0: ftp://ftp.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz -Source1: ftp://ftp.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz.sig +Source0: https://www.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz +Source1: https://www.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz.sig Source2: gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg Source3: ocserv.conf Source4: ocserv.service From 95752d9463d8fc6888b80dfd0753845f23dc8254 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Wed, 23 Aug 2023 09:21:15 +0200 Subject: [PATCH 10/35] corrected download link --- ocserv.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ocserv.spec b/ocserv.spec index f940294..63ec528 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -27,8 +27,8 @@ Summary: OpenConnect SSL VPN server # To simplify licenses LGPLv2+ files have been promoted to GPLv2+. License: GPLv2+ and BSD and MIT and CC0 URL: http://www.infradead.org/ocserv/ -Source0: https://www.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz -Source1: https://www.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz.sig +Source0: https://www.infradead.org/ocserv/download/%{name}-%{version}.tar.xz +Source1: https://www.infradead.org/ocserv/download/%{name}-%{version}.tar.xz.sig Source2: gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg Source3: ocserv.conf Source4: ocserv.service From ec00a93d97ea686a71a447d3258ff2635d8c5018 Mon Sep 17 00:00:00 2001 From: Packit Date: Wed, 23 Aug 2023 07:24:35 +0000 Subject: [PATCH 11/35] [packit] 1.2.1 upstream release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream tag: 1.2.1 Upstream commit: 895a23f3 If you need to do any change in this pull request, you need to locally fetch the source branch of it and push it (with a fix) to your fork (as it is not possible to push to the branch created in the Packit’s fork): ``` git fetch https://src.fedoraproject.org/forks/packit/rpms/ocserv.git refs/heads/*:refs/remotes/packit/* git checkout packit/1.2.1-rawhide-update-pull_from_upstream ``` --- .gitignore | 2 ++ README.packit | 3 +++ ocserv.spec | 2 +- sources | 4 ++-- 4 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 README.packit diff --git a/.gitignore b/.gitignore index 2113177..1b89049 100644 --- a/.gitignore +++ b/.gitignore @@ -241,3 +241,5 @@ /ocserv-1.1.7.tar.xz.sig /ocserv-1.2.0.tar.xz /ocserv-1.2.0.tar.xz.sig +/ocserv-1.2.1.tar.xz +/ocserv-1.2.1.tar.xz.sig diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..797aefb --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 0.79.0.post2+g93f33d9. diff --git a/ocserv.spec b/ocserv.spec index 63ec528..67ea6c7 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,4 +1,4 @@ -Version: 1.2.0 +Version: 1.2.1 Release: %autorelease %global _hardened_build 1 diff --git a/sources b/sources index bd969b3..b336b2f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ocserv-1.2.0.tar.xz) = 23edd48313cb4988cea1e2493ab65784c7a39a062798e1ffd380b6de5629e69bd71ded863eb7a0c9fe1bac3cc2db23014cdedbd5d15801e2a66d5ef4e3f28ffb -SHA512 (ocserv-1.2.0.tar.xz.sig) = 1d8ac24c97c6495adc070f7b24553715ff27e6a9937a020522904559f4c48f3e18ca712b80762d55c285ce8f99eb4cd9a84b2875a351eb1df1ef6c705c5d3199 +SHA512 (ocserv-1.2.1.tar.xz) = 13cc0dc33cced3c020a754414ce6f4f6c210875b75264528b2ba7b62c07416c30db1549f2efdad6f5f01b3156a23379243c7d761b3164db9741929ec8e001c93 +SHA512 (ocserv-1.2.1.tar.xz.sig) = de1a4ec354d48834901e98f165d9f25b5a3a19f7b81194b728dac19d93198a8ddd8b692cb266fe3a707523a8d936403f171c3f33ed8293ff20a5eda9d3abc912 From 30b425e52b3aabd6fdf3828f4ea7a61f6624b417 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 22 Aug 2023 19:31:54 +0200 Subject: [PATCH 12/35] updated URIs of source --- ocserv.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ocserv.spec b/ocserv.spec index f2dc5c0..6829296 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -27,8 +27,8 @@ Summary: OpenConnect SSL VPN server # To simplify licenses LGPLv2+ files have been promoted to GPLv2+. License: GPLv2+ and BSD and MIT and CC0 URL: http://www.infradead.org/ocserv/ -Source0: ftp://ftp.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz -Source1: ftp://ftp.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz.sig +Source0: https://www.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz +Source1: https://www.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz.sig Source2: gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg Source3: ocserv.conf Source4: ocserv.service From b6de869f7d3bd8900eb192d4ef7147dc6f6ee4bf Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Wed, 23 Aug 2023 09:21:15 +0200 Subject: [PATCH 13/35] corrected download link --- ocserv.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ocserv.spec b/ocserv.spec index 6829296..1079efb 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -27,8 +27,8 @@ Summary: OpenConnect SSL VPN server # To simplify licenses LGPLv2+ files have been promoted to GPLv2+. License: GPLv2+ and BSD and MIT and CC0 URL: http://www.infradead.org/ocserv/ -Source0: https://www.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz -Source1: https://www.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz.sig +Source0: https://www.infradead.org/ocserv/download/%{name}-%{version}.tar.xz +Source1: https://www.infradead.org/ocserv/download/%{name}-%{version}.tar.xz.sig Source2: gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg Source3: ocserv.conf Source4: ocserv.service From 53be0e848d952435be6f308b6a5f83a786c19bd2 Mon Sep 17 00:00:00 2001 From: Packit Date: Wed, 23 Aug 2023 07:26:24 +0000 Subject: [PATCH 14/35] [packit] 1.2.1 upstream release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream tag: 1.2.1 Upstream commit: 895a23f3 If you need to do any change in this pull request, you need to locally fetch the source branch of it and push it (with a fix) to your fork (as it is not possible to push to the branch created in the Packit’s fork): ``` git fetch https://src.fedoraproject.org/forks/packit/rpms/ocserv.git refs/heads/*:refs/remotes/packit/* git checkout packit/1.2.1-f37-update-pull_from_upstream ``` --- .gitignore | 2 ++ README.packit | 3 +++ ocserv-1.2.0.tar.xz | Bin 0 -> 746968 bytes ocserv-1.2.0.tar.xz.sig | Bin 0 -> 442 bytes ocserv.spec | 13 +++++++++++-- sources | 4 ++-- 6 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 README.packit create mode 100644 ocserv-1.2.0.tar.xz create mode 100644 ocserv-1.2.0.tar.xz.sig diff --git a/.gitignore b/.gitignore index d8812e1..a1c008c 100644 --- a/.gitignore +++ b/.gitignore @@ -237,3 +237,5 @@ /ocserv-1.1.4.tar.xz.sig /ocserv-1.1.6.tar.xz.sig /ocserv-1.1.6.tar.xz +/ocserv-1.2.1.tar.xz +/ocserv-1.2.1.tar.xz.sig diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..797aefb --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 0.79.0.post2+g93f33d9. diff --git a/ocserv-1.2.0.tar.xz b/ocserv-1.2.0.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..6843ae9d73599815329572349d58712c5489721c GIT binary patch literal 746968 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

F7bZA!n;Xu|Z!0!*rq0E`^`v(; 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

$t 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
cM{ZA%C3aEyaUDB^|m0-@-OWZVW+6v>?rE?B( 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­pw_gS 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

a^zovBfuLFz^sP6h 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%0Dpga_QJb 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 literal 0 HcmV?d00001 diff --git a/ocserv-1.2.0.tar.xz.sig b/ocserv-1.2.0.tar.xz.sig new file mode 100644 index 0000000000000000000000000000000000000000..df757642a4300d2f2d4d9c544ca8911bcc04784c GIT binary patch literal 442 zcmV;r0Y(0a0k;GI0SEvc79j*5LP3cI*dS`BRLtBd?pV2&hEZ_^0%WalJOBy_5Gn3h zxt4}eame5dA4Z(FK6E%h$9mjlCW+a+e-Nv|je}X{!~t+7_HL|1C7nQGb-b#`8VSWc zM~9P9)r1_9)HW%QXHX}ddy#H3=1SyWO`c*TueDE6s_jb8tEHbP@j>?XXdDv0ps?X2 zlAWQ*O)sY4SguR^(ByIR!rNPXDhUZ|SpGa>X6a^K&>u${$t+nq*6?P#jvcQjKl|%% zo~ntB!RgyYn)D6R)xtU%NkGCWo$xtt1gLu*JR_=*>I@hrpLyy0)OZyh;B+=d!P?Ff zd_Spog13-)bO}Tl04AtFpMt%38Bw@n1;2K35WgZikApPWI2vCLALjSS$f_UTmSe~w zYMK#l{&|Z?q;4Ofwlj~w%BXR&fjp)M3+ce~&8#!{X5qnoNnxb9hAiV#_Apn3{%T%r z`1gX<-I{tnTF3rF`zSulxxWX|yY87demA@9;l!Ub@aI^bbIkSz;etyyPBqrdmdX|e0dPbQr89>St*T~)tiCxRg>mtBF`D*ylh literal 0 HcmV?d00001 diff --git a/ocserv.spec b/ocserv.spec index 1079efb..5fd953b 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,5 +1,5 @@ -Version: 1.1.6 -Release: 2%{?dist} +Version: 1.2.1 +Release: 1%{?dist} %global _hardened_build 1 %if 0%{?fedora} || 0%{?rhel} >= 7 @@ -272,6 +272,15 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %endif %changelog +* Wed Aug 23 2023 Packit - 1.2.1-1 +- Accept the Clavister OneConnect VPN Android client (#485) +- No longer require to set device name per vhost (#480) +- Account the correct number of points when proxyproto is in use (#529) +- nuttcp tests were replaced with iperf3 that is available + in more environments +- occtl: fix duplicate key in `occtl --json show users` output + + * Fri Jul 22 2022 Fedora Release Engineering - 1.1.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index bb03d35..b336b2f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ocserv-1.1.6.tar.xz.sig) = 2a87768ad63d40053732fa011bbeb3532c9673296b9be299bf8f7d8dd3dd35571eee96c0b4fa9bf5a30633b4c844337ab3d562d6ea2b6ad8efca084eb5e6f502 -SHA512 (ocserv-1.1.6.tar.xz) = d1c5e5cf0e84aab168ed51516534df8b2968194dd1421f33563c61b3e47d5d79ebe9e6ffbf7cbcc9ff1242fae05151024f70ef586d063bec0b3eec00050bfdfa +SHA512 (ocserv-1.2.1.tar.xz) = 13cc0dc33cced3c020a754414ce6f4f6c210875b75264528b2ba7b62c07416c30db1549f2efdad6f5f01b3156a23379243c7d761b3164db9741929ec8e001c93 +SHA512 (ocserv-1.2.1.tar.xz.sig) = de1a4ec354d48834901e98f165d9f25b5a3a19f7b81194b728dac19d93198a8ddd8b692cb266fe3a707523a8d936403f171c3f33ed8293ff20a5eda9d3abc912 From 9a1b8aec554f33bf5406302397d1daef27d47eee Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Wed, 23 Aug 2023 09:47:54 +0200 Subject: [PATCH 15/35] make check: no longer use xfail for missing file --- ocserv.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ocserv.spec b/ocserv.spec index 67ea6c7..6ca2228 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -192,8 +192,7 @@ mkdir -p -m 700 %{_sysconfdir}/pki/ocserv/private mkdir -p %{_sysconfdir}/pki/ocserv/cacerts %check -# The 1.2.0 release has a missing file -make check %{?_smp_mflags} VERBOSE=1 XFAIL_TESTS="test-group-cert" +make check %{?_smp_mflags} VERBOSE=1 %if %{use_systemd} %post From acf2636e4a2c5de4f7b7671aed54f0a823ba696b Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 29 Aug 2023 11:00:27 +0200 Subject: [PATCH 16/35] config: increased log level to 3 Signed-off-by: Nikos Mavrogiannopoulos --- ocserv.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocserv.conf b/ocserv.conf index 0ecd600..0e63981 100644 --- a/ocserv.conf +++ b/ocserv.conf @@ -438,7 +438,7 @@ pid-file = /var/run/ocserv.pid # 4 http # 8 sensitive # 9 TLS -log-level = 1 +log-level = 3 # Set the protocol-defined priority (SO_PRIORITY) for packets to # be sent. That is a number from 0 to 6 with 0 being the lowest From 79e827501fbc1867c97666fad825a65dad2380c6 Mon Sep 17 00:00:00 2001 From: Packit Date: Thu, 21 Sep 2023 19:44:09 +0000 Subject: [PATCH 17/35] [packit] 1.2.2 upstream release Upstream tag: 1.2.2 Upstream commit: f6164756 --- .gitignore | 2 ++ README.packit | 2 +- ocserv.spec | 2 +- sources | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 1b89049..4fa485b 100644 --- a/.gitignore +++ b/.gitignore @@ -243,3 +243,5 @@ /ocserv-1.2.0.tar.xz.sig /ocserv-1.2.1.tar.xz /ocserv-1.2.1.tar.xz.sig +/ocserv-1.2.2.tar.xz +/ocserv-1.2.2.tar.xz.sig diff --git a/README.packit b/README.packit index 797aefb..ce6b9b9 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.79.0.post2+g93f33d9. +The file was generated using packit 0.80.0.post35+g9430d702. diff --git a/ocserv.spec b/ocserv.spec index 6ca2228..ff70f88 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,4 +1,4 @@ -Version: 1.2.1 +Version: 1.2.2 Release: %autorelease %global _hardened_build 1 diff --git a/sources b/sources index b336b2f..58e8472 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ocserv-1.2.1.tar.xz) = 13cc0dc33cced3c020a754414ce6f4f6c210875b75264528b2ba7b62c07416c30db1549f2efdad6f5f01b3156a23379243c7d761b3164db9741929ec8e001c93 -SHA512 (ocserv-1.2.1.tar.xz.sig) = de1a4ec354d48834901e98f165d9f25b5a3a19f7b81194b728dac19d93198a8ddd8b692cb266fe3a707523a8d936403f171c3f33ed8293ff20a5eda9d3abc912 +SHA512 (ocserv-1.2.2.tar.xz) = f1a55d2d849aadadcae6ea792845531d4fe71a3d7defad353a961828ddea74faa85a7d6b8de64a5fce115b14ea00f87755f01833cf31550532b1c52a02bd1fb0 +SHA512 (ocserv-1.2.2.tar.xz.sig) = e3a159d76b5651c99487546681657cdb008d50d86647bf2df1034dc6936720d0db9566490958a9d79ad4a68b122b1d19021e0c849d72a0ab3277d777b9e1ddb7 From af0417afa78bef7307adc73ecee096331b746841 Mon Sep 17 00:00:00 2001 From: Packit Date: Thu, 21 Sep 2023 19:44:52 +0000 Subject: [PATCH 18/35] [packit] 1.2.2 upstream release Upstream tag: 1.2.2 Upstream commit: f6164756 --- .gitignore | 2 ++ README.packit | 2 +- ocserv.spec | 8 +++++++- sources | 4 ++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index a1c008c..ecd84cd 100644 --- a/.gitignore +++ b/.gitignore @@ -239,3 +239,5 @@ /ocserv-1.1.6.tar.xz /ocserv-1.2.1.tar.xz /ocserv-1.2.1.tar.xz.sig +/ocserv-1.2.2.tar.xz +/ocserv-1.2.2.tar.xz.sig diff --git a/README.packit b/README.packit index 797aefb..ce6b9b9 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.79.0.post2+g93f33d9. +The file was generated using packit 0.80.0.post35+g9430d702. diff --git a/ocserv.spec b/ocserv.spec index 5fd953b..c8bb377 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,4 +1,4 @@ -Version: 1.2.1 +Version: 1.2.2 Release: 1%{?dist} %global _hardened_build 1 @@ -272,6 +272,12 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %endif %changelog +* Thu Sep 21 2023 Packit - 1.2.2-1 +- Fix session and accounting data tracking of ocserv. This + reverts fix for #444 (#541) +- No longer account ICMP and IGMP data for idle session detection + + * Wed Aug 23 2023 Packit - 1.2.1-1 - Accept the Clavister OneConnect VPN Android client (#485) - No longer require to set device name per vhost (#480) diff --git a/sources b/sources index b336b2f..58e8472 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ocserv-1.2.1.tar.xz) = 13cc0dc33cced3c020a754414ce6f4f6c210875b75264528b2ba7b62c07416c30db1549f2efdad6f5f01b3156a23379243c7d761b3164db9741929ec8e001c93 -SHA512 (ocserv-1.2.1.tar.xz.sig) = de1a4ec354d48834901e98f165d9f25b5a3a19f7b81194b728dac19d93198a8ddd8b692cb266fe3a707523a8d936403f171c3f33ed8293ff20a5eda9d3abc912 +SHA512 (ocserv-1.2.2.tar.xz) = f1a55d2d849aadadcae6ea792845531d4fe71a3d7defad353a961828ddea74faa85a7d6b8de64a5fce115b14ea00f87755f01833cf31550532b1c52a02bd1fb0 +SHA512 (ocserv-1.2.2.tar.xz.sig) = e3a159d76b5651c99487546681657cdb008d50d86647bf2df1034dc6936720d0db9566490958a9d79ad4a68b122b1d19021e0c849d72a0ab3277d777b9e1ddb7 From e6f6c537c313505f39d43ccd538412c131ab2525 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Thu, 21 Sep 2023 21:55:46 +0200 Subject: [PATCH 19/35] explicitly set package name in packit --- .packit.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.packit.yaml b/.packit.yaml index 3902f72..b3ac8a0 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -1,6 +1,7 @@ upstream_project_url: https://gitlab.com/openconnect/ocserv issue_repository: https://gitlab.com/openconnect/ocserv copy_upstream_release_description: true +downstream_package_name: ocserv jobs: - job: pull_from_upstream From 1ea8c5c3f424bbd80aff6b81b16d274b40982b0f Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Fri, 13 Oct 2023 22:00:20 +0200 Subject: [PATCH 20/35] Use the SPDX identifiers for license --- ocserv.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocserv.spec b/ocserv.spec index ff70f88..044934f 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -25,7 +25,7 @@ Summary: OpenConnect SSL VPN server # For a breakdown of the licensing, see PACKAGE-LICENSING # To simplify licenses LGPLv2+ files have been promoted to GPLv2+. -License: GPLv2+ and BSD and MIT and CC0 +License: GPL-2.0-or-later AND BSD-3-Clause AND MIT AND CC0-1.0 URL: http://www.infradead.org/ocserv/ Source0: https://www.infradead.org/ocserv/download/%{name}-%{version}.tar.xz Source1: https://www.infradead.org/ocserv/download/%{name}-%{version}.tar.xz.sig From 1a032ccb5d0d119571906266bdefb3b46892b55b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 21 Jan 2024 10:38:32 +0000 Subject: [PATCH 21/35] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 72eba2e3ca135c9a18a8304438b860283f8b043a Mon Sep 17 00:00:00 2001 From: Packit Date: Wed, 24 Jan 2024 22:32:00 +0000 Subject: [PATCH 22/35] [packit] 1.2.4 upstream release Upstream tag: 1.2.4 Upstream commit: 7ced730f --- .gitignore | 2 ++ README.packit | 2 +- ocserv.spec | 2 +- sources | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 4fa485b..7d9002b 100644 --- a/.gitignore +++ b/.gitignore @@ -245,3 +245,5 @@ /ocserv-1.2.1.tar.xz.sig /ocserv-1.2.2.tar.xz /ocserv-1.2.2.tar.xz.sig +/ocserv-1.2.4.tar.xz +/ocserv-1.2.4.tar.xz.sig diff --git a/README.packit b/README.packit index ce6b9b9..bba9424 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.80.0.post35+g9430d702. +The file was generated using packit 0.89.0.post1.dev4+gabf90471. diff --git a/ocserv.spec b/ocserv.spec index 044934f..d33856e 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,4 +1,4 @@ -Version: 1.2.2 +Version: 1.2.4 Release: %autorelease %global _hardened_build 1 diff --git a/sources b/sources index 58e8472..b51fe99 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ocserv-1.2.2.tar.xz) = f1a55d2d849aadadcae6ea792845531d4fe71a3d7defad353a961828ddea74faa85a7d6b8de64a5fce115b14ea00f87755f01833cf31550532b1c52a02bd1fb0 -SHA512 (ocserv-1.2.2.tar.xz.sig) = e3a159d76b5651c99487546681657cdb008d50d86647bf2df1034dc6936720d0db9566490958a9d79ad4a68b122b1d19021e0c849d72a0ab3277d777b9e1ddb7 +SHA512 (ocserv-1.2.4.tar.xz) = 202c7045bea1b7a10bd711d9b1b23f5437da9ff71fde0577137c8059ea68956c8cc294f3d23f041bda7b0fb0ae292577a99101554a12206177f5a1f5ca16ea3b +SHA512 (ocserv-1.2.4.tar.xz.sig) = b2c287e0398eb55571a04e0b0ae16f2b5636c136f467b41872c9bdfd8bd8b25aa541022a6c8b337b0d160f4f673076d03358c7c0259ec4554d604cf31e7f36d3 From 589cf4fe6b41eae178018c38f4cefd32ba9a8849 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Thu, 25 Jan 2024 08:56:12 +0100 Subject: [PATCH 23/35] spec: added ipcalc and updated the location of ocserv-fw Signed-off-by: Nikos Mavrogiannopoulos --- ocserv.spec | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/ocserv.spec b/ocserv.spec index d33856e..4b43e8c 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -49,30 +49,19 @@ BuildRequires: gnutls30-devel %else BuildRequires: gnutls-devel %endif -BuildRequires: pam-devel -BuildRequires: iproute -BuildRequires: openconnect -BuildRequires: gnutls-utils +BuildRequires: pam-devel, iproute, ipcalc, openconnect, gnutls-utils %if (0%{?use_local_protobuf} == 0) BuildRequires: protobuf-c-devel %endif -BuildRequires: libnl3-devel -BuildRequires: krb5-devel -BuildRequires: libtasn1-devel -BuildRequires: gperf -BuildRequires: libtalloc-devel -BuildRequires: libev-devel -BuildRequires: http-parser-devel +BuildRequires: libnl3-devel, krb5-devel, libtasn1-devel, gperf, libtalloc-devel +BuildRequires: libev-devel, http-parser-devel, radcli-devel, lz4-devel, readline-devel +BuildRequires: automake, autoconf %if %{use_libwrap} BuildRequires: tcp_wrappers-devel %endif -BuildRequires: automake, autoconf -BuildRequires: radcli-devel -BuildRequires: lz4-devel -BuildRequires: readline-devel %if %{use_geoip} BuildRequires: GeoIP-devel %else @@ -256,7 +245,7 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %{_bindir}/ocpasswd %{_bindir}/occtl -%{_bindir}/ocserv-fw +%{_libexecdir}/ocserv-fw %{_bindir}/ocserv-script %{_sbindir}/ocserv %{_sbindir}/ocserv-worker From 323c089d8200ba93de9fc73e7d305824ca302905 Mon Sep 17 00:00:00 2001 From: Packit Date: Sun, 5 May 2024 20:21:54 +0000 Subject: [PATCH 24/35] Update to 1.3.0 upstream release - Resolves: rhbz#2279186 Upstream tag: 1.3.0 Upstream commit: 92dba6e4 Commit authored by Packit automation (https://packit.dev/) --- .gitignore | 2 ++ README.packit | 2 +- ocserv.spec | 2 +- sources | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 7d9002b..0c67db0 100644 --- a/.gitignore +++ b/.gitignore @@ -247,3 +247,5 @@ /ocserv-1.2.2.tar.xz.sig /ocserv-1.2.4.tar.xz /ocserv-1.2.4.tar.xz.sig +/ocserv-1.3.0.tar.xz +/ocserv-1.3.0.tar.xz.sig diff --git a/README.packit b/README.packit index bba9424..066b312 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.89.0.post1.dev4+gabf90471. +The file was generated using packit 0.95.0.post1.dev8+gce6bd577. diff --git a/ocserv.spec b/ocserv.spec index 4b43e8c..bbb5b68 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,4 +1,4 @@ -Version: 1.2.4 +Version: 1.3.0 Release: %autorelease %global _hardened_build 1 diff --git a/sources b/sources index b51fe99..4426293 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ocserv-1.2.4.tar.xz) = 202c7045bea1b7a10bd711d9b1b23f5437da9ff71fde0577137c8059ea68956c8cc294f3d23f041bda7b0fb0ae292577a99101554a12206177f5a1f5ca16ea3b -SHA512 (ocserv-1.2.4.tar.xz.sig) = b2c287e0398eb55571a04e0b0ae16f2b5636c136f467b41872c9bdfd8bd8b25aa541022a6c8b337b0d160f4f673076d03358c7c0259ec4554d604cf31e7f36d3 +SHA512 (ocserv-1.3.0.tar.xz) = 24c3129b389fa767ad14f158580d8abd6830e697162b8fcfe3df6a4d21d543460c1955c3e0c63fecb8b4b01bd2492254d3eea8d5ba60d864cea314325badda7e +SHA512 (ocserv-1.3.0.tar.xz.sig) = dd6a2e6f28a512bda19e758b32149cfe7951151edab8c34ac371dbcd17eed4a8b10fdfee306629c1d42c2a3e22bcfe523ee2aafb84d59181d5be719c399cfb7d From dd77e0d1691e0cab6c189409c9fd9b58f82ec26e Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Mon, 6 May 2024 08:21:15 +0200 Subject: [PATCH 25/35] add llhttp dependency Signed-off-by: Nikos Mavrogiannopoulos --- ocserv.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ocserv.spec b/ocserv.spec index bbb5b68..656cfa0 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -56,7 +56,7 @@ BuildRequires: protobuf-c-devel %endif BuildRequires: libnl3-devel, krb5-devel, libtasn1-devel, gperf, libtalloc-devel -BuildRequires: libev-devel, http-parser-devel, radcli-devel, lz4-devel, readline-devel +BuildRequires: libev-devel, llhttp-devel, radcli-devel, lz4-devel, readline-devel BuildRequires: automake, autoconf %if %{use_libwrap} @@ -129,7 +129,6 @@ gpgv2 --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} || gpgv2 --keyring %{SOURCE10} %autosetup -p1 -rm -f src/http-parser/http_parser.c src/http-parser/http_parser.h %if (0%{?use_local_protobuf} == 0) rm -rf src/protobuf/protobuf-c/ touch src/*.proto From 324fe9b5f41a685fcb4860fc513783148f23a082 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Mon, 6 May 2024 08:26:18 +0200 Subject: [PATCH 26/35] Updated project URI --- ocserv.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocserv.spec b/ocserv.spec index 656cfa0..5a2221a 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -26,7 +26,7 @@ Summary: OpenConnect SSL VPN server # For a breakdown of the licensing, see PACKAGE-LICENSING # To simplify licenses LGPLv2+ files have been promoted to GPLv2+. License: GPL-2.0-or-later AND BSD-3-Clause AND MIT AND CC0-1.0 -URL: http://www.infradead.org/ocserv/ +URL: http://ocserv.openconnect-vpn.net/ Source0: https://www.infradead.org/ocserv/download/%{name}-%{version}.tar.xz Source1: https://www.infradead.org/ocserv/download/%{name}-%{version}.tar.xz.sig Source2: gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg From 2a60a76b0b2649d9a8d4917d721a8ab0b9cf54a1 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Mon, 6 May 2024 08:34:49 +0200 Subject: [PATCH 27/35] URI: corrected Signed-off-by: Nikos Mavrogiannopoulos --- ocserv.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocserv.spec b/ocserv.spec index 5a2221a..5663985 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -26,7 +26,7 @@ Summary: OpenConnect SSL VPN server # For a breakdown of the licensing, see PACKAGE-LICENSING # To simplify licenses LGPLv2+ files have been promoted to GPLv2+. License: GPL-2.0-or-later AND BSD-3-Clause AND MIT AND CC0-1.0 -URL: http://ocserv.openconnect-vpn.net/ +URL: https://ocserv.openconnect-vpn.net/ Source0: https://www.infradead.org/ocserv/download/%{name}-%{version}.tar.xz Source1: https://www.infradead.org/ocserv/download/%{name}-%{version}.tar.xz.sig Source2: gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg From 5817038376fc5d7ce07bf8a918ea3c45eccc8ba0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 18 Jul 2024 20:29:03 +0000 Subject: [PATCH 28/35] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 2f4d19486046c52c616d52694f80ee8b40392491 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jan 2025 21:15:56 +0000 Subject: [PATCH 29/35] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From e45ab8cbe6d421eca94ca54de371845f3f1a8b8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 1 Feb 2025 19:56:09 +0100 Subject: [PATCH 30/35] Add explicit BR: libxcrypt-devel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Esser --- ocserv.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/ocserv.spec b/ocserv.spec index 5663985..d7bf29d 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -43,6 +43,7 @@ Source11: ocserv.init # http://git.infradead.org/ocserv.git/commitdiff/7d70006a2dbddf783213f1856374bacc74217e09 BuildRequires: make +BuildRequires: libxcrypt-devel BuildRequires: gcc %if 0%{?rhel} && 0%{?rhel} <= 6 BuildRequires: gnutls30-devel From 470ea11ba7286796e5d558b289b81c6f2b328d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 11 Feb 2025 15:53:26 +0100 Subject: [PATCH 31/35] Add sysusers.d config file to allow rpm to create users/groups automatically See https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers. --- ocserv.spec | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ocserv.spec b/ocserv.spec index d7bf29d..30aacd9 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -101,7 +101,6 @@ BuildRequires: rubygem-ronn-ng Recommends: gnutls-utils Recommends: iproute Recommends: pam -Requires(pre): shadow-utils %if %{use_systemd} Requires(post): systemd Requires(preun): systemd @@ -142,6 +141,11 @@ sed -i 's/run-as-group = nogroup/run-as-group = nobody/g' tests/data/*.config echo "int main() { return 77; }" > tests/valid-hostname.c %endif +# Create a sysusers.d config file +cat >ocserv.sysusers.conf </dev/null || groupadd -r ocserv -getent passwd ocserv &>/dev/null || \ - /usr/sbin/useradd -r -g ocserv -s /sbin/nologin -c ocserv \ - -d %{_localstatedir}/lib/ocserv ocserv mkdir -p %{_sysconfdir}/pki/ocserv/public mkdir -p -m 700 %{_sysconfdir}/pki/ocserv/private mkdir -p %{_sysconfdir}/pki/ocserv/cacerts @@ -226,6 +226,8 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %make_install +install -m0644 -D ocserv.sysusers.conf %{buildroot}%{_sysusersdir}/ocserv.conf + %files %defattr(-,root,root,-) @@ -256,6 +258,7 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name} %else %{_initrddir}/%{name} %endif +%{_sysusersdir}/ocserv.conf %changelog %autochangelog From ae84a30d03bd0bf3a2109e55de2066dd4482d34b Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 18 May 2025 07:09:54 -0400 Subject: [PATCH 32/35] Rebuilt for llhttp 9.3.0 From 32d376716d2d796be925b24c4c5498c921ee4298 Mon Sep 17 00:00:00 2001 From: indeo mail Date: Wed, 23 Jul 2025 11:13:11 +0000 Subject: [PATCH 33/35] Update ocserv-genkey OCServ genkey is a good tool in OCServ The default key type of certtool is rsa, but rsa may not be a good choice I tried to add a logic to the ocserv genkey. The key type can be determined according to the parameters. If there is no input parameter, it will be generated according to the default rsa, which does not conflict with the previous use logic. After installing OCSERV, I can directly run `ocserv-genkey ecdsa` to generate ecdsa based certificates. --- ocserv-genkey | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/ocserv-genkey b/ocserv-genkey index 924aab9..8cfc320 100755 --- a/ocserv-genkey +++ b/ocserv-genkey @@ -1,9 +1,25 @@ #!/bin/sh +#default key type:rsa +KEY_TYPE="rsa" + +#check key type 'rsa', 'rsa-pss', 'dsa', 'ecdsa', 'ed25519, 'ed448', 'x25519', and 'x448' +if [ $# -gt 0 ]; then + case "$1" in + rsa|rsa-pss|dsa|ecdsa|ed25519|ed448|x25519|x448) + KEY_TYPE="$1" + ;; + *) + echo "Usage: $0 [rsa|rsa-pss|dsa|ecdsa|ed25519|ed448|x25519|x448]" + echo "Default key type: rsa" + exit 1 + ;; + esac +fi #generate CA certificate/key if test ! -f /etc/pki/ocserv/private/ca.key;then mkdir -p /etc/pki/ocserv/private -certtool --generate-privkey --outfile /etc/pki/ocserv/private/ca.key >/dev/null 2>&1 +certtool --generate-privkey --key-type=$KEY_TYPE --outfile /etc/pki/ocserv/private/ca.key >/dev/null 2>&1 echo "cn=`hostname -f` CA" >/etc/pki/ocserv/ca.tmpl echo "expiration_days=-1" >>/etc/pki/ocserv/ca.tmpl echo "serial=1" >>/etc/pki/ocserv/ca.tmpl @@ -17,7 +33,7 @@ fi #generate server certificate/key if test ! -f /etc/pki/ocserv/private/server.key;then -certtool --generate-privkey --outfile /etc/pki/ocserv/private/server.key >/dev/null 2>&1 +certtool --generate-privkey --key-type=$KEY_TYPE --outfile /etc/pki/ocserv/private/server.key >/dev/null 2>&1 echo "cn=`hostname -f`" >/etc/pki/ocserv/server.tmpl echo "serial=2" >>/etc/pki/ocserv/server.tmpl echo "expiration_days=-1" >>/etc/pki/ocserv/server.tmpl From f7c89057b3b761b7ecac30011e8bd9e0d4502abb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 24 Jul 2025 23:23:30 +0000 Subject: [PATCH 34/35] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 26e4189551072a985626f903b3b66651905b4425 Mon Sep 17 00:00:00 2001 From: Packit Date: Sun, 4 Jan 2026 15:15:35 +0000 Subject: [PATCH 35/35] Update to 1.4.0 upstream release - Resolves: rhbz#2427015 Upstream tag: 1.4.0 Upstream commit: 5f5ac6fe Commit authored by Packit automation (https://packit.dev/) --- .gitignore | 2 ++ README.packit | 2 +- ocserv.spec | 2 +- sources | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 0c67db0..c97bec0 100644 --- a/.gitignore +++ b/.gitignore @@ -249,3 +249,5 @@ /ocserv-1.2.4.tar.xz.sig /ocserv-1.3.0.tar.xz /ocserv-1.3.0.tar.xz.sig +/ocserv-1.4.0.tar.xz +/ocserv-1.4.0.tar.xz.sig diff --git a/README.packit b/README.packit index 066b312..9bb65f0 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.95.0.post1.dev8+gce6bd577. +The file was generated using packit 1.13.0.post1.dev2+g84134016c. diff --git a/ocserv.spec b/ocserv.spec index 30aacd9..55f1520 100644 --- a/ocserv.spec +++ b/ocserv.spec @@ -1,4 +1,4 @@ -Version: 1.3.0 +Version: 1.4.0 Release: %autorelease %global _hardened_build 1 diff --git a/sources b/sources index 4426293..bc50de1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ocserv-1.3.0.tar.xz) = 24c3129b389fa767ad14f158580d8abd6830e697162b8fcfe3df6a4d21d543460c1955c3e0c63fecb8b4b01bd2492254d3eea8d5ba60d864cea314325badda7e -SHA512 (ocserv-1.3.0.tar.xz.sig) = dd6a2e6f28a512bda19e758b32149cfe7951151edab8c34ac371dbcd17eed4a8b10fdfee306629c1d42c2a3e22bcfe523ee2aafb84d59181d5be719c399cfb7d +SHA512 (ocserv-1.4.0.tar.xz) = cef771c6ee43925d743b7a21fed1cd7d54c10e39c0966fbc7062df9b7691c9a3a73c1c4589382592668f81809edea0fe0b947c7ddf86a6cdc1a144cf059526b0 +SHA512 (ocserv-1.4.0.tar.xz.sig) = a73ce14e8e355f747e40241056c2bb734d6dae4e1d6aed0f24aaa6d1a469f6d86a077af4a38e6376846fd5520ee33c7be8ce7b3830bcb0faa5e32b12ed7483cd