2003-07-15  Werner Koch  <wk@gnupg.org>

	* simple-pwquery.c, simple-pwquery.h:  Moved to ../common.
	* Makefile.am (gpg_protect_tool_LDADD): Add simple-pwquery.o.
	Removed it from xx_SOURCES.

2003-07-04  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (handle_connections): Kludge to allow use of Pth 1
	and 2.

2003-06-30  Werner Koch  <wk@gnupg.org>

	* call-scd.c (learn_status_cb): Store the serialno in PARM.

2003-06-26  Werner Koch  <wk@gnupg.org>

	* call-scd.c (agent_card_serialno): Don't do a RESET anymore.

2003-06-25  Werner Koch  <wk@gnupg.org>

	* command.c (cmd_scd): New.
	* call-scd.c (agent_card_scd): New.
	* divert-scd.c (divert_generic_cmd): New

	* call-scd.c (agent_card_learn): New callback args SINFO.
	(learn_status_cb): Pass all other status lines to the sinfo
	callback.
	* learncard.c (release_sinfo, sinfo_cb): New.
	(agent_handle_learn): Pass the new cb to the learn function and
	pass the collected information back to the client's assuan
	connection.

	* gpg-agent.c (main): Moved pth_init before gcry_check_version.

2003-06-24  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (handle_connections): Adjusted for Pth 2.0

	Adjusted for changes in the libgcrypt API. Some more fixes for the
	libgpg-error stuff.  

2003-06-04  Werner Koch  <wk@gnupg.org>

	Renamed error codes from INVALID to INV and removed _ERROR suffixes.

2003-06-03  Werner Koch  <wk@gnupg.org>

	Changed all error codes in all files to the new libgpg-error scheme.

	* agent.h: Include gpg-error.h and errno.h
	* Makefile.am: Link with libgpg-error

	* query.c: assuan.h is now a system header.
	* genkey.c (agent_genkey): Fixed silly use of xmalloc by
	xtrymalloc.

2003-04-29  Werner Koch  <wk@gnupg.org>

	* command.c (register_commands): Adjusted for new Assuan semantics.

	* Makefile.am: Don't override LDFLAGS.

2002-12-04  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c: New variable config_filename.
	(parse_rereadable_options): New.
	(main): Use it here.  Add setting of default values, set
	config_filename.
	(reread_configuration): Filled with actual code.

2002-12-03  Werner Koch  <wk@gnupg.org>

	* protect-tool.c (read_key): Don't run make_canonical on a NULL
	buffer.

	* command.c (parse_hexstring): New.
	(cmd_sethash): Use it.
	(parse_keygrip): New.
	(cmd_havekey, cmd_sigkey): Use it.
	(cmd_passwd): New.
	* genkey.c (agent_protect_and_store): New.
	(store_key): Add arg FORCE.
	(agent_genkey): Pass false to this force of store_key.

2002-11-13  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (main): Switch all messages to utf-8.

	* simple-pwquery.c (agent_send_all_options): Use $GPG_TTY and
	stdin with ttyname.

	* cache.c (new_data): Uiih - /sizeof d/sizeof *d/.

2002-11-10  Werner Koch  <wk@gnupg.org>

	* command.c (option_handler): Fix keep_tty check.

2002-11-06  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (main): Make sure we have a default ttyname.
	* command.c (option_handler): Check opt.keep_tty here
	* query.c (start_pinentry): but not anymore here.

