/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
1
#!/bin/sh -e
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
2
# 
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
3
# Mandos key generator - create a new OpenPGP key for a Mandos client
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
4
# 
237.2.207 by Teddy Hogeborn
Update copyright year to "2010" wherever appropriate.
5
# Copyright © 2008-2010 Teddy Hogeborn
6
# Copyright © 2008-2010 Björn Påhlsson
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
7
# 
8
# This program is free software: you can redistribute it and/or modify
9
# it under the terms of the GNU General Public License as published by
10
# the Free Software Foundation, either version 3 of the License, or
11
# (at your option) any later version.
12
#
13
#     This program is distributed in the hope that it will be useful,
14
#     but WITHOUT ANY WARRANTY; without even the implied warranty of
15
#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
#     GNU General Public License for more details.
17
# 
18
# You should have received a copy of the GNU General Public License
19
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
# 
21
# Contact the authors at <mandos@fukt.bsnet.se>.
22
# 
23
269 by Teddy Hogeborn
* Makefile (version): Changed to "1.0.14".
24
VERSION="1.0.14"
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
25
163 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): Removed.
26
KEYDIR="/etc/keys/mandos"
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
27
KEYTYPE=DSA
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
28
KEYLENGTH=2048
96 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR, MANDIR): Use $(DESTDIR).
29
SUBKEYTYPE=ELG-E
30
SUBKEYLENGTH=2048
196 by Teddy Hogeborn
* mandos-keygen (KEYNAME): Fall back to plain "hostname" if the
31
KEYNAME="`hostname --fqdn 2>/dev/null || hostname`"
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
32
KEYEMAIL=""
33
KEYCOMMENT="Mandos client key"
34
KEYEXPIRE=0
35
FORCE=no
36
KEYCOMMENT_ORIG="$KEYCOMMENT"
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
37
mode=keygen
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
38
179 by Teddy Hogeborn
* INSTALL: New file.
39
if [ ! -d "$KEYDIR" ]; then
40
    KEYDIR="/etc/mandos/keys"
41
fi
42
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
43
# Parse options
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
44
TEMP=`getopt --options vhpF:d:t:l:s:L:n:e:c:x:f \
45
    --longoptions version,help,password,passfile:,dir:,type:,length:,subtype:,sublength:,name:,email:,comment:,expire:,force \
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
46
    --name "$0" -- "$@"`
47
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
48
help(){
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
49
basename="`basename $0`"
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
50
cat <<EOF
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
51
Usage: $basename [ -v | --version ]
52
       $basename [ -h | --help ]
53
   Key creation:
54
       $basename [ OPTIONS ]
55
   Encrypted password creation:
56
       $basename { -p | --password } [ --name NAME ] [ --dir DIR]
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
57
       $basename { -F | --passfile } FILE [ --name NAME ] [ --dir DIR]
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
58
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
59
Key creation options:
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
60
  -v, --version         Show program's version number and exit
61
  -h, --help            Show this help message and exit
62
  -d DIR, --dir DIR     Target directory for key files
63
  -t TYPE, --type TYPE  Key type.  Default is DSA.
64
  -l BITS, --length BITS
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
65
                        Key length in bits.  Default is 2048.
96 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR, MANDIR): Use $(DESTDIR).
66
  -s TYPE, --subtype TYPE
67
                        Subkey type.  Default is ELG-E.
68
  -L BITS, --sublength BITS
69
                        Subkey length in bits.  Default is 2048.
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
70
  -n NAME, --name NAME  Name of key.  Default is the FQDN.
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
71
  -e ADDRESS, --email ADDRESS
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
72
                        Email address of key.  Default is empty.
123 by Teddy Hogeborn
* mandos-keygen: Minor help text change.
73
  -c TEXT, --comment TEXT
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
74
                        Comment field for key.  The default value is
75
                        "Mandos client key".
76
  -x TIME, --expire TIME
77
                        Key expire time.  Default is no expiration.
78
                        See gpg(1) for syntax.
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
79
  -f, --force           Force overwriting old key files.
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
80
81
Password creation options:
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
82
  -p, --password        Create an encrypted password using the key in
83
                        the key directory.  All options other than
84
                        --dir and --name are ignored.
85
  -F FILE, --passfile FILE
86
                        Encrypt a password from FILE using the key in
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
87
                        the key directory.  All options other than
