summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruff <me@ruff.mobi>2020-11-27 20:39:10 +0100
committerGitHub <noreply@github.com>2020-11-27 20:39:10 +0100
commitc88008d5faac4efc3e679f279caaeadce46629cf (patch)
treeb18c1cd904a9d3fe589671d1a407463a853d55a1
parentba6f20086999f2d7d7dafa75c77552a06f5e7d5b (diff)
parentf35be864471bba3e9ba98f82dd6e1805ea902db8 (diff)
downloadwocky-c88008d5faac4efc3e679f279caaeadce46629cf.tar.gz
Merge pull request #18 from rufferson/ci
Add CI pipeline for code verification
-rw-r--r--.github/workflows/main.yml51
-rw-r--r--.gitlab-ci.yml84
-rw-r--r--.gitlab-ci/Dockerfile.debstbl29
-rw-r--r--.gitlab-ci/Dockerfile.debtest29
-rw-r--r--.gitlab-ci/Dockerfile.fedora27
-rw-r--r--.gitlab-ci/Dockerfile.osuselp24
-rw-r--r--.gitlab-ci/Dockerfile.osusetw24
-rw-r--r--tests/Makefile.am28
-rw-r--r--tests/certs/badwild-cert.cfg2
-rw-r--r--tests/certs/badwild-cert.pem30
-rw-r--r--tests/certs/exp-cert.cfg7
-rw-r--r--tests/certs/exp-cert.pem45
-rw-r--r--tests/certs/ins-cert.cfg2
-rw-r--r--tests/certs/ins-cert.pem16
-rw-r--r--tests/certs/new-cert.cfg7
-rw-r--r--tests/certs/new-cert.pem45
-rw-r--r--tests/certs/rev-cert.cfg2
-rw-r--r--tests/certs/rev-cert.pem45
-rw-r--r--tests/certs/tls-cert.cfg2
-rw-r--r--tests/certs/tls-cert.pem16
-rw-r--r--tests/certs/unknown-cert.cfg2
-rw-r--r--tests/certs/unknown-cert.pem46
-rw-r--r--tests/certs/wild-cert.cfg2
-rw-r--r--tests/certs/wild-cert.pem30
-rw-r--r--tests/wocky-connector-test.c235
-rw-r--r--tests/wocky-dummy-xmpp-server.c2
-rw-r--r--tests/wocky-test-connector-server.c7
-rw-r--r--tests/wocky-test-connector-server.h3
-rw-r--r--tests/wocky-test-sasl-auth-server.c63
-rw-r--r--tests/wocky-test-sasl-auth-server.h3
-rw-r--r--wocky/wocky-xmpp-connection.c31
31 files changed, 649 insertions, 290 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 0000000..2b5457b
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,51 @@
+name: Simple CI
+on:
+ push:
+ pull_request:
+
+jobs:
+ syntax_check:
+ runs-on: ubuntu-latest
+ timeout-minutes: 5
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install prereqs
+ run: |-
+ sudo apt-get update && sudo apt-get install --no-install-recommends -qq -y build-essential \
+ ccache automake libtool libglib2.0-dev glib-networking telepathy-gabble libsasl2-dev \
+ libxml2-dev libsoup2.4-dev libsasl2-modules-gssapi-mit gnutls-bin libsqlite3-dev \
+ libssl-dev libgnutls28-dev
+ - name: Bootstrap
+ run: bash autogen.sh
+ - name: Code Syntax Check
+ run: make -C wocky check-local
+ - name: Test Syntax Check
+ run: make -C tests check-coding-style
+
+ build:
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/cache@v2
+ with:
+ path: wocky/.libs
+ key: ${{ github.sha }}
+ - name: Install prereqs
+ run: |-
+ sudo apt-get update && sudo apt-get install --no-install-recommends -qq -y build-essential \
+ ccache automake libtool libglib2.0-dev glib-networking telepathy-gabble libsasl2-dev \
+ libxml2-dev libsoup2.4-dev libsasl2-modules-gssapi-mit gnutls-bin libsqlite3-dev \
+ libssl-dev libgnutls28-dev
+ - name: Bootstrap
+ run: bash autogen.sh
+ - name: Build
+ run: make
+ - name: Run TLSv1.3 test
+ run: make -C tests test-new
+ - name: Artifacts
+ uses: actions/upload-artifact@v2
+ with:
+ name: Reports
+ path: tests/test*report.xml
+
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..174e9ae
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,84 @@
+stages:
+ - style-check
+ - build
+ - test
+
+variables:
+ FEDORA_IMG: registry.freedesktop.org/ruff/wocky/master:v1
+ DEBIAN_IMG: registry.freedesktop.org/ruff/wocky/debtest:v1
+ DEBSTB_IMG: registry.freedesktop.org/ruff/wocky/debstbl:v1
+ SUSELP_IMG: registry.freedesktop.org/ruff/wocky/osuselp:v1
+ SUSETW_IMG: registry.freedesktop.org/ruff/wocky/osusetw:v1
+ WOCKY_DEBUG: all
+ #G_MESSAGES_DEBUG: all
+
+.default:
+ before_script:
+ - bash autogen.sh
+ cache:
+ key: "$CI_JOB_IMAGE:$CI_COMMIT_SHA"
+ untracked: true
+
+.defbuild:
+ extends: .default
+ stage: build
+ script:
+ - make
+
+.deftest:
+ extends: .default
+ stage: test
+ script:
+ - make check
+ artifacts:
+ when: always
+ paths:
+ - "tests/test-old-report.xml"
+ - "tests/test-new-report.xml"
+
+style-check:
+ image: $FEDORA_IMG
+ extends: .default
+ stage: style-check
+ script:
+ - make -C wocky check-local
+
+fedora-x86_64-build:
+ image: $FEDORA_IMG
+ extends: .defbuild
+
+fedora-x86_64-test:
+ image: $FEDORA_IMG
+ extends: .deftest
+
+debian-x86_64-build:
+ image: $DEBIAN_IMG
+ extends: .defbuild
+
+debian-x86_64-test:
+ image: $DEBIAN_IMG
+ extends: .deftest
+
+opensuse-x86_64-build:
+ image: $SUSETW_IMG
+ extends: .defbuild
+
+opensuse-x86_64-test:
+ image: $SUSETW_IMG
+ extends: .deftest
+
+debian-stable-x86_64-build:
+ image: $DEBSTB_IMG
+ extends: .defbuild
+
+debian-stable-x86_64-test:
+ image: $DEBSTB_IMG
+ extends: .deftest
+
+opensuse-stable-x86_64-build:
+ image: $SUSELP_IMG
+ extends: .defbuild
+
+opensuse-stable-x86_64-test:
+ image: $SUSELP_IMG
+ extends: .deftest
diff --git a/.gitlab-ci/Dockerfile.debstbl b/.gitlab-ci/Dockerfile.debstbl
new file mode 100644
index 0000000..b114a19
--- /dev/null
+++ b/.gitlab-ci/Dockerfile.debstbl
@@ -0,0 +1,29 @@
+FROM debian:stable
+
+RUN apt-get update \
+ && apt-get install --no-install-recommends -qq -y build-essential \
+ ccache automake libtool lcov \
+ libglib2.0-dev glib-networking \
+ && apt-get clean
+
+RUN apt-get install -qqy telepathy-gabble libsasl2-dev libxml2-dev \
+ libsoup2.4-dev libsasl2-modules-gssapi-mit \
+ gnutls-bin libsqlite3-dev libssl-dev libgnutls28-dev \
+ && apt-get clean
+
+# Debug the docker if required
+#RUN echo 'deb http://debug.mirrors.debian.org/debian-debug testing-debug main' > /etc/apt/sources.list.d/debug.list \
+# && apt-get update \
+# && apt-get install -yqq libsasl2-modules-gssapi-mit-dbgsym libsasl2-2-dbgsym \
+# libglib2.0-0-dbgsym glib-networking-dbgsym libssl1.1-dbgsym libgnutls30-dbgsym \
+# valgrind gdb git vim
+
+ARG HOST_USER_ID=1000
+ENV HOST_USER_ID ${HOST_USER_ID}
+RUN useradd -u $HOST_USER_ID -ms /bin/bash user
+RUN ln -fs /usr/bin/python3 /usr/local/bin/python
+
+USER user
+WORKDIR /home/user
+
+ENV LANG C.UTF-8
diff --git a/.gitlab-ci/Dockerfile.debtest b/.gitlab-ci/Dockerfile.debtest
new file mode 100644
index 0000000..700a633
--- /dev/null
+++ b/.gitlab-ci/Dockerfile.debtest
@@ -0,0 +1,29 @@
+FROM debian:testing
+
+RUN apt-get update \
+ && apt-get install --no-install-recommends -qq -y build-essential \
+ ccache automake libtool lcov \
+ libglib2.0-dev glib-networking \
+ && apt-get clean
+
+RUN apt-get install -qqy telepathy-gabble libsasl2-dev libxml2-dev \
+ libsoup2.4-dev libsasl2-modules-gssapi-mit \
+ gnutls-bin libsqlite3-dev libssl-dev libgnutls28-dev \
+ && apt-get clean
+
+# Debug the docker if required
+#RUN echo 'deb http://debug.mirrors.debian.org/debian-debug testing-debug main' > /etc/apt/sources.list.d/debug.list \
+# && apt-get update \
+# && apt-get install -yqq libsasl2-modules-gssapi-mit-dbgsym libsasl2-2-dbgsym \
+# libglib2.0-0-dbgsym glib-networking-dbgsym libssl1.1-dbgsym libgnutls30-dbgsym \
+# valgrind gdb git vim
+
+ARG HOST_USER_ID=1000
+ENV HOST_USER_ID ${HOST_USER_ID}
+RUN useradd -u $HOST_USER_ID -ms /bin/bash user
+RUN ln -fs /usr/bin/python3 /usr/local/bin/python
+
+USER user
+WORKDIR /home/user
+
+ENV LANG C.UTF-8
diff --git a/.gitlab-ci/Dockerfile.fedora b/.gitlab-ci/Dockerfile.fedora
new file mode 100644
index 0000000..173b9a2
--- /dev/null
+++ b/.gitlab-ci/Dockerfile.fedora
@@ -0,0 +1,27 @@
+FROM fedora:rawhide
+
+RUN dnf update -y \
+ && dnf install -y 'dnf-command(builddep)' \
+ && dnf builddep -y glib-networking \
+ && dnf install -y openssl-devel \
+ && dnf clean all
+RUN dnf builddep -y telepathy-gabble \
+ && dnf install -y autoconf automake make \
+ openssl-devel gnutls-utils \
+ cyrus-sasl-scram cyrus-sasl-md5 cyrus-sasl-plain \
+ && dnf clean all
+
+# Debug the docker if required
+#RUN dnf install -y valgrind gdb git \
+# && dnf debuginfo-install -y cyrus-sasl cyrus-sasl-scram \
+# glib glib-networking openssl gnutls
+
+ARG HOST_USER_ID=1000
+ENV HOST_USER_ID ${HOST_USER_ID}
+RUN useradd -u $HOST_USER_ID -ms /bin/bash user
+RUN ln -fs /usr/bin/python3 /usr/local/bin/python
+
+USER user
+WORKDIR /home/user
+
+ENV LANG C.UTF-8
diff --git a/.gitlab-ci/Dockerfile.osuselp b/.gitlab-ci/Dockerfile.osuselp
new file mode 100644
index 0000000..6a54591
--- /dev/null
+++ b/.gitlab-ci/Dockerfile.osuselp
@@ -0,0 +1,24 @@
+FROM opensuse/leap:latest
+
+RUN zypper -q update -y \
+ && zypper -q install -y -t pattern devel_basis \
+ && zypper -q install -y ccache glib2-devel glib-networking \
+ && zypper -q clean
+
+RUN zypper -q install -y telepathy-glib-devel telepathy-gabble \
+ cyrus-sasl-devel cyrus-sasl-scram cyrus-sasl-plain cyrus-sasl-digestmd5 \
+ libxml2-devel libsoup-devel gnutls sqlite3-devel \
+ && zypper -q clean
+
+# Debug the docker if required
+#RUN zypper install -y valgrind gdb git vim
+
+ARG HOST_USER_ID=1000
+ENV HOST_USER_ID ${HOST_USER_ID}
+RUN useradd -u $HOST_USER_ID -ms /bin/bash user
+RUN ln -fs /usr/bin/python3 /usr/local/bin/python
+
+USER user
+WORKDIR /home/user
+
+ENV LANG C.UTF-8
diff --git a/.gitlab-ci/Dockerfile.osusetw b/.gitlab-ci/Dockerfile.osusetw
new file mode 100644
index 0000000..becc5bc
--- /dev/null
+++ b/.gitlab-ci/Dockerfile.osusetw
@@ -0,0 +1,24 @@
+FROM opensuse/tumbleweed:latest
+
+RUN zypper -q update -y \
+ && zypper -q install -y -t pattern devel_basis \
+ && zypper -q install -y ccache glib2-devel glib-networking \
+ && zypper -q clean
+
+RUN zypper -q install -y telepathy-glib-devel telepathy-gabble \
+ cyrus-sasl-devel cyrus-sasl-scram cyrus-sasl-plain cyrus-sasl-digestmd5 \
+ libxml2-devel libsoup-devel gnutls sqlite3-devel \
+ && zypper -q clean
+
+# Debug the docker if required
+#RUN zypper install -y valgrind gdb git vim
+
+ARG HOST_USER_ID=1000
+ENV HOST_USER_ID ${HOST_USER_ID}
+RUN useradd -u $HOST_USER_ID -ms /bin/bash user
+RUN ln -fs /usr/bin/python3 /usr/local/bin/python
+
+USER user
+WORKDIR /home/user
+
+ENV LANG C.UTF-8
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 85bd866..a3cc717 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -23,6 +23,8 @@ BADWILD_KEY := $(CERT_DIR)/badwild-key.pem
BADWILD_CERT := $(CERT_DIR)/badwild-cert.pem
CA_DIR := $(CERT_DIR)/cas
CRL_DIR := $(CERT_DIR)/crl
+UNKNOWN_CA_KEY := $(CERT_DIR)/unknown-ca-key.pem
+UNKNOWN_CA_CERT := $(CERT_DIR)/unknown-ca-cert.pem
UNKNOWN_KEY := $(CERT_DIR)/unknown-key.pem
UNKNOWN_CERT := $(CERT_DIR)/unknown-cert.pem
INCLUDES := -I$(top_builddir)/wocky
@@ -51,13 +53,19 @@ TLSDEFS := -DTLS_CA_KEY_FILE='"$(CA_KEY)"' \
CA0S = $(BADWILD_CERT) $(WILD_CERT) $(TLS_CERT) $(NEW_CERT) $(EXP_CERT) $(REV_CERT) $(SS_CERT) $(INS_CERT)
-certs: $(CA0S)
+certs: $(CA0S) $(UNKNOWN_CERT)
$(CA0S): $(CERT_DIR)/%-cert.pem: $(CERT_DIR)/%-cert.cfg $(CA_CERT) $(CA_KEY)
certtool --generate-certificate --template $< --outfile $@ --load-privkey certs/$*-key.pem --load-ca-certificate $(CA_CERT) --load-ca-privkey $(CA_KEY)
$(INS_CERT): $(CERT_DIR)/ins-cert.cfg $(INS_KEY) $(CA_CERT) $(CA_KEY)
- certtool --generate-certificate --template $< --outfile $@ --load-privkey certs/$*-key.pem --load-ca-certificate $(CA_CERT) --load-ca-privkey $(CA_KEY) --hash SHA1
+ certtool --generate-certificate --template $< --outfile $@ --load-privkey $(INS_KEY) --load-ca-certificate $(CA_CERT) --load-ca-privkey $(CA_KEY) --hash SHA1
+
+$(UNKNOWN_CA_CERT): $(CERT_DIR)/unknown-ca-cert.cfg $(UNKNOWN_CA_KEY)
+ certtool --generate-self-signed --template $< --outfile $@ --load-privkey $(UNKNOWN_CA_KEY)
+
+$(UNKNOWN_CERT): $(CERT_DIR)/unknown-cert.cfg $(UNKNOWN_KEY) $(UNKNOWN_CA_CERT) $(UNKNOWN_CA_KEY)
+ certtool --generate-certificate --template $< --outfile $@ --load-privkey $(UNKNOWN_KEY) --load-ca-certificate $(UNKNOWN_CA_CERT) --load-ca-privkey $(UNKNOWN_CA_KEY)
############################################################################
TEST_PROGS = \
wocky-bare-contact-test \
@@ -261,15 +269,23 @@ test-report: test-report.xml
test-report.xml: ${TEST_PROGS} test
-test: ${TEST_PROGS}
- G_TLS_GNUTLS_PRIORITY='NORMAL:%COMPAT:-VERS-TLS1.3' \
- gtester -o test-report.xml -k --verbose ${TEST_PROGS}
+test: test-old test-new
@if [ -x $(which python) ] ; then \
- $(SUMMARY) $@-report.xml ; \
+ echo "TLSv1.2 Test summary" ; \
+ $(SUMMARY) test-old-report.xml ; \
+ echo "TLSv1.3 Test summary" ; \
+ $(SUMMARY) test-new-report.xml ; \
else \
echo "No python available, not summarizing test results" ; \
fi
+test-new: ${TEST_PROGS}
+ gtester -o $@-report.xml -k --verbose ${TEST_PROGS}
+
+test-old: ${TEST_PROGS}
+ G_TLS_GNUTLS_PRIORITY='NORMAL:%COMPAT:-VERS-TLS1.3' \
+ gtester -o $@-report.xml -k --verbose ${TEST_PROGS}
+
test-%: wocky-%-test
gtester -o $@-report.xml -k --verbose $<
@if [ -x $(which python) ] ; then \
diff --git a/tests/certs/badwild-cert.cfg b/tests/certs/badwild-cert.cfg
index 10637bc..66ad74a 100644
--- a/tests/certs/badwild-cert.cfg
+++ b/tests/certs/badwild-cert.cfg
@@ -66,7 +66,7 @@ tls_www_server
# Whether this certificate will be used to sign data (needed
# in TLS DHE ciphersuites).
-#signing_key
+signing_key
# Whether this certificate will be used to encrypt data (needed
# in TLS RSA ciphersuites). Note that it is prefered to use different
diff --git a/tests/certs/badwild-cert.pem b/tests/certs/badwild-cert.pem
index 5d845da..6f3f799 100644
--- a/tests/certs/badwild-cert.pem
+++ b/tests/certs/badwild-cert.pem
@@ -1,10 +1,10 @@
-----BEGIN CERTIFICATE-----
-MIIEUzCCAzugAwIBAgIBAjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJVSzES
+MIIEXTCCA0WgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJVSzES
MBAGA1UEChMJQ29sbGFib3JhMRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMREw
DwYDVQQIEwhDb25mdXNlZDEbMBkGA1UEAxMSV29ja3kgWE1QUCBMaWJyYXJ5MB4X
-DTEyMDUwODE3MjMxNFoXDTQwMDUwMTE3MjMxNFowaTELMAkGA1UEBhMCVUsxEjAQ
-BgNVBAoTCUNvbGxhYm9yYTEZMBcGA1UECxMQV29ja3kgVGVzdCBTdWl0ZTEOMAwG
-A1UECBMFRGF6ZWQxGzAZBgNVBAMTEldvY2t5IFhNUFAgTGlicmFyeTCCAVIwDQYJ
+DTIwMTExNDE3MTAwN1oXDTQ4MTEwNzE3MTAwN1owaTEbMBkGA1UEAxMSV29ja3kg
+WE1QUCBMaWJyYXJ5MRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMRIwEAYDVQQK
+EwlDb2xsYWJvcmExDjAMBgNVBAgTBURhemVkMQswCQYDVQQGEwJVSzCCAVIwDQYJ
KoZIhvcNAQEBBQADggE/ADCCAToCggExAKqugc6RDo23Xf4k7c6ZcWAcennYpZ56
DN4onsqvL7fu5oqorMSWuZnHB6YV74q+Fu0UDLXS9TE4+Vvn3eJrEh4VkcKLqoFs
gflGhQS4eul4G1JERPQmux3JkyRNrsJECTncyqW5A82YpFh9SaHWaifxb6Y24G9u
@@ -12,15 +12,15 @@ gflGhQS4eul4G1JERPQmux3JkyRNrsJECTncyqW5A82YpFh9SaHWaifxb6Y24G9u
G9FH/4eX1JfmNT4VyoAwFjVTBw1228z2bnyt/MSFCVnbnYcNU381rYFjq6O9bzf9
Cfglb58AbwJnKIoaCn2AzavpMXYmEjt9vplZ3DQFBcC5/ysUWW22C2HjqSz0BcQ0
a3+qpql2gdr+tKAAactY7yC1HI095eMLRxMLN5aedImfAW8o/aVOBsUCAwEAAaOB
-0jCBzzAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
-ATAhBgNVHREEGjAYghAqZWFzZWwtanVpY2Uub3JnhwR/AAABMA8GA1UdDwEB/wQF
-AwMHIAAwHQYDVR0OBBYEFAOsVIF450rphWkweqxR8bnRaBnmMB8GA1UdIwQYMBaA
-FEkwJgiMmtZpzYvAzA5cAo5KH6aMMCwGA1UdHwQlMCMwIaAfoB2GG2ZpbGU6Ly8v
-dG1wL3dvY2t5LXRlc3RzL2NybDANBgkqhkiG9w0BAQsFAAOCAQEAeJIQ1SZS3UQZ
-1aBh3901WZhYozH38i7I7JclEQO0Kla2et289IAc2IiocEoeMjwE3bO+1xO4EF2N
-zEgGzodaIsVGol9zlrRm9CXeYgRBPkgorebFWfEigIsLY3VjrhBhV3UnDTY7Hebr
-tqdOX7Xa0DLud1AqGzNia2aon28qY05qu5RPgxfvpRUYnJJlT5tidSkbXJIuvbb0
-roFd+es4qgQU+ZiAc6DHpREcShxd+20JJVR9zvqeM7egP3tZPiFf8u6n3CsYKQ0p
-be3NygY35lwc1VYxX/PMecslbsHQoa+ZWgd2+lcZ/81QD2JrmRo7nG3clsCbXodj
-1c8cuflfhw==
+3DCB2TAMBgNVHRMBAf8EAjAAMCcGA1UdJQQgMB4GCCsGAQUFBwMCBggrBgEFBQcD
+AQYIKwYBBQUHAwgwIQYDVR0RBBowGIIQKmVhc2VsLWp1aWNlLm9yZ4cEfwAAATAP
+BgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBQDrFSBeOdK6YVpMHqsUfG50WgZ5jAf
+BgNVHSMEGDAWgBRJMCYIjJrWac2LwMwOXAKOSh+mjDAsBgNVHR8EJTAjMCGgH6Ad
+hhtmaWxlOi8vL3RtcC93b2NreS10ZXN0cy9jcmwwDQYJKoZIhvcNAQELBQADggEB
+AEHx1KwCR7JgvNPlMSQpLjy7vPAU+jpG0QqYQU3k+utq0IBVGGFwjnkXXiNmoyTX
+ZYK+pwTyK3Q2D1WvCtW13LoBzHC+qBGY1Z0w4y6KLfw7I3RLp/6PWjSyMRbxGPC+
+F3Zgr8Y2w3uPzq9UhJ0pk2rrTjnDRPWcHTpeEUL1DxFj3T/nXTZvBmNjNsZW/eAE
+kByBSzcd8G2I9GAVUGiqACBN7VPRHqUxuesV4yU5hTUPDQfWZWdBURWeDobrMMrq
+2w3nBbYg0hika6Rqnotn4Muhz/lfHQQxHS5QV5DB+4TI+u9xehXkhD5wFEXIcCh7
+sNmRQg4WxFSrdanrRfOv0cc=
-----END CERTIFICATE-----
diff --git a/tests/certs/exp-cert.cfg b/tests/certs/exp-cert.cfg
index 74378d0..4b41b0e 100644
--- a/tests/certs/exp-cert.cfg
+++ b/tests/certs/exp-cert.cfg
@@ -37,7 +37,10 @@ cn = "Wocky XMPP Library"
serial = 002
# In how many days, counting from today, this certificate will expire.
-expiration_days = 1
+#expiration_days = 1
+
+activation_date = "1969-12-29 16:21:42"
+expiration_date = "1970-01-01 00:00:00"
# X.509 v3 extensions
@@ -66,7 +69,7 @@ tls_www_server
# Whether this certificate will be used to sign data (needed
# in TLS DHE ciphersuites).
-#signing_key
+signing_key
# Whether this certificate will be used to encrypt data (needed
# in TLS RSA ciphersuites). Note that it is prefered to use different
diff --git a/tests/certs/exp-cert.pem b/tests/certs/exp-cert.pem
index e080364..73e8c93 100644
--- a/tests/certs/exp-cert.pem
+++ b/tests/certs/exp-cert.pem
@@ -1,24 +1,25 @@
-----BEGIN CERTIFICATE-----
-MIIEHDCCAwagAwIBAgIBAjALBgkqhkiG9w0BAQUwbDELMAkGA1UEBhMCVUsxEjAQ
-BgNVBAoTCUNvbGxhYm9yYTEZMBcGA1UECxMQV29ja3kgVGVzdCBTdWl0ZTERMA8G
-A1UECBMIQ29uZnVzZWQxGzAZBgNVBAMTEldvY2t5IFhNUFAgTGlicmFyeTAeFw0w
-OTA5MTExMjU0MDBaFw0wOTA5MTIxMjU0MDBaMGkxCzAJBgNVBAYTAlVLMRIwEAYD
-VQQKEwlDb2xsYWJvcmExGTAXBgNVBAsTEFdvY2t5IFRlc3QgU3VpdGUxDjAMBgNV
-BAgTBURhemVkMRswGQYDVQQDExJXb2NreSBYTVBQIExpYnJhcnkwggEfMAsGCSqG
-SIb3DQEBAQOCAQ4AMIIBCQKCAQCeUF/jv6V1BGXNb+epimCBLHRqVXpOQud/uC3R
-YgG/hcagM4kUqavAyQSIa83Oc9L01SY38QNENbs4YdLBH0Gvxo4Sc3A/X8IZp23l
-g6mSwxZzWoRO/D0g5bxDAkCXY+hh+ed4HnfHo+a1J/bVnyNwd6ssagQfyCXX0hCm
-D4sNk4DFmWr30oEVMRo5jaTcRoyXf5ATuBa8D0bluwOaqccaosFLS6m6B0c8o6OO
-uT7SM+9VvzG1BU+TzttZrKJmLh2vrKV09+InixDFMfemWGUCHf183xn9Sb1blNyj
-M++ZgTs98dbJXStzxYLMNkeJFZtroMi6wzgt1Kbfe9XrcaChAgMBAAGjgdIwgc8w
-DAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwIQYD
-VR0RBBowGIIQd2Vhc2VsLWp1aWNlLm9yZ4cEfwAAATAPBgNVHQ8BAf8EBQMDByAA
-MB0GA1UdDgQWBBSp54s9nx3wWAR/8iKl1XGPyKC/VTAfBgNVHSMEGDAWgBRJMCYI
-jJrWac2LwMwOXAKOSh+mjDAsBgNVHR8EJTAjMCGgH6AdhhtmaWxlOi8vL3RtcC93
-b2NreS10ZXN0cy9jcmwwCwYJKoZIhvcNAQEFA4IBAQCzzxwwXOB5xnaKoDerB6fq
-QbUmyi5Xj/c1kNgN5WnICUJc8bgXWlhLtvXyEE+/2Gshv6rOwpeH7pO4wtACaiHH
-NmR78Z1OPKlf4+Bxo5/wQhx228gCOsRpFK+qab5s5/OhmJe4r4AyWoF4CPYfyE0v
-Z5PkOeFiYc5VSJdI7y360zPV8FBYcASU90aCjREDAi+FK0r+Bp2OdxiTRL9N+mEM
-blgInz/adg74oDjPmrwENkEZbaKyVwL9WBUD7OABIA42exK8nvCwPRiu1//8ALSR
-wXTAhJ3lOIG4FOoOKBu9sIY/iRL/mJa39YJHG+gVFx+taJKB95tHthGuPraGJjch
+MIIELTCCAxWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJVSzES
+MBAGA1UEChMJQ29sbGFib3JhMRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMREw
+DwYDVQQIEwhDb25mdXNlZDEbMBkGA1UEAxMSV29ja3kgWE1QUCBMaWJyYXJ5MB4X
+DTY5MTIyOTE1MjE0MloXDTY5MTIzMTIzMDAwMFowaTEbMBkGA1UEAxMSV29ja3kg
+WE1QUCBMaWJyYXJ5MRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMRIwEAYDVQQK
+EwlDb2xsYWJvcmExDjAMBgNVBAgTBURhemVkMQswCQYDVQQGEwJVSzCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ5QX+O/pXUEZc1v56mKYIEsdGpVek5C
+53+4LdFiAb+FxqAziRSpq8DJBIhrzc5z0vTVJjfxA0Q1uzhh0sEfQa/GjhJzcD9f
+whmnbeWDqZLDFnNahE78PSDlvEMCQJdj6GH553ged8ej5rUn9tWfI3B3qyxqBB/I
+JdfSEKYPiw2TgMWZavfSgRUxGjmNpNxGjJd/kBO4FrwPRuW7A5qpxxqiwUtLqboH
+Rzyjo465PtIz71W/MbUFT5PO21msomYuHa+spXT34ieLEMUx96ZYZQId/XzfGf1J
+vVuU3KMz75mBOz3x1sldK3PFgsw2R4kVm2ugyLrDOC3Upt971etxoKECAwEAAaOB
+3DCB2TAMBgNVHRMBAf8EAjAAMCcGA1UdJQQgMB4GCCsGAQUFBwMCBggrBgEFBQcD
+AQYIKwYBBQUHAwgwIQYDVR0RBBowGIIQd2Vhc2VsLWp1aWNlLm9yZ4cEfwAAATAP
+BgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBTrSPaVNmH057nEpzxkZFY9aPFFbTAf
+BgNVHSMEGDAWgBRJMCYIjJrWac2LwMwOXAKOSh+mjDAsBgNVHR8EJTAjMCGgH6Ad
+hhtmaWxlOi8vL3RtcC93b2NreS10ZXN0cy9jcmwwDQYJKoZIhvcNAQELBQADggEB
+AH2xoQqd508rqCugfIcl1VSiqPSnw9T5nzHrdGPMzB2TJ8DuKVHLfm68Cftg67uN
+smqC1WtmtSJ4Z0AQ2nOmQ9hny05XDVANlrIV6B7r6M+NIQqh+gI3vrR0ucRV0/eZ
+B5bwkcnmA6YvwVpCvg8JkYL3wyWwLJdranmuVxMM0O+K0Fi5J8ccyobGeEYa8ajl
+TavPr7JzVTELu0OfbDaTup9eeBGYLrp9PTOoL83YeF3tvqJ1x0CWwUuwXr7m8+sk
+YRe7VTJDzPfaZBLRohrtxx602+wW9Avg57g0g7BmmZy9HFT81YBdDIJfs7FV4TYa
+bbYSvodUuZy/LbGSbdtjnEY=
-----END CERTIFICATE-----
diff --git a/tests/certs/ins-cert.cfg b/tests/certs/ins-cert.cfg
index 6c2e1a3..5bc03f6 100644
--- a/tests/certs/ins-cert.cfg
+++ b/tests/certs/ins-cert.cfg
@@ -66,7 +66,7 @@ tls_www_server
# Whether this certificate will be used to sign data (needed
# in TLS DHE ciphersuites).
-#signing_key
+signing_key
# Whether this certificate will be used to encrypt data (needed
# in TLS RSA ciphersuites). Note that it is prefered to use different
diff --git a/tests/certs/ins-cert.pem b/tests/certs/ins-cert.pem
index b3413a1..be7af10 100644
--- a/tests/certs/ins-cert.pem
+++ b/tests/certs/ins-cert.pem
@@ -2,7 +2,7 @@
MIIELTCCAxWgAwIBAgIBBDANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQGEwJVSzES
MBAGA1UEChMJQ29sbGFib3JhMRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMREw
DwYDVQQIEwhDb25mdXNlZDEbMBkGA1UEAxMSV29ja3kgWE1QUCBMaWJyYXJ5MB4X
-DTIwMDUxMTE4MzI0NFoXDTQ4MDUwNDE4MzI0NFowaTEbMBkGA1UEAxMSV29ja3kg
+DTIwMTExNDE3MTQzN1oXDTQ4MTEwNzE3MTQzN1owaTEbMBkGA1UEAxMSV29ja3kg
WE1QUCBMaWJyYXJ5MRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMRIwEAYDVQQK
EwlDb2xsYWJvcmExDjAMBgNVBAgTBURhemVkMQswCQYDVQQGEwJVSzCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKL22MCJWN3b3t+FBpCyECjaZqK3V6eK
@@ -13,13 +13,13 @@ TGz6iaEQ/TBEkwRB3c8CNN6uiqrlcwwkl+/OXPNlKE4zNZPm4zWD+zeCPRgMdddW
7ATPIyODy5KCs+h2PM/wLLjlNMtke38yT+PBOA2pW1YYZG5IK/unU/0CAwEAAaOB
3DCB2TAMBgNVHRMBAf8EAjAAMCcGA1UdJQQgMB4GCCsGAQUFBwMCBggrBgEFBQcD
AQYIKwYBBQUHAwgwIQYDVR0RBBowGIIQd2Vhc2VsLWp1aWNlLm9yZ4cEfwAAATAP
-BgNVHQ8BAf8EBQMDByAAMB0GA1UdDgQWBBQCf5kwZxkTwfvI3Rwlrign1scf+jAf
+BgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBQCf5kwZxkTwfvI3Rwlrign1scf+jAf
BgNVHSMEGDAWgBRJMCYIjJrWac2LwMwOXAKOSh+mjDAsBgNVHR8EJTAjMCGgH6Ad
hhtmaWxlOi8vL3RtcC93b2NreS10ZXN0cy9jcmwwDQYJKoZIhvcNAQEFBQADggEB
-ALmGhFsGI6qYettdU+gqy8rrm/9X6IIkrAf05nbIksIAmUd4tBGezmlDzNtiEhvX
-33ZRN728RL6XPpC7utQkM9hlan7Whkx9Yk6bCdpzvO/nx4eyO5RvwJLxXhFFGKto
-DKDgoPUJ3tz/mLTGR/ZGjZi1z5ARj0R4O3+VSF56XrekqUeM6wDNgq3SaOuFfe2z
-qdN7GRG+9QZeQY6t3WtAlpVe/T7el3pnyK03HjyM2JXvPxBbVPNvqrQvsZx4fqx8
-XkyT2dsR3NTjxwYRIAg+OELomNskDcc30KkPN43FS04cJ10sWlutvDVq/UDyrn2m
-VHPeV22ZWpWn626Z7X+uV/w=
+AFk10J/A6CUKYPEWD1bk1PYvMJHVoboFHyqIjIsJsPeda7z0ntpfTBIAWog/bOix
+62F/c5wV2M944B47anprDBSwlF3RVY+gL6xAOPI0r9zZbLAU0FDWxuNKdHxZcex8
+U4UGIAZFnyJjlZB9APi5xlyleBRVr04CQxbfbGFqRrkVgh/5M7cPW5BMZt3aTlNQ
+rCHj3fJ8IFlkEXZQnYw7Gszt8quxVuNO1sykyJrOPpgBBxIb4uVAv9GZBwfVIGvT
+nsdsDZk1Ll3JMaXbOv4ujJkiI5XdbDKD0b/gSvIMf+uDnm9PFVTMOeVQXZoxBPLr
+PrTJ74YxQ+QgHCIb2gCT7WE=
-----END CERTIFICATE-----
diff --git a/tests/certs/new-cert.cfg b/tests/certs/new-cert.cfg
index b7f74fb..94c305f 100644
--- a/tests/certs/new-cert.cfg
+++ b/tests/certs/new-cert.cfg
@@ -37,7 +37,10 @@ cn = "Wocky XMPP Library"
serial = 003
# In how many days, counting from today, this certificate will expire.
-expiration_days = 7
+#expiration_days = 7
+
+activation_date = "2969-12-29 16:21:42"
+expiration_date = "2970-01-01 00:00:00"
# X.509 v3 extensions
@@ -66,7 +69,7 @@ tls_www_server
# Whether this certificate will be used to sign data (needed
# in TLS DHE ciphersuites).
-#signing_key
+signing_key
# Whether this certificate will be used to encrypt data (needed
# in TLS RSA ciphersuites). Note that it is prefered to use different
diff --git a/tests/certs/new-cert.pem b/tests/certs/new-cert.pem
index 082576d..595c533 100644
--- a/tests/certs/new-cert.pem
+++ b/tests/certs/new-cert.pem
@@ -1,24 +1,25 @@
-----BEGIN CERTIFICATE-----
-MIIEHDCCAwagAwIBAgIBAzALBgkqhkiG9w0BAQUwbDELMAkGA1UEBhMCVUsxEjAQ
-BgNVBAoTCUNvbGxhYm9yYTEZMBcGA1UECxMQV29ja3kgVGVzdCBTdWl0ZTERMA8G
-A1UECBMIQ29uZnVzZWQxGzAZBgNVBAMTEldvY2t5IFhNUFAgTGlicmFyeTAeFw0z
-NzA5MTExMjU0MDBaFw0zNzA5MTgxMjU0MDBaMGkxCzAJBgNVBAYTAlVLMRIwEAYD
-VQQKEwlDb2xsYWJvcmExGTAXBgNVBAsTEFdvY2t5IFRlc3QgU3VpdGUxDjAMBgNV
-BAgTBURhemVkMRswGQYDVQQDExJXb2NreSBYTVBQIExpYnJhcnkwggEfMAsGCSqG
-SIb3DQEBAQOCAQ4AMIIBCQKCAQC5lmoJIYHwwdSxR5438H9UQlIfaSp8T/irxQG1
-tDDqjkv37H5JUIwGIYXxRuM4k1tDYj+nEICj7dLzFGY6NCHrOPSILvxRfvYQ4Iz7
-VSUTnHjSkrlQ6ILzZWdork2KKpAE6O0fAJ+mhy4fwtjnIhXDUapIyoOniee4SZfE
-7LZx8ZjIO6hhv4JCReKNz1sb7zjuVl5Xghr+1LYO7OmimBejm4LxNIPttpkkZh26
-Syr+UtE1UhN5Ojiim2rKdekYf3S5WiiltOw/3WFD1KJmgyLy5XLhD87M5+wJ+7Aq
-lv4obAgYKJPg3rcy5UX/1iRjT7/AGbWlBi07e5zKa+VA1xZHAgMBAAGjgdIwgc8w
-DAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwIQYD
-VR0RBBowGIIQd2Vhc2VsLWp1aWNlLm9yZ4cEfwAAATAPBgNVHQ8BAf8EBQMDByAA
-MB0GA1UdDgQWBBTQlqg773FSODizSAmYG7bIV06GuzAfBgNVHSMEGDAWgBRJMCYI
-jJrWac2LwMwOXAKOSh+mjDAsBgNVHR8EJTAjMCGgH6AdhhtmaWxlOi8vL3RtcC93
-b2NreS10ZXN0cy9jcmwwCwYJKoZIhvcNAQEFA4IBAQBTok7jC9jwZeiPmGgiktNe
-kkAwKJuJpa9O9lgeiZywlaR3vWIEuQpi7P/VpkWca7pjmu0kVJk7AupW6s6RfeW6
-OALA7Zn9SC0w1zj2aSDmjI0DWosvkvoO+jkNS6HIozkMkWa6IX7veL7sTUP6cZ7f
-twMPExDhdNrmyOOLjxiW7Bvz6HVfAvcgCah6JjNSxL4QAdFiz0VJOInWXtp7/2rc
-YMeBsg4YFkV51YBVts7gCL4lDLxE79Rkj7YwhP6f84tTy+NjFmjBYKS9tyKJViOd
-9L82PfXhHFUcYP/8wqhk+nE5PF4mLhroUq9DZpGU8ICEIzGburysoQi64IoPDCGM
+MIIEMTCCAxmgAwIBAgIBAzANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJVSzES
+MBAGA1UEChMJQ29sbGFib3JhMRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMREw
+DwYDVQQIEwhDb25mdXNlZDEbMBkGA1UEAxMSV29ja3kgWE1QUCBMaWJyYXJ5MCIY
+DzI5NjkxMjI5MTUyMTQyWhgPMjk2OTEyMzEyMzAwMDBaMGkxGzAZBgNVBAMTEldv
+Y2t5IFhNUFAgTGlicmFyeTEZMBcGA1UECxMQV29ja3kgVGVzdCBTdWl0ZTESMBAG
+A1UEChMJQ29sbGFib3JhMQ4wDAYDVQQIEwVEYXplZDELMAkGA1UEBhMCVUswggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5lmoJIYHwwdSxR5438H9UQlIf
+aSp8T/irxQG1tDDqjkv37H5JUIwGIYXxRuM4k1tDYj+nEICj7dLzFGY6NCHrOPSI
+LvxRfvYQ4Iz7VSUTnHjSkrlQ6ILzZWdork2KKpAE6O0fAJ+mhy4fwtjnIhXDUapI
+yoOniee4SZfE7LZx8ZjIO6hhv4JCReKNz1sb7zjuVl5Xghr+1LYO7OmimBejm4Lx
+NIPttpkkZh26Syr+UtE1UhN5Ojiim2rKdekYf3S5WiiltOw/3WFD1KJmgyLy5XLh
+D87M5+wJ+7Aqlv4obAgYKJPg3rcy5UX/1iRjT7/AGbWlBi07e5zKa+VA1xZHAgMB
+AAGjgdwwgdkwDAYDVR0TAQH/BAIwADAnBgNVHSUEIDAeBggrBgEFBQcDAgYIKwYB
+BQUHAwEGCCsGAQUFBwMIMCEGA1UdEQQaMBiCEHdlYXNlbC1qdWljZS5vcmeHBH8A
+AAEwDwYDVR0PAQH/BAUDAwegADAdBgNVHQ4EFgQU1J4CFfSMYWJaQwREpWWPbS3Z
+gaswHwYDVR0jBBgwFoAUSTAmCIya1mnNi8DMDlwCjkofpowwLAYDVR0fBCUwIzAh
+oB+gHYYbZmlsZTovLy90bXAvd29ja3ktdGVzdHMvY3JsMA0GCSqGSIb3DQEBCwUA
+A4IBAQBOR9szaldXLRjUngTykdGbTaIQNd7efNM8tb4p1GsXpNac4AXfT+4JmBXo
+vj7w+A7/ggV3nYvUdUfSdH4qvgYKcyoaj96zbd6gZQCxj3PcyXp1TKgiveIq8tli
+Svd1BfkuIAq5BBbTTuV8YNox6BXIugHMSHd3zvABhUB1Hw0c3mfAd7aSkGT6KXJK
+jFVrd3rMOhMw0s8v0BiPmw2Un0gKfM6IzrMhcyA3itnIRzJTsX/yTS9rROPnTbIH
+K0H6D/36NSxNnTPubtzPcVBqbsggPb4I25cCZmdvMxnnqQEyLpYFWX68yhYz4dF8
+5iqr5uoce/fKzfIkOnfDysDn85U5
-----END CERTIFICATE-----
diff --git a/tests/certs/rev-cert.cfg b/tests/certs/rev-cert.cfg
index 74261e1..cb054bc 100644
--- a/tests/certs/rev-cert.cfg
+++ b/tests/certs/rev-cert.cfg
@@ -66,7 +66,7 @@ tls_www_server
# Whether this certificate will be used to sign data (needed
# in TLS DHE ciphersuites).
-#signing_key
+signing_key
# Whether this certificate will be used to encrypt data (needed
# in TLS RSA ciphersuites). Note that it is prefered to use different
diff --git a/tests/certs/rev-cert.pem b/tests/certs/rev-cert.pem
index cab9ab6..5be2646 100644
--- a/tests/certs/rev-cert.pem
+++ b/tests/certs/rev-cert.pem
@@ -1,24 +1,25 @@
-----BEGIN CERTIFICATE-----
-MIIEHDCCAwagAwIBAgIBCzALBgkqhkiG9w0BAQUwbDELMAkGA1UEBhMCVUsxEjAQ
-BgNVBAoTCUNvbGxhYm9yYTEZMBcGA1UECxMQV29ja3kgVGVzdCBTdWl0ZTERMA8G
-A1UECBMIQ29uZnVzZWQxGzAZBgNVBAMTEldvY2t5IFhNUFAgTGlicmFyeTAeFw0w
-OTA5MTgxMjU0MTJaFw0zNzA5MTExMjU0MTJaMGkxCzAJBgNVBAYTAlVLMRIwEAYD
-VQQKEwlDb2xsYWJvcmExGTAXBgNVBAsTEFdvY2t5IFRlc3QgU3VpdGUxDjAMBgNV
-BAgTBURhemVkMRswGQYDVQQDExJXb2NreSBYTVBQIExpYnJhcnkwggEfMAsGCSqG
-SIb3DQEBAQOCAQ4AMIIBCQKCAQCnyZpKt7FMekFO9OTzIZzQPTzVH3FCBjhoViBh
-StC9oWcCFr6+RHNpi3UUG+ytgly7Clar3cz+D3tPKWWfeMo04895h6/B1wUBvtpj
-NZxVtc2yvomKcoCyWayWnuucTRb1wbAB0+shsuBKHBD4L2Ws7oHkn0wmVd0HYoay
-rXUBMmQui7Y5kYh0LaB+gcxmu/RohSwvBvpSukOl8OOkB6ngHfoJtX3SrjdTHICY
-2/Ua2fOxv+nh6hOy5xy7fapYMFNtdvNClifqLvK7VrimVqNxtiSZKNGTVoTPBWag
-o+NV2abNYjSstGkUWhq4ZI4NmkyDcHTeAtfx/142VXPqGu0LAgMBAAGjgdIwgc8w
-DAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwIQYD
-VR0RBBowGIIQd2Vhc2VsLWp1aWNlLm9yZ4cEfwAAATAPBgNVHQ8BAf8EBQMDByAA
-MB0GA1UdDgQWBBR2DyOQu6Qw1sh+lkkmX7HGJ1scGjAfBgNVHSMEGDAWgBRJMCYI
-jJrWac2LwMwOXAKOSh+mjDAsBgNVHR8EJTAjMCGgH6AdhhtmaWxlOi8vL3RtcC93
-b2NreS10ZXN0cy9jcmwwCwYJKoZIhvcNAQEFA4IBAQDAvd60gplt/Yl/On9Ucht/
-rhYfyUzW4pioSLVmiRKhKbDo8ujmhT3vgxdj2nW+uhPMxMbUsgMqj7tOBxIFqXaW
-Silo+A9iTr3Xxp/oPT+6u0FurGpu50/vPf/TMNhm+ucwYOfvpXVCJgu52c3WXp8R
-N4jvBOn8+MSlcetBUkmwRoUApNIEp+BglxDDdOB9IWhEZPvgbNokzAPrsoKflpXp
-pwkUFBuvn6/ffBBHb2I6rF4a4DC6yoK6DCYONzfHUjKMec7ex7CCWKubN31CogvH
-sb7ugiIFom/dMqjtGtWzG4ilVAQjjV5HJN+RscVp/6c/VY4WEYPfegUReGR0E47h
+MIIELTCCAxWgAwIBAgIBDTANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJVSzES
+MBAGA1UEChMJQ29sbGFib3JhMRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMREw
+DwYDVQQIEwhDb25mdXNlZDEbMBkGA1UEAxMSV29ja3kgWE1QUCBMaWJyYXJ5MB4X
+DTIwMTExNDE1MTQzNVoXDTQ4MTEwNzE1MTQzNVowaTEbMBkGA1UEAxMSV29ja3kg
+WE1QUCBMaWJyYXJ5MRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMRIwEAYDVQQK
+EwlDb2xsYWJvcmExDjAMBgNVBAgTBURhemVkMQswCQYDVQQGEwJVSzCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKfJmkq3sUx6QU705PMhnNA9PNUfcUIG
+OGhWIGFK0L2hZwIWvr5Ec2mLdRQb7K2CXLsKVqvdzP4Pe08pZZ94yjTjz3mHr8HX
+BQG+2mM1nFW1zbK+iYpygLJZrJae65xNFvXBsAHT6yGy4EocEPgvZazugeSfTCZV
+3QdihrKtdQEyZC6LtjmRiHQtoH6BzGa79GiFLC8G+lK6Q6Xw46QHqeAd+gm1fdKu
+N1McgJjb9RrZ87G/6eHqE7LnHLt9qlgwU21280KWJ+ou8rtWuKZWo3G2JJko0ZNW
+hM8FZqCj41XZps1iNKy0aRRaGrhkjg2aTINwdN4C1/H/XjZVc+oa7QsCAwEAAaOB
+3DCB2TAMBgNVHRMBAf8EAjAAMCcGA1UdJQQgMB4GCCsGAQUFBwMCBggrBgEFBQcD
+AQYIKwYBBQUHAwgwIQYDVR0RBBowGIIQd2Vhc2VsLWp1aWNlLm9yZ4cEfwAAATAP
+BgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBQRnUlh9AwUZTBs7B6BF41Hz7vBwTAf
+BgNVHSMEGDAWgBRJMCYIjJrWac2LwMwOXAKOSh+mjDAsBgNVHR8EJTAjMCGgH6Ad
+hhtmaWxlOi8vL3RtcC93b2NreS10ZXN0cy9jcmwwDQYJKoZIhvcNAQELBQADggEB
+AAJFXz03Cgsi65D6E131oVt3HTYzE1qLmUDNg2hAdDCc0SmIuam7TYJVvI5If4lh
+Plo/x3XpsSa7dQWhSJ7aOOFonfpjkc4sBli2o6QCUvqB2zHVwo7QiUYEpUUn5nEX
+FJJRWBSklMG7tQCmWnhajR1e5ZVjMu/wC/E91IS4x4UES5H7B5jH+rjjhZGDLfIs
+R3ZKQgpJQ2jufmKtVaZkOdonddieqeydWEjy8AOk98IEIyeU+vmohyti/OeuftRz
+Yn4dlkrYW4BIf/LQyVnrDQX9NrDGHOqK+OvX9g6PbC/2kvCX4bztpkAWxDOSzakD
+N4M0uE84oaEmDcKHaYuiXuA=
-----END CERTIFICATE-----
diff --git a/tests/certs/tls-cert.cfg b/tests/certs/tls-cert.cfg
index 28caca4..4b1a2cf 100644
--- a/tests/certs/tls-cert.cfg
+++ b/tests/certs/tls-cert.cfg
@@ -66,7 +66,7 @@ tls_www_server
# Whether this certificate will be used to sign data (needed
# in TLS DHE ciphersuites).
-#signing_key
+signing_key
# Whether this certificate will be used to encrypt data (needed
# in TLS RSA ciphersuites). Note that it is prefered to use different
diff --git a/tests/certs/tls-cert.pem b/tests/certs/tls-cert.pem
index 461d0f4..a3a3e5b 100644
--- a/tests/certs/tls-cert.pem
+++ b/tests/certs/tls-cert.pem
@@ -2,7 +2,7 @@
MIIELTCCAxWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJVSzES
MBAGA1UEChMJQ29sbGFib3JhMRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMREw
DwYDVQQIEwhDb25mdXNlZDEbMBkGA1UEAxMSV29ja3kgWE1QUCBMaWJyYXJ5MB4X
-DTIwMDUxMDIwMTI0NVoXDTQ4MDUwMzIwMTI0NVowaTEbMBkGA1UEAxMSV29ja3kg
+DTIwMTExNDE0NTgyNloXDTQ4MTEwNzE0NTgyNlowaTEbMBkGA1UEAxMSV29ja3kg
WE1QUCBMaWJyYXJ5MRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMRIwEAYDVQQK
EwlDb2xsYWJvcmExDjAMBgNVBAgTBURhemVkMQswCQYDVQQGEwJVSzCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMLfQBdactxqReuresch/L7S7vM0CZ1F
@@ -13,13 +13,13 @@ cKMZ8s6gD29Z6E+iRMO9A9CZdzna8gU2nwDeHTmN6ncMFjOQb5YlwlE2HLELR3MW
rKsUlbZcy0KzSnVw9oeBdU8J7iJxctjjx6FVoW8FHTYreNVDtaR63PECAwEAAaOB
3DCB2TAMBgNVHRMBAf8EAjAAMCcGA1UdJQQgMB4GCCsGAQUFBwMCBggrBgEFBQcD
AQYIKwYBBQUHAwgwIQYDVR0RBBowGIIQd2Vhc2VsLWp1aWNlLm9yZ4cEfwAAATAP
-BgNVHQ8BAf8EBQMDByAAMB0GA1UdDgQWBBSnm0ure0FMVwcbd37kVDoq2IC49zAf
+BgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBSnm0ure0FMVwcbd37kVDoq2IC49zAf
BgNVHSMEGDAWgBRJMCYIjJrWac2LwMwOXAKOSh+mjDAsBgNVHR8EJTAjMCGgH6Ad
hhtmaWxlOi8vL3RtcC93b2NreS10ZXN0cy9jcmwwDQYJKoZIhvcNAQELBQADggEB
-AFujRXAlEdlLW/QcedCfloA5OCFhDhMQSScu/QHTirgQ7yuFpS0XEeWkfWbgv3Iz
-q0StLZdDbd8xLU47boiOYx6fep6aKwRsomeewIoydxvBWLmgX8u+Re5BzWiDXif+
-w0xbiIuL5/vRADs2XpMNjC8hRlDQ0DiwO4zQ7JdfXuULZI6fnmLFXBGHn4ROModv
-ihbnALXBphRhS6Jx2vPT9vSUcl1EodxXkAevL1gAGpx/h9AY0C8hg4mgt1KBgUMh
-yPtDiUUji/mssUVS+ovCDIwNxUdJmjnVHwuyheroU1DHLKuNLywv6anzchtbpQSb
-AArp9feDlebDbxJf7hu+zck=
+AIL4wsAM/VcHau4S7nAPUdtP3BQlSplv3CcEO1zbFAvLuQ6iJxql/7BDa86J6gz/
+l26MekcrtjhvWbRgdw5GJJr23RtzuG5cvxLFDWOeb8ZdzeNxmkrOqnZnOMFmXXCA
+mhYw7bQJrcm0fY6weFmJ6TW60URX6YAdBtSACMo+Prc9hDMOJNMuVdfN75J7uNKb
+ADTrAUmspRSzr4nzBFTwKA2E3J/wtg/Zsq8twtjepRzgKa5yE47GbPsSCq48azwm
+etHBpkaOIi7cL4S2MdtoIYxZZLKaylOfyeYwjO5oCfYyUx/eV3ih5j8/veTy4UzJ
+wpBE0aFSmE2tVQmbViHOK80=
-----END CERTIFICATE-----
diff --git a/tests/certs/unknown-cert.cfg b/tests/certs/unknown-cert.cfg
index 28caca4..4b1a2cf 100644
--- a/tests/certs/unknown-cert.cfg
+++ b/tests/certs/unknown-cert.cfg
@@ -66,7 +66,7 @@ tls_www_server
# Whether this certificate will be used to sign data (needed
# in TLS DHE ciphersuites).
-#signing_key
+signing_key
# Whether this certificate will be used to encrypt data (needed
# in TLS RSA ciphersuites). Note that it is prefered to use different
diff --git a/tests/certs/unknown-cert.pem b/tests/certs/unknown-cert.pem
index 306029a..0642629 100644
--- a/tests/certs/unknown-cert.pem
+++ b/tests/certs/unknown-cert.pem
@@ -1,25 +1,25 @@
-----BEGIN CERTIFICATE-----
-MIIEITCCAwugAwIBAgIBAjALBgkqhkiG9w0BAQUwcTELMAkGA1UEBhMCVUsxEjAQ
-BgNVBAoTCUNvbGxhYm9yYTEZMBcGA1UECxMQV29ja3kgVGVzdCBTdWl0ZTEWMBQG
-A1UECBMNTG9zdC1pbi1TcGFjZTEbMBkGA1UEAxMSV29ja3kgWE1QUCBMaWJyYXJ5
-MB4XDTA5MDkxODEyNTQxM1oXDTM3MDkxMTEyNTQxM1owaTELMAkGA1UEBhMCVUsx
-EjAQBgNVBAoTCUNvbGxhYm9yYTEZMBcGA1UECxMQV29ja3kgVGVzdCBTdWl0ZTEO
-MAwGA1UECBMFRGF6ZWQxGzAZBgNVBAMTEldvY2t5IFhNUFAgTGlicmFyeTCCAR8w
-CwYJKoZIhvcNAQEBA4IBDgAwggEJAoIBAL6XDXCTUs9hqzRBFjTGlw6jRWWhHASd
-E8eEE1QOuh2ij10pu7Et6GIpLfW83i6dZSarSaifGyYkQ+qx97yjCY7p8NQaYTj7
-CADrTXLtLJVkeVihig32X49Pihe0EmyieXMdN7VdyBTDoPEglvx5yA0/srdDlk6N
-qrRdAaZxWwVBlIAoDteTMKNbakQNNjVCfx6/O6KaVRdf6PKsQ39a+bv4nFuwvnMy
-7yzmmAq2MCRY56OyEuUZZKo4Urzbd8IWmXxgkvKq4lm/pnU8yhILgWsG59Jchaf0
-e0X5Mg0Ryo65eW9oxC+N9E70MfHqXxs6EKcqEFkJNiHDGU7pApCSGSkCAwEAAaOB
-0jCBzzAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
-ATAhBgNVHREEGjAYghB3ZWFzZWwtanVpY2Uub3JnhwR/AAABMA8GA1UdDwEB/wQF
-AwMHIAAwHQYDVR0OBBYEFKH0v7AWPAzbSGYbG+h0kTcRaf+RMB8GA1UdIwQYMBaA
-FK5MjvmEOvzqUkos/bUV40sy5ngKMCwGA1UdHwQlMCMwIaAfoB2GG2ZpbGU6Ly8v
-dG1wL3dvY2t5LXRlc3RzL2NybDALBgkqhkiG9w0BAQUDggEBAAH4rfEh9rrTpzz7
-I4rLAmKyKpp9FHiPkA/ZSH/U4ffbILrych0SvpHxusNWRo3rjcUOBAq5Xt+2Oqvl
-0gVqcFF8GuGhiXYSV3k40bQHxv3MO5HanPbCIw0BDjERC0Ii+8BkDEMXRdQdyYmP
-q+D1PKjev0bQtjai2L8/R6WOWTJtZeQAMwvtEqdwSLXDxyQSEJc4NIvWWijqq3hP
-Ld+wozE/+Ajx4A4qeab9Vyj1Ul/zGYF/JDPgPLwOoBXeBJxJ+cB5HP4OOt/dpTWu
-L1ratvrGEubystJ05fPewqHhwyBDuqnCI/gIyRXEcbHA6sIJ5RpaKFWbOF1SQO4P
-30nZOag=
+MIIEMjCCAxqgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBxMRswGQYDVQQDExJXb2Nr
+eSBYTVBQIExpYnJhcnkxGTAXBgNVBAsTEFdvY2t5IFRlc3QgU3VpdGUxEjAQBgNV
+BAoTCUNvbGxhYm9yYTEWMBQGA1UECBMNTG9zdC1pbi1TcGFjZTELMAkGA1UEBhMC
+VUswHhcNMjAxMTE0MTU0MzA2WhcNNDgxMTA3MTU0MzA2WjBpMRswGQYDVQQDExJX
+b2NreSBYTVBQIExpYnJhcnkxGTAXBgNVBAsTEFdvY2t5IFRlc3QgU3VpdGUxEjAQ
+BgNVBAoTCUNvbGxhYm9yYTEOMAwGA1UECBMFRGF6ZWQxCzAJBgNVBAYTAlVLMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvpcNcJNSz2GrNEEWNMaXDqNF
+ZaEcBJ0Tx4QTVA66HaKPXSm7sS3oYikt9bzeLp1lJqtJqJ8bJiRD6rH3vKMJjunw
+1BphOPsIAOtNcu0slWR5WKGKDfZfj0+KF7QSbKJ5cx03tV3IFMOg8SCW/HnIDT+y
+t0OWTo2qtF0BpnFbBUGUgCgO15Mwo1tqRA02NUJ/Hr87oppVF1/o8qxDf1r5u/ic
+W7C+czLvLOaYCrYwJFjno7IS5RlkqjhSvNt3whaZfGCS8qriWb+mdTzKEguBawbn
+0lyFp/R7RfkyDRHKjrl5b2jEL430TvQx8epfGzoQpyoQWQk2IcMZTukCkJIZKQID
+AQABo4HcMIHZMAwGA1UdEwEB/wQCMAAwJwYDVR0lBCAwHgYIKwYBBQUHAwIGCCsG
+AQUFBwMBBggrBgEFBQcDCDAhBgNVHREEGjAYghB3ZWFzZWwtanVpY2Uub3JnhwR/
+AAABMA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFKDwYvANY1ivXjipd2L5pwqp
+rNegMB8GA1UdIwQYMBaAFPw7U5FOUAPaCbbFhKD9fCLRKoJQMCwGA1UdHwQlMCMw
+IaAfoB2GG2ZpbGU6Ly8vdG1wL3dvY2t5LXRlc3RzL2NybDANBgkqhkiG9w0BAQsF
+AAOCAQEAHgCEnmlrRsRhbUuCyJQEaJL44+Ss5OMZF3iXAY2HkSmX6Fn6FCtWE30y
+J8OE1s0tg3F05k0Hbv0r6JgV4ke3a5/3Dr8LQmouiD9m7Ksanxaj/oDkJw7ZXG38
+OVAw9yI4T+n55YZ/6TvupKBH1CLUbL6yx45qsdm8h5EOluiTPaXryDxDrw9aOagf
+YAGWXcyUB8qd+PHYuY99M5N55Xro1OB3TEVN2SE1/s3CYBZocqV2yDWSLhLBFi+k
+ymXsmcQNym1ah6/mY3Wdayl2suKjs8AquKtXHYUQdSrxL5ibFurbzYNH1f78LXNX
+Xukei2G5BkSxvtoFe7HHGHJ+Df1fhg==
-----END CERTIFICATE-----
diff --git a/tests/certs/wild-cert.cfg b/tests/certs/wild-cert.cfg
index d5aa039..f0d455f 100644
--- a/tests/certs/wild-cert.cfg
+++ b/tests/certs/wild-cert.cfg
@@ -66,7 +66,7 @@ tls_www_server
# Whether this certificate will be used to sign data (needed
# in TLS DHE ciphersuites).
-#signing_key
+signing_key
# Whether this certificate will be used to encrypt data (needed
# in TLS RSA ciphersuites). Note that it is prefered to use different
diff --git a/tests/certs/wild-cert.pem b/tests/certs/wild-cert.pem
index 966b894..7f61267 100644
--- a/tests/certs/wild-cert.pem
+++ b/tests/certs/wild-cert.pem
@@ -1,10 +1,10 @@
-----BEGIN CERTIFICATE-----
-MIIEVTCCAz2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJVSzES
+MIIEXzCCA0egAwIBAgIBAjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJVSzES
MBAGA1UEChMJQ29sbGFib3JhMRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMREw
DwYDVQQIEwhDb25mdXNlZDEbMBkGA1UEAxMSV29ja3kgWE1QUCBMaWJyYXJ5MB4X
-DTEyMDUwODE3MjMxNFoXDTQwMDUwMTE3MjMxNFowaTELMAkGA1UEBhMCVUsxEjAQ
-BgNVBAoTCUNvbGxhYm9yYTEZMBcGA1UECxMQV29ja3kgVGVzdCBTdWl0ZTEOMAwG
-A1UECBMFRGF6ZWQxGzAZBgNVBAMTEldvY2t5IFhNUFAgTGlicmFyeTCCAVIwDQYJ
+DTIwMTExNDE1MTQzNVoXDTQ4MTEwNzE1MTQzNVowaTEbMBkGA1UEAxMSV29ja3kg
+WE1QUCBMaWJyYXJ5MRkwFwYDVQQLExBXb2NreSBUZXN0IFN1aXRlMRIwEAYDVQQK
+EwlDb2xsYWJvcmExDjAMBgNVBAgTBURhemVkMQswCQYDVQQGEwJVSzCCAVIwDQYJ
KoZIhvcNAQEBBQADggE/ADCCAToCggExAOLThsSZX/OomslmhfbLQ4QL+rLXfAVN
/17JZR4WRYWeX6JZUHNSMYJ2B98JZtU/aRHdNV46or6y+0UD1AFC543wp9KetcLb
YaX2Lsxc70soBtfb6L02TQbaMf2q84/YWxwO5xCEG10KGLRrgAbxqtMvYIdGXstH
@@ -12,15 +12,15 @@ YaX2Lsxc70soBtfb6L02TQbaMf2q84/YWxwO5xCEG10KGLRrgAbxqtMvYIdGXstH
zPdr2vHlSzifNOnttPZuo4ALBE3hhf4xnxh531wdVQhsS6WTX5RhFU9ox4WsG7Q3
y5tQJQ72ARPWqVZiK1WJIDuEVlpWOutEd1McI3GVMuZt80PZaJC3uJs7f6l5Xux9
yUrE5ztzg378w5Hi6Rt3C0rLjHzn78MiC6DGlcG5KMOB+O4wgFzHCScCAwEAAaOB
-1DCB0TAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
-ATAjBgNVHREEHDAaghIqLndlYXNlbC1qdWljZS5vcmeHBH8AAAEwDwYDVR0PAQH/
-BAUDAwcgADAdBgNVHQ4EFgQUdpNYWe7MfIU0lyUQvttyQMxXTewwHwYDVR0jBBgw
-FoAUSTAmCIya1mnNi8DMDlwCjkofpowwLAYDVR0fBCUwIzAhoB+gHYYbZmlsZTov
-Ly90bXAvd29ja3ktdGVzdHMvY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQBd0wScKbZR
-+VhPij0/MWoQCwo7SpXyOCc1oTH5Cj2FKg70Al2fyfNXeQ94QybK2IFUuhuj6QuC
-2kr11a8yUaYj5GfbMP0JHjJn8EKeRlxsv7q37nGkFcN4hweR3UfrY4dhEh195ZlM
-f3odQaKfyE4ST/SmVzGrzxwVupcuHcxCD4VowYMjO2xl2XeMjTMmkRhuW/kTcVHb
-xdhkLekyD5AEI3XndFKDRufFXg5nGmV7t5A/i1gKxGi/Co2YeTYd1XDspK0GSyX7
-hl6RoZrGPkYF3mUmv6E/SiL8inCMfvt56aSQttX9zqB7zXOTXFnFOho+EYb6ZxvL
-liKZJQZ39OX7
+3jCB2zAMBgNVHRMBAf8EAjAAMCcGA1UdJQQgMB4GCCsGAQUFBwMCBggrBgEFBQcD
+AQYIKwYBBQUHAwgwIwYDVR0RBBwwGoISKi53ZWFzZWwtanVpY2Uub3JnhwR/AAAB
+MA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFHaTWFnuzHyFNJclEL7bckDMV03s
+MB8GA1UdIwQYMBaAFEkwJgiMmtZpzYvAzA5cAo5KH6aMMCwGA1UdHwQlMCMwIaAf
+oB2GG2ZpbGU6Ly8vdG1wL3dvY2t5LXRlc3RzL2NybDANBgkqhkiG9w0BAQsFAAOC
+AQEAlTC3kzTqQeANHEKk+BXuxETho1j6oUR/o3Dk5wotALAraTkovfk57w3W7rlq
+sfwqbwVk84ByCycNgfUbMRU5a8/zH9C2LKPAxiHkZxPIPrFE6+Y23I7JhAXak+w5
+EH0LOyRUl4Rhx2Eb3b9TuWk/CKjfQsg31dd63KfhvgieFQQ83YK4uF+X7Z6RpiIs
+o5X2loSGYamVMqLc4AwiYefKCOmO6gstoJEqmGegURKFZkNH4NO1CDEhUqX9mrcv
+QLWOopCgGhjiHroZ1n0UZsvBSFZ98+T9N1MEP/bgfzyhbLIaiyHXiwPhc6BugnSk
+l0VRiGglz0MXAgCaaiJRj1wr2w==
-----END CERTIFICATE-----
diff --git a/tests/wocky-connector-test.c b/tests/wocky-connector-test.c
index 5e77438..871997f 100644
--- a/tests/wocky-connector-test.c
+++ b/tests/wocky-connector-test.c
@@ -129,7 +129,8 @@ typedef void (*test_setup) (gpointer);
typedef struct _ServerParameters ServerParameters;
struct _ServerParameters {
- struct { gboolean tls; gchar *auth_mech; gchar *version; } features;
+ struct { gboolean tls; gchar *auth_mech; gchar *version; gchar *need_mech; }
+ features;
struct { ServerProblem sasl; ConnectorProblem conn; } problem;
struct { gchar *user; gchar *pass; } auth;
guint port;
@@ -1325,8 +1326,8 @@ test_t tests[] =
{ SERVER_PROBLEM_NO_PROBLEM,
{ OK, OK, OK, SERVER_DEATH_SERVER_START, OK } },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 10 },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, NOTLS },
{ NULL, 0 } } },
@@ -1338,8 +1339,8 @@ test_t tests[] =
{ SERVER_PROBLEM_NO_PROBLEM,
{ OK, OK, OK, SERVER_DEATH_CLIENT_OPEN, OK } },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 10 },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, NOTLS },
{ NULL, 0 } } },
@@ -1351,8 +1352,8 @@ test_t tests[] =
{ SERVER_PROBLEM_NO_PROBLEM,
{ OK, OK, OK, SERVER_DEATH_SERVER_OPEN, OK } },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 10 },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, NOTLS },
{ NULL, 0 } } },
@@ -1364,8 +1365,8 @@ test_t tests[] =
{ SERVER_PROBLEM_NO_PROBLEM,
{ OK, OK, OK, SERVER_DEATH_FEATURES, OK } },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 10 },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, NOTLS },
{ NULL, 0 } } },
@@ -1377,8 +1378,8 @@ test_t tests[] =
{ SERVER_PROBLEM_NO_PROBLEM,
{ OK, OK, OK, SERVER_DEATH_TLS_NEG, OK } },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 10 },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, NOTLS },
{ NULL, 0 } } },
@@ -2702,11 +2703,11 @@ test_t tests[] =
{ SERVER_PROBLEM_NO_PROBLEM,
{ XMPP_PROBLEM_OLD_SSL, OK, OK, SERVER_DEATH_TLS_NEG, OK } },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 9},
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, NOTLS },
- { NULL, 0, XMPP_V1, OLD_SSL } } },
+ { NULL, PORT_XMPP + 9, XMPP_V1, OLD_SSL } } },
/* ********************************************************************* */
/* certificate verification tests */
@@ -2716,8 +2717,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 10 },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1 } } },
@@ -2728,8 +2729,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 11 },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -2740,7 +2741,7 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP },
+ PORT_XMPP + 12 },
{ NULL, 0, "thud.org", REACHABLE, NULL },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
@@ -2752,8 +2753,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP },
- { "tomato-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 13 },
+ { "tomato-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@tomato-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1 } } },
@@ -2764,7 +2765,7 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP },
+ PORT_XMPP + 14 },
{ NULL, 0, "tomato-juice.org", REACHABLE, NULL },
{ PLAINTEXT_OK,
{ "moose@tomato-juice.org", "something", PLAIN, TLS },
@@ -2776,8 +2777,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_EXPIRED },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 15, CERT_EXPIRED },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1 } } },
@@ -2788,8 +2789,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_NOT_YET },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 16, CERT_NOT_YET },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1 } } },
@@ -2800,8 +2801,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_SELFSIGN },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 17, CERT_SELFSIGN },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1 } } },
@@ -2812,8 +2813,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_UNKNOWN },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 18, CERT_UNKNOWN },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1 } } },
@@ -2830,8 +2831,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_UNKNOWN },
- { "tomato-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 19, CERT_UNKNOWN },
+ { "tomato-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@tomato-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1 } } },
@@ -2842,8 +2843,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_WILDCARD },
- { "foo.weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 20, CERT_WILDCARD },
+ { "foo.weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ TLS_REQUIRED,
{ "moose@foo.weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -2854,8 +2855,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_WILDCARD },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 21, CERT_WILDCARD },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -2866,8 +2867,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_WILDCARD },
- { "foo.diesel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 22, CERT_WILDCARD },
+ { "foo.diesel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ TLS_REQUIRED,
{ "moose@foo.diesel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -2878,8 +2879,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_BADWILD },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 23, CERT_BADWILD },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ TLS_REQUIRED,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -2891,8 +2892,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_REVOKED },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 24, CERT_REVOKED },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ TLS_REQUIRED,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -2903,8 +2904,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_REVOKED },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 25, CERT_REVOKED },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ TLS_REQUIRED,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_LENIENT, TLS_CA_DIR } } },
@@ -2918,8 +2919,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 26 },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL } } },
@@ -2930,11 +2931,11 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP },
+ PORT_XMPP + 27 },
{ NULL, 0, "weasel-juice.org", REACHABLE, NULL },
{ PLAINTEXT_OK,
{ "moose@thud.org", "something", PLAIN, TLS },
- { "weasel-juice.org", PORT_XMPP, XMPP_V1, OLD_SSL } } },
+ { "weasel-juice.org", 0, XMPP_V1, OLD_SSL } } },
{ "/connector/cert-verification/ssl/nohost/fail/name-mismatch",
QUIET,
@@ -2942,8 +2943,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP },
- { "tomato-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 28 },
+ { "tomato-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@tomato-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL } } },
@@ -2954,7 +2955,7 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP },
+ PORT_XMPP + 29 },
{ NULL, 0, "tomato-juice.org", REACHABLE, NULL },
{ PLAINTEXT_OK,
{ "moose@tomato-juice.org", "something", PLAIN, TLS },
@@ -2966,8 +2967,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_EXPIRED },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 30, CERT_EXPIRED },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL } } },
@@ -2978,8 +2979,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_INSECURE },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 31, CERT_INSECURE },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL } } },
@@ -2990,8 +2991,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_NOT_YET },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 32, CERT_NOT_YET },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL } } },
@@ -3002,8 +3003,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_SELFSIGN },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 33, CERT_SELFSIGN },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL } } },
@@ -3014,8 +3015,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_UNKNOWN },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 34, CERT_UNKNOWN },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL } } },
@@ -3026,8 +3027,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_WILDCARD },
- { "foo.weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 35, CERT_WILDCARD },
+ { "foo.weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ TLS_REQUIRED,
{ "moose@foo.weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -3038,8 +3039,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_WILDCARD },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 36, CERT_WILDCARD },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -3050,8 +3051,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_WILDCARD },
- { "foo.diesel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 37, CERT_WILDCARD },
+ { "foo.diesel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ TLS_REQUIRED,
{ "moose@foo.diesel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -3062,8 +3063,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_BADWILD },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 38, CERT_BADWILD },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ TLS_REQUIRED,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -3075,8 +3076,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_REVOKED },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 39, CERT_REVOKED },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ TLS_REQUIRED,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_STRICT, TLS_CA_DIR } } },
@@ -3087,8 +3088,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_REVOKED },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 40, CERT_REVOKED },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ TLS_REQUIRED,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_LENIENT, TLS_CA_DIR } } },
@@ -3102,8 +3103,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 41 },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1 } } },
@@ -3114,7 +3115,7 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP },
+ PORT_XMPP + 42 },
{ NULL, 0, "thud.org", REACHABLE, NULL },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
@@ -3126,8 +3127,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP },
- { "tomato-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 43 },
+ { "tomato-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@tomato-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_LENIENT } } },
@@ -3138,7 +3139,7 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP },
+ PORT_XMPP + 44 },
{ NULL, 0, "tomato-juice.org", REACHABLE, NULL },
{ PLAINTEXT_OK,
{ "moose@tomato-juice.org", "something", PLAIN, TLS },
@@ -3150,8 +3151,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_EXPIRED },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 45, CERT_EXPIRED },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_LENIENT } } },
@@ -3162,8 +3163,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_NOT_YET },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 46, CERT_NOT_YET },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_LENIENT } } },
@@ -3174,8 +3175,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_SELFSIGN },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 47, CERT_SELFSIGN },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_LENIENT } } },
@@ -3186,8 +3187,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, CONNECTOR_OK },
{ "moose", "something" },
- PORT_XMPP, CERT_UNKNOWN },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 48, CERT_UNKNOWN },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, STARTTLS, CERT_CHECK_LENIENT } } },
@@ -3200,8 +3201,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 49 },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_LENIENT } } },
@@ -3212,11 +3213,11 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP },
+ PORT_XMPP + 50 },
{ NULL, 0, "weasel-juice.org", REACHABLE, NULL },
{ PLAINTEXT_OK,
{ "moose@thud.org", "something", PLAIN, TLS },
- { "weasel-juice.org", PORT_XMPP, XMPP_V1, OLD_SSL, CERT_CHECK_LENIENT } } },
+ { "weasel-juice.org", 0, XMPP_V1, OLD_SSL, CERT_CHECK_LENIENT } } },
{ "/connector/cert-nonverification/ssl/nohost/ok/name-mismatch",
QUIET,
@@ -3224,8 +3225,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP },
- { "tomato-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 51 },
+ { "tomato-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@tomato-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_LENIENT } } },
@@ -3236,7 +3237,7 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP },
+ PORT_XMPP + 52 },
{ NULL, 0, "tomato-juice.org", REACHABLE, NULL },
{ PLAINTEXT_OK,
{ "moose@tomato-juice.org", "something", PLAIN, TLS },
@@ -3248,8 +3249,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_EXPIRED },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 53, CERT_EXPIRED },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_LENIENT } } },
@@ -3260,8 +3261,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_NOT_YET },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 54, CERT_NOT_YET },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_LENIENT } } },
@@ -3272,8 +3273,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_SELFSIGN },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 55, CERT_SELFSIGN },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_LENIENT } } },
@@ -3284,8 +3285,8 @@ test_t tests[] =
{ { TLS, NULL },
{ SERVER_PROBLEM_NO_PROBLEM, { XMPP_PROBLEM_OLD_SSL, OK, OK, OK, OK } },
{ "moose", "something" },
- PORT_XMPP, CERT_UNKNOWN },
- { "weasel-juice.org", PORT_XMPP, "thud.org", REACHABLE, UNREACHABLE },
+ PORT_XMPP + 56, CERT_UNKNOWN },
+ { "weasel-juice.org", 0, "thud.org", REACHABLE, UNREACHABLE },
{ PLAINTEXT_OK,
{ "moose@weasel-juice.org", "something", PLAIN, TLS },
{ NULL, 0, XMPP_V1, OLD_SSL, CERT_CHECK_LENIENT } } },
@@ -3301,7 +3302,7 @@ static void
setup_dummy_dns_entries (const test_t *test)
{
TestResolver *tr = TEST_RESOLVER (kludged);
- guint port = test->dns.port ? test->dns.port : PORT_XMPP;
+ guint port = test->dns.port ? test->dns.port : test->server_parameters.port;
const char *domain = test->dns.srv;
const char *host = test->dns.host;
const char *addr = test->dns.addr;
@@ -3359,6 +3360,7 @@ client_connected (GIOChannel *channel,
srv->auth.user,
srv->auth.pass,
srv->features.version,
+ srv->features.need_mech,
cproblem,
srv->problem.sasl,
srv->cert);
@@ -3604,11 +3606,16 @@ run_test (gpointer data)
g_free (path);
/* end of cleanup block */
+ if (test->server_parameters.features.need_mech == NULL)
+ test->server_parameters.features.need_mech = test->result.mech;
start_dummy_xmpp_server (&test->server_parameters);
setup_dummy_dns_entries (test);
ca = test->client.options.ca ? test->client.options.ca : TLS_CA_CRT_FILE;
+ if (test->client.options.host && test->client.options.port == 0)
+ test->client.options.port = test->server_parameters.port;
+
/* insecure tls cert/etc not yet implemented */
handler = wocky_tls_handler_new (test->client.options.lax_ssl);
@@ -3824,22 +3831,18 @@ main (int argc,
mainloop = g_main_loop_new (NULL, FALSE);
-#ifdef HAVE_LIBSASL2
-
for (i = 0; tests[i].desc != NULL; i++)
g_test_add_data_func (tests[i].desc, &tests[i], (test_func)run_test);
-#else
-
- g_message ("libsasl2 not found: skipping SCRAM SASL tests");
- for (i = 0; tests[i].desc != NULL; i++)
- {
- if (!wocky_strdiff (tests[i].result.mech, DEFAULT_SASL_MECH))
- continue;
- g_test_add_data_func (tests[i].desc, &tests[i], (test_func)run_test);
- }
-
-#endif
+ /*
+ * SASL2 support is ridiculous, you can find all possible combinations
+ * where some support SCRAM SHA1 only, other SCRAM SHA256, some even
+ * SCRAM SHA512. But it absolutely does not depend on the version, only
+ * on the build flags. The verdict - if SASL server doesn't return back
+ * DEFAULT_SASL_MECH - we just use in-house implementation. SASL2 becomes
+ * complimentary sanity cross-check feature.
+ * We'll do additional verification in the server initialisation code.
+ */
result = g_test_run ();
test_deinit ();
diff --git a/tests/wocky-dummy-xmpp-server.c b/tests/wocky-dummy-xmpp-server.c
index 4bbc24a..f66d113 100644
--- a/tests/wocky-dummy-xmpp-server.c
+++ b/tests/wocky-dummy-xmpp-server.c
@@ -59,7 +59,7 @@ client_connected (GIOChannel *channel,
g_io_channel_shutdown (channel, TRUE, NULL);
gconn = g_object_new (G_TYPE_SOCKET_CONNECTION, "socket", gsock, NULL);
server = test_connector_server_new (G_IO_STREAM (gconn),
- NULL, "foo", "bar", "1.0",
+ NULL, "foo", "bar", "1.0", NULL,
&cproblem,
SERVER_PROBLEM_NO_PROBLEM,
CERT_STANDARD);
diff --git a/tests/wocky-test-connector-server.c b/tests/wocky-test-connector-server.c
index 1796ed5..9d46810 100644
--- a/tests/wocky-test-connector-server.c
+++ b/tests/wocky-test-connector-server.c
@@ -95,6 +95,7 @@ struct _TestConnectorServerPrivate
gboolean authed;
TestSaslAuthServer *sasl;
+ gchar *must;
gchar *mech;
gchar *user;
gchar *pass;
@@ -1301,7 +1302,7 @@ feature_stanza (TestConnectorServer *self)
if (priv->sasl == NULL)
priv->sasl = test_sasl_auth_server_new (NULL, priv->mech,
priv->user, priv->pass, NULL, priv->problem.sasl, FALSE);
- test_sasl_auth_server_set_mechs (G_OBJECT (priv->sasl), feat);
+ test_sasl_auth_server_set_mechs (G_OBJECT (priv->sasl), feat, priv->must);
}
if (problem & XMPP_PROBLEM_OLD_AUTH_FEATURE)
@@ -1573,10 +1574,11 @@ xmpp_init (GObject *source,
TestConnectorServer *
test_connector_server_new (GIOStream *stream,
- gchar *mech,
+ const gchar *mech,
const gchar *user,
const gchar *pass,
const gchar *version,
+ const gchar *need_mech,
ConnectorProblem *problem,
ServerProblem sasl_problem,
CertSet cert)
@@ -1593,6 +1595,7 @@ test_connector_server_new (GIOStream *stream,
priv->mech = g_strdup (mech);
priv->user = g_strdup (user);
priv->pass = g_strdup (pass);
+ priv->must = g_strdup (need_mech);
priv->problem.sasl = sasl_problem;
priv->problem.connector = problem;
priv->conn = wocky_xmpp_connection_new (stream);
diff --git a/tests/wocky-test-connector-server.h b/tests/wocky-test-connector-server.h
index 4e781a3..31787aa 100644
--- a/tests/wocky-test-connector-server.h
+++ b/tests/wocky-test-connector-server.h
@@ -170,10 +170,11 @@ GType test_connector_server_get_type (void);
TestConnectorServerClass))
TestConnectorServer * test_connector_server_new (GIOStream *stream,
- gchar *mech,
+ const gchar *mech,
const gchar *user,
const gchar *pass,
const gchar *version,
+ const gchar *need_mech,
ConnectorProblem *problem,
ServerProblem sasl_problem,
CertSet cert);
diff --git a/tests/wocky-test-sasl-auth-server.c b/tests/wocky-test-sasl-auth-server.c
index f66736a..b1a0fd8 100644
--- a/tests/wocky-test-sasl-auth-server.c
+++ b/tests/wocky-test-sasl-auth-server.c
@@ -225,7 +225,7 @@ stream_open_sent (GObject *source,
/* Send stream features */
stanza = wocky_stanza_new ("features", WOCKY_XMPP_NS_STREAM);
- test_sasl_auth_server_set_mechs (G_OBJECT (self), stanza);
+ test_sasl_auth_server_set_mechs (G_OBJECT (self), stanza, NULL);
wocky_xmpp_connection_send_stanza_async (priv->conn, stanza,
priv->cancellable, features_sent, user_data);
@@ -833,6 +833,25 @@ handle_auth (TestSaslAuthServer *self, WockyStanza *stanza)
else
ret = SASL_NOUSER;
}
+ else if (priv->scram && g_str_has_prefix (priv->selected_mech, "SCRAM-SHA-"))
+ {
+ ScramRes res = { self, NULL, FALSE };
+
+ wocky_sasl_scram_server_start_async (priv->scram, (gchar *) response,
+ handle_auth_cb, priv->cancellable, &res);
+
+ while (!res.complete)
+ g_main_context_iteration (NULL, FALSE);
+
+ if (res.challenge)
+ {
+ ret = 1; /* SASL_CONTINUE */
+ challenge = res.challenge;
+ challenge_len = strlen (challenge);
+ }
+ else
+ ret = SASL_NOUSER;
+ }
else
{
#if HAVE_LIBSASL2
@@ -1015,6 +1034,25 @@ handle_response (TestSaslAuthServer *self, WockyStanza *stanza)
else
ret = SASL_BADAUTH;
}
+ else if (priv->scram && g_str_has_prefix (priv->selected_mech, "SCRAM-SHA-"))
+ {
+ ScramRes res = { self, NULL, FALSE };
+
+ wocky_sasl_scram_server_step_async (priv->scram, (gchar *) response,
+ handle_response_cb, priv->cancellable, &res);
+
+ while (!res.complete)
+ g_main_context_iteration (NULL, FALSE);
+
+ if (res.challenge)
+ {
+ ret = SASL_OK;
+ challenge = res.challenge;
+ challenge_len = strlen (challenge);
+ }
+ else
+ ret = SASL_BADAUTH;
+ }
else
{
#ifdef HAVE_LIBSASL2
@@ -1315,12 +1353,15 @@ test_sasl_auth_server_auth_async (GObject *obj,
}
gint
-test_sasl_auth_server_set_mechs (GObject *obj, WockyStanza *feat)
+test_sasl_auth_server_set_mechs (GObject *obj,
+ WockyStanza *feat,
+ const gchar *must)
{
int ret = 0;
TestSaslAuthServer *self = TEST_SASL_AUTH_SERVER (obj);
TestSaslAuthServerPrivate *priv = self->priv;
WockyNode *mechnode = NULL;
+ gboolean hazmech = FALSE;
if (priv->problem != SERVER_PROBLEM_NO_SASL)
{
@@ -1355,8 +1396,26 @@ test_sasl_auth_server_set_mechs (GObject *obj, WockyStanza *feat)
{
wocky_node_add_child_with_content (mechnode,
"mechanism", *tmp);
+ if (!hazmech && !wocky_strdiff (*tmp, must))
+ hazmech = TRUE;
}
g_strfreev (mechlist);
+
+ if (!hazmech && must != NULL
+ && g_str_has_prefix (must, "SCRAM-SHA-"))
+ {
+ /* as said before, this is ridiculous so let's fix that */
+ if (g_str_has_prefix (must, "SCRAM-SHA-256"))
+ {
+ if (priv->scram == NULL)
+ priv->scram = g_object_new (WOCKY_TYPE_SASL_SCRAM,
+ "server", "whatever",
+ "hash-algo", G_CHECKSUM_SHA256,
+ NULL);
+ wocky_node_add_child_with_content (mechnode,
+ "mechanism", must);
+ }
+ }
}
}
return ret;
diff --git a/tests/wocky-test-sasl-auth-server.h b/tests/wocky-test-sasl-auth-server.h
index 0c89c6f..2fe8007 100644
--- a/tests/wocky-test-sasl-auth-server.h
+++ b/tests/wocky-test-sasl-auth-server.h
@@ -101,7 +101,8 @@ TestSaslAuthServer * test_sasl_auth_server_new (GIOStream *stream,
void test_sasl_auth_server_stop (TestSaslAuthServer *self);
-gint test_sasl_auth_server_set_mechs (GObject *obj, WockyStanza *feat);
+gint test_sasl_auth_server_set_mechs (GObject *obj, WockyStanza *feat,
+ const gchar *must);
G_END_DECLS
diff --git a/wocky/wocky-xmpp-connection.c b/wocky/wocky-xmpp-connection.c
index 4d4fdce..2817935 100644
--- a/wocky/wocky-xmpp-connection.c
+++ b/wocky/wocky-xmpp-connection.c
@@ -261,16 +261,13 @@ wocky_xmpp_connection_write_cb (GObject *source,
&error);
if (G_UNLIKELY (written < 0))
- {
- g_task_return_error (priv->output_task, error);
- goto finished;
- }
+ goto finished;
if (G_UNLIKELY (written == 0))
{
- g_task_return_new_error (priv->output_task,
- WOCKY_XMPP_CONNECTION_ERROR, WOCKY_XMPP_CONNECTION_ERROR_EOS,
- "Connection got disconnected" );
+ g_clear_error (&error);
+ error = g_error_new_literal (WOCKY_XMPP_CONNECTION_ERROR,
+ WOCKY_XMPP_CONNECTION_ERROR_EOS, "Connection got disconnected" );
goto finished;
}
@@ -295,8 +292,10 @@ finished:
priv->output_cancellable = NULL;
priv->output_task = NULL;
- if (!g_task_had_error (t))
+ if (error == NULL)
g_task_return_boolean (t, TRUE);
+ else
+ g_task_return_error (t, error);
g_object_unref (t);
}
@@ -462,16 +461,14 @@ _xmpp_connection_received_data (GObject *source,
result, &error);
if (G_UNLIKELY (size < 0))
- {
- g_task_return_error (priv->input_task, error);
- goto finished;
- }
+ goto finished;
if (G_UNLIKELY (size == 0))
{
- g_task_return_new_error (priv->input_task,
- WOCKY_XMPP_CONNECTION_ERROR, WOCKY_XMPP_CONNECTION_ERROR_EOS,
- "Connection got disconnected" );
+ g_clear_error (&error);
+ error = g_error_new_literal (WOCKY_XMPP_CONNECTION_ERROR,
+ WOCKY_XMPP_CONNECTION_ERROR_EOS,
+ "Connection got disconnected" );
goto finished;
}
@@ -513,8 +510,10 @@ finished:
priv->input_cancellable = NULL;
priv->input_task = NULL;
- if (!g_task_had_error (t))
+ if (error == NULL)
g_task_return_boolean (t, TRUE);
+ else
+ g_task_return_error (t, error);
g_object_unref (t);
}