2002-11-05  Werner Koch  <wk@gnupg.org>

	* agent.h (opt,server_control_s): Move display and lc_ variables
	to the control struct so that they are per connection.
	* gpg-agent.c (agent_init_default_ctrl): New.
	(main): Assign those command line options to new default_* variables.
	Reset DISPLAY in server mode so that tehre is no implicit default.
	* command.c (start_command_handler): Initialize and deinitialize
	the control values.
	(option_handler): Work on the ctrl values and not on the opt.
	* query.c (start_pinentry): New argument CTRL to set the display
	connection specific.  Changed all callers to pass this value.
	(agent_askpin,agent_get_passphrase,agent_get_confirmation): Add
	CTRL arg and pass it ot start_pinentry.
	* command.c (cmd_get_passphrase): Pass CTRL argument.
	* trustlist.c (agent_marktrusted):  Add CTRL argument  
	* command.c (cmd_marktrusted): Pass CTRL argument
	* divert-scd.c (ask_for_card):  Add CTRL arg. 
	(divert_pksign,divert_pkdecrypt): Ditto.  Changed caller.
	(getpin_cb): Use OPAQUE to pass the CTRL variable.  Changed both 
	users.
	* findkey.c (unprotect): Add CTRL arg.
	(agent_key_from_file): Ditto.

	* query.c (unlock_pinentry): Disconnect the pinentry so that we
	start a new one for each request.  This is required to support
	clients with different environments (e.g. X magic cookies).

2002-09-05  Neal H. Walfield  <neal@cs.uml.edu>

	* gpg-agent.c (main) [USE_GNU_PTH]: No need to call
	assuan_set_io_func as assuan is smart.

2002-09-25  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (handle_signal): Flush cache on SIGHUP.
	* cache.c (agent_flush_cache): New.

	* gpg-agent.c, agent.h: Add --keep-display and --keep-tty.
	* query.c (start_pinentry): Implement them.  The option passing
	needs more thoughts.

2002-09-09  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (create_private_keys_directory)
	(create_directories): New.
	(main): Try to create a home directory.

2002-09-04  Neal H. Walfield  <neal@g10code.de>

	* gpg-agent.c (main): Use sigaction, not signal.

2002-09-03  Neal H. Walfield  <neal@g10code.de>

	* findkey.c: Include <fcntl.h>.
	(agent_write_private_key): Prefer POSIX compatibity, open and
	fdopen, over the simplicity of GNU extensions, fopen(file, "x").

2002-08-22  Werner Koch  <wk@gnupg.org>

	* query.c (agent_askpin): Provide the default desc text depending
	on the pininfo.  Do the basic PIN verification only when
	min_digits is set.

2002-08-21  Werner Koch  <wk@gnupg.org>

	* query.c (agent_askpin): Hack to show the right default prompt.
	(agent_get_passphrase): Ditto.

	* trans.c: Removed and replaced all usages with standard _()

	* divert-scd.c (getpin_cb): Pass a more descritive text to the
	pinentry.

	* Makefile.am: Renamed the binary protect-tool to gpg-protect-tool.
	* protect-tool.c: Removed the note about internal use only.

	* gpg-agent.c (main): New option --daemon so that the program is
	not accidently started in the background.

2002-08-16  Werner Koch  <wk@gnupg.org>

	* call-scd.c (learn_status_cb): Handle CERTINFO status.
	(agent_card_learn): Add args for certinfo cb.
	* learncard.c (release_certinfo,certinfo_cb): New.
	(send_cert_back): New. With factored out code from ..
	(agent_handle_learn): here.  Return certinfo stuff.

2002-07-26  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (main): New option --ignore-cache-for-signing.
	* command.c (option_handler): New server option
	use-cache-for-signing defaulting to true.
	(cmd_pksign): handle global and per session option.
	* findkey.c (agent_key_from_file, unprotect): New arg
	ignore_cache.  Changed all callers.
	* pksign.c (agent_pksign): Likewise.

2002-06-29  Werner Koch  <wk@gnupg.org>

	* query.c (start_pinentry): Use GNUPG_DERAULT_PINENTRY.
	* call-scd.c (start_scd): Use GNUPG_DEFAULT_SCDAEMON.

2002-06-28  Werner Koch  <wk@gnupg.org>

	* protect-tool.c (export_p12_file): New.
	(main): New command --p12-export.
	* minip12.c (create_final,p12_build,compute_tag_length): New.
	(store_tag_length): New.

