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