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