Add luksHeaderBackup and luksHeaderRestore commands and API cals.
[platform/upstream/cryptsetup.git] / ChangeLog
1 2009-09-28  Milan Broz  <mbroz@redhat.com>
2         * Add luksHeaderBackup and luksHeaderRestore commands.
3
4 2009-09-15  Milan Broz  <mbroz@redhat.com>
5         * Initialize crypto library before LUKS header load.
6         * Fix manpage to not require --size which expands to device size by default.
7
8 2009-09-10  Milan Broz  <mbroz@redhat.com>
9         * Clean up Makefiles and configure script.
10         * Version 1.1.0-test0.
11
12 2009-09-08  Milan Broz  <mbroz@redhat.com>
13         * Use dm-uuid for all crypt devices, contains device type and name now.
14         * Try to read first sector from device to properly check that device is ready.
15
16 2009-09-02  Milan Broz  <mbroz@redhat.com>
17         * Add luksSuspend (freeze device and wipe key) and luksResume (with provided passphrase).
18
19 2009-08-30  Milan Broz  <mbroz@redhat.com>
20         * Require device device-mapper to build and do not use backend wrapper for dm calls.
21         * Move memory locking and dm initialization to command layer.
22         * Increase priority of process if memory is locked.
23         * Add log macros and make logging modre consitent.
24         * Move command successful messages to verbose level.
25         * Introduce --debug parameter.
26         * Move device utils code and provide context parameter (for log).
27         * Keyfile now must be provided by path, only stdin file descriptor is used (api only).
28         * Do not call isatty() on closed keyfile descriptor.
29         * Run performance check for PBKDF2 from LUKS code, do not mix hash algoritms results.
30         * Add ability to provide pre-generated master key and UUID in LUKS header format.
31         * Add LUKS function to verify master key digest.
32         * Move key slot manuipulation function into LUKS specific code.
33         * Replace global options struct with separate parameters in helper functions.
34         * Add new libcryptsetup API (documented in libcryptsetup.h).
35         * Implement old API calls using new functions.
36         * Remove old API code helper functions.
37         * Add --master-key-file option for luksFormat and luksAddKey.
38
39 2009-08-17  Milan Broz  <mbroz@redhat.com>
40         * Fix PBKDF2 speed calculation for large passhrases.
41         * Allow using passphrase provided in options struct for LuksOpen.
42         * Allow restrict keys size in LuksOpen.
43
44 2009-07-30  Milan Broz  <mbroz@redhat.com>
45         * Fix errors when compiled with LUKS_DEBUG.
46         * Print error when getline fails.
47         * Remove po/cryptsetup-luks.pot, it's autogenerated.
48         * Return ENOENT for empty keyslots, EINVAL will be used later for other type of error.
49         * Switch PBKDF2 from internal SHA1 to libgcrypt, make hash algorithm not hardcoded to SHA1 here.
50         * Add required parameters for changing hash used in LUKS key setup scheme.
51         * Do not export simple XOR helper now used only inside AF functions.
52         * Completely remove internal SHA1 implementanion code, not needed anymore.
53         * Enable hash algorithm selection for LUKS through -h luksFormat option.
54
55 2009-07-28  Milan Broz  <mbroz@redhat.com>
56         * Pad luks header to 512 sector size.
57         * Rework read/write blockwise to not split operation to many pieces.
58         * Use posix_memalign if available.
59
60 2009-07-22  Milan Broz  <mbroz@redhat.com>
61         * Fix segfault if provided slot in luksKillslot is invalid.
62         * Remove unneeded timeout when remove of temporary device succeeded.
63
64 2009-07-22  Milan Broz  <mbroz@redhat.com>
65         * version 1.0.7
66
67 2009-07-16  Milan Broz  <mbroz@redhat.com>
68         * Allow removal of last slot in luksRemoveKey and luksKillSlot.
69
70 2009-07-11  Milan Broz  <mbroz@redhat.com>
71
72         * Add --disable-selinux option and fix static build if selinux is required.
73         * Reject unsupported --offset and --skip options for luksFormat and update man page.
74
75 2009-06-22  Milan Broz  <mbroz@redhat.com>
76
77         * Summary of changes in subversion for 1.0.7-rc1:
78         * Various man page fixes.
79         * Set UUID in device-mapper for LUKS devices.
80         * Retain readahead of underlying device.
81         * Display device name when asking for password.
82         * Check device size when loading LUKS header. Remove misleading error message later.
83         * Add error hint if dm-crypt mapping failed.
84         * Use better error messages if device doesn't exist or is already used by other mapping.
85         * Fix make distcheck.
86         * Check if all slots are full during luksAddKey.
87         * Fix segfault in set_error.
88         * Code cleanups, remove precompiled pot files, remove unnecessary files from po directory
89         * Fix uninitialized return value variable in setup.c.
90         * Code cleanups. (thanks to Ivan Stankovic)
91         * Fix wrong output for remaining key at key deletion.
92         * Allow deletion of key slot while other keys have the same key information.
93         * Add missing AM_PROG_CC_C_O to configure.in
94         * Remove duplicate sentence in man page.
95         * Wipe start of device (possible fs signature) before LUKS-formatting.
96         * Do not process configure.in in hidden directories.
97         * Return more descriptive error in case of IO or header format error.
98         * Use remapping to error target instead of calling udevsettle for temporary crypt device.
99         * Check device mapper communication and warn user if device-mapper support missing in kernel.
100         * Fix signal handler to properly close device.
101         * write_lseek_blockwise: declare innerCount outside the if block.
102         * add -Wall to the default CFLAGS. fix some signedness issues.
103         * Error handling improvement.
104         * Add non-exclusive override to interface definition.
105         * Refactor key slot selection into keyslot_from_option.
106
107 2007-05-01  Clemens Fruhwirth  <clemens@endorphin.org>
108
109         * lib/backends.c, man/cryptsetup.8: Apply patch from Ludwig Nussel
110         <ludwig.nussel@suse.de>, for old SuSE compat hashing.
111
112 2007-04-16  Clemens Fruhwirth  <clemens@endorphin.org>
113
114         * Summary of changes in subversion:
115         Fix segfault for key size > 32 bytes.
116         Kick ancient header version conversion. 
117         Fix http://bugs.debian.org/403075
118         No passwort retrying for I/O errors.
119         Fix hang on "-i 0".
120         Fix parenthesization error that prevented --tries from working
121         correctly.
122
123 2006-11-28  gettextize  <bug-gnu-gettext@gnu.org>
124
125         * m4/gettext.m4: Upgrade to gettext-0.15.
126         * m4/glibc2.m4: New file, from gettext-0.15.
127         * m4/intmax.m4: New file, from gettext-0.15.
128         * m4/inttypes-h.m4: New file, from gettext-0.15.
129         * m4/inttypes-pri.m4: Upgrade to gettext-0.15.
130         * m4/lib-link.m4: Upgrade to gettext-0.15.
131         * m4/lib-prefix.m4: Upgrade to gettext-0.15.
132         * m4/lock.m4: New file, from gettext-0.15.
133         * m4/longdouble.m4: New file, from gettext-0.15.
134         * m4/longlong.m4: New file, from gettext-0.15.
135         * m4/nls.m4: Upgrade to gettext-0.15.
136         * m4/po.m4: Upgrade to gettext-0.15.
137         * m4/printf-posix.m4: New file, from gettext-0.15.
138         * m4/signed.m4: New file, from gettext-0.15.
139         * m4/size_max.m4: New file, from gettext-0.15.
140         * m4/visibility.m4: New file, from gettext-0.15.
141         * m4/wchar_t.m4: New file, from gettext-0.15.
142         * m4/wint_t.m4: New file, from gettext-0.15.
143         * m4/xsize.m4: New file, from gettext-0.15.
144         * m4/Makefile.am: New file.
145         * configure.in (AC_OUTPUT): Add m4/Makefile.
146         (AM_GNU_GETTEXT_VERSION): Bump to 0.15.
147
148 2006-10-22  David Härdeman  <david@hardeman.nu>
149
150         * Allow hashing of keys passed through stdin.
151
152 2006-10-13  Clemens Fruhwirth  <clemens@endorphin.org>
153
154         * configure.in: 1.0.4 release
155
156 2006-10-13  Clemens Fruhwirth  <clemens@endorphin.org>
157
158         * man/cryptsetup.8: Document --tries switch; patch by Jonas
159         Meurer.
160
161 2006-10-13  Clemens Fruhwirth  <clemens@endorphin.org>
162
163         * lib/setup.c: Added terminal timeout rewrite as forwarded by
164         Jonas Meurer
165
166 2006-10-04  Clemens Fruhwirth  <clemens@endorphin.org>
167
168         * Merged patch from Marc Merlin <marc@merlins.org> to allow user
169         selection of key slot.
170
171 2006-09-26  gettextize  <bug-gnu-gettext@gnu.org>
172
173         * m4/codeset.m4: Upgrade to gettext-0.14.4.
174         * m4/gettext.m4: Upgrade to gettext-0.14.4.
175         * m4/glibc2.m4: New file, from gettext-0.14.4.
176         * m4/glibc21.m4: Upgrade to gettext-0.14.4.
177         * m4/iconv.m4: Upgrade to gettext-0.14.4.
178         * m4/intdiv0.m4: Upgrade to gettext-0.14.4.
179         * m4/intmax.m4: New file, from gettext-0.14.4.
180         * m4/inttypes.m4: Upgrade to gettext-0.14.4.
181         * m4/inttypes_h.m4: Upgrade to gettext-0.14.4.
182         * m4/inttypes-pri.m4: Upgrade to gettext-0.14.4.
183         * m4/isc-posix.m4: Upgrade to gettext-0.14.4.
184         * m4/lcmessage.m4: Upgrade to gettext-0.14.4.
185         * m4/lib-ld.m4: Upgrade to gettext-0.14.4.
186         * m4/lib-link.m4: Upgrade to gettext-0.14.4.
187         * m4/lib-prefix.m4: Upgrade to gettext-0.14.4.
188         * m4/longdouble.m4: New file, from gettext-0.14.4.
189         * m4/longlong.m4: New file, from gettext-0.14.4.
190         * m4/nls.m4: Upgrade to gettext-0.14.4.
191         * m4/po.m4: Upgrade to gettext-0.14.4.
192         * m4/printf-posix.m4: New file, from gettext-0.14.4.
193         * m4/progtest.m4: Upgrade to gettext-0.14.4.
194         * m4/signed.m4: New file, from gettext-0.14.4.
195         * m4/size_max.m4: New file, from gettext-0.14.4.
196         * m4/stdint_h.m4: Upgrade to gettext-0.14.4.
197         * m4/uintmax_t.m4: Upgrade to gettext-0.14.4.
198         * m4/ulonglong.m4: Upgrade to gettext-0.14.4.
199         * m4/wchar_t.m4: New file, from gettext-0.14.4.
200         * m4/wint_t.m4: New file, from gettext-0.14.4.
201         * m4/xsize.m4: New file, from gettext-0.14.4.
202         * Makefile.am (ACLOCAL_AMFLAGS): New variable.
203         * configure.in (AM_GNU_GETTEXT_VERSION): Bump to 0.14.4.
204
205 2006-08-04  Clemens Fruhwirth  <clemens@endorphin.org>
206
207         * configure.in: 1.0.4-rc2
208
209 2006-08-04  Clemens Fruhwirth  <clemens@endorphin.org>
210
211         * luks/Makefile.am: Add a few regression tests 
212
213 2006-08-04  Clemens Fruhwirth  <clemens@endorphin.org>
214
215         * lib/setup.c (get_key): Applied patch from David Härdeman
216         <david@2gen.com> for reading binary keys from stdin using
217         the "-" as key file.
218
219 2006-08-04  Clemens Fruhwirth  <clemens@endorphin.org>
220
221         * lib/setup.c (__crypt_luks_add_key): For checking options struct
222         (optionsCheck) filter out CRYPT_FLAG_VERIFY and
223         CRYPT_FLAG_VERIFY_IF_POSSIBLE, so that in no case password verification is done
224         for password retrieval.
225
226 2006-08-04  Clemens Fruhwirth  <clemens@endorphin.org>
227
228         * configure.in: Merge Patch from http://bugs.gentoo.org/show_bug.cgi?id=132126 for sepol
229
230 2006-07-23  Clemens Fruhwirth  <clemens@endorphin.org>
231
232         * Applied patches from David Härdeman <david@2gen.com> to fix 64
233         bit compiler warning issues.
234
235 2006-05-19  Clemens Fruhwirth  <clemens@endorphin.org>
236
237         * Applied patches from Jonas Meurer
238           - fix terminal status after timeout
239           - add remark for --tries to manpage
240           - allow more than 32 chars from standard input.
241           - exit status fix for cryptsetup status.
242
243 2006-05-06  Clemens Fruhwirth  <clemens@endorphin.org>
244
245         * src/cryptsetup.c (yesDialog): Fix getline problem for 64-bit archs. 
246
247 2006-04-05  Clemens Fruhwirth  <clemens@endorphin.org>
248
249         * configure.in: Release 1.0.3.
250
251         * Applied patch by Johannes Weißl for more meaningful exit codes
252         and password retries
253
254 2006-03-30  Clemens Fruhwirth  <clemens@endorphin.org>
255
256         * lib/setup.c (__crypt_create_device): (char *) -> (const char *)
257
258 2006-03-30  Clemens Fruhwirth  <clemens@endorphin.org>
259
260         * Apply alignPayload patch from Peter Palfrader <weasel@debian.org>
261
262 2006-03-15  Clemens Fruhwirth  <clemens@endorphin.org>
263
264         * configure.in: 1.0.3-rc3. Most unplease release ever. 
265         * lib/setup.c (__crypt_create_device): More verbose error message.
266
267 2006-02-26  Clemens Fruhwirth  <clemens@endorphin.org>
268
269         * lib/setup.c: Revert to 1.0.1 key reading.
270
271 2006-02-25  Clemens Fruhwirth  <clemens@endorphin.org>
272
273         * man/cryptsetup.8: merge patch from Jonas Meurer
274
275 2006-02-25  Clemens Fruhwirth  <clemens@endorphin.org>
276
277         * configure.in: 1.0.3-rc2
278
279 2006-02-25  Clemens Fruhwirth  <clemens@endorphin.org>
280
281         * lib/libdevmapper.c (dm_create_device): Remove dup check here.
282         * lib/setup.c (__crypt_luks_open): Adopt same dup check as regular
283         create command.
284
285 2006-02-22  Clemens Fruhwirth  <clemens@endorphin.org>
286
287         * configure.in: Spin 1.0.3-rc1
288
289 2006-02-22  Clemens Fruhwirth  <clemens@endorphin.org>
290
291         * src/cryptsetup.c (action_create): Change defaulting.
292         (action_luksFormat): Change defaulting.
293
294         * lib/setup.c (parse_into_name_and_mode): Revert that default
295         change. This is FORBIDDEN here, as it will change cryptsetup
296         entire default. This is BAD in a non-LUKS world.
297
298 2006-02-21  Clemens Fruhwirth  <clemens@endorphin.org>
299
300         * luks/keyencryption.c (setup_mapping): Add proper size restriction to mapping. 
301         (LUKS_endec_template): Add more verbose error message.
302
303 2006-02-21  Clemens Fruhwirth  <clemens@endorphin.org>
304
305         * lib/libdevmapper.c (dm_query_device): Incorporate patch from
306         Bastian Blank
307         http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=344313
308
309 2006-02-21  Clemens Fruhwirth  <clemens@endorphin.org>
310
311         * src/cryptsetup.c: Rename show_error -> show_status.
312
313 2006-02-20  Clemens Fruhwirth  <clemens@endorphin.org>
314
315         * lib/libdevmapper.c (dm_create_device): Prevent existing mapping
316         from being removed when a mapping with the same name is added
317
318         * Add timeout patch from Jonas Meurer 
319
320         * src/cryptsetup.c: Remove conditional error printing to enable
321         printing the no-error msg (Command successful). Verify passphrase
322         for LUKS volumes.
323         (main): Add no-verify-passphrase
324
325         * lib/setup.c (parse_into_name_and_mode): Change default mode complition to essiv:sha256.
326
327 2006-01-04  Clemens Fruhwirth  <clemens@endorphin.org>
328
329         * src/cryptsetup.c (help): Merge patch from Gentoo: change gettext(..) to _(..).
330
331 2005-12-06  Clemens Fruhwirth  <clemens@endorphin.org>
332
333         * man/cryptsetup.8: Correct "seconds" to "microseconds" in the explaination for -i.
334
335 2005-11-09  Clemens Fruhwirth  <clemens@endorphin.org>
336
337         * src/cryptsetup.c (main): Add version string.
338
339 2005-11-08  Clemens Fruhwirth  <clemens@endorphin.org>
340
341         * lib/backends.c: compile fix. 
342
343 2005-09-11  Clemens Fruhwirth  <clemens@endorphin.org>
344
345         * lib/setup.c (get_key): Fixed another incompatibility from my
346         get_key rewrite with original cryptsetup.
347
348 2005-09-11  Clemens Fruhwirth  <clemens@endorphin.org>
349
350         * Merged changes from Florian Knauf's fk02 branch.
351
352 2005-09-08  Clemens Fruhwirth  <clemens@endorphin.org>
353
354         * lib/setup.c (get_key): Fixed another incompatiblity with
355         original cryptsetup.
356
357 2005-08-20  Clemens Fruhwirth  <clemens@endorphin.org>
358
359         * Checked in a patch from Michael Gebetsroither <gebi@sbox.tugraz.at>
360           to silent all confirmation dialogs.
361
362 2005-06-23  Clemens Fruhwirth  <clemens@endorphin.org>
363
364         * src/cryptsetup.c (help): print PACKAGE_STRING
365
366 2005-06-20  Clemens Fruhwirth  <clemens@endorphin.org>
367
368         * luks/keymanage.c (LUKS_set_key): Security check against header manipulation
369
370         * src/cryptsetup.c (action_luksDelKey): Safety check in luksDelKey
371
372         * luks/keymanage.c: Changed disk layout generation to align key material to 4k boundaries.
373         (LUKS_is_last_keyslot): Added LUKS_is_last_keyslot function.
374
375         * Applied patch from Bill Nottingham fixing a lot of prototypes.
376
377         * src/cryptsetup.c (action_luksOpen): Add support for -r flag.
378
379         * configure.in: Version bump 1.0.1
380
381 2005-06-16  Clemens Fruhwirth  <clemens@endorphin.org>
382
383         * lib/setup.c (__crypt_luks_open): Remove mem leaking of dmCipherSpec.
384         (get_key): Fix missing zero termination for read string. 
385
386 2005-06-12  Clemens Fruhwirth  <clemens@endorphin.org>
387
388         * luks/keyencryption.c (setup_mapping): Added CRYPT_FLAG_READONLY in case of O_RDONLY mode
389
390 2005-06-11  Clemens Fruhwirth  <clemens@endorphin.org>
391
392         * configure.in: Version bump 1.0.1-pre
393
394 2005-06-09  Clemens Fruhwirth  <clemens@endorphin.org>
395
396         * lib/utils.c: Added write_llseek_blocksize method to support sector wiping on sector_size != 512 
397         media
398
399 2005-05-23  Clemens Fruhwirth  <clemens@endorphin.org>
400
401         * lib/setup.c (crypt_luksDelKey): Added missing return statement
402         (setup_leave): Added missing return statement
403
404         * luks/keyencryption.c (clear_mapping): Added missing return statement
405
406 2005-05-19  Clemens Fruhwirth  <clemens@endorphin.org>
407
408         * lib/utils.c (write_blockwise, read_blockwise): Changed to soft bsize instead of SECTOR_SIZE
409
410         * luks/keymanage.c (wipe): Changed open mode to O_DIRECT | O_SYNC, and changed write 
411         to use the blockwise write helper
412
413 2005-04-21  Clemens Fruhwirth  <clemens@endorphin.org>
414
415         * man/cryptsetup.8: Corrected an error, thanks to Dick Middleton.
416
417 2005-04-09  Clemens Fruhwirth  <clemens@endorphin.org>
418
419         * luks/sha/hmac.c: Add 64 bit bug fix courtesy to 
420         Oliver Paukstadt <pstadt@sourcentral.org>.
421
422         * luks/pbkdf.c, luks/keyencryption.c, luks/keymanage.c, luks/af.c: Added a license 
423         disclaimer and remove option for "any future GPL versions".
424
425 2005-03-25  Clemens Fruhwirth  <clemens@endorphin.org>
426
427         * configure.in: man page Makefile. Version bump 1.0.
428
429         * man/cryptsetup.8: finalize man page and move to section 8.
430
431         * src/cryptsetup.c (action_luksFormat): Add "are you sure" for interactive sessions.
432
433         * lib/setup.c (crypt_luksDump), src/cryptsetup.c: add LUKS dump command
434
435 2005-03-24  Clemens Fruhwirth  <clemens@endorphin.org>
436
437         * src/cryptsetup.c, luks/Makefile.am (test), lib/setup.c (setup_enter): 
438         rename luksInit to luksFormat
439
440 2005-03-12  Clemens Fruhwirth  <clemens@endorphin.org>
441
442         * man/cryptsetup.1: Add man page.
443
444         * lib/setup.c: Remove unneccessary LUKS_write_phdr call, so the
445         phdr is written after passphrase reading, so the user can change
446         his mind, and not have a partial written LUKS header on it's disk.
447
448 2005-02-09  Clemens Fruhwirth  <clemens@endorphin.org>
449
450         * luks/keymanage.c (LUKS_write_phdr): converted argument phdr to
451         pointer, and make a copy of phdr for conversion
452
453         * configure.in: Version dump.
454
455         * luks/keyencryption.c: Convert to read|write_blockwise.
456
457         * luks/keymanage.c: Convert to read|write_blockwise.
458
459         * lib/utils.c: Add read|write_blockwise functions, to use in
460         O_DIRECT file accesses. 
461
462 2004-03-11 Thursday 15:52   Christophe Saout <christophe@saout.de>
463
464         * lib/blockdev.h: BLKGETSIZE64 really uses size_t as third
465           argument, the rest is wrong.
466
467 2004-03-10 Wednesday 17:50   Christophe Saout <christophe@saout.de>
468
469         * lib/: libcryptsetup.h, libdevmapper.c: Small fixes.
470
471 2004-03-09 Tuesday 21:41   Christophe Saout <christophe@saout.de>
472
473         * lib/internal.h, lib/libcryptsetup.h, lib/libdevmapper.c,
474           lib/setup.c, po/de.po, src/cryptsetup.c: Added internal flags to
475           keep track of malloc'ed return values in struct crypt_options and
476           add a function to free the memory. Also add a readonly flag to
477           libcryptsetup.
478
479 2004-03-09 Tuesday 16:03   Christophe Saout <christophe@saout.de>
480
481         * ChangeLog, configure.in, setup-gettext, lib/Makefile.am,
482           lib/backends.c, lib/blockdev.h, lib/gcrypt.c, lib/internal.h,
483           lib/libcryptsetup.h, lib/libdevmapper.c, lib/setup.c,
484           lib/utils.c, po/de.po, src/Makefile.am, src/cryptsetup.c: More
485           reorganization work.
486
487 2004-03-08 Monday 01:38   Christophe Saout <christophe@saout.de>
488
489         * ChangeLog, Makefile.am, acinclude.m4, configure.in,
490           lib/Makefile.am, lib/backends.c, lib/blockdev.h, lib/gcrypt.c,
491           lib/libdevmapper.c, lib/setup.c, lib/utils.c, po/de.po,
492           src/Makefile.am: BLKGETSIZE64 fixes and started modularity
493           enhancements
494
495 2004-03-04 Thursday 21:06   Christophe Saout <christophe@saout.de>
496
497         * Makefile.am, po/de.po, src/cryptsetup.c, src/cryptsetup.h: First
498           backward compatible working version.
499
500 2004-03-04 Thursday 00:42   Christophe Saout <christophe@saout.de>
501
502         * NEWS, AUTHORS, ChangeLog, Makefile.am, README, autogen.sh,
503           configure.in, setup-gettext, po/ChangeLog, po/LINGUAS,
504           po/POTFILES.in, po/de.po, src/cryptsetup.c, src/cryptsetup.h,
505           src/Makefile.am (utags: initial): Initial checkin.
506
507 2004-03-04 Thursday 00:42   Christophe Saout <christophe@saout.de>
508
509         * NEWS, AUTHORS, ChangeLog, Makefile.am, README, autogen.sh,
510           configure.in, setup-gettext, po/ChangeLog, po/LINGUAS,
511           po/POTFILES.in, po/de.po, src/cryptsetup.c, src/cryptsetup.h,
512           src/Makefile.am: Initial revision