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