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