/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 plugins.d/askpass-fifo.c

  • Committer: Teddy Hogeborn
  • Date: 2019-02-10 03:50:20 UTC
  • Revision ID: teddy@recompile.se-20190210035020-nttr1tybgwwixueu
Show debconf note about new TLS key IDs

If mandos-client did not see TLS keys and had to create them, or if
mandos sees GnuTLS version 3.6.6 or later, show an important notice on
package installation about the importance of adding the new key_id
options to clients.conf on the Mandos server.

* debian/control (Package: mandos, Package: mandos-client): Depend on
                                                            debconf.
* debian/mandos-client.lintian-overrides: Override warnings.
* debian/mandos-client.postinst (create_keys): Show notice if new TLS
                                               key files were created.
* debian/mandos-client.templates: New.
* debian/mandos.lintian-overrides: Override warnings.
* debian/mandos.postinst (configure): If GnuTLS 3.6.6 or later is
                                      detected, show an important
                                      notice (once) about the new
                                      key_id option required in
                                      clients.conf.
* debian/mandos.templates: New.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
/*
3
3
 * Askpass-FIFO - Read a password from a FIFO and output it
4
4
 * 
5
 
 * Copyright © 2008-2019, 2021 Teddy Hogeborn
6
 
 * Copyright © 2008-2019, 2021 Björn Påhlsson
 
5
 * Copyright © 2008-2018 Teddy Hogeborn
 
6
 * Copyright © 2008-2018 Björn Påhlsson
7
7
 * 
8
8
 * This file is part of Mandos.
9
9
 * 
23
23
 * Contact the authors at <mandos@recompile.se>.
24
24
 */
25
25
 
26
 
#define _GNU_SOURCE             /* vasprintf(),
27
 
                                   program_invocation_short_name */
28
 
#include <sys/types.h>          /* uid_t, gid_t, getuid(), getgid(),
29
 
                                   setgid(), setuid() */
30
 
#include <unistd.h>             /* uid_t, gid_t, ssize_t, getuid(),
31
 
                                   getgid(), setgid(), setuid(),
32
 
                                   read(), close(), write(),
33
 
                                   STDOUT_FILENO */
34
 
#include <stdarg.h>             /* va_list, va_start(), vfprintf() */
35
 
#include <stdio.h>              /* vasprintf(), fprintf(), stderr,
36
 
                                   vfprintf() */
37
 
#include <errno.h>              /* program_invocation_short_name,
38
 
                                   errno, EACCES, ENOTDIR, ELOOP,
 
26
#define _GNU_SOURCE             /* TEMP_FAILURE_RETRY() */
 
27
#include <sys/types.h>          /* uid_t, gid_t, ssize_t */
 
28
#include <sys/stat.h>           /* mkfifo(), S_IRUSR, S_IWUSR */
 
29
#include <iso646.h>             /* and */
 
30
#include <errno.h>              /* errno, EACCES, ENOTDIR, ELOOP,
39
31
                                   ENAMETOOLONG, ENOSPC, EROFS,
40
32
                                   ENOENT, EEXIST, EFAULT, EMFILE,
41
33
                                   ENFILE, ENOMEM, EBADF, EINVAL, EIO,
42
34
                                   EISDIR, EFBIG */
43
 
#include <string.h>             /* strerror() */
44
35
#include <error.h>              /* error() */
45
 
#include <stdlib.h>             /* free(), realloc(), EXIT_SUCCESS */
46
 
#include <sys/stat.h>           /* mkfifo(), S_IRUSR, S_IWUSR */
47
 
#include <sysexits.h>           /* EX_OSFILE, EX_OSERR,
 
36
#include <stdio.h>              /* fprintf(), vfprintf(),
 
37
                                   vasprintf() */
 
38
#include <stdlib.h>             /* EXIT_FAILURE, NULL, size_t, free(),
 
39
                                   realloc(), EXIT_SUCCESS */
 
40
#include <fcntl.h>              /* open(), O_RDONLY */
 
41
#include <unistd.h>             /* read(), close(), write(),
 
42
                                   STDOUT_FILENO */
 
43
#include <sysexits.h>           /* EX_OSERR, EX_OSFILE,
48
44
                                   EX_UNAVAILABLE, EX_IOERR */
49
 
#include <fcntl.h>              /* open(), O_RDONLY */
50
 
#include <stddef.h>             /* NULL, size_t */
 
45
#include <string.h>             /* strerror() */
 
46
#include <stdarg.h>             /* va_list, va_start(), ... */
51
47
 
52
48
uid_t uid = 65534;
53
49
gid_t gid = 65534;
69
65
    fprintf(stderr, ": ");
70
66
    fprintf(stderr, "%s\n", strerror(errnum));
71
67
    error(status, errno, "vasprintf while printing error");
72
 
    if(status){
73
 
      __builtin_unreachable();
74
 
    }
75
68
    return;
76
69
  }
77
70
  fprintf(stderr, "Mandos plugin ");
78
71
  error(status, errnum, "%s", text);
79
 
  if(status){
80
 
    __builtin_unreachable();
81
 
  }
82
72
  free(text);
83
73
}
84
74
 
100
90
    case ENOTDIR:
101
91
    case ELOOP:
102
92
      error_plus(EX_OSFILE, errno, "mkfifo");
103
 
      __builtin_unreachable();
104
93
    case ENAMETOOLONG:
105
94
    case ENOSPC:
106
95
    case EROFS:
107
96
    default:
108
97
      error_plus(EX_OSERR, errno, "mkfifo");
109
 
      __builtin_unreachable();
110
98
    case ENOENT:
111
99
      /* no "/lib/cryptsetup"? */
112
100
      error_plus(EX_UNAVAILABLE, errno, "mkfifo");
113
 
      __builtin_unreachable();
114
101
    case EEXIST:
115
102
      break;                    /* not an error */
116
103
    }