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