123 by Teddy Hogeborn
* mandos-keygen: Minor help text change.
88
                        --dir and --name are ignored.
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
89
EOF
90
}
91
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
92
eval set -- "$TEMP"
93
while :; do
94
    case "$1" in
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
95
	-p|--password) mode=password; shift;;
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
96
	-F|--passfile) mode=password; PASSFILE="$2"; shift 2;;
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
97
	-d|--dir) KEYDIR="$2"; shift 2;;
98
	-t|--type) KEYTYPE="$2"; shift 2;;
96 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR, MANDIR): Use $(DESTDIR).
99
	-s|--subtype) SUBKEYTYPE="$2"; shift 2;;
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
100
	-l|--length) KEYLENGTH="$2"; shift 2;;
96 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR, MANDIR): Use $(DESTDIR).
101
	-L|--sublength) SUBKEYLENGTH="$2"; shift 2;;
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
102
	-n|--name) KEYNAME="$2"; shift 2;;
103
	-e|--email) KEYEMAIL="$2"; shift 2;;
104
	-c|--comment) KEYCOMMENT="$2"; shift 2;;
87 by Teddy Hogeborn
* Makefile: Bug fix: fixed creation of man pages in "plugins.d".
105
	-x|--expire) KEYEXPIRE="$2"; shift 2;;
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
106
	-f|--force) FORCE=yes; shift;;
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
107
	-v|--version) echo "$0 $VERSION"; exit;;
108
	-h|--help) help; exit;;
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
109
	--) shift; break;;
110
	*) echo "Internal error" >&2; exit 1;;
111
    esac
112
done
113
if [ "$#" -gt 0 ]; then
114
    echo "Unknown arguments: '$@'" >&2
115
    exit 1
116
fi
117
118
SECKEYFILE="$KEYDIR/seckey.txt"
119
PUBKEYFILE="$KEYDIR/pubkey.txt"
120
121
# Check for some invalid values
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
122
if [ ! -d "$KEYDIR" ]; then
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
123
    echo "$KEYDIR not a directory" >&2
124
    exit 1
125
fi
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
126
if [ ! -r "$KEYDIR" ]; then
127
    echo "Directory $KEYDIR not readable" >&2
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
128
    exit 1
129
fi
130
131
if [ "$mode" = keygen ]; then
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
132
    if [ ! -w "$KEYDIR" ]; then
133
	echo "Directory $KEYDIR not writeable" >&2
134
	exit 1
135
    fi
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
136
    if [ -z "$KEYTYPE" ]; then
137
	echo "Empty key type" >&2
138
	exit 1
139
    fi
140
    
141
    if [ -z "$KEYNAME" ]; then
142
	echo "Empty key name" >&2
143
	exit 1
144
    fi
145
    
146
    if [ -z "$KEYLENGTH" ] || [ "$KEYLENGTH" -lt 512 ]; then
147
	echo "Invalid key length" >&2
148
	exit 1
149
    fi
237.2.37 by Teddy Hogeborn
* mandos-keygen (password): Remove bashism "${PIPESTATUS}".
150
    
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
151
    if [ -z "$KEYEXPIRE" ]; then
152
	echo "Empty key expiration" >&2
153
	exit 1
154
    fi
155
    
156
    # Make FORCE be 0 or 1
157
    case "$FORCE" in
158
	[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]) FORCE=1;;
159
	[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|*) FORCE=0;;
160
    esac
161
    
168 by Teddy Hogeborn
* initramfs-tools-hook: Use long options where available. Use only
162
    if [ \( -e "$SECKEYFILE" -o -e "$PUBKEYFILE" \) \
163
	-a "$FORCE" -eq 0 ]; then
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
164
	echo "Refusing to overwrite old key files; use --force" >&2
165
	exit 1
166
    fi
167
    
168
    # Set lines for GnuPG batch file
169
    if [ -n "$KEYCOMMENT" ]; then
170
	KEYCOMMENTLINE="Name-Comment: $KEYCOMMENT"
171
    fi
172
    if [ -n "$KEYEMAIL" ]; then
173
	KEYEMAILLINE="Name-Email: $KEYEMAIL"
174
    fi
237.2.37 by Teddy Hogeborn
* mandos-keygen (password): Remove bashism "${PIPESTATUS}".
175
    
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
176
    # Create temporary gpg batch file
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
177
    BATCHFILE="`mktemp -t mandos-keygen-batch.XXXXXXXXXX`"
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
178
fi
179
180
if [ "$mode" = password ]; then
181
    # Create temporary encrypted password file
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
182
    SECFILE="`mktemp -t mandos-keygen-secfile.XXXXXXXXXX`"
