aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2020-06-11 11:42:40 +0300
committerSergey Poznyakoff <gray@gnu.org>2020-06-11 12:23:27 +0300
commitede009531a4c83eacbabad0aa37844a9bd69e15b (patch)
tree8e45a089bdc66705372628dbc5ec42d3bf30f401
parent473b10a4d8c6241b5066c37df28977bf3986517c (diff)
downloadanubis-ede009531a4c83eacbabad0aa37844a9bd69e15b.tar.gz
anubis-ede009531a4c83eacbabad0aa37844a9bd69e15b.tar.bz2
Improve the testsuite.
* configure.ac: Check for gpg2 and certtool. (M4_DEFS,ANUBIS_GPGFILES): Remove. * src/Makefile.am: Prefer automake conditionals over conditional compilation. * src/gpg.c: Remove enclosing #ifdef. * src/gsasl.c: Likewise. * src/guile.c: Likewise, * tests/Makefile.am (SUBDIRS): Remove. * tests/anubisusr.at: Checking for the prerequsite once is enough. * tests/atlocal.in (confdir,ANUBIS_DATA_DIR): Remove. (CERTTOOL): New variable. * tests/data/: Remove. * tests/gpgcrypt.at: Use gpg v2 to create keys when necessary. * tests/gpgse.at: Likewise. * tests/gpgsign.at: Likewise. * tests/mta.c: Include stddef.h (for ptrdiff_t). * tests/testsuite.at (ANUBIS_PREREQ_GPG): Update condition. (ANUBIS_PREREQ_TLS): New macro. * tests/tlsoneway.at: Use certtool to create certificates when necessary.
-rw-r--r--configure.ac52
-rw-r--r--src/Makefile.am28
-rw-r--r--src/gpg.c4
-rw-r--r--src/gsasl.c5
-rw-r--r--src/guile.c4
-rw-r--r--src/tunnel.c2
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/anubisusr.at8
-rw-r--r--tests/atlocal.in3
-rw-r--r--tests/data/.gitignore7
-rw-r--r--tests/data/Makefile.am32
-rw-r--r--tests/data/anubis.pem33
-rw-r--r--tests/data/pubring.asc24
-rw-r--r--tests/data/secring.asc26
-rw-r--r--tests/gpgcrypt.at32
-rw-r--r--tests/gpgse.at33
-rw-r--r--tests/gpgsign.at41
-rw-r--r--tests/mta.c1
-rw-r--r--tests/testsuite.at6
-rw-r--r--tests/tlsoneway.at24
20 files changed, 180 insertions, 186 deletions
diff --git a/configure.ac b/configure.ac
index ef9841a..41b3392 100644
--- a/configure.ac
+++ b/configure.ac
@@ -38,7 +38,42 @@ AC_PATH_PROG(idecrypt_path,idecrypt,/usr/sbin/idecrypt,
$PATH:/sbin:/usr/sbin:/usr/local/sbin)
AC_DEFINE_UNQUOTED(IDECRYPT_PATH,"${idecrypt_path}",
[Define if IDECRYPT_PATH is present.])
-AC_PATH_PROG([GPG],[gpg],[false])
+
+# *********************************************************************
+# GPG v2 (for the testsuite)
+# The testsuite needs to create GPG keys, which would be prohibitively
+# slow without the %transient-key statement, which appeared in GPG 2.1
+# *********************************************************************
+AC_ARG_VAR([GPG],[Name of the gpg version 2 binary])
+AC_MSG_CHECKING([for the GPG v2 binary])
+uGPG=$GPG
+unset GPG
+gpgver() {
+ GPG_VERSION_STRING=$($1 --version|head -n 1|sed -e 's/.* //')
+ oIFS=$IFS
+ IFS="."
+ set -- $GPG_VERSION_STRING
+ GPG_VERSION_MAJOR=$1
+ GPG_VERSION_MINOR=$2
+ IFS=$oIFS
+}
+for prog in $uGPG gpg2 gpg
+do
+ gpgver $prog
+ if test -n "$GPG_VERSION_MAJOR" -a -n "$GPG_VERSION_MINOR"; then
+ if test $GPG_VERSION_MAJOR -eq 2; then
+ if test $GPG_VERSION_MINOR -ge 1; then
+ GPG=$prog
+ break
+ fi
+ elif test $GPG_VERSION_MAJOR -gt 2; then
+ GPG=$prog
+ break
+ fi
+ fi
+done
+AC_MSG_RESULT([${GPG:-none}${GPG:+, $GPG_VERSION_STRING}])
+AM_CONDITIONAL([COND_GPG2],[test -n "$GPG"])
dnl Checks for header files.
AC_HEADER_STDC
@@ -91,13 +126,11 @@ dnl Internationalization macros.
AM_GNU_GETTEXT([external], [need-formatstring-macros])
AM_GNU_GETTEXT_VERSION([0.16])
-AC_SUBST([M4_DEFS])
AC_SUBST([GUILE_SCRIPTS])
GINT_INIT([gint],[2.2.0 with-guile nodoc std-site-dir],
[useguile=yes
AC_DEFINE(WITH_GUILE,1,[Enable Guile support])
- GUILE_SCRIPTS='$(GUILE_SCM)'
- M4_DEFS="$M4_DEFS -DWITH_GUILE"],
+ GUILE_SCRIPTS='$(GUILE_SCM)'],
[useguile=no])
if test "$useguile" = "no"; then
@@ -106,7 +139,6 @@ fi
AM_CONDITIONAL([GUILE_COND], [test "$useguile" = "yes"])
dnl Use option --without-gpgme to NOT compile GnuPG (GPGME library) support.
-AC_SUBST(ANUBIS_GPGFILES)
AC_ARG_WITH(gpgme,
AC_HELP_STRING([--without-gpgme],
[without GnuPG (GPGME library) support]),
@@ -122,7 +154,6 @@ fi
if test "$with_gpgme" = "no"; then
AC_MSG_RESULT([Disabling GPGME support...])
else
- AC_PATH_PROG(GPG, gpg)
findgpgmedir() { :
if test -f "$1/include/gpgme.h"; then
gpgmedir=1
@@ -141,8 +172,6 @@ else
else
AC_CHECK_HEADERS(gpgme.h)
fi
- ANUBIS_GPGFILES='$(GPGFILES)'
- M4_DEFS="$M4_DEFS -DWITH_GPG"
fi
AM_CONDITIONAL([GPG_COND],[test "$with_gpgme" = "yes"])
@@ -180,7 +209,6 @@ MU_CHECK_GSASL(0.2.3, [
AC_MSG_RESULT([Enabling GSASL support...])
ANUBIS_SBIN_ADM='$(adm_sbin_programs)'
ANUBIS_BIN_ADM='$(adm_bin_programs)'
- M4_DEFS="$M4_DEFS -DWITH_GSASL"
AC_CHECK_LIB(gdbm, gdbm_open,
[WITH_GDBM=yes
@@ -249,11 +277,12 @@ MU_CHECK_GSASL(0.2.3, [
fi
AC_LIBOBJ(lbuf)])
+AM_CONDITIONAL([GSASL_COND],[test "$WITH_GSASL" = yes])
ANUBIS_CHECK_TLS([
- M4_DEFS="$M4_DEFS -DWITH_SSL -DWITH_GNUTLS"
AC_DEFINE(USE_GNUTLS, 1, [Define to 1 if USE_GNUTLS is requested.])])
AM_CONDITIONAL([TLS_COND], [test $anubis_cv_gnutls = yes])
+AC_PATH_PROG([CERTTOOL],[certtool])
dnl Use option --with-socks-proxy to compile SOCKS v4/5 proxy support.
AC_ARG_WITH(socks-proxy,
@@ -384,8 +413,7 @@ AC_CONFIG_FILES([Makefile
# Initialize the test suite.
AC_CONFIG_TESTDIR(tests)
-AC_CONFIG_FILES([tests/Makefile tests/atlocal
- tests/data/Makefile])
+AC_CONFIG_FILES([tests/Makefile tests/atlocal])
AM_MISSING_PROG([AUTOM4TE], [autom4te])
AC_OUTPUT
diff --git a/src/Makefile.am b/src/Makefile.am
index 059b7af..0ca829c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -36,9 +36,6 @@ anubis_SOURCES = \
esmtp.c \
exec.c \
extern.h \
- gpg.c \
- gsasl_srv.c \
- guile.c \
headers.h \
help.c \
ident.c \
@@ -64,20 +61,27 @@ anubis_SOURCES = \
tunnel.c \
xdatabase.c
+if GSASL_COND
+ anubis_SOURCES += gsasl_srv.c
+endif
+
+if GPG_COND
+ anubis_SOURCES += gpg.c
+endif
+
+if GUILE_COND
+ anubis_SOURCES += guile.c
+endif
+
anubisadm_SOURCES = anubisadm.c anubisadm.h adm.c
anubisadm_LDADD = ./libanubisdb.a $(top_builddir)/lib/libanubis.a @LIBINTL@
anubisusr_SOURCES = anubisusr.c anubisusr.h usr.c
anubisusr_LDADD = ./libanubisdb.a $(top_builddir)/lib/libanubis.a @LIBINTL@ @LIBGNUTLS_LIBS@ @GSASL_LIBS@
-if TLS_COND
- TLS_C=tls.c
-endif
-
libanubisdb_a_SOURCES = \
anubisdb.c \
dbtext.c \
gdbm.c \
- gsasl.c \
list.c \
list.h \
md5.c \
@@ -91,6 +95,14 @@ libanubisdb_a_SOURCES = \
$(TLS_C) \
url.c
+if TLS_COND
+ libanubisdb_a_SOURCES += tls.c
+endif
+
+if GSASL_COND
+ libanubisdb_a_SOURCES += gsasl.c
+endif
+
AM_YFLAGS = -dtv
AM_LFLAGS = -dvp
EXTRA_DIST = getopt.m4 env.opt
diff --git a/src/gpg.c b/src/gpg.c
index f64445f..4eb4271 100644
--- a/src/gpg.c
+++ b/src/gpg.c
@@ -21,8 +21,6 @@
#include "headers.h"
#include "extern.h"
#include "rcfile.h"
-
-#ifdef HAVE_GPG
#include <gpgme.h>
#define obstack_chunk_alloc malloc
#define obstack_chunk_free free
@@ -582,6 +580,4 @@ gpg_section_init (void)
rc_secdef_add_child (sp, &gpg_sect_child);
}
-#endif /* HAVE_GPG */
-
/* EOF */
diff --git a/src/gsasl.c b/src/gsasl.c
index 8ec9789..a0d5090 100644
--- a/src/gsasl.c
+++ b/src/gsasl.c
@@ -20,9 +20,6 @@
#include "headers.h"
#include "extern.h"
-
-#if defined(WITH_GSASL)
-
#include "lbuf.h"
@@ -174,5 +171,3 @@ install_gsasl_stream (Gsasl_session *sess_ctx, NET_STREAM *stream)
_gsasl_read, _gsasl_write,
_gsasl_close, _gsasl_destroy, _gsasl_strerror);
}
-
-#endif
diff --git a/src/guile.c b/src/guile.c
index a0c1cd4..67e19fa 100644
--- a/src/guile.c
+++ b/src/guile.c
@@ -22,8 +22,6 @@
#include "extern.h"
#include "rcfile.h"
-#ifdef WITH_GUILE
-
static void guile_ports_open (void);
static void guile_ports_close (void);
@@ -523,6 +521,4 @@ guile_section_init (void)
rc_secdef_add_child (sp, &guile_rule_secdef_child);
}
-#endif /* WITH_GUILE */
-
/* EOF */
diff --git a/src/tunnel.c b/src/tunnel.c
index 837ec94..7f94292 100644
--- a/src/tunnel.c
+++ b/src/tunnel.c
@@ -40,8 +40,6 @@ get_ehlo_domain (void)
{
return smtp_ehlo_domain_name ? smtp_ehlo_domain_name : get_localname ();
}
-
-
/* Collect and send headers */
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 63812a3..5687c53 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -17,7 +17,6 @@
EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4
DISTCLEANFILES = atconfig $(check_SCRIPTS)
MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
-SUBDIRS = data
## ------------ ##
## package.m4. ##
diff --git a/tests/anubisusr.at b/tests/anubisusr.at
index c7d954d..657ce97 100644
--- a/tests/anubisusr.at
+++ b/tests/anubisusr.at
@@ -71,13 +71,10 @@ anustart --relax-perm-check --altrc etc/anubis.rc -- \
[ignore])
AT_CHECK([
-ANUBIS_PREREQ_GPG(GSASL)
cmp etc/user.rc one.rc
])
AT_CHECK([
-ANUBIS_PREREQ_GPG(GSASL)
-
# Second upload:
# We upload the same file, running anubisusr in verbose mode.
# Its output should contain string "File NOT changed",
@@ -91,13 +88,10 @@ anustart --relax-perm-check --altrc etc/anubis.rc -- \
[stderr])
AT_CHECK([
-ANUBIS_PREREQ_GPG(GSASL)
grep -q "File NOT changed" stdout
])
AT_CHECK([
-ANUBIS_PREREQ_GPG(GSASL)
-
# Third upload:
# Upload two.rc. After this test user.rc and add.rc must be identical.
@@ -127,12 +121,10 @@ anustart --relax-perm-check --altrc etc/anubis.rc -- \
[ignore])
AT_CHECK([
-ANUBIS_PREREQ_GPG(GSASL)
grep -q "File changed" stdout
])
AT_CHECK([
-ANUBIS_PREREQ_GPG(GSASL)
cmp etc/user.rc two.rc
])
diff --git a/tests/atlocal.in b/tests/atlocal.in
index 6ad4bff..1bfeff6 100644
--- a/tests/atlocal.in
+++ b/tests/atlocal.in
@@ -3,9 +3,8 @@
# Copyright (C) 2020 Free Software Foundation, Inc.
PATH=@abs_top_builddir@/src:$top_srcdir:$srcdir:$PATH
-confdir=@abs_builddir@/etc
-ANUBIS_DATA_DIR=@abs_builddir@/data
GPG=@GPG@
+CERTTOOL=@CERTTOOL@
@TLS_COND_TRUE@GNUTLS_SED='s/%TLS%//'
@TLS_COND_FALSE@GNUTLS_SED='/%TLS%/d'
@GPG_COND_TRUE@GPG_SED='s/%GPG%//'
diff --git a/tests/data/.gitignore b/tests/data/.gitignore
deleted file mode 100644
index d477ad5..0000000
--- a/tests/data/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-Makefile
-Makefile.in
-random_seed
-*.gpg
-/.gpg-v21-migrated
-private-keys-v1.d/
-
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
deleted file mode 100644
index d25c23c..0000000
--- a/tests/data/Makefile.am
+++ /dev/null
@@ -1,32 +0,0 @@
-##
-## This file is part of GNU Anubis.
-## Copyright (C) 2003-2020 The Anubis Team.
-##
-## GNU Anubis is free software; you can redistribute it and/or modify it
-## under the terms of the GNU General Public License as published by the
-## Free Software Foundation; either version 3 of the License, or (at your
-## option) any later version.
-##
-## GNU Anubis is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License along
-## with GNU Anubis. If not, see <http://www.gnu.org/licenses/>.
-##
-
-GPGFILES = secring.gpg pubring.gpg
-noinst_DATA = @ANUBIS_GPGFILES@
-
-EXTRA_DIST = pubring.asc secring.asc anubis.pem
-CLEANFILES = *.gpg random_seed *~
-
-pubring.gpg secring.gpg: $(srcdir)/pubring.asc $(srcdir)/secring.asc
- $(GPG) --homedir . --import < $(srcdir)/pubring.asc
- $(GPG) --homedir . --allow-secret-key-import --import < $(srcdir)/secring.asc
-
-distclean-local:
- @rm -rf private-keys-v1.d .gpg-v21-migrated
-
-
diff --git a/tests/data/anubis.pem b/tests/data/anubis.pem
deleted file mode 100644
index 9294114..0000000
--- a/tests/data/anubis.pem
+++ /dev/null
@@ -1,33 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQCthRyoC0V96eFNPy/ccg55CwuT1Gyd7x6WE/OXxYWfj+QLjs0z
-BMjCEPF4GC776Qylh+SYSRCyOV5acCZSrNYIQB5pI5fCTLFd3GH5YPgnF32mnIJh
-oXqtc5q1r8sQdZivu5zJ/sfowPxyAKPd1WlzgEddjYCt/YVlYRaXiJjl9wIDAQAB
-AoGASIL23baQHLUu5LQCETJMoAKgnO9JUJqLgpXl1sfBNlPQLZBIagiWyJqB/fjF
-MZpLIaVvPsBRzNiyeEKjkSsO6YVIGHkQWHQP8yGJY1xzRxmnzQnQz8klisJmbXvK
-u8dNf2H71mzBPIa+jnX3m6H1PMjivqb6lYwrFcv+lnQ7ZCkCQQDfQObWVJRFe8tY
-57gww0iON5vdZx+mVtAU6tOZcKAQ4KvM4/zVZf1NO8k1yjxDbJB9l6sokzrWw9Yk
-sH/oLgn9AkEAxvi7MG+5o3yCOcbqGWIf7pUuR6pfJ6skg6UzNlQ8furSbHP7NhRe
-yCQbAS1Z4QWtAkK/J/rIpVyw4t1mTABoAwJAAy6Dm65c5pibD0tOHrPJxu0X9ZHQ
-q6g1Evc9yMQII/VvvV3KbqgjcgRWG8QkE7nqXT/aGpvujL0BwkgZqo9taQJAFyGl
-iW0DtOjtrs/cOVU6Bx+awMQiydbQqOlUudUzL0IXcnpNUy0tE7F23j0qfMmPInsm
-A/zYxLiw6773fJBzhwJBALDAf2JhHTT0rLg4a/PrrDf1XCk8d1EQafjAbHBJkTd8
-X0KAasxNfYtgiWaTmuKhMNyOodLerwsE3vmV9RyhuJo=
------END RSA PRIVATE KEY-----
-
------BEGIN CERTIFICATE-----
-MIICoDCCAgmgAwIBAgIBADANBgkqhkiG9w0BAQQFADBFMQswCQYDVQQGEwJBVTET
-MBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQ
-dHkgTHRkMB4XDTAzMDUyNzEyMTIxMFoXDTA0MDUyNjEyMTIxMFowRTELMAkGA1UE
-BhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp
-ZGdpdHMgUHR5IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArYUcqAtF
-fenhTT8v3HIOeQsLk9Rsne8elhPzl8WFn4/kC47NMwTIwhDxeBgu++kMpYfkmEkQ
-sjleWnAmUqzWCEAeaSOXwkyxXdxh+WD4Jxd9ppyCYaF6rXOata/LEHWYr7ucyf7H
-6MD8cgCj3dVpc4BHXY2Arf2FZWEWl4iY5fcCAwEAAaOBnzCBnDAdBgNVHQ4EFgQU
-1tnjQvF594SgLA9hrWKO41YxvJEwbQYDVR0jBGYwZIAU1tnjQvF594SgLA9hrWKO
-41YxvJGhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEw
-HwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCAQAwDAYDVR0TBAUwAwEB
-/zANBgkqhkiG9w0BAQQFAAOBgQBGkdousv5fOlKYk3xS6jFDYfVXaizVz0dC5zLJ
-cLYAhBWxEU9KgygoYKVm564R7vnbvLeisdXh6DiCNqsGB3qD5870y9/3hCPZZvV8
-BwjrNZBp2Lc1O48oTHUft+XRst0coBRdZ2z5/6IpPf5P6HjM9q21zluUclsYfEPo
-MNnk9g==
------END CERTIFICATE-----
diff --git a/tests/data/pubring.asc b/tests/data/pubring.asc
deleted file mode 100644
index e2d8282..0000000
--- a/tests/data/pubring.asc
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.2.1 (GNU/Linux)
-
-mQGiBD5UuPARBACg3NGeg59gl9q+EIVDnyFbjmyC9esqSBPuYxJ4icKYO7nudyL5
-wL2kM88l7/COCPoNdTjSY61Tw9dp8QTYMa9T/J6ytPG1hLPGxFDij5wVRLC+syEm
-aVw102Poq+jyxOdlL3fLKZp087pHim80QcCs/0rvXnMsd5EbGAR3lRyfIwCgsPjq
-bc7Brdl+TtwD/wu4ckMRvWED/RAm36KoJBp2vQ+8vep1dIRQxdBYgzISxMxDTnwl
-BC3FACyoZA9Y33o7zrVoQ6UvSXSAc6+8ZDZqBR1sMi97Lo+xArno1cZconhmaijB
-rtt/bqP+DYwa5aaYgLPEtCqKB4uBfSaAOtiGGYKUy6/wOpQmc2HDxrEEBfNy90wX
-Ee1kA/4ycoQnz0IMcuBpCSbZBL8XfXsrecw8fVXniuiO+AUXuxiUTbnNKdWB9FD4
-ZEhrioyPMAWjXu0PbHr1dMBMemOAWqKg9BT2+tL0wVLp3qGHL8TWTNIjwmxiDSAm
-4+IuPQKISq2Gzm7CSB9QT6NaJDYLtXIRGU2t4AgHKJwmsSKU8bQtR05VIEFudWJp
-cyBUZWFtIChBbnViaXMpIDxhbnViaXMtZGV2QGdudS5vcmc+iFkEExECABkFAj5U
-uPAECwcDAgMVAgMDFgIBAh4BAheAAAoJEA3VA/vc5zQCjLQAoKsI76RMLWx/LpmI
-10tKhV3WOOLjAJ0TlcWsRZvYZVqmziy7s6VrZuH5vbkBDQQ+VLj1EAQAmv6LQWMP
-iMUhuhy4wVPvR9c6vzoVUuVC+JOKEylsMBy76fwk4Bcqa8R8CgGhjqn/N1X2zR9a
-3LcvqwCdijNKIHf4jnuu2h6SMu+LUVbQepnBYXbucDIVaxvr27kbPw76H84O1z1h
-mSsK5gMEzD4zgUgVbZq2E58sFmKuKFwsAU8AAwUD+wTCWupnZLns13OUc7sKNPYa
-x2mYpg25wqKwQU0SfJ4bB+YK/6bIwgAhoXDFtHWIvLrZulQi1rR28Rpwj+Jda7lv
-5IwxseNlOFH5ZARLPDZA6796sg2GA/ESKBygj8JctcitOX0S4lIOs4CYIdj1yHsM
-KGSxQL7XAi7hvx4X/9D+iEYEGBECAAYFAj5UuPUACgkQDdUD+9znNAJ52gCfeEkR
-6+y2WNHgCapDNOO70D9VfPcAniukAqZEdyqgWPXq536agavncFiv
-=h3F4
------END PGP PUBLIC KEY BLOCK-----
diff --git a/tests/data/secring.asc b/tests/data/secring.asc
deleted file mode 100644
index d167760..0000000
--- a/tests/data/secring.asc
+++ /dev/null
@@ -1,26 +0,0 @@
------BEGIN PGP PRIVATE KEY BLOCK-----
-Version: GnuPG v1.2.1 (GNU/Linux)
-
-lQG7BD5UuPARBACg3NGeg59gl9q+EIVDnyFbjmyC9esqSBPuYxJ4icKYO7nudyL5
-wL2kM88l7/COCPoNdTjSY61Tw9dp8QTYMa9T/J6ytPG1hLPGxFDij5wVRLC+syEm
-aVw102Poq+jyxOdlL3fLKZp087pHim80QcCs/0rvXnMsd5EbGAR3lRyfIwCgsPjq
-bc7Brdl+TtwD/wu4ckMRvWED/RAm36KoJBp2vQ+8vep1dIRQxdBYgzISxMxDTnwl
-BC3FACyoZA9Y33o7zrVoQ6UvSXSAc6+8ZDZqBR1sMi97Lo+xArno1cZconhmaijB
-rtt/bqP+DYwa5aaYgLPEtCqKB4uBfSaAOtiGGYKUy6/wOpQmc2HDxrEEBfNy90wX
-Ee1kA/4ycoQnz0IMcuBpCSbZBL8XfXsrecw8fVXniuiO+AUXuxiUTbnNKdWB9FD4
-ZEhrioyPMAWjXu0PbHr1dMBMemOAWqKg9BT2+tL0wVLp3qGHL8TWTNIjwmxiDSAm
-4+IuPQKISq2Gzm7CSB9QT6NaJDYLtXIRGU2t4AgHKJwmsSKU8QAAoJk3d595pjWp
-UWyhu7ZGhXqJOSGgChq0LUdOVSBBbnViaXMgVGVhbSAoQW51YmlzKSA8YW51Ymlz
-LWRldkBnbnUub3JnPohZBBMRAgAZBQI+VLjwBAsHAwIDFQIDAxYCAQIeAQIXgAAK
-CRAN1QP73Oc0Aoy0AJ0aspaHhddBUK4efDWPlM2PyHs++wCeKgA/0EM80KeY8IKm
-BTbT3huADlidATEEPlS49RAEAJr+i0FjD4jFIbocuMFT70fXOr86FVLlQviTihMp
-bDAcu+n8JOAXKmvEfAoBoY6p/zdV9s0fWty3L6sAnYozSiB3+I57rtoekjLvi1FW
-0HqZwWF27nAyFWsb69u5Gz8O+h/ODtc9YZkrCuYDBMw+M4FIFW2athOfLBZirihc
-LAFPAAMFA/sEwlrqZ2S57NdzlHO7CjT2GsdpmKYNucKisEFNEnyeGwfmCv+myMIA
-IaFwxbR1iLy62bpUIta0dvEacI/iXWu5b+SMMbHjZThR+WQESzw2QOu/erINhgPx
-EigcoI/CXLXIrTl9EuJSDrOAmCHY9ch7DChksUC+1wIu4b8eF//Q/gAA+Mvw9VpR
-EfeAk+1pXvC00uM/0u5Kui3NFN/SCfszuAsTN4hGBBgRAgAGBQI+VLj1AAoJEA3V
-A/vc5zQCedoAoKjzmJpPPTK2pxf5O9WHeHuxAFYCAJwMRlPMmJq6NPNluvqT4TOd
-A5+8vA==
-=sjC/
------END PGP PRIVATE KEY BLOCK-----
diff --git a/tests/gpgcrypt.at b/tests/gpgcrypt.at
index 6539dc1..ff596e0 100644
--- a/tests/gpgcrypt.at
+++ b/tests/gpgcrypt.at
@@ -15,6 +15,27 @@
# with GNU Anubis. If not, see <http://www.gnu.org/licenses/>.
AT_SETUP([GPG Encryption])
AT_KEYWORDS([gpg encrypt])
+
+AT_CHECK([
+ANUBIS_PREREQ_GPG
+mkdir gpg
+if ! $GPG --homedir gpg --quiet --no-permission-warning --batch --gen-key
+then
+ AT_SKIP_TEST
+fi <<EOT
+Key-Type: RSA
+Key-Length: 2048
+Subkey-Type: ELG-E
+Subkey-Length: 2048
+Name-Real: GNU Anubis Team
+Name-Comment: (anubis)
+Name-Email: anubis-dev@gnu.org
+Expire-Date: 0
+%no-protection
+%transient-key
+%commit
+EOT
+
AT_ANUBIS_CONFIG([anubis.rc],
[BEGIN CONTROL
logfile $PWD/etc/anubis.log
@@ -22,7 +43,7 @@ local-mta $abs_builddir/mta -bs -d $PWD/etc/mta.log
END
BEGIN RULE
-gpg-home $ANUBIS_DATA_DIR
+gpg-home $PWD/gpg
trigger "encrypt:(.*)"
gpg-encrypt \1
@@ -43,8 +64,12 @@ If you can read this, then it is working.
.
QUIT
])
+],
+[0],
+[ignore],
+[ignore])
+
AT_CHECK([
-ANUBIS_PREREQ_CAPA(GPG)
anubis --norc --relax-perm-check --altrc etc/anubis.rc --stdio < input | tr -d '\r'
],
[0],
@@ -66,8 +91,7 @@ X-GPG-Comment: Encrypted for anubis-dev
QUIT
])
AT_CHECK([
-ANUBIS_PREREQ_GPG
-$GPG --homedir $ANUBIS_DATA_DIR --decrypt < etc/mta.log
+$GPG --homedir gpg --decrypt < etc/mta.log
],
[0],
[If you can read this, then it is working.
diff --git a/tests/gpgse.at b/tests/gpgse.at
index 8fe2faa..52f1055 100644
--- a/tests/gpgse.at
+++ b/tests/gpgse.at
@@ -15,6 +15,27 @@
# with GNU Anubis. If not, see <http://www.gnu.org/licenses/>.
AT_SETUP([GPG Sign and Encrypt])
AT_KEYWORDS([gpg sign encrypt])
+
+AT_CHECK([
+ANUBIS_PREREQ_GPG
+mkdir gpg
+if ! $GPG --homedir gpg --quiet --no-permission-warning --batch --gen-key
+then
+ AT_SKIP_TEST
+fi <<EOT
+Key-Type: RSA
+Key-Length: 2048
+Subkey-Type: ELG-E
+Subkey-Length: 2048
+Name-Real: GNU Anubis Team
+Name-Comment: (anubis)
+Name-Email: anubis-dev@gnu.org
+Expire-Date: 0
+%no-protection
+%transient-key
+%commit
+EOT
+
AT_ANUBIS_CONFIG([anubis.rc],
[BEGIN CONTROL
logfile $PWD/etc/anubis.log
@@ -22,7 +43,7 @@ local-mta $abs_builddir/mta -bs -d $PWD/etc/mta.log
END
BEGIN RULE
-gpg-home $ANUBIS_DATA_DIR
+gpg-home $PWD/gpg
trigger "se:(.*):(.*)"
gpg-se \1:\2
add [[X-GPG-Comment1]] "Encrypted for \1"
@@ -30,6 +51,7 @@ trigger "se:(.*):(.*)"
done
END
])
+
AT_DATA([input],
[HELO localhost
MAIL FROM:<polak@gnu.org>
@@ -43,8 +65,12 @@ If you can read this, then it is working.
.
QUIT
])
+],
+[0],
+[ignore],
+[ignore])
+
AT_CHECK([
-ANUBIS_PREREQ_CAPA(GPG)
anubis --norc --relax-perm-check --altrc etc/anubis.rc --stdio < input | tr -d '\r'
],
[0],
@@ -67,8 +93,7 @@ X-GPG-Comment2: Signed by anubis-dev
QUIT
])
AT_CHECK([
-ANUBIS_PREREQ_GPG
-$GPG --homedir $ANUBIS_DATA_DIR --decrypt < etc/mta.log
+$GPG --homedir gpg --decrypt < etc/mta.log
],
[0],
[If you can read this, then it is working.
diff --git a/tests/gpgsign.at b/tests/gpgsign.at
index 5ab7426..a58a946 100644
--- a/tests/gpgsign.at
+++ b/tests/gpgsign.at
@@ -1,4 +1,4 @@
-# This file is part of GNU Anubis testsuite. -*- autotest -*-
+># This file is part of GNU Anubis testsuite. -*- autotest -*-
# Copyright (C) 2003-2020 The Anubis Team.
#
# GNU Anubis is free software; you can redistribute it and/or modify it
@@ -15,6 +15,28 @@
# with GNU Anubis. If not, see <http://www.gnu.org/licenses/>.
AT_SETUP([GPG Sign])
AT_KEYWORDS([gpg sign])
+
+AT_CHECK([
+ANUBIS_PREREQ_GPG
+mkdir gpg
+
+if ! $GPG --homedir gpg --quiet --no-permission-warning --batch --gen-key
+then
+ AT_SKIP_TEST
+fi <<EOT
+Key-Type: RSA
+Key-Length: 2048
+Subkey-Type: ELG-E
+Subkey-Length: 2048
+Name-Real: GNU Anubis Team
+Name-Comment: (anubis)
+Name-Email: anubis-dev@gnu.org
+Expire-Date: 0
+%no-protection
+%transient-key
+%commit
+EOT
+
AT_ANUBIS_CONFIG([anubis.rc],
[BEGIN CONTROL
logfile $PWD/etc/anubis.log
@@ -22,13 +44,14 @@ local-mta $abs_builddir/mta -bs -d $PWD/etc/mta.log
END
BEGIN RULE
-gpg-home $ANUBIS_DATA_DIR
+gpg-home $PWD/gpg
trigger "sign:(.*)"
gpg-sign "default"
add [[X-GPG-Comment]] "Signed by \1"
done
END
])
+
AT_DATA([input],
[HELO localhost
MAIL FROM:<gray@gnu.org>
@@ -42,15 +65,20 @@ If you can read this, then it is working.
.
QUIT
])
+],
+[0],
+[ignore],
+[ignore])
+
AT_CHECK([
-ANUBIS_PREREQ_CAPA(GPG)
anubis --norc --relax-perm-check --altrc etc/anubis.rc --stdio < input | tr -d '\r'
],
[0],
[ignore],
[ignore])
AT_CHECK([
- sed -e '/-----BEGIN PGP SIGNATURE-----/,/-----END PGP SIGNATURE-----/d' etc/mta.log],
+ sed -e '/-----BEGIN PGP SIGNATURE-----/,/-----END PGP SIGNATURE-----/d'\
+ -e 's/^Hash:.*/Hash: ???/' etc/mta.log],
[0],
[HELO localhost
MAIL FROM:<gray@gnu.org>
@@ -62,15 +90,14 @@ Subject: Signing messages
X-GPG-Comment: Signed by anubis-dev
-----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
+Hash: ???
If you can read this, then it is working.
.
QUIT
])
AT_CHECK([
-ANUBIS_PREREQ_GPG
-$GPG --homedir $ANUBIS_DATA_DIR --verify < etc/mta.log
+$GPG --homedir gpg --verify < etc/mta.log
],
[0],
[],
diff --git a/tests/mta.c b/tests/mta.c
index fa96bc3..28c2440 100644
--- a/tests/mta.c
+++ b/tests/mta.c
@@ -55,6 +55,7 @@
#endif
#include <stdio.h>
#include <stdlib.h>
+#include <stddef.h>
#include <errno.h>
#include <string.h>
#include <stdarg.h>
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 19983c6..91d7630 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -19,7 +19,11 @@ m4_define([AT_SKIP_TEST],[exit 77])
m4_define([ANUBIS_PREREQ_CAPA],
[anubis --show-config-options|fgrep -q $1||AT_SKIP_TEST])
m4_define([ANUBIS_PREREQ_GPG],
- [$GPG --version >/dev/null 2>&1 || AT_SKIP_TEST])
+ [ANUBIS_PREREQ_CAPA(GPG)
+ test -n "$GPG" || AT_SKIP_TEST])
+m4_define([ANUBIS_PREREQ_TLS],
+ [ANUBIS_PREREQ_CAPA(GNUTLS)
+ test -n "$CERTTOOL" || AT_SKIP_TEST])
m4_define([AT_ANUBIS_CONFIG],
[test -d etc || mkdir etc
cat > etc/$1 <<__EOT__
diff --git a/tests/tlsoneway.at b/tests/tlsoneway.at
index a976d81..7f75bf5 100644
--- a/tests/tlsoneway.at
+++ b/tests/tlsoneway.at
@@ -15,13 +15,28 @@
# with GNU Anubis. If not, see <http://www.gnu.org/licenses/>.
AT_SETUP([One-way TLS encryption])
AT_KEYWORDS([tls])
+AT_CHECK([
+ANUBIS_PREREQ_TLS
+
+mkdir cfg
+
+AT_DATA([cfg/certtool.cfg],
+[organization = "GNU Anubis Team"
+unit = "testing"
+cn = anubis
+])
+
+$CERTTOOL -p --rsa --sec-param Low --outfile=cfg/privkey.pem || AT_SKIP_TEST
+$CERTTOOL -s --load-privkey=cfg/privkey.pem --template cfg/certtool.cfg --outfile cfg/cert.pem || AT_SKIP_TEST
+
AT_ANUBIS_CONFIG([anubis.rc],
[BEGIN CONTROL
logfile $PWD/etc/anubis.log
-local-mta $abs_builddir/mta -bs -d $PWD/etc/mta.log -c $abs_srcdir/data/anubis.pem -k $abs_srcdir/data/anubis.pem
+local-mta $abs_builddir/mta -bs -d $PWD/etc/mta.log -c $PWD/cfg/cert.pem -k $PWD/cfg/privkey.pem
ssl-oneway yes
END
])
+
AT_DATA([input],
[EHLO localhost
MAIL FROM:<gray@gnu.org>
@@ -42,13 +57,18 @@ hours of the morning.
.
QUIT
])
+],
+[0],
+[ignore],
+[ignore])
+
AT_CHECK([
-ANUBIS_PREREQ_CAPA(GNUTLS)
anubis --norc --relax-perm-check --altrc etc/anubis.rc --stdio < input | tr -d '\r'
],
[0],
[ignore],
[ignore])
+
AT_CHECK([diff input etc/mta.log],
[1],
[1a2,3

Return to:

Send suggestions and report system problems to the System administrator.