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