* configure.ac: Added min_automake_versions.
[pinentry.git] / ChangeLog
1 2003-12-09  Werner Koch  <wk@gnupg.org>
2
3         * configure.ac: Added min_automake_versions.
4         * autogen.sh: Revamped.
5
6 2003-04-23  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
7
8         * configure.ac: Version 0.6.10-cvs
9
10 2003-04-23  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
11
12         * configure.ac: Version 0.6.9
13         * qt/Makefile.am: Added moc files to DISTCLEANFILES
14         * qt/pinentrycontroller.cpp: Dont spew assuan debug stuff out on stderr.
15
16 2003-03-26  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
17
18         * qt/cppmemory.cpp, qt/main.cpp: Only override array allocation
19           operators. This should take care of the reported memory-problems
20           and even make pinentry-qt use a bit less memory.
21
22 2003-02-15  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
23
24         * qt/pinentrydialog.h, qt/pinentrydialog.cpp: Added icons 
25           for error/non-error messages.
26
27 2003-02-07  Marcus Brinkmann  <marcus@g10code.de>
28
29         Released 0.6.8.
30
31 2003-02-04  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
32
33         * qt/main.cpp: Work around '--display' option. This fixes 
34           the pinentry-qt problem reported by several people lately.
35
36 2003-01-24  Werner Koch  <wk@gnupg.org>
37
38         * autogen.sh: Print a hint to use maintainer mode.
39
40 2002-12-24  Marcus Brinkmann  <marcus@g10code.de>
41
42         * pinentry/pinentry-curses.c (collect_line): New function.
43         (COPY_OUT, MAKE_BUTTON): New macros.
44         (dialog_create): Rewrite the initializing code and the description
45         calculation routine with word wrapping.
46
47 2002-11-20  Werner Koch  <wk@gnupg.org>
48
49         Released 0.6.7.
50
51         * pinentry/pinentry-curses.c (dialog_create): Better truncate
52         lines than to go into an infinite loop.  We need to implement word
53         wrap.
54         (dialog_run): Add DIALOG_POS_NONE to switch so prevent a warning.
55
56 2002-11-12  Werner Koch  <wk@gnupg.org>
57
58         * config.sub, config.guess: Updated from ftp.gnu.org/gnu/config
59         to version 2002-11-08.
60
61 2002-11-09  Werner Koch  <wk@gnupg.org>
62
63         Released 0.6.6.
64
65 2002-11-08  Werner Koch  <wk@gnupg.org>
66
67         * pinentry/pinentry-curses.c (convert_utf8_string): Renamed to 
68         * pinentry/pinentry.c (pinentry_utf8_to_local): this. Changed
69         callers.
70         (pinentry_local_to_utf8): New.
71         (cmd_getpin): Convert result back to UTF-8.
72         * gtk/pinentry-gtk.c (create_utf8_label): New.
73         (create_window): Use it here to set the prompts.
74
75 2002-11-06  Werner Koch  <wk@gnupg.org>
76
77         * pinentry/pinentry-curses.c (dialog_run): Fixed retrun value tests
78         for fopen.
79
80 2002-11-05  Werner Koch  <wk@gnupg.org>
81
82         * secmem/util.c (init_uids): Make it a prototype.
83
84         * gtk/pinentry-gtk.c (enter_callback): Changed argument name to
85         avoid shadowing warning.
86         (create_window): Removed unused variable I.
87         (ok): Not used, commented.
88
89         * pinentry/pinentry.c: Include headers for getpid and sleep
90         prototypes.
91
92         * secmem/util.h: Correctly declare functions taking no args. 
93
94         * gtk/pinentry-gtk.c: Move gtk headers to the top to avoid
95         compiler warnings about shadowing index etc.
96
97         * curses/pinentry-curses.c: Include stdio.h for the printf prototype.
98
99         * pinentry/pinentry-curses.c (dialog_switch_pos): Return a value.
100
101         * pinentry/pinentry.c (pinentry_have_display): New.
102         (pinentry_setbufferlen): Must return a value. Fixed documentation.
103         (usage): Print a question mark as a substitue for the program name.
104
105         * gtk/pinentry-gtk.c (main): use it here instead of getenv().
106         * qt/main.cpp (main): Ditto.
107
108 2002-10-11  Werner Koch  <wk@gnupg.org>
109
110         * configure.ac, Makefile.am: Added doc/ and tests for makeinfo
111
112 2002-09-30  Werner Koch  <wk@gnupg.org>
113
114         Released 0.6.5.
115         
116         * qt/pinentrycontroller.cpp (optionHandler): Make sure that a
117         value is returned.
118         * configure.ac: Use -Wall also for C++.
119
120 2002-08-19  Steffen Hansen  <steffen@hrhansen.dk>
121
122         * Relased 0.6.4.
123
124 2002-08-11  Steffen Hansen  <steffen@hrhansen.dk>
125
126         * Adapted pinentry-qt to new CONFIRM spec.
127
128 2002-06-26  Werner Koch  <wk@gnupg.org>
129
130         Release 0.6.3.
131
132 2002-05-24  Werner Koch  <wk@gnupg.org>
133
134         * AUTHORS: Added Marcus
135         * README: Fixed spelling of Quintuple-Agent. 
136
137 2002-05-13  Marcus Brinkmann  <marcus@g10code.de>
138
139         Released 0.6.2.
140         
141         * configure.ac: Set version number to 0.6.2.
142         * NEWS: Add information for 0.6.2.
143         * README: Update for release.
144
145 2002-05-09  Marcus Brinkmann  <marcus@g10code.de>
146
147         * configure.ac: Add option --enable-fallback-curses and bind it to
148         the ncurses check.  Add automake conditional
149         BUILD_LIBPINENTRY_CURSES and FALLBACK_CURSES. Add preprocessor
150         symbol FALLBACK_CURSES.
151
152         * curses/Makefile.am (AM_CPPFLAGS): Add $(NCURSES_INCLUDE).
153         (LDADD): Add ../pinentry/libpinentry-curses.a.
154         * curses/pinentry-curses.c: Include "pinentry-curses.h".
155         Moved most of the meat to ...
156         * pinentry/pinentry-curses.c: ... here.  New file.  Make all
157         functions and global variables static.
158         (dialog_cmd_handler): Rename to ...
159         (curses_cmd_handler): ... this.
160         * pinentry/pinentry-curses.h: New file.
161         * pinentry/Makefile.am (noinst_LIBRARIES)
162         [BUILD_LIBPINENTRY_CURSES]: Add libpinentry-curses.a.
163         (libpinentry_curses_a_SOURCES): New target.
164
165         * gtk/Makefile.am (INCLUDES): Moved all to ...
166         (AM_CPPFLAGS): ... here.
167         [CURSES_FALLBACK]: Define ncurses_include and libcurses.
168         (AM_CPPFLAGS): Add $(ncurses_include).
169         (LDADD): Add $(libcurses).
170         * gtk/pinentry-gtk.c: Rename TIMEOUT to TIME_OUT to avoid conflict
171         with curses.h.
172         [CURSES_FALLBACK]: Include "pinentry-curses.h".
173         (button_clicked): Likewise.
174         (create_window): Likewise.
175         (cmd_handler): Renamed to ...
176         (gtk_cmd_handler): ... this.
177         (pinentry_cmd_handler): Set to gtk_cmd_handler.
178         (main) [CURSES_FALLBACK]: Initialize GTK+ only if environment
179         variable DISPLAY is set, otherwise fall back to curses dialog.
180
181         * pinentry/pinentry.h: Protect against multiple inclusion.
182
183 2002-05-09  Marcus Brinkmann  <marcus@g10code.de>
184
185         * curses/pinentry-curses.c (dialog_create): Allow multi-line error
186         texts.
187
188         * pinentry/pinentry.c (cmd_seterror): Call strcpy_escaped, rather
189         than strcpy, to allow percent-escaping the error text.
190
191 2002-04-25  Steffen Hansen  <steffen@hrhansen.dk>
192
193         * pinentry-qt: Use ok and cancel value if
194         provided.
195
196 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
197
198         * gtk/pinentry-gtk.c (create_window): Use ok and cancel value if
199         provided.
200
201 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
202
203         * qt/pinentrycontroller.h: New members _ok and _cancel.
204         * qt/pinentrycontroller.cpp (registerCommands): Add SETOK and SETCANCEL.
205         (assuanOk): New method.
206         (assuanCancel): Likewise.
207
208 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
209
210         * curses/pinentry-curses.c (dialog_create): Grok the new ok and
211         cancel members to set the pbutton texts, rather than parsing the
212         prompt in the confirm case.
213
214         * pinentry/pinentry.h (struct pinentry): Add new members ok and cancel.
215         * pinentry/pinentry.c (register_commands): Add new commands SETOK
216         and SETCANCEL to set button texts.
217         (struct pinentry pinentry): Add initializers for new members.
218         (cmd_setok): New function.
219         (cmd_setcancel): Likewise.
220
221 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
222
223         * curses/pinentry-curses.c (dialog_create): Add '<' and '>' around
224         the user provided button texts.  Replace sizeof by strlen to fix
225         size calculation of ok and cancel button.
226
227 2002-04-23  Marcus Brinkmann  <marcus@g10code.de>
228
229         * pinentry/pinentry.h (struct pinentry): New variables lc_ctype
230         and lc_messages.
231         * pinentry/pinentry.c (usage): New options --lc-ctype and
232         --lc-messages.
233         (pinentry_parse_opts): Likewise.
234         (option_handler): Likewise.
235         (struct pinentry pinentry): New initializers for new members.
236
237         * curses/pinentry-curses.c (convert_utf8_string): New function.
238         (struct dialog): New members ok and cancel.
239         (dialog_create): New variables ERR, DESCRIPTION, ERROR, PROMPT,
240         OK, and CANCEL.  Initialize them with the localised versions of
241         the pinentry strings.  If in confirm mode, split up the prompt at
242         '|' and use the values as button texts.  Use localised strings.
243         (dialog_switch_pos): Use localised strings.
244         (dialog_run): Free dialog strings.
245
246         * acinclude.m4 (AM_ICONV): New check from gettext.
247         * configure.ac: Run AM_ICONV if curses pinentry is build.
248         Don't check for inttypes.h, don't check size of unsigned int or
249         unsigned long.
250         (LIBCAP): Move check to interface independent part.
251
252 2002-04-21  Steffen Hansen  <steffen@hrhansen.dk>
253
254         * Removed X11 dependency and use Qt for grabbing the keyboard.
255         * Clear the lineedit before asking the user for the PIN.
256
257 2002-04-12  Steffen Hansen  <steffen@hrhansen.dk>
258
259         * Enable pinentry-qt if Qt is found
260
261 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
262
263         * qt: New directory.
264         * qt/Makefile.am, qt/cppmemory.cpp, qt/main.cpp,
265         pinentrycontroller.cpp, qt/pinentrycontroller.h,
266         qt/pinentrydialog.cpp, qt/pinentrydialog.h: New file, copied from
267         kde/.
268         * kde: Directory removed.
269         * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp,
270         kde/pinentry.desktop, kde/pinentrycontroller.cpp,
271         kde/pinentrycontroller.h, kde/pinentrydialog.cpp,
272         kde/pinentrydialog.h: Files removed.
273         * acinclude.m4: Removed the KE checks and completely overhauled
274         the Qt checks, putting all Qt checks in their own namespace QT_,
275         and make it declare QT_-prefixed variables for linking and
276         compilation.
277         * configure.ac: Use the new Qt checks instead the KDE checks.
278         Replace "kde" with "qt" everywhere.
279         * Makefile.am: Replace "kde" with "qt" everywhere.
280         
281 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
282
283         * acinclude.m4: Reworked the Qt and KDE checks, cutting out a lot
284         of dead and not-so-dead wood.  Gave all KDE checks proper names.
285         * configure.ac: Use the new names for the KDE checks.
286
287 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
288
289         * kde/Makefile.am (EXTRA_DIST): Remove variable.
290         (install-data-local): Remove target.
291         (uninstall-local): Likewise.
292
293 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
294
295         Released 0.6.0.
296         
297         * configure.ac: Set version number to 0.6.
298         * NEWS: Add information for 0.6.0.
299         * secmem/Makefile.am (libsecmem_a_SOURCES): Replace secmem.h with memory.
300         * kde/Makefile.am (pinentry_kde_SOURCES): Move
301         pinentrydialog.moc.cpp and pinentrycontroller.moc.cpp to ...
302         (nodist_pinentry_kde_SOURCES): ... this new target.
303
304 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
305
306         * acinclude.m4: A lot of new checks more or less straight from KDE's
307         admin/acinclude.m4.in.
308         * configure.ac (AC_CANONICAL_HOST): Call that macro.
309         (AC_CHECK_COMPILERS, AC_PATH_KDE): Call those macros if KDE
310         pinentry is enabled.
311         * kde/Makefile.am (CXXFLAGS, XXX_PREFIX, XXX_KDE_DEFINES, LIB_QT,
312         LIB_KDECORE, LIB_KDEUI, KDE_RPATH, MOC, kde_appsdir): Variables removed.
313         (AM_CPPFLAGS): Replace XXX_KDE_DEFINES by all_includes.
314         (pinentry_kde_LDFLAGS): Add all_libraries.
315         * README: Document that automatic check is not possible for KDE.
316
317 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
318
319         * curses/pinentry-curses.c (dialog_run): Add handling for TAB key.
320         (dialog_create): New variable description_x.  Calculate dimension
321         of multi-line description correctly.
322
323 2002-04-04  Marcus Brinkmann  <marcus@g10code.de>
324
325         * pinentry/pinentry.h (struct pinentry): New members DISPLAY,
326         TTYNAME and TTYTYPE.
327         * pinentry/pinentry.c (pinentry): Likewise.
328         * pinentry/pinentry.c: Include <string.h>.
329         (usage): Add new options --display,
330         --ttyname and --ttytype.
331         (option_handler): Likewise.
332         (pinentry_parse_opts): Likewise.
333
334         * curses/pinentry-curses.c (dialog_cmd_handler): Use
335         PINENTRY->ttyname and PINENTRY->ttytype.
336
337 2002-03-30  Marcus Brinkmann  <marcus@g10code.de>
338
339         * acinclude.m4: Add AM_PATH_GLIB and AM_PATH_GTK.
340
341 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
342
343         * configure.ac: Choose a more appropriate AC_CONFIG_SRCDIR.
344
345 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
346
347         * kde/Makefile.am (pinentry_kde_LDADD): Link with $(LIBCAP).
348         * gtk/Makefile.am (install-exec-local): Moved to ...
349         * Makefile.am (install-exec-local): ... here.
350
351 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
352
353         * kde/Makefile.am (kde_appsdir): New variable.
354         * kde/Makefile.am (install-data-local): Use DESTDIR.
355         (uninstall-local): Likewise.
356
357 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
358
359         Merge of the gpinentry and curses pinentry program into the
360         pinentry distribution.  For this, the structure of the repository
361         has been thoroughly overhauled.  Some of the changes:
362         * secmem: New directory with secure memory allocation code.
363         * pinentry: New directory with pinentry support library.
364         * curses: New directory with curses frontend.
365         * gtk: New directory with GTK+ frontend.
366         * kde: New directory with only the core of the old kpinentry program.
367         * admin: Directory removed.
368         * po: Directory removed.
369         * kpinentry: Directory removed.
370         * doc: Directory removed.
371         * jnlib: Directory removed.x
372
373         The changes in more detail:
374         * AUTHORS: Add authors of other pinentry frontends.
375         * ChangeLog: Add the one from gpinentry.
376         * Makefile.am: Completely rewritten.
377         * README: Add content.
378         * TODO: Add content.
379         * NEWS: New file from gpinentry.
380         * THANKS: New file from gpinentry.
381         * acinclude.m4: New file.
382         * configure.ac: New file which configures for all frontends.
383         * curses/Makefile.am, curses/pinentry-curses.c: New files for
384         curses frontend.
385         * gtk/Makefile.am, gtk/gtksecentry.c, gtk/gtksecentry.h,
386         gtk/pinentry-gtk.c: New files, modified from gpinentry, for GTK+
387         frontend.
388         * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp,
389         kde/pinentry.desktop, kde/pinentrycontroller.cpp,
390         kde/pinentrycontroller.h, kde/pinentrydialog.cpp,
391         kde/pinentrydialog.h: New files, modified from kpinentry, for KDE
392         frontend.
393         * pinentry/Makefile.am, pinentry/pinentry.c, pinentry/pinentry.h:
394         New files containing pinentry support library, partly factored out
395         from gpinentry.
396         * secmem/Makefile.am, secmem/memory.h, secmem/secmem-util.h,
397         secmem/secmem.c, secmem/util.c, secmem/util.h: New files
398         containing secure memory allocation code common to all pinentry
399         frontends.
400         * Makefile.dist, acconfig.h, configure.files, configure.in.in:
401         Files removed in favor of new configure.ac.
402         * pinentry.lsm: Removed file never used.
403         * stamp-h.in: Removed generated file.
404         * admin/ChangeLog, admin/Makefile.common, admin/acinclude.m4.in,
405         admin/am_edit, admin/am_edit.py, admin/conf.change.pl,
406         admin/config.guess, admin/config.pl, admin/config.sub,
407         admin/configure.in.min, admin/debianrules, admin/depcomp,
408         admin/install-sh, admin/libtool.m4.in, admin/ltcf-c.sh,
409         admin/ltcf-cxx.sh, admin/ltcf-gcj.sh, admin/ltconfig,
410         admin/ltmain.sh, admin/missing, admin/mkinstalldirs, admin/ylwrap:
411         Removed KDE build suite in favor of configure.ac.
412         * doc/Makefile.am, doc/en/Makefile.am, doc/en/index.docbook:
413         Removed files never used.
414         * jnlib/ChangeLog, jnlib/Makefile.am, jnlib/argparse.c,
415         jnlib/argparse.h jnlib/dotlock.c, jnlib/dotlock.h,
416         jnlib/libjnlib-config.h, jnlib/logging.c, jnlib/logging.h,
417         jnlib/mischelp.h, jnlib/stringhelp.c, jnlib/stringhelp.h,
418         jnlib/strlist.c, jnlib/strlist.h, jnlib/types.h, jnlib/xmalloc.c,
419         jnlib/xmalloc.h: Removed files no longer used.
420         * kpinentry/Makefile.am, kpinentry/cppmemory.cpp,
421         kpinentry/cppmemory.h, kpinentry/i18n.h, kpinentry/main.cpp,
422         kpinentry/memory.h, kpinentry/pinentry.desktop,
423         kpinentry/pinentrycontroller.cpp, kpinentry/pinentrycontroller.h,
424         kpinentry/pinentrydialog.cpp, kpinentry/pinentrydialog.h,
425         kpinentry/secmem.cpp, kpinentry/util.cpp, kpinentry/util.h:
426         Removed files in favor of new files in kde/.
427         * po/Makefile.am, po/pinentry.pot: Removed files never used.
428
429         * autogen.sh: New file.
430
431 2002-03-04  Werner Koch  <wk@gnupg.org>
432
433         * gpinentry.c (enter_callback): New
434         (create_window): Connect it to the entry field.
435
436 2002-02-18  Werner Koch  <wk@gnupg.org>
437
438         Released 0.5.1.
439
440         * gpinentry.c (create_window): Add CONFIRM_MODE.
441         (cmd_confirm): Implemented.
442
443         * assuan/:  Updated from NewPG.
444
445 2002-01-20  Werner Koch  <wk@gnupg.org>
446
447         * gpinentry.c (option_handler): New to allow changing of the grab
448         status.
449         (grab_keyboard): Shortcut this when global grab is not set.
450
451 2002-01-04  Werner Koch  <wk@gnupg.org>
452
453         Released 0.5.0.
454         
455         * configure.ac: Bumbed version
456
457         * util.h (xtoi_1, xtoi_2): New.
458         * gpinentry.c (strcpy_escaped): New
459         (cmd_setdesc, cmd_seterror): Use it here to allo multiline texts.
460
461         * gpinentry: Removed debugging outbut
462         (create_window): Tweaked layout.
463
464 2001-12-07  Werner Koch  <wk@gnupg.org>
465
466         New package gpinentry based on quintuple-agent.
467         
468         Removed all stuff except for the basic configuration stuff and
469         what is needed to build gpinentry.  Also removed i18n support.
470         * gpinentry.c: Renamed from secret-query.c
471
472 2001-02-12  Robert Bihlmeyer  <robbe@orcus.priv.at>
473
474         * 1.0.0 released. Woo-hoo!
475
476         * configure.in, NEWS: Bumped version.
477
478 2001-02-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
479
480         * agent.c (make_tmpdir): Honor $TMPDIR.
481
482         (agent): Would exit on every minor problem. Now, we just close the
483         offending connection.
484         Ignore SIGPIPE, so that EPIPE will close connection.
485
486 2001-01-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
487
488         * secmem.c: Move one include statement so that the thing compiles.
489
490         * secret-query.c (main): Minor source cosmetics.
491
492 2000-11-16  Robert Bihlmeyer  <robbe@orcus.priv.at>
493
494         * gtksecentry.c (gtk_secure_entry_insert_text): Secured a couple
495         of memory (de)allocations that were missed. Thanks to John Steele
496         <jhs28@eng.cam.ac.uk> for spotting these.
497
498 2000-11-10  Robert Bihlmeyer  <robbe@orcus.priv.at>
499
500         * Thoughts: Removed in favor of new TODO.
501
502         * README: Remove content and refer to doc/manual.info instead.
503
504         * agent.c (do_get): Would burn badly on a premature exit of the
505         query program (which would occur routinely if you selected /cancel/).
506
507 2000-10-25  Robert Bihlmeyer  <robbe@orcus.priv.at>
508
509         * memory.h: Include sys/types.h for size_t.
510
511 2000-10-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
512
513         * README: Removed apology about missing documentation.
514         Updated paragraph about Linux capability patch.
515         Typo & Refill.
516
517 2000-10-03  Robert Bihlmeyer  <robbe@orcus.priv.at>
518
519         * 0.9 released.
520
521         * Makefile.am (EXTRA_DIST): Distribute BUGS (the file, that is).
522
523         * configure.in, NEWS: Bumped version.
524
525         * Makefile.am, configure.in: Add debian subdir.
526
527         * README: Recommend GTK+.
528         Update list of checked platforms.
529
530 2000-10-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
531
532         * secret-query.c (ok): Simplify.
533         Put empty line between headers and secret.
534         (usage): Document '--help' and '--version'.
535
536         * agent.c (do_get): Use enhanced secret-query output to fill in
537         options.
538
539 2000-10-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
540
541         * secret-query.c (main): Clarify error.
542
543         * client.c (query_options): New global variable.
544         (main): New option '--query-options' to pass options to the query
545         program.
546         (xgetpass): Use it.
547
548         * agent.c (main): New option '--query-options' to pass options to
549         the query program.
550         (do_get): Use 'query_options'.
551
552         * acconfig.h, configure.in: Add QUERY_PROGRAM definition.
553         * client.c: Remove here.
554         * agent.c (do_get): Use it here, too.
555
556         * secret-query.c (main): New option '--no-global-grab' introduced,
557         that prevents keyboard grabbing unless the window has focus.
558
559 2000-09-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
560
561         * secret-query.c (usage): Add two missing pieces of "\n\".
562
563         * agent.c (main): --nofork is now the default, and the option is
564         deprecated. New option --fork added to turn forking on again.
565         Close stdout (and stderr unless debugging) even when not forking,
566         so that normal usage inside eval is still possible.
567         (agent): Exit gracefully on HUP, so that logging out now kills the
568         agent. 
569
570         * README (Contact Information): Old URL - duh!
571         (Using Secret Agent): We no longer fork per default.
572
573         * Makefile.am (lib/libutil.a): New target, allows targets that not
574         automatically recurse (but still depend on libutil.a) to succeed.
575
576 2000-07-20  Robert Bihlmeyer  <robbe@orcus.priv.at>
577
578         * secret-query.c (usage): New function.
579         (main): Parse options: debug, enhanced, help, version.
580         Turn on locale support.
581         If enhanced, insert widgets to ask for timeout and insurance.
582         (ok): If enhanced, print more information on exit.
583         (grab_keyboard): Die if grab was unsuccessful.
584
585 2000-05-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
586
587         * 0.8 released.
588
589         * configure.in, NEWS: Bumped version.
590
591         * Makefile.am (SUBDIRS): Include doc.
592
593         * configure.in, acconfig.h: Check for ssize_t.
594         Check for vsnprintf(), strdup().
595         Generate doc/Makefile.
596
597         * apgp.c, agpg.c, agentlib.c, util.c: Include more stuff.
598
599         * agent.c (do_get): Use asprintf() instead of snprintf() so we
600         don't need to roll our own for yet another function.
601         Fix some includes.
602
603         * acinclude.m4: gettext macros copied from automake and fixed.
604
605 2000-05-30  Robert Bihlmeyer  <robbe@orcus.priv.at>
606
607         * configure.in, Makefile.am: Properly include doc subdir.
608
609 2000-05-29  Robert Bihlmeyer  <robbe@orcus.priv.at>
610
611         * configure.in, acconfig.h: Add test for XMESSAGE path.
612
613         * client.c (main): Decode command from string to integer code
614         first, then evaluate that in ifs.
615
616         * secret-ask.c: New file, external ask-for-confirmation utility.
617
618         * configure.in, Makefile.am: Add secret-ask to programs being
619         built when GTK is available. Rename QUERY to more descriptive
620         GTK_PROGRAMS.
621
622         * agent.c (do_get): If GTK is available, try executing secret-ask
623         first.
624         Only put the comment into the insure-question if there is a
625         comment.
626         (main): --csh was missing from usage message.
627
628 2000-04-23  Robert Bihlmeyer  <robbe@orcus.priv.at>
629
630         * secret-query.c (constrain_size): Lower window max_width to
631         accomodate bugs in GTK and Scwm.
632
633         * agent.c (main): Set x_enabled if X appears to be available.
634         Use it to selectively make FLAGS_INSURE supported.
635         (do_get): Use it instead of testing at every call.
636         (do_put): Requests containing unsupported flags fail.
637         (forget_old_stuff): Would not set next_deadline correctly.
638         (do_get): Implement FLAGS_INSURE.
639
640         * client.c (main): "list" format changed so that comment is to the
641         far right. Display the deadline as proper date/time, too.
642
643 1999-11-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
644
645         * agent.c (next_deadline): New global variable, holds time when
646         next secret has to be killed.
647         (store): Keep it up-to-date.
648         (forget_old_stuff): New function, reaps secrets ready to kill,
649         keeps next_deadline updated.
650         (agent): Use it on all secrets, whenever a deadline is active.
651
652 1999-11-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
653
654         * agent.h (request_put): Add flags, deadline. Increase REQUEST_MAGIC. 
655         (reply_get): Ditto, and increase REPLY_MAGIC.
656         * agent.c (store): Store flags, deadline in reply.
657         (do_put): Hand flags, deadline from request on to store().
658         (do_get): Store on-demand queried secrets without deadline or
659         special flags, for now.
660         (agent): Do not ignore obsolete clients, return an error reply.
661         * agentlib.c (agent_put): Add flags, deadline arguments, and copy
662         them into the request.
663         * agentlib.h (agent_put): Update prototype.
664 *       * client.c (main): Added --time-to-live (-t) and --insure (-i)
665         options, influencing PUT's deadline and flags, respectively.
666         (main): Change list format to include new attributes.
667
668 1999-11-05  Robert Bihlmeyer  <robbe@orcus.priv.at>
669
670         * configure.in: <getopt.h> check had redundant definition.
671         * acconfig.h: Remove here, too.
672
673         * configure.in: Check for <inttypes.h>. If not found, check for
674         unsigned {int, long} sizes.
675         * agent.h: Either include <inttypes.h>, or try to define uint32_t
676         yourself.
677         Need to include "config.h".
678
679 1999-11-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
680
681         * Makefile.am (signed-dist): New rule, generates sig for dist.
682         (%.sig): New rule, for detached signatures in general.
683
684         * configure.in: Check for ulong.
685         * acconfig.h: Document it.
686         * secmem.c: Unconditionally defining it is no longer necessary
687         here. But do include <sys/types.h> in all cases.
688
689         * 0.7 released.
690
691         * secmem.c: ulong is not defined on all systems.
692
693         * agent.h: <inttypes.h> should define `uint32_t' as per Unix98, so
694         we use that.
695
696 1999-11-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
697
698         * agent.h: Augmented requests and replies with magic numbers.
699         Data structures heavily commented.
700         All structures and enums typedef'd.
701         * agent.c: Adapted.
702         (store): Set magic number in stored reply.
703         (do_put): Set magic number in reply.
704         (do_delete): Ditto.
705         (do_list): Ditto. 
706         (agent): Check magic number in request.
707         * agentlib.c: Adapted.
708         (send_request): Set magic number in request. Check it in reply.
709         * agentlib.h: Adapted.
710         * agpg.c: Adapted.
711         * apgp.c: Adapted.
712         * client.c: Adapted.
713
714 1999-10-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
715
716         * secmem.c: Instead of defining ulong directly, include
717         <sys/types.h>
718
719         * secret-query.c (constrain_size): New function, puts constrains
720         on size of toplevel window.
721         (grab_keyboard): Removed protection against multiple calls.
722         (ungrab_keyboard): New function, cancelling a keyboard grab.
723         (main): Hang `grab_keyboard' onto map-event which makes it
724         actually work, hang `ungrab_keyboard' onto unmap-event.
725         Hang `constrain_size' onto size-request.
726
727         * secmem.c: ulong was undefined on some systems.
728
729 1999-10-19  Robert Bihlmeyer  <robbe@orcus.priv.at>
730
731         * Makefile.am (install-exec-local): Ignore setcap errors.
732
733         * apgp.c: New program, based on agpg.c, but for pgp2.6.
734         * Makefile.am (bin_PROGRAMS, apgp_SOURCES): Added it.
735
736         * agpg.c (GPG): New constant.
737         (find_id, main): Use it throughout.
738         (find_id): Forgot to pclose on success.
739
740         * secret-query.c (main): Don't expand anything.
741         Use a button box for the buttons.
742         Prompt label can be overridden from the commandline.
743         * agent.c (do_get): Make spawned secret-query show the id.
744         * client.c (xgetpass): Pass prompt to secret-query.
745         (main): Include id in xgetpass prompt.
746
747 1999-10-14  Robert Bihlmeyer  <robbe@orcus.priv.at>
748
749         * configure.in: setcap must be searched outside the usual user
750         PATH, too.
751         * Makefile.am (install-exec-local): Set cap_ipc_lock permitted on
752         installed binaries, if possible.
753
754         * agent.c (xdup2): New function, dup2 with error handling.
755         (move_fd): New function, moves fds.
756         (store): New function, abstracted out from do_put.
757         (do_put): Use it.
758         (do_get): If secret was not found, and DISPLAY is set, try to
759         query the user about it. If successful, store it.
760         (main): Route standard file descriptors to /dev/null rather than
761         just closing them. The latter would confuse children.
762
763 1999-10-13  Robert Bihlmeyer  <robbe@orcus.priv.at>
764
765         * gtksecentry.c, gtksecentry.h: New files, being slightly modified
766         versions of GTK+'s gtkentry.[ch], spiffed up to use secure memory.
767         * secret-query.c (ok, unselect, main): Replace GtkEntry with
768         GtkSecureEntry.
769         (main): Initialize secure memory.
770         * Makefile.am (secret_query_SOURCES): Added gtksecentry.[ch].
771
772         * README (Security): New chapter.
773
774         * configure.in, acconfig.h: Check for POSIX capabilities, and the
775         setcap program.
776         * Makefile.am: Link LIBCAP to those binaries using secmem.c.
777
778         * util.h: Include <sys/types.h> for size_t.
779
780 1999-09-21  Robert Bihlmeyer  <robbe@orcus.priv.at>
781
782         * secmem.c: Synced with gnupg-1.0 (top new feature: capabilities).
783         (log_fatal): New function, logs to stderr, and dies.
784
785 1999-09-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
786
787         * secmem.c (log_info): New function, logs to stderr.
788
789         * agent.c (agent): select() expects the number of fds, not the
790         highest fd. So remember that number.
791
792         * agent.c (agent): Don't use FD_SETSIZE, which is not defined on
793         all systems. Remember the number of the highest descriptor
794         instead.
795
796         * configure.in: Replace getline() instead of getdelim() because
797         this is the function we really need. Still check for getdelim(),
798         though - there are systems out there where this is provided, but
799         getline() is not.
800
801 1999-09-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
802
803         * 0.6 released.
804
805         * configure.in: Bump version.
806
807         * NEWS: Updated.
808
809 1999-08-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
810
811         * util.c (init_uids, lower_privs, raise_privs, drop_privs): New
812         functions, for setuid binaries, extracted from agent.c.
813         * util.h: Add prototypes for them.
814         * agpg.c (main): Use them.
815         * client.c (main): Ditto.
816         * agent.c (main): Ditto. Removed code that did the same.
817         Unconditionally include "asprintf.h" (it protects itself now).
818
819 1999-08-25  Robert Bihlmeyer  <robbe@orcus.priv.at>
820
821         * Makefile.am (SUBDIRS): Process . before test so that "make
822         check" always builds all in . first.
823
824 1999-08-21  Robert Bihlmeyer  <robbe@orcus.priv.at>
825
826         * secret-query.c: Include "config.h".
827
828         * agent.h (reply_list_entry, reply_list): New reply structures.
829         * agent.c (send_list_entry): New function.
830         (do_list): First send number of entries, then each entry via
831         send_list_entry().
832         * agentlib.c (agent_list): Read entries returned by LIST request.
833         * client.c (main): Output all entries returned by agent_list().
834
835         * agentlib.c (agent_put): Don't construct PUT request in insecure
836         stack space.
837
838 1999-08-20  Robert Bihlmeyer  <robbe@orcus.priv.at>
839
840         * NEWS: Bump patchlevel.
841
842         * configure.in: Bump patchlevel.
843         Check for missing setenv().
844
845 1999-08-09  Robert Bihlmeyer  <robbe@orcus.priv.at>
846
847         * configure.in: Check for strsignal().
848
849         * client-test: Obsoleted by test/client.
850
851         * Makefile.am (SUBDIRS): New subdirectory.
852         * configure.in (AC_OUTPUT): Add here, too.
853
854         * 0.5 released.
855
856         * README: Explain why secret-client will not output secrets to a
857         tty, and mention the cat-trick.
858
859         * agent.c (main): If seteuid is not available, don't use it and
860         issue a warning if running setuid.
861
862         * configure.in: Run together two REPLACE_FUNCS.
863         Check for seteuid.
864
865         * client-test: Mask out insecure memory warnings.
866
867         * agentlib.c (send_request): Let the calling functions reserve
868         space for the reply, but offer a simple way for simple requests.
869         (agent_get): Allocate secure memory.
870
871         * agent.c (main): Moved secmem_init() after the fork, since that
872         seemingly munlock's all pages.
873         Drop priviledges just in case somebody wants to install this
874         suid-root.
875         Flush stdout.
876
877         * agpg.c (find_id): Would reorder arguments.
878         Initialize opt_version.
879         (main): Initialize secure memory.
880
881         * Makefile.am (agpg_SOURCES): Link with secure memory module.
882
883         * client.c (usage): Fixed another program name reference.
884
885 1999-08-06  Robert Bihlmeyer  <robbe@orcus.priv.at>
886
887         * configure.in: Conditionally define HAVE_GTK.
888         * acconfig.h: Add here too.
889
890         * client.c (xgetpass): Use "secret-query" only if it was built.
891         (main): Don't output secret (GET command) to ttys.
892
893         * agpg.c (find_id): Also print own version if "--version" is given.
894         (main): Check agent_init() errors.
895         Print error if exec fails.
896
897         * agent.c (main): Added an option to produce csh-compatible
898         output.
899
900         * agent.c, client.c: Forgot the terminating NULL in long options.
901         Fixed the program names in usage and version output.
902
903         * agent.c (create_socket): AF_UNIX and PF_UNIX are Unix98, so
904         that's what we use. AF_LOCAL, PF_LOCAL removed.
905         * agentlib.c (agent_init): Ditto.
906
907 1999-08-05  Robert Bihlmeyer  <robbe@orcus.priv.at>
908
909         * 0.4 released.
910
911         * configure.in: Bumped version.
912         Check for missing getdelim.
913
914         * cgpg: Removed, obsoleted by agpg.
915         * Makefile.am: Here, too.
916
917         * agpg.c (find_id): New function.
918         (main): Use it.
919
920         * Makefile.am (INCLUDES): Put GTK_FLAGS and GLIB_FLAGS here. It
921         is the easiest way for sources needing it, and it won't hurt those 
922         that don't.
923         (agent.o): Explicit command removed accordingly.
924
925 1999-08-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
926
927         * configure.in: Need double quoting in nested AC_MSG_WARN.
928
929         * client.c (xgetpass): If no tty is available, but a DISPLAY is,
930         fork off "secure-query" to read the secret.
931         Put the fgets into a loop that keeps reading until all of the
932         secret is read.
933
934         * client-test: Unset DISPLAY, so that "secret-query" is never used.
935
936 1999-08-03  Robert Bihlmeyer  <robbe@orcus.priv.at>
937
938         * agpg.c: New file, first cut at a C version of the gpg wrapper,
939         written in a hurry (20 keys waiting to be signed, and a growling
940         stomach).
941         * Makefile.am: Add it to built programs.
942         (LDADD): New default.
943         (secret_client_LDADD): Removed, since it was identical to default.
944
945 1999-08-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
946
947         * secret-query.c: New program, queries the user for a password.
948         * Makefile.am (bin_PROGRAMS): Added it.
949         * configure.in: Check for GTK+, build "secret-query" only when
950         that is available.
951
952         * cgpg: Extra argument for ID is no longer necessary. cgpg will
953         scan the gpg args for switches that affect user-id, and determine
954         the right key itself. Per convention, the key-id is used by "GET".
955
956         * configure.in: The project name is now "secret-agent".
957
958         * Makefile.am: "agent" & "client" renamed to "secret-agent" &
959         "secret-client", respectively.
960         * client-test: Adapt to new names.
961
962         * Thoughts: Removed discussion of other names.
963         Added indication of which things already work.
964
965         * agent.c (make_tmpdir): Removed occurance of "gpg-agent."
966
967         * README: First proper version.
968
969         * client-test: Context diffs are more portable then unified diffs.
970
971         * agent.c, agent.h, agentlib.c, agentlib.h, client.c, memory.h,
972         util.c, util.h: Banner updated to new name.
973
974 1999-07-29  Robert Bihlmeyer  <robbe@orcus.priv.at>
975
976         * configure.in: Check for missing asprintf.
977         Check if -lsocket is needed.
978
979         * secmem.c (secmem_dump_stats): Replace usage of ulong.
980
981         * Makefile.am (INCLUDES): Add the lib subdirectory to include search.
982
983         * agent.c: Forgot to include <string.h>.
984         Include RYO asprintf header if this function is missing.
985         For the sake of compatibility, provide a definition for AF_LOCAL,
986         PF_LOCAL, if missing.
987         * agentlib.c: Ditto.
988
989 1999-07-28  Robert Bihlmeyer  <robbe@orcus.priv.at>
990
991         * Makefile.am (client_SOURCES): Add "secmem.c", "memory.h".
992
993         * client.c (xgetpass): Use secmem_malloc() instead of RYO.
994         (main): Init and shutdown secmem.
995
996 1999-07-27  Robert Bihlmeyer  <robbe@orcus.priv.at>
997
998         * Makefile.am (agent_SOURCES): Add "secmem.c", "i18n.h", "memory.h".
999         (client_SOURCES): Add "i18n.h".
1000
1001         * client.c (main): Exit on agent_init() failure.
1002
1003         * agent.c (main): Init secmem.
1004         Make --debug switch cumulative.
1005         (cleanup): Shutdown secmem.
1006         (do_put): Use secmem for storage of secrets.
1007         (do_delete): Use secmem_free(). Since this wipes the memory on its 
1008         own, wipe() is superflous now.
1009         (agent): Use secmem for inbound requests.
1010         (delete_secret): New function, takes part of do_delete's
1011         functionality.
1012         (do_put): Use it to remove old versions stored under the same id.
1013         (do_delete): Use it to delete secrets.
1014
1015         * memory.h: New file.
1016
1017         * secmem.c: New file, snarfed from GnuPG and modified slightly.
1018
1019         * acinclude.m4: New file.
1020         * configure.in: (ALL_LINGUAS): Expanded list of available
1021         languages. Most of them only have a few translations from gpg,
1022         tough ...
1023         getopt_long test was commented out for debugging,
1024         and left such. Fixed.
1025         Check for mlock.
1026         * acconfig.h: Comment HAVE_BROKEN_MLOCK.
1027
1028         * cgpg: A space was missing.
1029
1030         * i18n.h: New file, centralizing the gettext macro defs.
1031
1032         * agent.c (BLIND): New macro, that blinds out a secret if debug
1033         level is too low.
1034         (do_put): Use it.
1035         (do_get): Use it.
1036         Include i18n.h.
1037
1038         * agentlib.c: Include i18n.h
1039         
1040         * client.c (usage): New function.
1041         Usage-message made gettext-friendly.
1042         (xgetpass): Use perror() instead of fprintf().
1043         (main): Use it.
1044         Make comment an optional argument of PUT.
1045         Include i18n.h.
1046
1047 1999-07-26  Robert Bihlmeyer  <robbe@orcus.priv.at>
1048
1049         * Makefile.am (client_LDADD): Add lib/libutil.a for portability.
1050         (agent_LDADD): Ditto.
1051         (SUBDIRS): Add lib directory.
1052         (bin_SCRIPTS): New with cgpg, so it gets installed, too.
1053
1054         * configure.in: Add lib/Makefile to output.
1055
1056 1999-07-24  Robert Bihlmeyer  <robbe@orcus.priv.at>
1057
1058         * cgpg: New file.
1059         * Makefile.am (EXTRA_DIST): Added it.
1060
1061         * agent.c: Moved inclusion of config.h before inclusion of
1062         libintl.h since the latter needs HAVE_LC_MESSAGE.
1063         * client.c: Ditto.
1064         * clientlib.c: Ditto.
1065
1066         * client-test: Update for new client semantics.
1067
1068         * client.c (check_status): Use debugmsg(). Do nothing if not
1069         debugging.
1070         (xgetpass): New function, getpass replacement that uses mlock'ed
1071         memory.
1072         (main): PUT now asks for the secret rather then getting it from
1073         the commandline.
1074         GET prints only the secret to stdout.
1075
1076         * configure.in: Rearranged.
1077         Check for socklen_t.
1078         * acconfig.h: Added a definition for it.
1079
1080         * client.c: Include packaged getopt.h if the system doesn't provide 
1081         one. 
1082         * agent.c: Ditto.
1083         (create_socket): Replace AF_FILE, PF_FILE with AF_LOCAL, PF_LOCAL
1084         for portability.
1085         * agentlib.c (agent_init): Ditto.
1086         Explicitly cast addr to a sockaddr pointer.
1087
1088         * Makefile.am (client_LDADD): Added @INTLLIBS@.
1089         (agent_LDADD): Ditto.
1090
1091 1999-07-19  Robert Bihlmeyer  <robbe@orcus.priv.at>
1092
1093         * configure.in: Check for getopt.h and getopt_long.
1094         * acconfig.h (HAVE_GETOPT_H): New define.
1095         * lib/getopt.c, lib/getopt1.c, lib/getopt.h: Added.
1096
1097 1999-07-18  Robert Bihlmeyer  <robbe@orcus.priv.at>
1098
1099         * 0.2 released.
1100
1101         * NEWS: Updated.
1102
1103         * Makefile.am (agent.o): Mentioning the source explicitly does not 
1104         work for srcdir!=builddir.
1105
1106         * client.c (main): Function arguments are not always evaluated in
1107         order, so drop the neat ++optind in favor of optind+1, optind+2,
1108         etc.
1109
1110         * configure.in: Upped version.
1111
1112 1999-06-28  Robert Bihlmeyer  <robbe@orcus.priv.at>
1113
1114         * util.h: Added multi-inclusion guard.
1115
1116         * agent.c Include "util.h".
1117         (main): Forgot to exit at end.
1118         (do_delete): Assume that value is a string and wipe it accordingly.
1119
1120         * configure.in (--enable-debug): New switch.
1121
1122         * agent.h (status_t): Added STATUS_COMM_ERR code.
1123         Added multi-inclusion guard.
1124
1125         * client.c (main): Abstracted out most functionality into a
1126         function library, namely:
1127         * agentlib.c: New file.
1128         * agentlib.h: New file.
1129         * Makefile.am (client_SOURCES): Added agentlib.c, agentlib.h.
1130
1131         * Makefile.am (INCLUDES): GLIB_CFLAGS moved again, this time to
1132         the agent.o target. 
1133
1134 1999-06-15  Robert Bihlmeyer  <robbe@orcus.priv.at>
1135
1136         * 0.1 released.
1137
1138         * Makefile.am (agent_CFLAGS): Removed - did not work.
1139         (INCLUDES): Moved the GLIB stuff here.
1140
1141 1999-06-14  Robert Bihlmeyer  <robbe@orcus.priv.at>
1142
1143         * configure.in (ALL_LINGUAS): Added `de'.
1144
1145         * agent.c (do_get): Added more debugmsgs.
1146         (do_put): Wouldn't allocate enough for `value'.
1147         (main): New option "--nofork" prevents forking.
1148         Use macros for the std filedescriptor numbers.
1149         Only close stderr if not debugging.
1150         (main): Make Usage string gettext-friendly.
1151
1152         * client-test (cleanup): New function.
1153         Call it on shell exit.
1154         (client): New function.
1155         Use it instead of calling client binary directly.
1156         diff client output with expected one in GET testcases.
1157
1158 1999-06-13  Robert Bihlmeyer  <robbe@orcus.priv.at>
1159
1160         * agent.c (failed_reply): New constant.
1161         (do_list): Use it.
1162         (do_put): The hash key was overwritten - strdup it.
1163         Construct a GET reply and save that in the hash.
1164         (do_get): Just send the preconstructed reply if the id is present, 
1165         and failed_reply otherwise.
1166         (do_delete): Actually free the hashed stuff.
1167
1168         * client.c: Exit with error if agent returned STATUS_FAIL.
1169
1170         * Makefile.am (EXTRA_DIST): Added autogen.sh, Thoughts,
1171         client-test.
1172         (TESTS): Added client-test.
1173         (AUTOMAKE_OPTIONS): Added gnits. 
1174