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