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