aboutsummaryrefslogtreecommitdiffstats
path: root/agent/ChangeLog
blob: 517d7ccdfa5cddf1dcf07853e51fff7d586391bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
2004-08-09  Moritz Schulte  <[email protected]>

	* findkey.c (modify_description): Accept description being NULL.

2004-08-07  Moritz Schulte  <[email protected]>

	* command-ssh.c (ssh_key_to_sexp_buffer): New argument: comment;
	integrate into S-Exp.
	(ssh_identity_register): New argument: comment; pass to
	ssh_key_to_sexp_buffer().
	(ssh_handler_add_identity): Pass comment to
	ssh_identity_register().
	(ssh_identity_register): Allocate description dynamically, insert
	comment; new variable: description_length; removed variable: i.
	(data_sign): Do not calculate key grip for integration in
	description; removed variable: i.

	* findkey.c (modify_description): New function.
	(agent_key_from_file): New variables: comment, comment_sexp,
	comment_length, desc_text_modified; extract comment from S-Exp,
	pass modified version to unprotect().
	
2004-07-30  Moritz Schulte  <[email protected]>

	* command-ssh.c: Updated Libgpg-stream (more support for secure
	memory), adjusted code for new API.

2004-07-27  Moritz Schulte  <[email protected]>

	* findkey.c (key_io_lock): New variable.

	* command-ssh.c: Use gcrypt memory allocators, use secure memory
	where necessary.

2004-07-26  Moritz Schulte  <[email protected]>

	* command-ssh.c (data_sign): Do not forget to unsigned char when
	constructing human-readable key grip.

	* Makefile.am (gpg_agent_SOURCES): Removed: buffer.c, buffer.h;
	updated Libgpg-stream.

2004-07-24  Moritz Schulte  <[email protected]>

	* gpg-stream-config.h: New file (was missing before).

2004-07-19  Moritz Schulte  <[email protected]>

	* command-ssh.c: Only log debugging message if asked to do so.

	* command-ssh.c (gpg_stream_copy): Remove function.
	Update Libgpg-stream.

	* command-ssh.c: Fix handling of iqmp vs. u.

	* command-ssh.c (ssh_identity_register): passphrase must not be freed.

	* Makefile.am (gpg_agent_SOURCES): Adding: gpg-stream.c,
	gpg-stream.h, buffer.c, buffer.h, command-ssh.c.

	* pksign.c (agent_pksign_do): New function, based on code ripped
	out from agent_pksign.
	(agent_pksign): Use agent_pksign_do.

	* query.c (start_pinentry): Accept CTRL being NULL.

	* agent.h (start_command_handler_ssh): Declare function.
	(agent_pksign_do): Declare function.
	(opt): New member: ssh_support.

	* gpg-agent.c: Include <sys/select.h>.
	New configuration option: ssh-support.
	(socket_name_ssh): New variabel.
	(handle_connections): Additional argument: listen_fd_ssh.  Accept
	connections on both sockets, call start_connection_thread_ssh for
	connections on listen_fd_ssh.
	(start_connection_thread_ssh): New function.
	(cleanup_do): New functions, basically old cleanup function.
	(cleanup): Call cleanup_do for socket_name and socket_name_ssh.
	(server_socket_create): New function ...
	(main): ... use it.
	(main): Generate environment entries for ssh.

	* command-ssh.c: New file, implementing the ssh-agent protocol.
	* gpg-stream.c, gpg-stream.h, buffer.c, buffer.h: Merged
	Libgpg-stream.

2004-06-20  Moritz Schulte  <[email protected]>

	* gpg-agent.c: Include <sys/stat.h> (build fix for BSD).

2004-05-11  Werner Koch  <[email protected]>

	* gpg-agent.c (handle_signal): Reload the trustlist on SIGHUP.
	(start_connection_thread): Hack to simulate a ticker.
	* trustlist.c (agent_trustlist_housekeeping) 
	(agent_reload_trustlist): New.  Protected all global functions
	here with a simple counter which is sufficient for Pth.

2004-05-03  Werner Koch  <[email protected]>

	* gpg-agent.c: Remove help texts for options lile --lc-ctype.
	(main): New option --allow-mark-trusted. 
	* trustlist.c (agent_marktrusted): Use it here.

2004-04-30  Werner Koch  <[email protected]>

	* protect-tool.c: New option --enable-status-msg.
	(store_private_key): Print status messages for imported keys.
	(read_and_unprotect): Ditto for bad passphrase.

	* gpg-agent.c (parse_rereadable_options): New arg REREAD.  Allow
	changing oLogFile.
	(current_logfile): New.