2002-06-27  Werner Koch  <wk@gnupg.org>

	* minip12.c (crypt_block): Renamed from decrypt_block, add arg to
	allow encryption.

	* Makefile.am (pkglib_PROGRAMS): Put protect-tool there.

	* findkey.c (agent_write_private_key,agent_key_from_file)
	(agent_key_available): Use GNUPG_PRIVATE_KEYS_DIR constant.
	* gpg-agent.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.

	* protect-tool.c (store_private_key): New.
	(import_p12_file): Store the new file if requested.
	(main): New options --force and --store.

	* gpg-agent.c (main): Set a global flag when running detached.
	* query.c (start_pinentry): Pass the list of FD to keep in the
	child when not running detached.
	* call-scd.c (start_scd): Ditto.

2002-06-26  Werner Koch  <wk@gnupg.org>

	* command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted)
	(cmd_pksign, cmd_pkdecrypt, cmd_genkey, cmd_get_passphrase)
	(cmd_learn): Print an error message for a failed operation.

	* simple-pwquery.c, simple-pwquery.h: New.
	* protect-tool. (get_passphrase): New, used to get a passphrase
	from the agent if none was given on the command line.

2002-06-25  Werner Koch  <wk@gnupg.org>

	* protect-tool.c (rsa_key_check): New.
	(import_p12_file): New.
	(main): New command --p12-import.
	* minip12.c, minip12.h: New.

2002-06-24  Werner Koch  <wk@gnupg.org>

	* protect-tool.c (read_file): New.
	(read_key): Factored most code out to read_file.

2002-06-17  Werner Koch  <wk@gnupg.org>

	* agent.h: Add a callback function to the pin_entry_info structure.
	* query.c (agent_askpin): Use the callback to check for a correct
	PIN.  Removed the start_err_text argument because it is not
	anymore needed; changed callers.
	* findkey.c (unprotect): Replace our own check loop by a callback.
	(try_unprotect_cb): New.
	* genkey.c (reenter_compare_cb): New.
	(agent_genkey): Use this callback here.  Fixed setting of the pi2
	variable and a segv in case of an empty PIN.

	* divert-scd.c (getpin_cb): Removed some unused stuff and
	explained what we still have to change.

2002-06-12  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (main): New option --disable-pth.

2002-06-11  Werner Koch  <wk@gnupg.org>

	* protect-tool.c: Add command --show-keygrip
	(show_keygrip): New.

2002-05-23  Werner Koch  <wk@gnupg.org>

	* call-scd.c: Seirialized all scdaeom access when using Pth.

	* cache.c: Made the cache Pth-thread-safe.
	(agent_unlock_cache_entry): New.
	* findkey.c (unprotect): Unlock the returned cache value.
	* command.c (cmd_get_passphrase): Ditto.

	* gpg-agent.c (main): Register pth_read/write with Assuan.

2002-05-22  Werner Koch  <wk@gnupg.org>

	* query.c: Serialized all pinentry access when using Pth.

	* gpg-agent.c (handle_signal,start_connection_thread)
	(handle_connections): New
	(main): Use the new Pth stuff to allow concurrent connections.
	* command.c (start_command_handler): Add new arg FD so that the
	fucntion can also be used for an already connected socket.
	* Makefile.am: Link with Pth.

2002-05-14  Werner Koch  <wk@gnupg.org>

	* cache.c (housekeeping, agent_put_cache): Use our time() wrapper.

2002-04-26  Werner Koch  <wk@gnupg.org>

	* cache.c (agent_put_cache): Reinitialize the creation time and
	the ttl when reusing a slot.

	* call-scd.c (start_scd): Print debug messages only with debug
	flags set.
	* query.c (start_pinentry): Ditto.

2002-04-25  Marcus Brinkmann  <marcus@g10code.de>

	* agent.h (agent_get_confirmation): Replace paramter prompt with
	two parameters ok and cancel.
	* query.c (agent_get_confirmation): Likewise.  Implement this.
	* trustlist.c (agent_marktrusted): Fix invocation of
	agent_get_confirmation.
	* divert-scd.c (ask_for_card): Likewise.

