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