2004-04-26  Werner Koch  <[email protected]>

	* call-scd.c (start_scd): Do not register an event signal if we
	are running as a pipe server.

2004-04-21  Werner Koch  <[email protected]>

	* call-scd.c (start_scd): Send event-signal option. Always check
	that the scdaemon is still running.

	* gpg-agent.c (handle_signal): Do not use SIGUSR{1,2} anymore for
	changing the verbosity.

2004-04-16  Werner Koch  <[email protected]>

	* gpg-agent.c (main): Tell the logging code that we are running
	detached.

2004-04-06  Werner Koch  <[email protected]>

	* gpg-agent.c (main): Use new libgcrypt thread library register
	scheme.

2004-03-23  Marcus Brinkmann  <[email protected]>

	* gpg-agent.c (main): For now, always print the default config
	file name for --gpgconf-list.

2004-03-17  Werner Koch  <[email protected]>

	* gpg-agent.c (main) <gpgconf>: Fixed default value quoting.

2004-03-16  Werner Koch  <[email protected]>

	* gpg-agent.c (parse_rereadable_options): Use the new
	DEFAULT_CACHE_TTL macro.
	(main): Updated --gpgconf-list output.

2004-02-21  Werner Koch  <[email protected]>

	* command.c (cmd_passwd): Take acount of a key description.

	* genkey.c (reenter_compare_cb): Do not set the error text.
	(agent_protect_and_store, agent_genkey): Force a re-enter after a
	non-matching passphrase.
	* query.c (agent_askpin): Add new arg INITIAL_ERRTEXT; changed
	all callers.

2004-02-19  Werner Koch  <[email protected]>

	* protect-tool.c: New options --have-cert and --prompt.
	(export_p12_file): Read a certificate from STDIN and pass it to
	p12_build.  Detect a keygrip and construct the filename in that
	case.  Unprotcet a key if needed.  Print error messages for key
	formats we can't handle.
	(release_passphrase): New.
	(get_passphrase): New arg PROMPTNO. Return the allocated
	string. Changed all callers.

	* minip12.c: Revamped the build part.
	(p12_build): New args CERT and CERTLEN.  

2004-02-18  Werner Koch  <[email protected]>

	* protect-tool.c (main): Setup the used character set.
	* gpg-agent.c (main): Ditto.

	* gpg-agent.c (set_debug): New.  New option --debug-level.
	(main): New option --gpgconf-list.

2004-02-17  Werner Koch  <[email protected]>

	* pksign.c (do_encode_md): Cleaned up by using gcry_sexp_build.

	* Makefile.am (gpg_protect_tool_SOURCES): Removed
	simple-pwquery.[ch], as we once moved it to ../common.

2004-02-13  Werner Koch  <[email protected]>

	* command.c (cmd_setkeydesc): New.
	(register_commands): Add command SETKEYDESC.
	(cmd_pksign, cmd_pkdecrypt): Use the key description.
	(reset_notify): Reset the description.
	* findkey.c (unprotect): Add arg DESC_TEXT.
	(agent_key_from_file): Ditto.
	* pksign.c (agent_pksign): Ditto.
	* pkdecrypt.c (agent_pkdecrypt): Ditto. Made CIPHERTEXT an
	unsigned char*.

	* protect-tool.c (main): New options --no-fail-on-exist, --homedir.
	(store_private_key): Use them here.

2004-02-12  Werner Koch  <[email protected]>

	* protect-tool.c (read_file, main): Allow reading from stdin.

	* Makefile.am: Include cmacros.am for common flags.
	(libexec_PROGRAMS): Put gpg-protect-tool there.

2004-02-10  Werner Koch  <[email protected]>

	* minip12.c (parse_bag_encrypted_data): Finished implementation.
	(p12_parse): Add callback args.
	* protect-tool.c (import_p12_cert_cb): New.
	(import_p12_file): Use it.

2004-02-06  Werner Koch  <[email protected]>

	* minip12.c (crypt_block): Add arg CIPHER_ALGO; changed all callers.
	(set_key_iv): Add arg KEYBYTES; changed caller.

2004-02-03  Werner Koch  <[email protected]>

	* findkey.c (agent_key_from_file): Extra paranoid wipe.
	* protect.c (agent_unprotect): Ditto.
	(merge_lists): Ditto. Add arg RESULTLEN.
	* pkdecrypt.c (agent_pkdecrypt): Don't show the secret key even in
	debug mode.

	* protect.c: Add DSA and Elgamal description.

