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