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