2004-01-29  Werner Koch  <[email protected]>

	* agent.h (server_control_s): Add connection_fd field.
	* command.c (start_command_handler): Init it here.
	* gpg-agent.c (agent_init_default_ctrl): and here.
	* call-scd.c: Add the CTRL arg to all functions calling start_scd
	and pass it to start_scd.  Changed all callers
	(start_scd): Keep track of the current active connection.
	(agent_reset_scd): New.
	* command.c (start_command_handler): Call it here.
	* learncard.c (agent_handle_learn): Add arg CTRL; changed caller.
	(send_cert_back): Ditto.

2004-01-28  Werner Koch  <[email protected]>

	* trustlist.c (agent_marktrusted): Check whether the trustlist is
	writable.

2004-01-27  Werner Koch  <[email protected]>

	* sexp-parse.h: Moved to ../common.

2004-01-24  Werner Koch  <[email protected]>

	* call-scd.c (atfork_cb): New.
	(start_scd): Make sure secmem gets cleared.
	* query.c  (atfork_cb): New.
	(start_pinentry): Make sure secmem gets cleared.

2004-01-16  Werner Koch  <[email protected]>

	* findkey.c (agent_key_from_file): Now return an error code so
	that we have more detailed error messages in the upper layers.
	This fixes the handling of pinentry's cancel button. 
	* pksign.c (agent_pksign): Changed accordingly.
	* pkdecrypt.c (agent_pkdecrypt): Ditto.
	* command.c (cmd_passwd): Ditto.

2003-12-16  Werner Koch  <[email protected]>

	* gpg-agent.c (main): Set the prefixes for assuan logging.

2003-12-15  Werner Koch  <[email protected]>

	* protect.c (do_encryption): Use gcry_create_nonce instad of the
	obsolete WEAK_RANDOM.

2003-11-20  Werner Koch  <[email protected]>

	* sexp-parse.h (snext): Don't use atoi_1 and digitp macros, so
	that this file is useful by other applications too.

2003-10-27  Werner Koch  <[email protected]>

	* command.c (cmd_get_confirmation): New command.

2003-08-20  Timo Schulz  <[email protected]>

	* pksign.c (do_encode_md): Allocate enough space. Cast md
	byte to unsigned char to prevent sign extension.
	
2003-08-14  Timo Schulz  <[email protected]>

	* pksign.c (do_encode_md): Due to the fact pkcs#1 padding
	is now in Libgcrypt, use the new interface.
	
2003-07-31  Werner Koch  <[email protected]>

	* Makefile.am (gpg_agent_LDADD): Added INTLLIBS.
	(gpg_protect_tool_SOURCES): Added simple-pwquery.[ch]

2003-07-27  Werner Koch  <[email protected]>

	Adjusted for gcry_mpi_print and gcry_mpi_scan API change.

2003-07-15  Werner Koch  <[email protected]>

	* 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  <[email protected]>

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

2003-06-30  Werner Koch  <[email protected]>

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

2003-06-26  Werner Koch  <[email protected]>

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

2003-06-25  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

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

2003-06-03  Werner Koch  <[email protected]>

	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  <[email protected]>

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

	* Makefile.am: Don't override LDFLAGS.

2002-12-04  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

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

2002-11-06  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

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

2002-09-25  Werner Koch  <[email protected]>

	* 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  <[email protected]>

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

2002-09-04  Neal H. Walfield  <[email protected]>

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

2002-09-03  Neal H. Walfield  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

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

2002-06-28  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

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

2002-06-17  Werner Koch  <[email protected]>

	* 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  <[email protected]>

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

2002-06-11  Werner Koch  <[email protected]>

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

2002-05-23  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

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

2002-04-26  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

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

2002-03-28  Werner Koch  <[email protected]>

	* 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  <[email protected]>

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

2002-03-06  Werner Koch  <[email protected]>

	* 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  <[email protected]>

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

2002-03-04  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

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

2002-02-01  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

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

2002-01-29  Werner Koch  <[email protected]>

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

2002-01-20  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

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

2002-01-07  Werner Koch  <[email protected]>

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

2002-01-03  Werner Koch  <[email protected]>

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

2002-01-02  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* keyformat.txt: New. 

2001-12-19  Marcus Brinkmann  <[email protected]>

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

2001-12-18  Werner Koch  <[email protected]>

	* Makefile.am: Use LIBGCRYPT macros

2001-12-14  Werner Koch  <[email protected]>

	* 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  <[email protected]>

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

2001-11-19  Werner Koch  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

        * 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  <[email protected]>

        * 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.