183
fi
184
185
# Create temporary key ring directory
186
RINGDIR="`mktemp -d -t mandos-keygen-keyrings.XXXXXXXXXX`"
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
187
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
188
# Remove temporary files on exit
94 by Teddy Hogeborn
* clients.conf ([DEFAULT]/checker): Update to new default value.
189
trap "
96 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR, MANDIR): Use $(DESTDIR).
190
set +e; \
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
191
test -n \"$SECFILE\" && shred --remove \"$SECFILE\"; \
192
shred --remove \"$RINGDIR\"/sec*;
193
test -n \"$BATCHFILE\" && rm --force \"$BATCHFILE\"; \
194
rm --recursive --force \"$RINGDIR\";
96 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR, MANDIR): Use $(DESTDIR).
195
stty echo; \
94 by Teddy Hogeborn
* clients.conf ([DEFAULT]/checker): Update to new default value.
196
" EXIT
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
197
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
198
umask 077
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
199
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
200
if [ "$mode" = keygen ]; then
201
    # Create batch file for GnuPG
202
    cat >"$BATCHFILE" <<-EOF
203
	Key-Type: $KEYTYPE
204
	Key-Length: $KEYLENGTH
205
	#Key-Usage: encrypt,sign,auth
206
	Subkey-Type: $SUBKEYTYPE
207
	Subkey-Length: $SUBKEYLENGTH
208
	#Subkey-Usage: encrypt,sign,auth
209
	Name-Real: $KEYNAME
210
	$KEYCOMMENTLINE
211
	$KEYEMAILLINE
212
	Expire-Date: $KEYEXPIRE
213
	#Preferences: <string>
214
	#Handle: <no-spaces>
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
215
	#%pubring pubring.gpg
216
	#%secring secring.gpg
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
217
	%commit
218
	EOF
219
    
237.2.156 by Teddy Hogeborn
* mandos-keygen (keygen): Warn about long key generation time.
220
    if tty --quiet; then
221
	cat <<-EOF
222
	Note: Due to entropy requirements, key generation could take
223
	anything from a few minutes to SEVERAL HOURS.  Please be
224
	patient and/or supply the system with more entropy if needed.
225
	EOF
226
	echo -n "Started: "
227
	date
228
    fi
229
    
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
230
    # Generate a new key in the key rings
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
231
    gpg --quiet --batch --no-tty --no-options --enable-dsa2 \
232
	--homedir "$RINGDIR" --trust-model always \
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
233
	--gen-key "$BATCHFILE"
234
    rm --force "$BATCHFILE"
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
235
    
237.2.156 by Teddy Hogeborn
* mandos-keygen (keygen): Warn about long key generation time.
236
    if tty --quiet; then
237
	echo -n "Finished: "
238
	date
239
    fi
240
    
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
241
    # Backup any old key files
242
    if cp --backup=numbered --force "$SECKEYFILE" "$SECKEYFILE" \
243
	2>/dev/null; then
244
	shred --remove "$SECKEYFILE"
245
    fi
246
    if cp --backup=numbered --force "$PUBKEYFILE" "$PUBKEYFILE" \
247
	2>/dev/null; then
248
	rm --force "$PUBKEYFILE"
249
    fi
250
    
251
    FILECOMMENT="Mandos client key for $KEYNAME"
252
    if [ "$KEYCOMMENT" != "$KEYCOMMENT_ORIG" ]; then
253
	FILECOMMENT="$FILECOMMENT ($KEYCOMMENT)"
254
    fi
255
    
256
    if [ -n "$KEYEMAIL" ]; then
257
	FILECOMMENT="$FILECOMMENT <$KEYEMAIL>"
258
    fi
259
    
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
260
    # Export key from key rings to key files
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
261
    gpg --quiet --batch --no-tty --no-options --enable-dsa2 \
262
	--homedir "$RINGDIR" --armor --export-options export-minimal \
263
	--comment "$FILECOMMENT" --output "$SECKEYFILE" \
264
	--export-secret-keys
265
    gpg --quiet --batch --no-tty --no-options --enable-dsa2 \
266
	--homedir "$RINGDIR" --armor --export-options export-minimal \
267
	--comment "$FILECOMMENT" --output "$PUBKEYFILE" --export
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
268
fi
269
270
if [ "$mode" = password ]; then
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
271
    # Import key into temporary key rings
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
272
    gpg --quiet --batch --no-tty --no-options --enable-dsa2 \