2002-04-24  Marcus Brinkmann  <marcus@g10code.de>

	* agent.h (struct opt): Add members display, ttyname, ttytype,
	lc_ctype, and lc_messages.
	* gpg-agent.c (enum cmd_and_opt_values): Add oDisplay, oTTYname,
	oTTYtype, oLCctype, and LCmessages.
	(main): Handle these options.
	* command.c (option_handler): New function.
	(register_commands): Register option handler.
	* query.c (start_pinentry): Pass the various display and tty
	options to the pinentry.

2002-04-05  Werner Koch  <wk@gnupg.org>

	* protect-tool.c (show_file): New.  Used as default action.

2002-03-28  Werner Koch  <wk@gnupg.org>

	* divert-scd.c (encode_md_for_card): Don't do the pkcs-1 padding,
	the scdaemon should take care of it.
	(ask_for_card): Hack to not display the trailing zero.

2002-03-11  Werner Koch  <wk@gnupg.org>

	* learncard.c (kpinfo_cb): Remove the content restrictions from
	the keyID.

2002-03-06  Werner Koch  <wk@gnupg.org>

	* learncard.c: New.
	* divert-scd.c (ask_for_card): The serial number is binary so
	convert it to hex here.
	* findkey.c (agent_write_private_key): New.
	* genkey.c (store_key): And use it here.
	
	* pkdecrypt.c (agent_pkdecrypt): Changed the way the diversion is done.
	* divert-scd.c (divert_pkdecrypt): Changed interface and
	implemented it.

2002-03-05  Werner Koch  <wk@gnupg.org>

	* call-scd.c (inq_needpin): New.
	(agent_card_pksign): Add getpin_cb args.
	(agent_card_pkdecrypt): New.

2002-03-04  Werner Koch  <wk@gnupg.org>

	* pksign.c (agent_pksign): Changed how the diversion is done.
	* divert-scd.c (divert_pksign): Changed interface and implemented it.
	(encode_md_for_card): New.
	* call-scd.c (agent_card_pksign): New.

2002-02-28  Werner Koch  <wk@gnupg.org>

	* pksign.c (agent_pksign): Detect whether a Smartcard is to be
	used and divert the operation in this case.
	* pkdecrypt.c (agent_pkdecrypt): Likewise
	* findkey.c (agent_key_from_file): Add optional arg shadow_info
	and have it return information about a shadowed key.
	* protect.c (agent_get_shadow_info): New.

	* protect.c (snext,sskip,smatch): Moved to
	* sexp-parse.h: new file.
	* divert-scd.c: New.
	
2002-02-27  Werner Koch  <wk@gnupg.org>

	* protect.c (agent_shadow_key): New.

	* command.c (cmd_learn): New command LEARN.
	* gpg-agent.c: New option --scdaemon-program.
	* call-scd.c (start_scd): New. Based on query.c
	* query.c: Add 2 more arguments to all uses of assuan_transact.

2002-02-18  Werner Koch  <wk@gnupg.org>

	* findkey.c (unprotect): Show an error message for a bad passphrase.

	* command.c (cmd_marktrusted): Implemented.
	* trustlist.c (agent_marktrusted): New.
	(open_list): Add APPEND arg.

	* query.c (agent_get_confirmation): New.

2002-02-06  Werner Koch  <wk@gnupg.org>

	* cache.c (housekeeping): Fixed linking in the remove case.

2002-02-01  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c: New option --default-cache-ttl.
	* cache.c (agent_put_cache): Use it.
	
	* cache.c: Add a few debug outputs.

	* protect.c (agent_private_key_type): New.
	* agent.h: Add PRIVATE_KEY_ enums.
	* findkey.c (agent_key_from_file): Use it to decide whether we
	have to unprotect a key.
	(unprotect): Cache the passphrase.
	
	* findkey.c (agent_key_from_file,agent_key_available): The key
	files do now require a ".key" suffix to make a script's life
	easier. 
	* genkey.c (store_key): Ditto.

