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