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