2002-01-31  Werner Koch  <wk@gnupg.org>

	* genkey.c (store_key): Protect the key.
	(agent_genkey): Ask for the passphrase.
	* findkey.c (unprotect): Actually unprotect the key.
	* query.c (agent_askpin): Add an optional start_err_text. 

2002-01-30  Werner Koch  <wk@gnupg.org>

	* protect.c: New.  
	(hash_passphrase): Based on the GnuPG 1.0.6 version.
	* protect-tool.c: New

2002-01-29  Werner Koch  <wk@gnupg.org>

	* findkey.c (agent_key_available): New.
	* command.c (cmd_havekey): New.
	(register_commands): And register new command.

2002-01-20  Werner Koch  <wk@gnupg.org>

	* command.c (cmd_get_passphrase): Remove the plus signs.

	* query.c (start_pinentry): Send no-grab option to pinentry
	* gpg-agent.c (main): Move variable grab as no_grab to agent.h.

2002-01-19  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (main): Disable core dumps.

	* cache.c: New.
	* command.c (cmd_get_passphrase): Use the cache.
	(cmd_clear_passphrase): Ditto.

	* gpg-agent.c:  Removed unused cruft and implement the socket
	based server.
	(my_strusage): Take bug report address from configure.ac.
	* command.c (start_command_handler): Add an argument to start as
	regular server.
	(start_command_handler): Enable Assuan logging.

2002-01-15  Werner Koch  <wk@gnupg.org>

	* trustlist.c: New.
	* command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted): New.

2002-01-07  Werner Koch  <wk@gnupg.org>

	* genkey.c: Store the secret part and return the public part.

2002-01-03  Werner Koch  <wk@gnupg.org>

	* command.c (cmd_get_passphrase): New.
	(cmd_clear_passphrase): New.
	* query.c (agent_get_passphrase): New.

2002-01-02  Werner Koch  <wk@gnupg.org>

	* genkey.c: New.
	* command.c (cmd_genkey): New.

	* command.c (rc_to_assuan_status): Removed and changed all callers
	to use map_to_assuan_status.
	
2001-12-19  Werner Koch  <wk@gnupg.org>

	* keyformat.txt: New. 

2001-12-19  Marcus Brinkmann  <marcus@g10code.de>

	* query.c (start_pinentry): Add new argument to assuan_pipe_connect.

2001-12-18  Werner Koch  <wk@gnupg.org>

	* Makefile.am: Use LIBGCRYPT macros

2001-12-14  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (main): New option --batch.  New option --debug-wait
	n, so that it is possible to attach gdb when used in server mode.
	* query.c (agent_askpin): Don't ask in batch mode.

	* command.c: Removed the conversion macros as they are now in
	../common/util.h.

2001-12-14  Marcus Brinkmann  <marcus@g10code.de>

	* query.c (LINELENGTH): Removed.
	(agent_askpin): Use ASSUAN_LINELENGTH, not LINELENGTH.

2001-11-19  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c: Removed all GUI code, removed code for old
	protocol.  New code to use the Assuan protocol as a server and
	also to communicate with a new ask-passphrase utility.

2000-11-22  Werner Koch  <wk@gnupg.org>

	* gpg-agent.c (main): csh support by Dan Winship, new options --sh
	and --csh and set default by consulting $SHELL.

Mon Aug 21 17:59:17 CEST 2000  Werner Koch  <wk@openit.de>

        * gpg-agent.c (passphrase_dialog): Cleanup the window and added the
        user supplied text to the window.
        (main): Fixed segv in gtk_init when used without a command to start.

        * gpg-agent.c: --flush option.
        (req_flush): New.
        (req_clear_passphrase): Implemented.

Fri Aug 18 14:27:14 CEST 2000  Werner Koch  <wk@openit.de>

        * gpg-agent.c: New.
        * Makefile.am: New.


 Copyright 2001, 2002 Free Software Foundation, Inc.

 This file is free software; as a special exception the author gives
 unlimited permission to copy and/or distribute it, with or without
 modifications, as long as this notice is preserved.

 This file is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
