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