/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to debian/rules

  • Committer: Teddy Hogeborn
  • Date: 2015-03-10 18:03:38 UTC
  • Revision ID: teddy@recompile.se-20150310180338-pcxw6r2qmw9k6br9
Add ":!RSA" to GnuTLS priority string, to disallow non-DHE kx.

If Mandos was somehow made to use a non-ephemeral Diffie-Hellman key
exchange algorithm in the TLS handshake, any saved network traffic
could then be decrypted later if the Mandos client key was obtained.
By default, Mandos uses ephemeral DH key exchanges which does not have
this problem, but a non-ephemeral key exchange algorithm was still
enabled by default.  The simplest solution is to simply turn that off,
which ensures that Mandos will always use ephemeral DH key exchanges.

There is a "PFS" priority string specifier, but we can't use it because:

1. Security-wise, it is a mix between "NORMAL" and "SECURE128" - it
   enables a lot more algorithms than "SECURE256".

2. It is only available since GnuTLS 3.2.4.

Thanks to Andreas Fischer <af@bantuX.org> for reporting this issue.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/usr/bin/make -f
2
 
 
3
 
ifeq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
4
 
    MAKEFLAGS += OPTIMIZE=-O0
5
 
endif
6
 
 
7
 
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
8
 
    NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
9
 
    MAKEFLAGS += -j$(NUMJOBS)
10
 
endif
11
 
 
12
 
PKG_CONFIG?=pkg-config
13
 
 
14
2
%:
15
3
        dh $@
16
4
 
17
 
override_dh_installdirs-indep:
18
 
        dh_installdirs
19
 
        dh_installdirs $(patsubst /%,%,$(shell $(PKG_CONFIG) \
20
 
                systemd --variable=systemdsystemunitdir)) \
21
 
                $(patsubst /%,%,$(shell $(PKG_CONFIG) \
22
 
                systemd --variable=tmpfilesdir)) \
23
 
                $(patsubst /%,%,$(shell $(PKG_CONFIG) \
24
 
                systemd --variable=sysusersdir))
25
 
 
26
 
override_dh_installdirs-arch:
27
 
        dh_installdirs
28
 
        dh_installdirs $(patsubst /%,%,$(shell $(PKG_CONFIG) \
29
 
                systemd --variable=sysusersdir))
30
 
 
31
5
override_dh_auto_build-arch:
32
6
        LC_ALL=en_US.utf8 dh_auto_build -- all doc
33
7
 
45
19
        $(MAKE) DESTDIR=$(CURDIR)/debian/mandos-client \
46
20
                install-client-nokey
47
21
 
48
 
override_dh_fixperms-arch:
 
22
override_dh_fixperms:
49
23
        dh_fixperms --exclude etc/keys/mandos \
 
24
                --exclude etc/mandos/clients.conf \
50
25
                --exclude etc/mandos/plugins.d \
51
 
                --exclude etc/mandos/plugin-helpers \
52
 
                --exclude usr/lib/$(DEB_HOST_MULTIARCH)/mandos/plugins.d \
53
 
                --exclude usr/lib/$(DEB_HOST_MULTIARCH)/mandos/plugin-helpers \
54
 
                --exclude usr/share/doc/mandos-client/examples/network-hooks.d/
 
26
                --exclude usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null)/mandos/plugins.d \
 
27
                --exclude usr/share/doc/mandos-client/examples/network-hooks.d
55
28
        chmod --recursive g-w -- \
56
29
        "$(CURDIR)/debian/mandos-client/usr/share/doc/mandos-client/examples/network-hooks.d"
57
30
 
58
 
override_dh_fixperms-indep:
59
 
        dh_fixperms --exclude etc/mandos/clients.conf
60
 
 
61
31
override_dh_auto_test-arch: ;
62
 
 
63
 
#bpo## dpkg-shlibdeps sees the "libgnutls28-dev (>= 3.6.6) |
64
 
#bpo## libgnutls28-dev (<< 3.6.0)," in the build-dependencies not as two
65
 
#bpo## alternatives, but as an absolute dependency on libgnutls30 >= 3.6.6.
66
 
#bpo## So we have to do this ugly hack to hide this build dependency if we
67
 
#bpo## compiled with libgnutls30 << 3.6.0.
68
 
#bpo#override_dh_shlibdeps-arch:
69
 
#bpo#   -gnutls_version=$$(dpkg-query --showformat='$${Version}' \
70
 
#bpo#           --show libgnutls30); \
71
 
#bpo#   dpkg --compare-versions $$gnutls_version lt 3.6.0 \
72
 
#bpo#           && { cp --archive debian/control debian/control.orig; sed --in-place --expression='s/libgnutls28-dev (>= 3\.6\.6) |//' debian/control; }
73
 
#bpo#   dh_shlibdeps
74
 
#bpo#   -gnutls_version=$$(dpkg-query --showformat='$${Version}' \
75
 
#bpo#           --show libgnutls30); \
76
 
#bpo#   dpkg --compare-versions $$gnutls_version lt 3.6.0 \
77
 
#bpo#           && mv debian/control.orig debian/control