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