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