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