bd3e6c34a1ca3458ef7c19fac0793f1b37e7ed19
[gnupg.git] / sm / ChangeLog
1 2002-06-12  Werner Koch  <wk@gnupg.org>
2
3         * gpgsm.c (open_fwrite): New.
4         (main): Allow --output for --verify.
5
6         * sign.c (hash_and_copy_data): New.
7         (gpgsm_sign): Implemented normal (non-detached) signatures.
8         * gpgsm.c (main): Ditto.
9         
10         * certpath.c (gpgsm_validate_path): Special error handling for
11         no policy match.
12
13 2002-06-10  Werner Koch  <wk@gnupg.org>
14
15         * server.c (get_status_string): Add STATUS_ERROR.
16
17         * certpath.c (gpgsm_validate_path): Tweaked the error checking to 
18         return error codes in a more sensitive way.
19         * verify.c (gpgsm_verify): Send status TRUST_NEVER also for a bad
20         CA certificate and when the certificate has been revoked.  Issue
21         TRUST_FULLY even when the cert has expired.  Append an error token
22         to these status lines.  Issue the new generic error status when a
23         cert was not found and when leaving the function.
24
25 2002-06-04  Werner Koch  <wk@gnupg.org>
26
27         * gpgsm.c (main): New command --list-sigs
28         * keylist.c (list_cert_std): New.  Use it whenever colon mode is
29         not used.
30         (list_cert_chain): New.
31
32 2002-05-31  Werner Koch  <wk@gnupg.org>
33
34         * gpgsm.c (main): Don't print the "go ahead" message for an
35         invalid command.
36
37 2002-05-23  Werner Koch  <wk@gnupg.org>
38
39         * import.c (gpgsm_import): Add error messages.
40
41 2002-05-21  Werner Koch  <wk@gnupg.org>
42
43         * keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
44         (list_external_keys): New.
45         (gpgsm_list_keys): Dispatcher for above.
46         * call-dirmngr.c (lookup_cb,pattern_from_strlist)
47         (gpgsm_dirmngr_lookup): New.
48         * server.c (option_handler): Handle new option --list-mode.
49         (do_listkeys): Handle options and actually use the mode argument.
50         (get_status_string): New code TRUNCATED.
51
52         * import.c (gpgsm_import): Try to identify the type of input and
53         handle certs-only messages.
54
55 2002-05-14  Werner Koch  <wk@gnupg.org>
56
57         * gpgsm.c: New option --faked-system-time
58         * sign.c (gpgsm_sign): And use it here.
59         * certpath.c (gpgsm_validate_path): Ditto.
60
61 2002-05-03  Werner Koch  <wk@gnupg.org>
62
63         * certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
64         all callers.
65         * verify.c (gpgsm_verify): Tweaked usage of log_debug and
66         log_error.  Return EXPSIG status and add expiretime to VALIDSIG.
67
68 2002-04-26  Werner Koch  <wk@gnupg.org>
69
70         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
71         Changed all users.
72
73         * call-agent.c (start_agent): Be more silent without -v.
74         * call-dirmngr.c (start_dirmngr): Ditto.
75
76 2002-04-25  Werner Koch  <wk@gnupg.org>
77
78         * call-agent.c (start_agent): Make copies of old locales and check
79         for setlocale.
80
81 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
82
83         * call-agent.c (start_agent): Fix error handling logic so the
84         locale is always correctly reset.
85
86 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
87
88         * server.c (option_handler): Accept display, ttyname, ttytype,
89         lc_ctype and lc_messages options.
90         * gpgsm.c (main): Allocate memory for these options.
91         * gpgsm.h (struct opt): Make corresponding members non-const.
92
93 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
94
95         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
96         lc_ctype, lc_messages.
97         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
98         oTTYname, oTTYtype, oLCctype, oLCmessages.
99         (opts): New entries for these options.
100         (main): Handle these new options.
101         * call-agent.c (start_agent): Set the various display and tty
102         parameter after resetting.
103
104 2002-04-18  Werner Koch  <wk@gnupg.org>
105
106         * certreqgen.c (gpgsm_genkey): Write status output on success.
107
108 2002-04-15  Werner Koch  <wk@gnupg.org>
109
110         * gpgsm.c (main): Check ksba version.
111
112         * certpath.c (find_up): New to use the authorithKeyIdentifier.
113         Use it in all other functions to locate the signing cert..
114
115 2002-04-11  Werner Koch  <wk@gnupg.org>
116
117         * certlist.c (cert_usable_p): New.
118         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
119         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
120         (gpgsm_add_to_certlist): Check the key usage.
121         * sign.c (gpgsm_sign): Ditto.
122         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
123         certificate was used.
124         * decrypt.c (gpgsm_decrypt): Ditto
125         * keylist.c (print_capabilities): Determine values from the cert.
126
127 2002-03-28  Werner Koch  <wk@gnupg.org>
128
129         * keylist.c (list_cert_colon): Fixed listing of crt record; the
130         issuer is not at the right place.  Print a chainingID.
131         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
132         common errors.
133
134 2002-03-21  Werner Koch  <wk@gnupg.org>
135
136         * export.c: New.
137         * gpgsm.c: Add command --export.
138         * server.c (cmd_export): New.
139         
140 2002-03-13  Werner Koch  <wk@gnupg.org>
141
142         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
143
144 2002-03-12  Werner Koch  <wk@gnupg.org>
145
146         * certpath.c (check_cert_policy): Print the policy list.
147
148         * verify.c (gpgsm_verify): Detect certs-only message.
149
150 2002-03-11  Werner Koch  <wk@gnupg.org>
151
152         * import.c (gpgsm_import): Print a notice about imported certificates
153         when in verbose mode.
154
155         * gpgsm.c (main): Print INV_RECP status.
156         * server.c (cmd_recipient): Ditto.
157
158         * server.c (gpgsm_status2): New.  Allows for a list of strings.
159         (gpgsm_status): Divert to gpgsm_status2.
160
161         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
162         recipients are given.  Print a NO_RECP status.
163
164 2002-03-06  Werner Koch  <wk@gnupg.org>
165
166         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
167         (do_listkeys): new.  Add pattern parsing.
168
169         * keylist.c (gpgsm_list_keys): Handle selection pattern.
170
171         * gpgsm.c: New command --learn-card
172         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
173
174         * gpgsm.c (main): Print error messages for non-implemented commands.
175
176         * base64.c (base64_reader_cb): Use case insensitive compare of the
177         Content-Type string to detect plain base-64.
178
179 2002-03-05  Werner Koch  <wk@gnupg.org>
180
181         * gpgsm.c, gpgsm.h: Add local_user.
182         * sign.c (gpgsm_get_default_cert): New.
183         (get_default_signer): Use the new function if local_user is not
184         set otherwise used that value.
185         * encrypt.c (get_default_recipient): Removed.
186         (gpgsm_encrypt): Use gpgsm_get_default_cert.
187
188         * verify.c (gpgsm_verify): Better error text for a bad signature
189         found by comparing the hashs.
190
191 2002-02-27  Werner Koch  <wk@gnupg.org>
192
193         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
194         of assuan_transact.
195
196 2002-02-25  Werner Koch  <wk@gnupg.org>
197
198         * server.c (option_handler): Allow to use -2 for "send all certs
199         except the root cert".
200         * sign.c (add_certificate_list): Implement it here.
201         * certpath.c (gpgsm_is_root_cert): New.
202
203 2002-02-19  Werner Koch  <wk@gnupg.org>
204
205         * certpath.c (check_cert_policy): New.
206         (gpgsm_validate_path): And call it from here.
207         * gpgsm.c (main): New options --policy-file,
208         --disable-policy-checks and --enable-policy-checks.
209         * gpgsm.h (opt): Added policy_file, no_policy_checks.
210
211 2002-02-18  Werner Koch  <wk@gnupg.org>
212
213         * certpath.c (gpgsm_validate_path): Ask the agent to add the
214         certificate into the trusted list.
215         * call-agent.c (gpgsm_agent_marktrusted): New.
216
217 2002-02-07  Werner Koch  <wk@gnupg.org>
218
219         * certlist.c (gpgsm_add_to_certlist): Check that the specified
220         name identifies a certificate unambiguously.
221         (gpgsm_find_cert): Ditto.
222
223         * server.c (cmd_listkeys): Check that the data stream is available.
224         (cmd_listsecretkeys): Ditto.
225         (has_option): New.
226         (cmd_sign): Fix ambiguousity in option recognition.
227
228         * gpgsm.c (main): Enable --logger-fd.
229
230         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
231         performance.
232
233         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
234         the agent.
235
236         * keylist.c (list_cert_colon): Filter out control characters.
237
238 2002-02-06  Werner Koch  <wk@gnupg.org>
239
240         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
241
242         * server.c (reset_notify): Close input and output FDs.
243         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
244         (cmd_genkey): Close the FDs and release the recipient list even in
245         the error case.
246
247 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
248
249         * sign.c (gpgsm_sign): Do not release certificate twice.
250
251 2002-01-29  Werner Koch  <wk@gnupg.org>
252
253         * call-agent.c (gpgsm_agent_havekey): New.
254         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
255         when we know that the secret key is available.
256         (gpgsm_list_keys): New arg MODE, check whether a secret key is
257         available.  Changed all callers.
258         * gpgsm.c (main): New command --list-secret-keys.
259         * server.c (cmd_listsecretkeys): New.
260         (cmd_listkeys): Return secret keys with "crs" record.
261
262 2002-01-28  Werner Koch  <wk@gnupg.org>
263
264         * certreqgen.c (create_request): Store the email address in the req.
265
266 2002-01-25  Werner Koch  <wk@gnupg.org>
267
268         * gpgsm.c (main): Disable core dumps.
269
270         * sign.c (add_certificate_list): New.
271         (gpgsm_sign): Add the certificates to the CMS object.
272         * certpath.c (gpgsm_walk_cert_chain): New.
273         * gpgsm.h (server_control_s): Add included_certs.
274         * gpgsm.c: Add option --include-certs.
275         (gpgsm_init_default_ctrl): New.
276         (main): Call it.
277         * server.c (gpgsm_server): Ditto.
278         (option_handler): Support --include-certs.
279
280 2002-01-23  Werner Koch  <wk@gnupg.org>
281
282         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
283         * certdump.c (gpgsm_dump_string): New.
284         (print_dn): Replaced by above.
285
286 2002-01-22  Werner Koch  <wk@gnupg.org>
287
288         * certpath.c (unknown_criticals): New.
289         (allowed_ca): New.
290         (gpgsm_validate_path): Check validity, CA attribute, path length
291         and unknown critical extensions.
292
293 2002-01-21  Werner Koch  <wk@gnupg.org>
294
295         * gpgsm.c: Add option --enable-crl-checks.
296
297         * call-agent.c (start_agent): Implemented socket based access.
298         * call-dirmngr.c (start_dirmngr): Ditto.
299
300 2002-01-20  Werner Koch  <wk@gnupg.org>
301
302         * server.c (option_handler): New.
303         (gpgsm_server): Register it with assuan.
304
305 2002-01-19  Werner Koch  <wk@gnupg.org>
306
307         * server.c (gpgsm_server): Use assuan_deinit_server and setup
308         assuan logging if enabled.
309         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
310         an Assuan log file.
311
312         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
313
314 2002-01-15  Werner Koch  <wk@gnupg.org>
315
316         * import.c (gpgsm_import): Just do a basic cert check before
317         storing it.
318         * certpath.c (gpgsm_basic_cert_check): New.
319
320         * keydb.c (keydb_store_cert): New.
321         * import.c (store_cert): Removed and change all caller to use
322         the new function.
323         * verify.c (store_cert): Ditto.
324
325         * certlist.c (gpgsm_add_to_certlist): Validate the path
326
327         * certpath.c (gpgsm_validate_path): Check the trust list.
328         * call-agent.c (gpgsm_agent_istrusted): New.
329
330 2002-01-14  Werner Koch  <wk@gnupg.org>
331
332         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
333         * certlist.c (gpgsm_find_cert): New.
334
335 2002-01-13  Werner Koch  <wk@gnupg.org>
336
337         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
338         hash after the dot.
339
340 2002-01-11  Werner Koch  <wk@gnupg.org>
341
342         * call-dirmngr.c: New.
343         * certpath.c (gpgsm_validate_path): Check the CRL here.
344         * fingerprint.c (gpgsm_get_certid): New.
345         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
346
347 2002-01-10  Werner Koch  <wk@gnupg.org>
348
349         * base64.c (gpgsm_create_writer): Allow to set the object name
350
351 2002-01-08  Werner Koch  <wk@gnupg.org>
352
353         * keydb.c (spacep): Removed because it is now in util.c
354
355         * server.c (cmd_genkey): New.
356         * certreqgen.c: New.  The parameter handling code has been taken
357         from gnupg/g10/keygen.c version 1.0.6.
358         * call-agent.c (gpgsm_agent_genkey): New.
359
360 2002-01-02  Werner Koch  <wk@gnupg.org>
361
362         * server.c (rc_to_assuan_status): Removed and changed all callers
363         to use map_to_assuan_status.
364
365 2001-12-20  Werner Koch  <wk@gnupg.org>
366
367         * verify.c (gpgsm_verify): Implemented non-detached signature
368         verification.  Add OUT_FP arg, initialize a writer and changed all
369         callers.
370         * server.c (cmd_verify): Pass an out_fp if one has been set.
371
372         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
373
374         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
375         global.
376         (print_time): Renamed to gpgsm_dump_time, made global.
377         (gpgsm_dump_serial): Take a real S-Expression as argument and
378         print the first item.
379         * keylist.c (list_cert_colon): Ditto.
380         * keydb.c (keydb_search_issuer_sn): Ditto.
381         * decrypt.c (print_integer_sexp): Removed and made callers 
382         use gpgsm_dump_serial.
383         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
384         
385 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
386
387         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
388
389 2001-12-18  Werner Koch  <wk@gnupg.org>
390
391         * verify.c (print_integer_sexp): Renamed from print_integer and
392         print the serial number according to the S-Exp rules.
393         * decrypt.c (print_integer_sexp): Ditto.
394
395 2001-12-17  Werner Koch  <wk@gnupg.org>
396
397         * keylist.c (list_cert_colon): Changed for new return value of
398         get_serial.
399         * keydb.c (keydb_search_issuer_sn): Ditto.
400         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
401         returingin functions.
402         * fingerprint.c (gpgsm_get_keygrip): Ditto.
403         * encrypt.c (encrypt_dek): Ditto
404         * certcheck.c (gpgsm_check_cms_signature): Ditto
405         * decrypt.c (prepare_decryption): Ditto.
406         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
407         use KsbaSexp type and calculate the length.
408
409         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
410
411         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
412
413         * fingerprint.c (gpgsm_get_keygrip): Use the new
414         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
415         therefore the grip values changed.
416
417 2001-12-15  Werner Koch  <wk@gnupg.org>
418
419         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
420         kludge.
421         (gpgsm_create_cms_signature): Removed the commented fake key
422         code.  This makes the function pretty simple.
423
424         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
425
426         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
427         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
428
429 2001-12-14  Werner Koch  <wk@gnupg.org>
430
431         * keylist.c (list_cert_colon): Kludge to show an email address
432         encoded in the subject's DN.
433
434         * verify.c (gpgsm_verify): Add hash debug helpers
435         * sign.c (gpgsm_sign): Ditto.
436
437         * base64.c (base64_reader_cb): Reset the linelen when we need to
438         skip the line and adjusted test; I somehow forgot about DeMorgan.
439
440         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
441         (cmd_import): Close the FDs on success.
442         (close_message_fd): New.
443         (input_notify): Setting autodetect_encoding to 0 after initializing
444         it to 0 is pretty pointless.  Easy to fix.
445
446         * gpgsm.c (main): New option --debug-wait n, so that it is
447         possible to attach gdb when used in server mode.
448
449         * sign.c (get_default_signer): Use keydb_classify_name here.
450
451 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
452
453         * call-agent.c (LINELENGTH): Removed.
454         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
455         (gpgsm_agent_pkdecrypt): Likewise.
456
457 2001-12-13  Werner Koch  <wk@gnupg.org>
458
459         * keylist.c (list_cert_colon): Print alternative names of subject
460         and a few other values.
461
462 2001-12-12  Werner Koch  <wk@gnupg.org>
463
464         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
465         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
466
467 2001-12-04  Werner Koch  <wk@gnupg.org>
468
469         * call-agent.c (read_from_agent): Check for inquire responses.
470         (request_reply): Handle them using a new callback arg, changed all
471         callers.
472         (gpgsm_agent_pkdecrypt): New.
473
474 2001-11-27  Werner Koch  <wk@gnupg.org>
475
476         * base64.c: New.  Changed all other functions to use this instead
477         of direct creation of ksba_reader/writer.
478         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
479
480 2001-11-26  Werner Koch  <wk@gnupg.org>
481
482         * gpgsm.c: New option --agent-program
483         * call-agent.c (start_agent): Allow to override the default path
484         to the agent.
485
486         * keydb.c (keydb_add_resource): Create keybox
487
488         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
489
490         * server.c (rc_to_assuan_status): New.  Use it for all commands.
491
492         
493  Copyright 2001, 2002 Free Software Foundation, Inc.
494
495  This file is free software; as a special exception the author gives
496  unlimited permission to copy and/or distribute it, with or without
497  modifications, as long as this notice is preserved.
498
499  This file is distributed in the hope that it will be useful, but
500  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
501  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.