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