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