Add Kludge for RegTP sillyness.
[gnupg.git] / sm / ChangeLog
1 2006-03-21  Werner Koch  <wk@g10code.com>
2
3         * certchain.c (get_regtp_ca_info): New.
4         (allowed_ca): Use it.
5
6 2006-03-20  Werner Koch  <wk@g10code.com>
7
8         * qualified.c (gpgsm_is_in_qualified_list): New optional arg COUNTRY.
9
10 2006-02-17  Werner Koch  <wk@g10code.com>
11
12         * call-dirmngr.c (start_dirmngr): Print name of dirmngr to be started.
13
14 2005-11-23  Werner Koch  <wk@g10code.com>
15
16         * gpgsm.h: New member QUALSIG_APPROVAL.
17         * sign.c (gpgsm_sign): Print a warning if a certificate is not
18         qualified.
19         * qualified.c (gpgsm_qualified_consent): Include a note that this
20         is not approved software.
21         (gpgsm_not_qualified_warning): New.
22         * gpgsm.c (main): Prepared to print a note whether the software
23         has been approved.
24
25 2005-11-13  Werner Koch  <wk@g10code.com>
26
27         * call-agent.c (gpgsm_agent_get_confirmation): New.
28
29         * keylist.c (list_cert_std): Print qualified status.
30         * qualified.c: New.
31         * certchain.c (gpgsm_validate_chain): Check for qualified
32         certificates.
33
34         * certchain.c (gpgsm_basic_cert_check): Release keydb handle when
35         no-chain-validation is used.
36
37 2005-11-11  Werner Koch  <wk@g10code.com>
38
39         * keylist.c (print_capabilities): Print is_qualified status.
40
41 2005-10-28  Werner Koch  <wk@g10code.com>
42
43         * certdump.c (pretty_print_sexp): New.
44         (gpgsm_print_name2): Use it here.  This allows proper printing of
45         DNS names as used with server certificates.
46
47 2005-10-10  Werner Koch  <wk@g10code.com>
48
49         * keylist.c: Add pkaAdress OID as reference.
50
51 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
52
53         * Makefile.am (gpgsm_LDADD): Add ../gl/libgnu.a after
54         ../common/libcommon.a.
55
56 2005-09-13  Werner Koch  <wk@g10code.com>
57
58         * verify.c (gpgsm_verify): Print a note if the unknown algorithm
59         is MD2.
60         * sign.c (gpgsm_sign): Ditto.
61         * certcheck.c (gpgsm_check_cert_sig): Ditto.
62
63 2005-09-08  Werner Koch  <wk@g10code.com>
64
65         * export.c (popen_protect_tool): Add option --have-cert.  We
66         probably lost this option with 1.9.14 due to restructuring of
67         export.c.
68
69 2005-07-21  Werner Koch  <wk@g10code.com>
70
71         * gpgsm.c (main): New options --no-log-file and --debug-none.
72
73         * certreqgen.c (get_parameter, get_parameter_value): Add SEQ arg
74         to allow enumeration.  Changed all callers.
75         (create_request): Process DNS and URI parameters.
76
77 2005-07-20  Werner Koch  <wk@g10code.com>
78
79         * keylist.c (email_kludge): Reworked.
80
81         * certdump.c (gpgsm_print_serial, gpgsm_dump_serial): Cast printf
82         arg to unsigned.
83         * call-dirmngr.c (gpgsm_dirmngr_run_command): Ditto
84
85 2005-07-19  Werner Koch  <wk@g10code.com>
86
87         * fingerprint.c (gpgsm_get_certid): Cast printf arg to unsigned.
88         Bug accidently introduced while solving the #$%^& gcc
89         signed/unsigned char* warnings.
90
91 2005-06-15  Werner Koch  <wk@g10code.com>
92
93         * delete.c (delete_one): Changed FPR to unsigned.
94         * encrypt.c (encrypt_dek): Made ENCVAL unsigned.
95         (gpgsm_encrypt): Ditto.
96         * sign.c (gpgsm_sign): Made SIGVAL unsigned.
97         * base64.c (base64_reader_cb): Need to use some casting to get
98         around signed/unsigned char* warnings.
99         * certcheck.c (gpgsm_check_cms_signature): Ditto.
100         (gpgsm_create_cms_signature): Changed arg R_SIGVAL to unsigned char*.
101         (do_encode_md): Made NFRAME a size_t.
102         * certdump.c (gpgsm_print_serial): Fixed signed/unsigned warning.
103         (gpgsm_dump_serial): Ditto.
104         (gpgsm_format_serial): Ditto.
105         (gpgsm_dump_string): Ditto.
106         (gpgsm_dump_cert): Ditto.
107         (parse_dn_part): Ditto.
108         (gpgsm_print_name2): Ditto.
109         * keylist.c (email_kludge): Ditto.
110         * certreqgen.c (proc_parameters, create_request): Ditto.
111         (create_request): Ditto.
112         * call-agent.c (gpgsm_agent_pksign): Made arg R_BUF unsigned.
113         (struct cipher_parm_s): Made CIPHERTEXT unsigned.
114         (struct genkey_parm_s): Ditto.
115         * server.c (strcpy_escaped_plus): Made arg S signed char*.
116         * fingerprint.c (gpgsm_get_fingerprint): Made ARRAY unsigned.
117         (gpgsm_get_keygrip): Ditto.
118         * keydb.c (keydb_insert_cert): Made DIGEST unsigned.
119         (keydb_update_cert): Ditto.
120         (classify_user_id): Apply cast to signed/unsigned assignment.
121         (hextobyte): Ditto.
122
123 2005-06-01  Werner Koch  <wk@g10code.com>
124
125         * misc.c: Include setenv.h.
126
127 2005-04-21  Werner Koch  <wk@g10code.com>
128
129         * gpgsm.c: New options --{enable,disable}-trusted-cert-crl-check.
130         * certchain.c (gpgsm_validate_chain): Make use of it.
131
132         * certchain.c (gpgsm_validate_chain): Check revocations even for
133         expired certificates.  This is required because on signature
134         verification an expired key is fine whereas a revoked one is not.
135
136 2005-04-20  Werner Koch  <wk@g10code.com>
137
138         * Makefile.am (AM_CFLAGS): Add PTH_CFLAGS as noted by several folks.
139
140 2005-04-19  Werner Koch  <wk@g10code.com>
141
142         * certchain.c (check_cert_policy): Print the diagnostic for a open
143         failure of policies.txt only in verbose mode or when it is not
144         ENOENT.
145
146 2005-04-17  Werner Koch  <wk@g10code.com>
147
148         * call-dirmngr.c (inq_certificate): Add new inquire SENDCERT_SKI.
149         * certlist.c (gpgsm_find_cert): Add new arg KEYID and implement
150         this filter.  Changed all callers.
151
152         * certchain.c (find_up_search_by_keyid): New helper.
153         (find_up): Also try using the AKI.keyIdentifier.
154         (find_up_external): Ditto.
155
156 2005-04-15  Werner Koch  <wk@g10code.com>
157
158         * keylist.c (list_cert_raw): Print the subjectKeyIdentifier as
159         well as the keyIdentifier part of the authorityKeyIdentifier.
160
161 2005-03-31  Werner Koch  <wk@g10code.com>
162
163         * call-dirmngr.c (start_dirmngr): Use PATHSEP_C instead of ':'.
164         * call-agent.c (start_agent): Ditto.
165
166 2005-03-17  Werner Koch  <wk@g10code.com>
167
168         * certcheck.c: Fixed use of DBG_CRYPTO and DBG_X509.
169
170         * certchain.c (gpgsm_basic_cert_check): Dump certificates after a
171         failed gcry_pk_verify.
172         (find_up): Do an external lookup also for an authorityKeyIdentifier
173         lookup. Factored external lookup code out to ..
174         (find_up_external): .. new.
175
176 2005-03-03  Werner Koch  <wk@g10code.com>
177
178         * Makefile.am (gpgsm_LDADD): Added PTH_LIBS.  Noted by Kazu Yamamoto.
179
180 2005-01-13  Werner Koch  <wk@g10code.com>
181
182         * certreqgen.c (proc_parameters): Cast printf arg.
183
184 2004-12-22  Werner Koch  <wk@g10code.com>
185
186         * gpgsm.c (set_binary): New.
187         (main, open_read, open_fwrite): Use it.
188
189 2004-12-21  Werner Koch  <wk@g10code.com>
190
191         * gpgsm.c (main): Use default_homedir().
192         (main) [W32]: Default to disabled CRL checks.
193
194 2004-12-20  Werner Koch  <wk@g10code.com>
195
196         * call-agent.c (start_agent): Before starting a pipe server start
197         to connect to a server on the standard socket.  Use PATHSEP
198         * call-dirmngr.c (start_dirmngr): Use PATHSEP.
199
200         * import.c: Include unistd.h for dup and close.
201
202 2004-12-18  Werner Koch  <wk@g10code.com>
203
204         * gpgsm.h (map_assuan_err): Define in terms of
205         map_assuan_err_with_source.
206         * call-agent.c (start_agent): Pass error source to
207         send_pinentry_environment.
208
209 2004-12-17  Werner Koch  <wk@g10code.com>
210
211         * call-dirmngr.c (isvalid_status_cb, lookup_status_cb)
212         (run_command_status_cb): Return cancel status if gpgsm_status
213         returned an error.
214
215         * server.c (gpgsm_status, gpgsm_status2) 
216         (gpgsm_status_with_err_code): Return an error code.
217         (gpgsm_status2): Always call va_end().
218
219 2004-12-15  Werner Koch  <wk@g10code.com>
220
221         * call-dirmngr.c (lookup_status_cb): Send progress messages
222         upstream.
223         (isvalid_status_cb): Ditto.
224         (gpgsm_dirmngr_isvalid): Put CTRL into status CB parameters.
225         (gpgsm_dirmngr_run_command, run_command_status_cb): Pass CTRL to
226         status callback and handle PROGRESS.
227
228         * misc.c (setup_pinentry_env) [W32]: Don't use it.
229
230         * gpgsm.c (main) [W32]: Init Pth because we need it for the socket
231         operations and to resolve libassuan symbols.
232         (run_protect_tool) [W32]: Disable it.
233
234         * Makefile.am (gpgsm_LDADD): Move LIBASSUAN_LIBS more to the end.
235
236 2004-12-07  Werner Koch  <wk@g10code.com>
237
238         * Makefile.am (gpgsm_LDADD): Put libassuan before jnlib because
239         under W32 we need the w32 pth code from jnlib.
240
241         * misc.c (setup_pinentry_env) [W32]: Disabled.
242
243 2004-12-06  Werner Koch  <wk@g10code.com>
244
245         * gpgsm.c (run_protect_tool) [_WIN32]: Disabled.
246
247         * import.c (popen_protect_tool): Simplified by making use of
248         gnupg_spawn_process.
249         (parse_p12): Likewise, using gnupg_wait_process.
250         * export.c (popen_protect_tool): Ditto.
251         (export_p12): Ditto.
252
253         * keydb.c: Don't define DIRSEP_S here.
254
255 2004-12-02  Werner Koch  <wk@g10code.com>
256
257         * certchain.c (gpgsm_basic_cert_check): Dump certs with bad
258         signature for debugging.
259         (gpgsm_validate_chain): Ditto.
260
261 2004-11-29  Werner Koch  <wk@g10code.com>
262
263         * gpgsm.c (set_debug): Changed to use a globals DEBUG_LEVEL and
264         DEBUG_VALUE.
265         (main): Made DEBUG_LEVEL global and introduced DEBUG_VALUE.  This
266         now allows to add debug flags on top of a debug-level setting.
267
268 2004-11-23  Werner Koch  <wk@g10code.com>
269
270         * gpgsm.c: New option --prefer-system-dirmngr.
271         * call-dirmngr.c (start_dirmngr): Implement this option.
272
273 2004-10-22  Werner Koch  <wk@g10code.com>
274
275         * certreqgen.c (gpgsm_genkey): Remove the NEW from the certificate
276         request PEM header.  This is according to the Sphinx standard.
277
278 2004-10-08  Moritz Schulte  <moritz@g10code.com>
279
280         * certchain.c (gpgsm_validate_chain): Do not use keydb_new() in
281         case the no_chain_validation-return-short-cut is used (fixes
282         memory leak).
283
284 2004-10-04  Werner Koch  <wk@g10code.com>
285
286         * misc.c (setup_pinentry_env): Try hard to set a default for GPG_TTY.
287
288 2004-09-30  Werner Koch  <wk@g10code.com>
289
290         * gpgsm.c (i18n_init): Always use LC_ALL.
291
292         * certdump.c (gpgsm_format_name): Factored code out to ..
293         (gpgsm_format_name2): .. new.
294         (gpgsm_print_name): Factored code out to ..
295         (gpgsm_print_name2): .. new.
296         (print_dn_part): New arg TRANSLATE.  Changed all callers.
297         (print_dn_parts): Ditto.
298         (gpgsm_format_keydesc): Do not translate the SUBJECT; we require
299         it to stay UTF-8 but we still want to filter out bad control
300         characters.
301
302         * Makefile.am: Adjusted for gettext 0.14.
303
304         * keylist.c (list_cert_colon): Make sure that the expired flag has
305         a higher precedence than the invalid flag. 
306
307 2004-09-29  Werner Koch  <wk@g10code.com>
308
309         * import.c (parse_p12): Write an error status line for bad
310         passphrases. Add new arg CTRL and changed caller.
311         * export.c (export_p12): Likewise.
312
313 2004-09-14  Werner Koch  <wk@g10code.com>
314
315         * certchain.c (gpgsm_validate_chain): Give expired certificates a
316         higher error precedence and don't bother to check any CRL in that
317         case.
318
319 2004-08-24  Werner Koch  <wk@g10code.de>
320
321         * certlist.c: Fixed typo in ocsp OID.
322
323 2004-08-18  Werner Koch  <wk@g10code.de>
324
325         * certlist.c (gpgsm_cert_use_ocsp_p): New.
326         (cert_usage_p): Support it here.
327         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Use it here.
328
329 2004-08-17  Marcus Brinkmann  <marcus@g10code.de>
330
331         * import.c: Fix typo in last change.
332
333 2004-08-17  Werner Koch  <wk@g10code.de>
334
335         * import.c (check_and_store): Do a full validation if
336         --with-validation is set.
337
338         * certchain.c (gpgsm_basic_cert_check): Print more detailed error
339         messages.
340         
341         * certcheck.c (do_encode_md): Partly support DSA.  Add new arg
342         PKALGO. Changed all callers to pass it.
343         (pk_algo_from_sexp): New.
344
345 2004-08-16  Werner Koch  <wk@g10code.de>
346
347         * gpgsm.c: New option --fixed-passphrase.
348         * import.c (popen_protect_tool): Pass it to the protect-tool.
349
350         * server.c (cmd_encrypt): Use DEFAULT_RECPLIST and not recplist
351         for encrypt-to keys.
352
353 2004-08-06  Werner Koch  <wk@g10code.com>
354
355         * gpgsm.c: New option --with-ephemeral-keys.
356         * keylist.c (list_internal_keys): Set it here.
357         (list_cert_raw): And indicate those keys.  Changed all our callers
358         to pass the new arg HD through.
359
360 2004-07-23  Werner Koch  <wk@g10code.de>
361
362         * certreqgen.c (proc_parameters): Do not allow key length below
363         1024.
364
365 2004-07-22  Werner Koch  <wk@g10code.de>
366
367         * keylist.c (list_cert_raw): Print the keygrip.
368
369 2004-07-20  Werner Koch  <wk@gnupg.org>
370
371         * certchain.c (gpgsm_validate_chain): The trust check didn't
372         worked anymore, probably due to the changes at 2003-03-04.  Fixed.
373
374 2004-06-06  Werner Koch  <wk@gnupg.org>
375
376         * certreqgen.c (get_parameter_uint, create_request): Create
377         an extension for key usage when requested. 
378
379 2004-05-12  Werner Koch  <wk@gnupg.org>
380
381         * gpgsm.c (main): Install emergency_cleanup also as an atexit
382         handler.
383
384         * verify.c (gpgsm_verify): Removed the separate error code
385         handling for KSBA.  We use shared error codes anyway.
386
387         * export.c (export_p12): Removed debugging code.
388
389         * encrypt.c (gpgsm_encrypt): Put the session key in to secure memory.
390
391 2004-05-11  Werner Koch  <wk@gnupg.org>
392
393         * sign.c (gpgsm_sign): Include the error source in the final error
394         message.
395         * decrypt.c (gpgsm_decrypt): Ditto.
396
397         * fingerprint.c (gpgsm_get_key_algo_info): New.
398         * sign.c (gpgsm_sign): Don't assume RSA in the status line.
399         * keylist.c (list_cert_colon): Really print the algorithm and key
400         length.
401         (list_cert_raw, list_cert_std): Ditto.
402         (list_cert_colon): Reorganized to be able to tell whether a root
403         certificate is trusted.
404
405         * gpgsm.c: New option --debug-allow-core-dump.
406
407         * gpgsm.h (opt): Add member CONFIG_FILENAME.
408         * gpgsm.c (main): Use it here instead of the local var.
409
410         * server.c (gpgsm_server): Print some additional information with
411         the hello in verbose mode.
412
413 2004-04-30  Werner Koch  <wk@gnupg.org>
414
415         * import.c (check_and_store): Do not update the stats for hidden
416         imports of issuer certs.
417         (popen_protect_tool): Request statusmessages from the protect-tool.
418         (parse_p12): Detect status messages. Add new arg STATS and update them.
419         (print_imported_summary): Include secret key stats.
420
421 2004-04-28  Werner Koch  <wk@gnupg.org>
422
423         * gpgsm.c: New command --keydb-clear-some-cert-flags.
424         * keydb.c (keydb_clear_some_cert_flags): New.
425         (keydb_update_keyblock, keydb_set_flags): Change error code
426         CONFLICT to NOT_LOCKED.
427
428 2004-04-26  Werner Koch  <wk@gnupg.org>
429
430         * gpgsm.c (main) <gpgconf>: Do not use /dev/null as default config
431         filename.
432
433         * call-agent.c (gpgsm_agent_pksign, gpgsm_agent_pkdecrypt) 
434         (gpgsm_agent_genkey, gpgsm_agent_istrusted) 
435         (gpgsm_agent_marktrusted, gpgsm_agent_havekey) 
436         (gpgsm_agent_passwd): Add new arg CTRL and changed all callers.
437         (start_agent): New arg CTRL.  Send progress item when starting a
438         new agent.
439         * sign.c (gpgsm_get_default_cert, get_default_signer): New arg
440         CTRL to be passed down to the agent function.
441         * decrypt.c (prepare_decryption): Ditto.
442         * certreqgen.c (proc_parameters, read_parameters): Ditto.
443         * certcheck.c (gpgsm_create_cms_signature): Ditto.
444
445 2004-04-23  Werner Koch  <wk@gnupg.org>
446
447         * keydb.c (keydb_add_resource): Try to compress the file on init.
448
449         * keylist.c (oidtranstbl): New.  OIDs collected from several sources.
450         (print_name_raw, print_names_raw, list_cert_raw): New.
451         (gpgsm_list_keys): Check the dump mode and pass it down as
452         necessary.
453
454 2004-04-22  Werner Koch  <wk@gnupg.org>
455
456         * gpgsm.c (main): New commands --dump-keys, --dump-external-keys,
457         --dump-secret-keys.
458
459 2004-04-13  Werner Koch  <wk@gnupg.org>
460
461         * misc.c (setup_pinentry_env): New.
462         * import.c (popen_protect_tool): Call it.
463         * export.c (popen_protect_tool): Call it.
464
465 2004-04-08  Werner Koch  <wk@gnupg.org>
466
467         * decrypt.c (gpgsm_decrypt): Return GPG_ERR_NO_DATA if it is not a 
468         encrypted message.
469
470 2004-04-07  Werner Koch  <wk@gnupg.org>
471
472         * gpgsm.c: New option --force-crl-refresh.
473         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Pass option to dirmngr.
474
475 2004-04-05  Werner Koch  <wk@gnupg.org>
476
477         * server.c (get_status_string): Add STATUS_NEWSIG.
478         * verify.c (gpgsm_verify): Print STATUS_NEWSIG for each signature.
479
480         * certchain.c (gpgsm_validate_chain) <gpgsm_cert_use_cer_p>: Do
481         not just warn if a cert is not suitable; bail out immediately.
482
483 2004-04-01  Werner Koch  <wk@gnupg.org>
484
485         * call-dirmngr.c (isvalid_status_cb): New.
486         (unhexify_fpr): New. Taken from ../g10/call-agent.c
487         (gpgsm_dirmngr_isvalid): Add new arg CTRL, changed caller to pass
488         it thru.  Detect need to check the respondert cert and do that.
489         * certchain.c (gpgsm_validate_chain): Add new arg FLAGS.  Changed
490         all callers.
491
492 2004-03-24  Werner Koch  <wk@gnupg.org>
493
494         * sign.c (gpgsm_sign): Include a short list of capabilities.
495
496 2004-03-17  Werner Koch  <wk@gnupg.org>
497
498         * gpgsm.c (main) <gpgconf>: Fixed default value quoting.
499
500 2004-03-16  Werner Koch  <wk@gnupg.org>
501
502         * gpgsm.c (main): Implemented --gpgconf-list.
503
504 2004-03-15  Werner Koch  <wk@gnupg.org>
505
506         * keylist.c (list_cert_colon): Hack to set the expired flag.
507
508 2004-03-09  Werner Koch  <wk@gnupg.org>
509
510         * gpgsm.c (main): Correctly intitialze USE_OCSP flag.
511
512         * keydb.c (keydb_delete): s/GPG_ERR_CONFLICT/GPG_ERR_NOT_LOCKED/
513
514 2004-03-04  Werner Koch  <wk@gnupg.org>
515
516         * call-dirmngr.c (gpgsm_dirmngr_isvalid): New arg ISSUER_CERT.
517
518         * certchain.c (is_cert_still_valid): New.  Code moved from ...
519         (gpgsm_validate_chain): ... here because we now need to check at
520         two places and at a later stage, so that we can pass the issuer
521         cert down to the dirmngr.
522
523 2004-03-03  Werner Koch  <wk@gnupg.org>
524
525         * call-agent.c (start_agent): Replaced pinentry setup code by a
526         call to a new common function.
527
528         * certdump.c (gpgsm_format_keydesc): Make sure the string is
529         returned as utf-8.
530
531         * export.c (gpgsm_export): Make sure that we don't export more
532         than one certificate.
533
534 2004-03-02  Werner Koch  <wk@gnupg.org>
535
536         * export.c (create_duptable, destroy_duptable)
537         (insert_duptable): New.
538         (gpgsm_export): Avoid duplicates.
539
540 2004-02-26  Werner Koch  <wk@gnupg.org>
541
542         * certchain.c (compare_certs): New.
543         (gpgsm_validate_chain): Fixed infinite certificate checks after
544         bad signatures.
545
546 2004-02-24  Werner Koch  <wk@gnupg.org>
547
548         * keylist.c (list_cert_colon): Print the fingerprint as the
549         cert-id for root certificates.
550
551 2004-02-21  Werner Koch  <wk@gnupg.org>
552
553         * keylist.c (list_internal_keys): Return error codes.
554         (list_external_keys, gpgsm_list_keys): Ditto.
555         * server.c (do_listkeys): Ditto.
556
557         * gpgsm.c (main): Display a key description for --passwd.
558         * call-agent.c (gpgsm_agent_passwd): New arg DESC.
559
560 2004-02-20  Werner Koch  <wk@gnupg.org>
561
562         * gpgsm.c (main): New option --debug-ignore-expiration.
563         * certchain.c (gpgsm_validate_chain): Use it here.
564
565         * certlist.c (cert_usage_p): Apply extKeyUsage.
566
567 2004-02-19  Werner Koch  <wk@gnupg.org>
568
569         * export.c (export_p12, popen_protect_tool)
570         (gpgsm_p12_export): New.
571         * gpgsm.c (main): New command --export-secret-key-p12. 
572
573 2004-02-18  Werner Koch  <wk@gnupg.org>
574
575         * gpgsm.c (set_debug): Set the new --debug-level flags.
576         (main): New option --gpgconf-list.  
577         (main): Do not setup -u and -r keys when not required.
578         (main): Setup the used character set.
579
580         * keydb.c (keydb_add_resource): Print a hint to start the
581         gpg-agent.
582
583 2004-02-17  Werner Koch  <wk@gnupg.org>
584
585         * gpgsm.c: Fixed value parsing for --with-validation.
586         * call-agent.c (start_agent): Ignore an empty GPG_AGENT_INFO.
587         * call-dirmngr.c (start_dirmngr): Likewise for DIRMNGR_INFO.
588
589         * gpgsm.c: New option --with-md5-fingerprint.
590         * keylist.c (list_cert_std): Print MD5 fpr.
591
592         * gpgsm.c: New options --with-validation.
593         * server.c (option_handler): New option "with-validation".
594         * keylist.c (list_cert_std, list_internal_keys): New args CTRL and
595         WITH_VALIDATION. Changed callers to set it.
596         (list_external_cb, list_external_keys): Pass CTRL to the callback.
597         (list_cert_colon): Add arg CTRL.  Check validation if requested.
598         * certchain.c (unknown_criticals, allowed_ca, check_cert_policy) 
599         (gpgsm_validate_chain): New args LISTMODE and FP.
600         (do_list): New helper for info output.
601         (find_up): New arg FIND_NEXT.
602         (gpgsm_validate_chain): After a bad signature try again with other
603         CA certificates.
604
605         * import.c (print_imported_status): New arg NEW_CERT. Print
606         additional STATUS_IMPORT_OK becuase that is what gpgme expects.
607         (check_and_store): Always call above function after import.
608         * server.c (get_status_string): Added STATUS_IMPORT_OK.
609
610 2004-02-13  Werner Koch  <wk@gnupg.org>
611
612         * certcheck.c (gpgsm_create_cms_signature): Format a description
613         for use by the pinentry.
614         * decrypt.c (gpgsm_decrypt): Ditto. Free HEXKEYGRIP.
615         * certdump.c (format_name_cookie, format_name_writer) 
616         (gpgsm_format_name): New.
617         (gpgsm_format_serial): New.
618         (gpgsm_format_keydesc): New.
619         * call-agent.c (gpgsm_agent_pksign): New arg DESC.
620         (gpgsm_agent_pkdecrypt): Ditto.
621
622         * encrypt.c (init_dek): Check for too weak algorithms.
623
624         * import.c (parse_p12, popen_protect_tool): New.
625
626         * base64.c (gpgsm_create_reader): New arg ALLOW_MULTI_PEM.
627         Changed all callers.
628         (base64_reader_cb): Handle it here.
629         (gpgsm_reader_eof_seen): New.
630         (base64_reader_cb): Set a flag for EOF.
631         (simple_reader_cb): Ditto.
632
633 2004-02-12  Werner Koch  <wk@gnupg.org>
634
635         * gpgsm.h, gpgsm.c: New option --protect-tool-program.
636         * gpgsm.c (run_protect_tool): Use it.
637
638 2004-02-11  Werner Koch  <wk@gnupg.org>
639
640         * Makefile.am (AM_CPPFLAGS): Pass directory constants via -D; this
641         will allow to override directory names at make time.
642
643 2004-02-02  Werner Koch  <wk@gnupg.org>
644
645         * import.c (check_and_store): Import certificates even with
646         missing issuer's cert.  Fixed an "depending on the verbose
647         setting" bug.
648
649         * certchain.c (gpgsm_validate_chain): Mark revoked certs in the
650         keybox.
651
652         * keylist.c (list_cert_colon): New arg VALIDITY; use it to print a
653         revoked flag.
654         (list_internal_keys): Retrieve validity flag.
655         (list_external_cb): Pass 0 as validity flag.
656         * keydb.c (keydb_get_flags, keydb_set_flags): New.
657         (keydb_set_cert_flags): New.
658         (lock_all): Return a proper error code.
659         (keydb_lock): New.
660         (keydb_delete): Don't lock but check that it has been locked.
661         (keydb_update_keyblock): Ditto.
662         * delete.c (delete_one): Take a lock.
663
664 2004-01-30  Werner Koch  <wk@gnupg.org>
665
666         * certchain.c (check_cert_policy): Fixed read error checking.
667         (check_cert_policy): With no critical policies issue only a
668         warning if the policy file does not exists.
669
670         * sign.c (add_certificate_list): Decrement N for the first cert.
671
672 2004-01-29  Werner Koch  <wk@gnupg.org>
673
674         * certdump.c (parse_dn_part): Map common OIDs to human readable
675         labels.  Make sure that a value won't get truncated if it includes
676         a Nul.
677
678 2004-01-28  Werner Koch  <wk@gnupg.org>
679
680         * certchain.c (gpgsm_validate_chain): Changed the message printed
681         for an untrusted root certificate.
682
683 2004-01-27  Werner Koch  <wk@gnupg.org>
684
685         * certdump.c (parse_dn_part): Pretty print the nameDistinguisher OID.
686         (print_dn_part): Do not delimit multiple RDN by " + ".  Handle
687         multi-valued RDNs in a special way, i.e. in the order specified by
688         the certificate.
689         (print_dn_parts): Simplified. 
690
691 2004-01-16  Werner Koch  <wk@gnupg.org>
692
693         * sign.c (gpgsm_sign): Print an error message on all failures.
694         * decrypt.c (gpgsm_decrypt): Ditto.
695
696 2003-12-17  Werner Koch  <wk@gnupg.org>
697
698         * server.c (gpgsm_server): Add arg DEFAULT_RECPLIST.
699         (cmd_encrypt): Add all enrypt-to marked certs to the list.
700         * encrypt.c (gpgsm_encrypt): Check that real recipients are
701         available.
702         * gpgsm.c (main): Make the --encrypt-to and --no-encrypt-to
703         options work.  Pass the list of recients to gpgsm_server.
704         * gpgsm.h (certlist_s): Add field IS_ENCRYPT_TO.
705         (opt): Add NO_ENCRYPT_TO.
706         * certlist.c (gpgsm_add_to_certlist): New arg IS_ENCRYPT_TO.
707         Changed all callers and ignore duplicate entries.
708         (is_cert_in_certlist): New.
709         (gpgsm_add_cert_to_certlist): New.
710
711         * certdump.c (gpgsm_print_serial): Cleaned up cast use in strtoul.
712         (gpgsm_dump_serial): Ditto.
713
714         * decrypt.c (gpgsm_decrypt): Replaced ERR by RC.
715
716 2003-12-16  Werner Koch  <wk@gnupg.org>
717
718         * gpgsm.c (main): Set the prefixes for assuan logging.
719
720         * sign.c (gpgsm_sign): Add validation checks for the default
721         certificate.
722
723         * gpgsm.c: Add -k as alias for --list-keys and -K for
724         --list-secret-keys.
725
726 2003-12-15  Werner Koch  <wk@gnupg.org>
727
728         * encrypt.c (init_dek): Use gry_create_nonce for the IV; there is
729         not need for real strong random here and it even better protect
730         the random bits used for the key.
731
732 2003-12-01  Werner Koch  <wk@gnupg.org>
733
734         * gpgsm.c, gpgsm.h: New options --{enable,disable}-ocsp.
735         (gpgsm_init_default_ctrl): Set USE_OCSP to the default value.
736         * certchain.c (gpgsm_validate_chain): Handle USE_OCSP.
737         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Add arg USE_OCSP and
738         proceed accordingly.
739
740 2003-11-19  Werner Koch  <wk@gnupg.org>
741
742         * verify.c (gpgsm_verify): Use "0" instead of an empty string for
743         the VALIDSIG status.
744
745 2003-11-18  Werner Koch  <wk@gnupg.org>
746
747         * verify.c (gpgsm_verify): Fixed for changes API of gcry_md_info.
748
749         * certchain.c (unknown_criticals): Fixed an error code test.
750
751 2003-11-12  Werner Koch  <wk@gnupg.org>
752
753         Adjusted for API changes in Libksba.
754
755 2003-10-31  Werner Koch  <wk@gnupg.org>
756
757         * certchain.c (gpgsm_validate_chain): Changed to use ksba_isotime_t.
758         * verify.c (strtimestamp_r, gpgsm_verify): Ditto.
759         * sign.c (gpgsm_sign): Ditto.
760         * keylist.c (print_time, list_cert_std, list_cert_colon): Ditto.
761         * certdump.c (gpgsm_print_time, gpgsm_dump_time, gpgsm_dump_cert):
762         Ditto.
763
764 2003-10-25  Werner Koch  <wk@gnupg.org>
765
766         * certreqgen.c (read_parameters): Fixed faulty of !spacep().
767
768 2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
769
770         * encrypt.c (encode_session_key): Allocate enough space.  Cast key
771         byte to unsigned char to prevent sign extension.
772         (encrypt_dek): Check return value before error.
773
774 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
775
776         * encrypt.c (encode_session_key): Use new Libgcrypt interface.
777         
778 2003-07-31  Werner Koch  <wk@gnupg.org>
779
780         * Makefile.am (gpgsm_LDADD): Added INTLLIBS.
781
782 2003-07-29  Werner Koch  <wk@gnupg.org>
783
784         * gpgsm.c (main): Add secmem features and set the random seed file.
785         (gpgsm_exit): Update the random seed file and enable debug output.
786
787 2003-07-27  Werner Koch  <wk@gnupg.org>
788
789         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
790
791 2003-06-24  Werner Koch  <wk@gnupg.org>
792
793         * server.c (gpgsm_status_with_err_code): New.
794         * verify.c (gpgsm_verify): Use it here instead of the old
795         tokenizing version.
796
797         * verify.c (strtimestamp): Renamed to strtimestamp_r
798
799         Adjusted for changes in the libgcrypt API. Some more fixes for the
800         libgpg-error stuff.  
801
802 2003-06-04  Werner Koch  <wk@gnupg.org>
803
804         * call-agent.c (init_membuf,put_membuf,get_membuf): Removed.
805         Include new membuf header and changed used type.
806
807         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
808
809 2003-06-03  Werner Koch  <wk@gnupg.org>
810
811         Changed all error codes in all files to the new libgpg-error scheme.
812
813         * gpgsm.h: Include gpg-error.h .
814         * Makefile.am: Link with libgpg-error.
815
816 2003-04-29  Werner Koch  <wk@gnupg.org>
817
818         * Makefile.am: Use libassuan.  Don't override LDFLAGS anymore.
819         * server.c (register_commands): Adjust for new Assuan semantics.
820
821 2002-12-03  Werner Koch  <wk@gnupg.org>
822
823         * call-agent.c (gpgsm_agent_passwd): New.
824         * gpgsm.c (main): New command --passwd and --call-protect-tool
825         (run_protect_tool): New.
826
827 2002-11-25  Werner Koch  <wk@gnupg.org>
828
829         * verify.c (gpgsm_verify): Handle content-type attribute. 
830
831 2002-11-13  Werner Koch  <wk@gnupg.org>
832
833         * call-agent.c (start_agent): Try to use $GPG_TTY instead of
834         ttyname.  Changed ttyname to test stdin becuase it can be assumed
835         that output redirection is more common that input redirection.
836
837 2002-11-12  Werner Koch  <wk@gnupg.org>
838
839         * gpgsm.c: New command --call-dirmngr. 
840         * call-dirmngr.c (gpgsm_dirmngr_run_command)
841         (run_command_inq_cb,run_command_cb)
842         (run_command_status_cb): New.
843
844 2002-11-11  Werner Koch  <wk@gnupg.org>
845
846         * certcheck.c (gpgsm_check_cms_signature): Don't double free
847         s_sig but free s_pkey at leave.
848
849 2002-11-10  Werner Koch  <wk@gnupg.org>
850
851         * gpgsm.c: Removed duplicate --list-secret-key entry.
852
853 2002-09-19  Werner Koch  <wk@gnupg.org>
854
855         * certcheck.c (gpgsm_check_cert_sig): Add cert hash debugging.
856
857         * certchain.c (find_up): Print info when the cert was not found 
858         by the autorithyKeyIdentifier.
859
860 2002-09-03  Werner Koch  <wk@gnupg.org>
861
862         * gpgsm.c (main): Disable the internal libgcrypt locking.
863
864 2002-08-21  Werner Koch  <wk@gnupg.org>
865
866         * import.c (print_imported_summary): Cleaned up.  Print new
867         not_imported value.
868         (check_and_store): Update non_imported counter.
869         (print_import_problem): New.
870         (check_and_store): Print error status message.
871         * server.c (get_status_string): Added STATUS_IMPORT_PROBLEM.
872
873 2002-08-20  Werner Koch  <wk@gnupg.org>
874
875         * gpgsm.c (main): Use the log file only in server mode.
876
877         * import.c (print_imported_summary): New.
878         (check_and_store): Update the counters, take new argument.
879         (import_one): Factored out core of gpgsm_import.
880         (gpgsm_import): Print counters.
881         (gpgsm_import_files): New.
882         * gpgsm.c (main): Use the new function for import.
883
884 2002-08-19  Werner Koch  <wk@gnupg.org>
885
886         * decrypt.c (gpgsm_decrypt): Return a better error status token.
887         * verify.c (gpgsm_verify): Don't error on messages with no signing
888         time or no message digest.  This is only the case for messages
889         without any signed attributes.
890
891 2002-08-16  Werner Koch  <wk@gnupg.org>
892
893         * certpath.c: Renamed to ..
894         * certchain.c: this. Renamed all all other usages of "path" in the
895         context of certificates to "chain".
896
897         * call-agent.c (learn_cb): Special treatment when the issuer
898         certificate is missing.
899
900 2002-08-10  Werner Koch  <wk@gnupg.org>
901
902         * Makefile.am (INCLUDES): Add definition for localedir.
903
904         * keylist.c (list_cert_colon): Print the short fingerprint in the
905         key ID field.
906         * fingerprint.c (gpgsm_get_short_fingerprint): New.
907         * verify.c (gpgsm_verify): Print more verbose info for a good
908         signature.
909
910 2002-08-09  Werner Koch  <wk@gnupg.org>
911
912         * decrypt.c (prepare_decryption): Hack to detected already
913         unpkcsedone keys.
914
915         * gpgsm.c (emergency_cleanup): New.
916         (main): Initialize the signal handler.
917
918         * sign.c (gpgsm_sign): Reset the hash context for subsequent
919         signers and release it at the end.
920
921 2002-08-05  Werner Koch  <wk@gnupg.org>
922
923         * server.c (cmd_signer): New command "SIGNER"
924         (register_commands): Register it.
925         (cmd_sign): Pass the signer list to gpgsm_sign.
926         * certlist.c (gpgsm_add_to_certlist): Add SECRET argument, check
927         for secret key if set and changed all callers.
928         * sign.c (gpgsm_sign): New argument SIGNERLIST and implemt
929         multiple signers.
930         * gpgsm.c (main): Support more than one -u.
931         
932         * server.c (cmd_recipient): Return reason code 1 for No_Public_Key
933         which is actually what gets returned from add_to_certlist.
934         
935 2002-07-26  Werner Koch  <wk@gnupg.org>
936
937         * certcheck.c (gpgsm_check_cert_sig): Implement proper cleanup.
938         (gpgsm_check_cms_signature): Ditto.
939
940 2002-07-22  Werner Koch  <wk@gnupg.org>
941
942         * keydb.c (keydb_add_resource): Register a lock file.
943         (lock_all, unlock_all): Implemented.
944
945         * delete.c: New.
946         * gpgsm.c: Made --delete-key work.
947         * server.c (cmd_delkeys): New.
948         (register_commands): New command DELKEYS.
949
950         * decrypt.c (gpgsm_decrypt): Print a convenience note when RC2 is
951         used and a STATUS_ERROR with the algorithm oid.
952
953 2002-07-03  Werner Koch  <wk@gnupg.org>
954
955         * server.c (gpgsm_status2): Insert a blank between all optional
956         arguments when using assuan.
957         * server.c (cmd_recipient): No more need for extra blank in constants.
958         * import.c (print_imported_status): Ditto.
959         * gpgsm.c (main): Ditto.
960
961 2002-07-02  Werner Koch  <wk@gnupg.org>
962
963         * verify.c (gpgsm_verify): Extend the STATUS_BADSIG line with
964         the fingerprint.
965
966         * certpath.c (check_cert_policy): Don't use log_error to print a
967         warning.
968
969         * keydb.c (keydb_store_cert): Add optional ar EXISTED and changed
970         all callers.
971         * call-agent.c (learn_cb): Print info message only for real imports.
972
973         * import.c (gpgsm_import): Moved duplicated code to ...
974         (check_and_store): new function.  Added magic to import the entire
975         chain. Print status only for real imports and moved printing code
976         to ..
977         (print_imported_status): New.
978
979         * call-dirmngr.c (gpgsm_dirmngr_isvalid): print status of dirmngr
980         call in very verbose mode.
981
982         * gpgsm.c (main): Use the same error codes for STATUS_INV_RECP as
983         with the server mode.
984
985 2002-06-29  Werner Koch  <wk@gnupg.org>
986
987         * gpgsm.c: New option --auto-issuer-key-retrieve.
988         * certpath.c (find_up): Try to retrieve an issuer key from an
989         external source and from the ephemeral key DB.
990         (find_up_store_certs_cb): New.
991
992         * keydb.c (keydb_set_ephemeral): Does now return the old
993         state.  Call the backend only when required.
994
995         * call-dirmngr.c (start_dirmngr): Use GNUPG_DEFAULT_DIRMNGR.
996         (lookup_status_cb): Issue status only when CTRL is not NULL.
997         (gpgsm_dirmngr_lookup): Document that CTRL is optional.
998
999         * call-agent.c (start_agent): Use GNUPG_DEFAULT_AGENT.
1000
1001 2002-06-28  Werner Koch  <wk@gnupg.org>
1002
1003         * server.c (cmd_recipient): Add more reason codes.
1004
1005 2002-06-27  Werner Koch  <wk@gnupg.org>
1006
1007         * certpath.c (gpgsm_basic_cert_check): Use
1008         --debug-no-path-validation to also bypass this basic check.
1009
1010         * gpgsm.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
1011
1012         * call-agent.c (start_agent): Create and pass the list of FD to
1013         keep in the child to assuan.
1014         * call-dirmngr.c (start_dirmngr): Ditto.
1015
1016 2002-06-26  Werner Koch  <wk@gnupg.org>
1017
1018         * import.c (gpgsm_import): Print an STATUS_IMPORTED.
1019
1020         * gpgsm.c: --debug-no-path-validation does not take an argument.
1021
1022 2002-06-25  Werner Koch  <wk@gnupg.org>
1023
1024         * certdump.c (print_dn_part): Always print a leading slash,
1025         removed NEED_DELIM arg and changed caller.
1026
1027         * export.c (gpgsm_export): Print LFs to FP and not stdout.
1028         (print_short_info): Ditto.  Make use of gpgsm_print_name.
1029
1030         * server.c (cmd_export): Use output-fd instead of data lines; this
1031         was actually the specified way.
1032
1033 2002-06-24  Werner Koch  <wk@gnupg.org>
1034
1035         * gpgsm.c: Removed duped help entry for --list-keys.
1036         
1037         * gpgsm.c, gpgsm.h: New option --debug-no-path-validation.
1038
1039         * certpath.c (gpgsm_validate_path): Use it here instead of the
1040         debug flag hack.
1041
1042         * certpath.c (check_cert_policy): Return No_Policy_Match if the
1043         policy file could not be opened.
1044
1045 2002-06-20  Werner Koch  <wk@gnupg.org>
1046
1047         * certlist.c (gpgsm_add_to_certlist): Fixed locating of a
1048         certificate with the required key usage.
1049
1050         * gpgsm.c (main): Fixed a segv when using --outfile without an
1051         argument.
1052
1053         * keylist.c (print_capabilities): Also check for non-repudiation
1054         and data encipherment.
1055         * certlist.c (cert_usage_p): Test for signing and encryption was
1056         swapped.  Add a case for certification usage, handle
1057         non-repudiation and data encipherment.
1058         (gpgsm_cert_use_cert_p): New.
1059         (gpgsm_add_to_certlist): Added a CTRL argument and changed all
1060         callers to pass it.
1061         * certpath.c (gpgsm_validate_path): Use it here to print a status
1062         message. Added a CTRL argument and changed all callers to pass it.
1063         * decrypt.c (gpgsm_decrypt): Print a status message for wrong key
1064         usage.
1065         * verify.c (gpgsm_verify): Ditto.
1066         * keydb.c (classify_user_id): Allow a colon delimited fingerprint.
1067
1068 2002-06-19  Werner Koch  <wk@gnupg.org>
1069
1070         * call-agent.c (learn_cb): Use log_info instead of log_error on
1071         successful import.
1072
1073         * keydb.c (keydb_set_ephemeral): New.
1074         (keydb_store_cert): New are ephemeral, changed all callers.
1075         * keylist.c (list_external_cb): Store cert as ephemeral.
1076         * export.c (gpgsm_export): Kludge to export epehmeral certificates.
1077
1078         * gpgsm.c (main): New command --list-external-keys.
1079         
1080 2002-06-17  Werner Koch  <wk@gnupg.org>
1081
1082         * certreqgen.c (read_parameters): Improved error handling.
1083         (gpgsm_genkey): Print error message.
1084
1085 2002-06-13  Werner Koch  <wk@gnupg.org>
1086
1087         * gpgsm.c (main): New option --log-file.
1088
1089 2002-06-12  Werner Koch  <wk@gnupg.org>
1090
1091         * call-dirmngr.c (lookup_status_cb): New.
1092         (gpgsm_dirmngr_lookup): Use the status CB.  Add new arg CTRL and
1093         changed caller to pass it.
1094
1095         * gpgsm.c (open_fwrite): New.
1096         (main): Allow --output for --verify.
1097
1098         * sign.c (hash_and_copy_data): New.
1099         (gpgsm_sign): Implemented normal (non-detached) signatures.
1100         * gpgsm.c (main): Ditto.
1101         
1102         * certpath.c (gpgsm_validate_path): Special error handling for
1103         no policy match.
1104
1105 2002-06-10  Werner Koch  <wk@gnupg.org>
1106
1107         * server.c (get_status_string): Add STATUS_ERROR.
1108
1109         * certpath.c (gpgsm_validate_path): Tweaked the error checking to 
1110         return error codes in a more sensitive way.
1111         * verify.c (gpgsm_verify): Send status TRUST_NEVER also for a bad
1112         CA certificate and when the certificate has been revoked.  Issue
1113         TRUST_FULLY even when the cert has expired.  Append an error token
1114         to these status lines.  Issue the new generic error status when a
1115         cert was not found and when leaving the function.
1116
1117 2002-06-04  Werner Koch  <wk@gnupg.org>
1118
1119         * gpgsm.c (main): New command --list-sigs
1120         * keylist.c (list_cert_std): New.  Use it whenever colon mode is
1121         not used.
1122         (list_cert_chain): New.
1123
1124 2002-05-31  Werner Koch  <wk@gnupg.org>
1125
1126         * gpgsm.c (main): Don't print the "go ahead" message for an
1127         invalid command.
1128
1129 2002-05-23  Werner Koch  <wk@gnupg.org>
1130
1131         * import.c (gpgsm_import): Add error messages.
1132
1133 2002-05-21  Werner Koch  <wk@gnupg.org>
1134
1135         * keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
1136         (list_external_keys): New.
1137         (gpgsm_list_keys): Dispatcher for above.
1138         * call-dirmngr.c (lookup_cb,pattern_from_strlist)
1139         (gpgsm_dirmngr_lookup): New.
1140         * server.c (option_handler): Handle new option --list-mode.
1141         (do_listkeys): Handle options and actually use the mode argument.
1142         (get_status_string): New code TRUNCATED.
1143
1144         * import.c (gpgsm_import): Try to identify the type of input and
1145         handle certs-only messages.
1146
1147 2002-05-14  Werner Koch  <wk@gnupg.org>
1148
1149         * gpgsm.c: New option --faked-system-time
1150         * sign.c (gpgsm_sign): And use it here.
1151         * certpath.c (gpgsm_validate_path): Ditto.
1152
1153 2002-05-03  Werner Koch  <wk@gnupg.org>
1154
1155         * certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
1156         all callers.
1157         * verify.c (gpgsm_verify): Tweaked usage of log_debug and
1158         log_error.  Return EXPSIG status and add expiretime to VALIDSIG.
1159
1160 2002-04-26  Werner Koch  <wk@gnupg.org>
1161
1162         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
1163         Changed all users.
1164
1165         * call-agent.c (start_agent): Be more silent without -v.
1166         * call-dirmngr.c (start_dirmngr): Ditto.
1167
1168 2002-04-25  Werner Koch  <wk@gnupg.org>
1169
1170         * call-agent.c (start_agent): Make copies of old locales and check
1171         for setlocale.
1172
1173 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
1174
1175         * call-agent.c (start_agent): Fix error handling logic so the
1176         locale is always correctly reset.
1177
1178 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
1179
1180         * server.c (option_handler): Accept display, ttyname, ttytype,
1181         lc_ctype and lc_messages options.
1182         * gpgsm.c (main): Allocate memory for these options.
1183         * gpgsm.h (struct opt): Make corresponding members non-const.
1184
1185 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
1186
1187         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
1188         lc_ctype, lc_messages.
1189         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
1190         oTTYname, oTTYtype, oLCctype, oLCmessages.
1191         (opts): New entries for these options.
1192         (main): Handle these new options.
1193         * call-agent.c (start_agent): Set the various display and tty
1194         parameter after resetting.
1195
1196 2002-04-18  Werner Koch  <wk@gnupg.org>
1197
1198         * certreqgen.c (gpgsm_genkey): Write status output on success.
1199
1200 2002-04-15  Werner Koch  <wk@gnupg.org>
1201
1202         * gpgsm.c (main): Check ksba version.
1203
1204         * certpath.c (find_up): New to use the authorithKeyIdentifier.
1205         Use it in all other functions to locate the signing cert..
1206
1207 2002-04-11  Werner Koch  <wk@gnupg.org>
1208
1209         * certlist.c (cert_usable_p): New.
1210         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
1211         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
1212         (gpgsm_add_to_certlist): Check the key usage.
1213         * sign.c (gpgsm_sign): Ditto.
1214         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
1215         certificate was used.
1216         * decrypt.c (gpgsm_decrypt): Ditto
1217         * keylist.c (print_capabilities): Determine values from the cert.
1218
1219 2002-03-28  Werner Koch  <wk@gnupg.org>
1220
1221         * keylist.c (list_cert_colon): Fixed listing of crt record; the
1222         issuer is not at the right place.  Print a chainingID.
1223         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
1224         common errors.
1225
1226 2002-03-21  Werner Koch  <wk@gnupg.org>
1227
1228         * export.c: New.
1229         * gpgsm.c: Add command --export.
1230         * server.c (cmd_export): New.
1231         
1232 2002-03-13  Werner Koch  <wk@gnupg.org>
1233
1234         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
1235
1236 2002-03-12  Werner Koch  <wk@gnupg.org>
1237
1238         * certpath.c (check_cert_policy): Print the policy list.
1239
1240         * verify.c (gpgsm_verify): Detect certs-only message.
1241
1242 2002-03-11  Werner Koch  <wk@gnupg.org>
1243
1244         * import.c (gpgsm_import): Print a notice about imported certificates
1245         when in verbose mode.
1246
1247         * gpgsm.c (main): Print INV_RECP status.
1248         * server.c (cmd_recipient): Ditto.
1249
1250         * server.c (gpgsm_status2): New.  Allows for a list of strings.
1251         (gpgsm_status): Divert to gpgsm_status2.
1252
1253         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
1254         recipients are given.  Print a NO_RECP status.
1255
1256 2002-03-06  Werner Koch  <wk@gnupg.org>
1257
1258         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
1259         (do_listkeys): new.  Add pattern parsing.
1260
1261         * keylist.c (gpgsm_list_keys): Handle selection pattern.
1262
1263         * gpgsm.c: New command --learn-card
1264         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
1265
1266         * gpgsm.c (main): Print error messages for non-implemented commands.
1267
1268         * base64.c (base64_reader_cb): Use case insensitive compare of the
1269         Content-Type string to detect plain base-64.
1270
1271 2002-03-05  Werner Koch  <wk@gnupg.org>
1272
1273         * gpgsm.c, gpgsm.h: Add local_user.
1274         * sign.c (gpgsm_get_default_cert): New.
1275         (get_default_signer): Use the new function if local_user is not
1276         set otherwise used that value.
1277         * encrypt.c (get_default_recipient): Removed.
1278         (gpgsm_encrypt): Use gpgsm_get_default_cert.
1279
1280         * verify.c (gpgsm_verify): Better error text for a bad signature
1281         found by comparing the hashs.
1282
1283 2002-02-27  Werner Koch  <wk@gnupg.org>
1284
1285         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
1286         of assuan_transact.
1287
1288 2002-02-25  Werner Koch  <wk@gnupg.org>
1289
1290         * server.c (option_handler): Allow to use -2 for "send all certs
1291         except the root cert".
1292         * sign.c (add_certificate_list): Implement it here.
1293         * certpath.c (gpgsm_is_root_cert): New.
1294
1295 2002-02-19  Werner Koch  <wk@gnupg.org>
1296
1297         * certpath.c (check_cert_policy): New.
1298         (gpgsm_validate_path): And call it from here.
1299         * gpgsm.c (main): New options --policy-file,
1300         --disable-policy-checks and --enable-policy-checks.
1301         * gpgsm.h (opt): Added policy_file, no_policy_checks.
1302
1303 2002-02-18  Werner Koch  <wk@gnupg.org>
1304
1305         * certpath.c (gpgsm_validate_path): Ask the agent to add the
1306         certificate into the trusted list.
1307         * call-agent.c (gpgsm_agent_marktrusted): New.
1308
1309 2002-02-07  Werner Koch  <wk@gnupg.org>
1310
1311         * certlist.c (gpgsm_add_to_certlist): Check that the specified
1312         name identifies a certificate unambiguously.
1313         (gpgsm_find_cert): Ditto.
1314
1315         * server.c (cmd_listkeys): Check that the data stream is available.
1316         (cmd_listsecretkeys): Ditto.
1317         (has_option): New.
1318         (cmd_sign): Fix ambiguousity in option recognition.
1319
1320         * gpgsm.c (main): Enable --logger-fd.
1321
1322         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
1323         performance.
1324
1325         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
1326         the agent.
1327
1328         * keylist.c (list_cert_colon): Filter out control characters.
1329
1330 2002-02-06  Werner Koch  <wk@gnupg.org>
1331
1332         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
1333
1334         * server.c (reset_notify): Close input and output FDs.
1335         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
1336         (cmd_genkey): Close the FDs and release the recipient list even in
1337         the error case.
1338
1339 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
1340
1341         * sign.c (gpgsm_sign): Do not release certificate twice.
1342
1343 2002-01-29  Werner Koch  <wk@gnupg.org>
1344
1345         * call-agent.c (gpgsm_agent_havekey): New.
1346         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
1347         when we know that the secret key is available.
1348         (gpgsm_list_keys): New arg MODE, check whether a secret key is
1349         available.  Changed all callers.
1350         * gpgsm.c (main): New command --list-secret-keys.
1351         * server.c (cmd_listsecretkeys): New.
1352         (cmd_listkeys): Return secret keys with "crs" record.
1353
1354 2002-01-28  Werner Koch  <wk@gnupg.org>
1355
1356         * certreqgen.c (create_request): Store the email address in the req.
1357
1358 2002-01-25  Werner Koch  <wk@gnupg.org>
1359
1360         * gpgsm.c (main): Disable core dumps.
1361
1362         * sign.c (add_certificate_list): New.
1363         (gpgsm_sign): Add the certificates to the CMS object.
1364         * certpath.c (gpgsm_walk_cert_chain): New.
1365         * gpgsm.h (server_control_s): Add included_certs.
1366         * gpgsm.c: Add option --include-certs.
1367         (gpgsm_init_default_ctrl): New.
1368         (main): Call it.
1369         * server.c (gpgsm_server): Ditto.
1370         (option_handler): Support --include-certs.
1371
1372 2002-01-23  Werner Koch  <wk@gnupg.org>
1373
1374         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
1375         * certdump.c (gpgsm_dump_string): New.
1376         (print_dn): Replaced by above.
1377
1378 2002-01-22  Werner Koch  <wk@gnupg.org>
1379
1380         * certpath.c (unknown_criticals): New.
1381         (allowed_ca): New.
1382         (gpgsm_validate_path): Check validity, CA attribute, path length
1383         and unknown critical extensions.
1384
1385 2002-01-21  Werner Koch  <wk@gnupg.org>
1386
1387         * gpgsm.c: Add option --enable-crl-checks.
1388
1389         * call-agent.c (start_agent): Implemented socket based access.
1390         * call-dirmngr.c (start_dirmngr): Ditto.
1391
1392 2002-01-20  Werner Koch  <wk@gnupg.org>
1393
1394         * server.c (option_handler): New.
1395         (gpgsm_server): Register it with assuan.
1396
1397 2002-01-19  Werner Koch  <wk@gnupg.org>
1398
1399         * server.c (gpgsm_server): Use assuan_deinit_server and setup
1400         assuan logging if enabled.
1401         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
1402         an Assuan log file.
1403
1404         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
1405
1406 2002-01-15  Werner Koch  <wk@gnupg.org>
1407
1408         * import.c (gpgsm_import): Just do a basic cert check before
1409         storing it.
1410         * certpath.c (gpgsm_basic_cert_check): New.
1411
1412         * keydb.c (keydb_store_cert): New.
1413         * import.c (store_cert): Removed and change all caller to use
1414         the new function.
1415         * verify.c (store_cert): Ditto.
1416
1417         * certlist.c (gpgsm_add_to_certlist): Validate the path
1418
1419         * certpath.c (gpgsm_validate_path): Check the trust list.
1420         * call-agent.c (gpgsm_agent_istrusted): New.
1421
1422 2002-01-14  Werner Koch  <wk@gnupg.org>
1423
1424         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
1425         * certlist.c (gpgsm_find_cert): New.
1426
1427 2002-01-13  Werner Koch  <wk@gnupg.org>
1428
1429         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
1430         hash after the dot.
1431
1432 2002-01-11  Werner Koch  <wk@gnupg.org>
1433
1434         * call-dirmngr.c: New.
1435         * certpath.c (gpgsm_validate_path): Check the CRL here.
1436         * fingerprint.c (gpgsm_get_certid): New.
1437         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
1438
1439 2002-01-10  Werner Koch  <wk@gnupg.org>
1440
1441         * base64.c (gpgsm_create_writer): Allow to set the object name
1442
1443 2002-01-08  Werner Koch  <wk@gnupg.org>
1444
1445         * keydb.c (spacep): Removed because it is now in util.c
1446
1447         * server.c (cmd_genkey): New.
1448         * certreqgen.c: New.  The parameter handling code has been taken
1449         from gnupg/g10/keygen.c version 1.0.6.
1450         * call-agent.c (gpgsm_agent_genkey): New.
1451
1452 2002-01-02  Werner Koch  <wk@gnupg.org>
1453
1454         * server.c (rc_to_assuan_status): Removed and changed all callers
1455         to use map_to_assuan_status.
1456
1457 2001-12-20  Werner Koch  <wk@gnupg.org>
1458
1459         * verify.c (gpgsm_verify): Implemented non-detached signature
1460         verification.  Add OUT_FP arg, initialize a writer and changed all
1461         callers.
1462         * server.c (cmd_verify): Pass an out_fp if one has been set.
1463
1464         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
1465
1466         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
1467         global.
1468         (print_time): Renamed to gpgsm_dump_time, made global.
1469         (gpgsm_dump_serial): Take a real S-Expression as argument and
1470         print the first item.
1471         * keylist.c (list_cert_colon): Ditto.
1472         * keydb.c (keydb_search_issuer_sn): Ditto.
1473         * decrypt.c (print_integer_sexp): Removed and made callers 
1474         use gpgsm_dump_serial.
1475         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
1476         
1477 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
1478
1479         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
1480
1481 2001-12-18  Werner Koch  <wk@gnupg.org>
1482
1483         * verify.c (print_integer_sexp): Renamed from print_integer and
1484         print the serial number according to the S-Exp rules.
1485         * decrypt.c (print_integer_sexp): Ditto.
1486
1487 2001-12-17  Werner Koch  <wk@gnupg.org>
1488
1489         * keylist.c (list_cert_colon): Changed for new return value of
1490         get_serial.
1491         * keydb.c (keydb_search_issuer_sn): Ditto.
1492         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
1493         returingin functions.
1494         * fingerprint.c (gpgsm_get_keygrip): Ditto.
1495         * encrypt.c (encrypt_dek): Ditto
1496         * certcheck.c (gpgsm_check_cms_signature): Ditto
1497         * decrypt.c (prepare_decryption): Ditto.
1498         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
1499         use KsbaSexp type and calculate the length.
1500
1501         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
1502
1503         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
1504
1505         * fingerprint.c (gpgsm_get_keygrip): Use the new
1506         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
1507         therefore the grip values changed.
1508
1509 2001-12-15  Werner Koch  <wk@gnupg.org>
1510
1511         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
1512         kludge.
1513         (gpgsm_create_cms_signature): Removed the commented fake key
1514         code.  This makes the function pretty simple.
1515
1516         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
1517
1518         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
1519         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
1520
1521 2001-12-14  Werner Koch  <wk@gnupg.org>
1522
1523         * keylist.c (list_cert_colon): Kludge to show an email address
1524         encoded in the subject's DN.
1525
1526         * verify.c (gpgsm_verify): Add hash debug helpers
1527         * sign.c (gpgsm_sign): Ditto.
1528
1529         * base64.c (base64_reader_cb): Reset the linelen when we need to
1530         skip the line and adjusted test; I somehow forgot about DeMorgan.
1531
1532         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
1533         (cmd_import): Close the FDs on success.
1534         (close_message_fd): New.
1535         (input_notify): Setting autodetect_encoding to 0 after initializing
1536         it to 0 is pretty pointless.  Easy to fix.
1537
1538         * gpgsm.c (main): New option --debug-wait n, so that it is
1539         possible to attach gdb when used in server mode.
1540
1541         * sign.c (get_default_signer): Use keydb_classify_name here.
1542
1543 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
1544
1545         * call-agent.c (LINELENGTH): Removed.
1546         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
1547         (gpgsm_agent_pkdecrypt): Likewise.
1548
1549 2001-12-13  Werner Koch  <wk@gnupg.org>
1550
1551         * keylist.c (list_cert_colon): Print alternative names of subject
1552         and a few other values.
1553
1554 2001-12-12  Werner Koch  <wk@gnupg.org>
1555
1556         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
1557         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
1558
1559 2001-12-04  Werner Koch  <wk@gnupg.org>
1560
1561         * call-agent.c (read_from_agent): Check for inquire responses.
1562         (request_reply): Handle them using a new callback arg, changed all
1563         callers.
1564         (gpgsm_agent_pkdecrypt): New.
1565
1566 2001-11-27  Werner Koch  <wk@gnupg.org>
1567
1568         * base64.c: New.  Changed all other functions to use this instead
1569         of direct creation of ksba_reader/writer.
1570         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
1571
1572 2001-11-26  Werner Koch  <wk@gnupg.org>
1573
1574         * gpgsm.c: New option --agent-program
1575         * call-agent.c (start_agent): Allow to override the default path
1576         to the agent.
1577
1578         * keydb.c (keydb_add_resource): Create keybox
1579
1580         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
1581
1582         * server.c (rc_to_assuan_status): New.  Use it for all commands.
1583
1584         
1585  Copyright 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
1586
1587  This file is free software; as a special exception the author gives
1588  unlimited permission to copy and/or distribute it, with or without
1589  modifications, as long as this notice is preserved.
1590
1591  This file is distributed in the hope that it will be useful, but
1592  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1593  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.