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