273
	--homedir "$RINGDIR" --trust-model always --armor \
274
	--import "$SECKEYFILE"
275
    gpg --quiet --batch --no-tty --no-options --enable-dsa2 \
276
	--homedir "$RINGDIR" --trust-model always --armor \
277
	--import "$PUBKEYFILE"
278
    
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
279
    # Get fingerprint of key
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
280
    FINGERPRINT="`gpg --quiet --batch --no-tty --no-options \
237.2.173 by Teddy Hogeborn
* Makefile (LINK_FORTIFY_LD): Bug fix: removed "-fPIE".
281
	--enable-dsa2 --homedir \"$RINGDIR\" --trust-model always \
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
282
	--fingerprint --with-colons \
168 by Teddy Hogeborn
* initramfs-tools-hook: Use long options where available. Use only
283
	| sed --quiet \
284
	--expression='/^fpr:/{s/^fpr:.*:\\([0-9A-Z]*\\):\$/\\1/p;q}'`"
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
285
    
286
    test -n "$FINGERPRINT"
287
    
288
    FILECOMMENT="Encrypted password for a Mandos client"
289
    
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
290
    if [ -n "$PASSFILE" ]; then
291
	cat "$PASSFILE"
292
    else
293
	stty -echo
294
	echo -n "Enter passphrase: " >&2
295
	first="$(head --lines=1 | tr --delete '\n')"
237.2.192 by teddy at bsnet
* mandos-keygen: Don't use "echo -e".
296
	echo >&2
297
	echo -n "Repeat passphrase: " >&2
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
298
	second="$(head --lines=1 | tr --delete '\n')"
299
	echo >&2
300
	stty echo
301
	if [ "$first" != "$second" ]; then
237.2.192 by teddy at bsnet
* mandos-keygen: Don't use "echo -e".
302
	    echo "Passphrase mismatch" >&2
237.2.37 by Teddy Hogeborn
* mandos-keygen (password): Remove bashism "${PIPESTATUS}".
303
	    touch "$RINGDIR"/mismatch
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
304
	else
305
	    echo -n "$first"
306
	fi
307
    fi | gpg --quiet --batch --no-tty --no-options --enable-dsa2 \
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
308
	--homedir "$RINGDIR" --trust-model always --armor --encrypt \
230 by Teddy Hogeborn
* README: Refer to man pages of usplash, splashy, and askpass-fifo.
309
	--sign --recipient "$FINGERPRINT" --comment "$FILECOMMENT" \
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
310
	> "$SECFILE"
237.2.37 by Teddy Hogeborn
* mandos-keygen (password): Remove bashism "${PIPESTATUS}".
311
    if [ -e "$RINGDIR"/mismatch ]; then
312
	rm --force "$RINGDIR"/mismatch
313
	exit 1
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
314
    fi
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
315
    
316
    cat <<-EOF
317
	[$KEYNAME]
99 by Teddy Hogeborn
* mandos (fingerprint): Bug fix: Check crtverify.value, not crtverify.
318
	host = $KEYNAME
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
319
	fingerprint = $FINGERPRINT
320
	secret =
198 by Teddy Hogeborn
* mandos-keygen: New "--passfile" option. Confirm entered password.
321
	EOF
168 by Teddy Hogeborn
* initramfs-tools-hook: Use long options where available. Use only
322
    sed --quiet --expression='
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
323
	/^-----BEGIN PGP MESSAGE-----$/,/^-----END PGP MESSAGE-----$/{
324
	    /^$/,${
103 by Teddy Hogeborn
* mandos-keygen: Strip 24-bit checksum of Radix-64 from output to make
325
		# Remove 24-bit Radix-64 checksum
326
		s/=....$//
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
327
		# Indent four spaces
328
		/^[^-]/s/^/    /p
329
	    }
330
	}' < "$SECFILE"
331
fi
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
332
333
trap - EXIT
334
97 by Teddy Hogeborn
* mandos-keygen: Bug fix: Recognize new options --subtype and
335
set +e
336
# Remove the password file, if any
337
if [ -n "$SECFILE" ]; then
338
    shred --remove "$SECFILE"
339
fi
73 by Teddy Hogeborn
* Makefile (COVERAGE): Change back to "--coverage".
340
# Remove the key rings
159 by Teddy Hogeborn
* Makefile (run-client): Do not depend on the key ring files.
341
shred --remove "$RINGDIR"/sec*
342
rm --recursive --force "$RINGDIR"