~hamo/ubuntu/precise/grub2/grub2.hi_res

« back to all changes in this revision

Viewing changes to grub-core/lib/libgcrypt/cipher/ChangeLog

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson, Colin Watson, Robert Millan, Updated translations
  • Date: 2010-11-22 12:24:56 UTC
  • mfrom: (1.26.4 upstream) (17.3.36 sid)
  • mto: (17.3.43 sid)
  • mto: This revision was merged to the branch mainline in revision 89.
  • Revision ID: james.westby@ubuntu.com-20101122122456-y82z3sfb7k4zfdcc
Tags: 1.99~20101122-1
[ Colin Watson ]
* New Bazaar snapshot.  Too many changes to list in full, but some of the
  more user-visible ones are as follows:
  - GRUB script:
    + Function parameters, "break", "continue", "shift", "setparams",
      "return", and "!".
    + "export" command supports multiple variable names.
    + Multi-line quoted strings support.
    + Wildcard expansion.
  - sendkey support.
  - USB hotunplugging and USB serial support.
  - Rename CD-ROM to cd on BIOS.
  - Add new --boot-directory option to grub-install, grub-reboot, and
    grub-set-default; the old --root-directory option is still accepted
    but was often confusing.
  - Basic btrfs detection/UUID support (but no file reading yet).
  - bash-completion for utilities.
  - If a device is listed in device.map, always assume that it is
    BIOS-visible rather than using extra layers such as LVM or RAID.
  - Add grub-mknetdir script (closes: #550658).
  - Remove deprecated "root" command.
  - Handle RAID devices containing virtio components.
  - GRUB Legacy configuration file support (via grub-menulst2cfg).
  - Keyboard layout support (via grub-mklayout and grub-kbdcomp).
  - Check generated grub.cfg for syntax errors before saving.
  - Pause execution for at most ten seconds if any errors are displayed,
    so that the user has a chance to see them.
  - Support submenus.
  - Write embedding zone using Reed-Solomon, so that it's robust against
    being partially overwritten (closes: #550702, #591416, #593347).
  - GRUB_DISABLE_LINUX_RECOVERY and GRUB_DISABLE_NETBSD_RECOVERY merged
    into a single GRUB_DISABLE_RECOVERY variable.
  - Fix loader memory allocation failure (closes: #551627).
  - Don't call savedefault on recovery entries (closes: #589325).
  - Support triple-indirect blocks on ext2 (closes: #543924).
  - Recognise DDF1 fake RAID (closes: #603354).

[ Robert Millan ]
* Use dpkg architecture wildcards.

[ Updated translations ]
* Slovenian (Vanja Cvelbar).  Closes: #604003
* Dzongkha (dawa pemo via Tenzin Dendup).  Closes: #604102

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
2009-01-22  Werner Koch  <wk@g10code.com>
 
2
 
 
3
        * ecc.c (compute_keygrip): Remove superfluous const.
 
4
 
 
5
2009-01-06  Werner Koch  <wk@g10code.com>
 
6
 
 
7
        * rmd160.c (oid_spec_rmd160): Add TeleTrust identifier.
 
8
 
 
9
2008-12-10  Werner Koch  <wk@g10code.com>
 
10
 
 
11
        * dsa.c (generate): Add arg DOMAIN and use it if specified.
 
12
        (generate_fips186): Ditto.
 
13
        (dsa_generate_ext): Parse and check the optional "domain"
 
14
        parameter and pass them to the generate functions.
 
15
 
 
16
        * rijndael.c (rijndael_names): Add "AES128" and "AES-128".
 
17
        (rijndael192_names): Add "AES-192".
 
18
        (rijndael256_names): Add "AES-256".
 
19
 
 
20
2008-12-05  Werner Koch  <wk@g10code.com>
 
21
 
 
22
        * dsa.c (generate): Add arg TRANSIENT_KEY and use it to detrmine
 
23
        the RNG quality needed.
 
24
        (dsa_generate_ext): Parse the transient-key flag und pass it to
 
25
        generate.
 
26
 
 
27
2008-11-28  Werner Koch  <wk@g10code.com>
 
28
 
 
29
        * dsa.c (generate_fips186): Add arg DERIVEPARMS and use the seed
 
30
        value if available.
 
31
 
 
32
        * primegen.c (_gcry_generate_fips186_2_prime): Fix inner p loop.
 
33
 
 
34
2008-11-26  Werner Koch  <wk@g10code.com>
 
35
 
 
36
        * primegen.c (_gcry_generate_fips186_3_prime): New.
 
37
        * dsa.c (generate_fips186): Add arg USE_FIPS186_2.
 
38
        (dsa_generate_ext): Parse new flag use-fips183-2.
 
39
 
 
40
2008-11-25  Werner Koch  <wk@g10code.com>
 
41
 
 
42
        * dsa.c (generate_fips186): New.
 
43
        (dsa_generate_ext): Use new function if derive-parms are given or
 
44
        if in FIPS mode.
 
45
        * primegen.c (_gcry_generate_fips186_2_prime): New.
 
46
 
 
47
2008-11-24  Werner Koch  <wk@g10code.com>
 
48
 
 
49
        * pubkey.c (gcry_pk_genkey): Insert code to output extrainfo.
 
50
        (pubkey_generate): Add arg R_EXTRAINFO and pass it to the extended
 
51
        key generation function.
 
52
        * rsa.c (gen_x931_parm_xp, gen_x931_parm_xi): New.
 
53
        (generate_x931): Generate params if not given.
 
54
        (rsa_generate_ext): Parse use-x931 flag.  Return p-q-swapped
 
55
        indicator.
 
56
        * dsa.c (dsa_generate_ext): Put RETFACTORS into R_EXTRAINFO if
 
57
        possible.
 
58
 
 
59
        * pubkey.c (gcry_pk_genkey): Remove parsing of almost all
 
60
        parameters and pass the parameter S-expression to pubkey_generate.
 
61
        (pubkey_generate): Simplify by requitring modules to parse the
 
62
        parameters. Remove the special cases for Elgamal and ECC.
 
63
        (sexp_elements_extract_ecc): Add arg EXTRASPEC and use it.  Fix
 
64
        small memory leak.
 
65
        (sexp_to_key): Pass EXTRASPEC to sexp_elements_extract_ecc.
 
66
        (pubkey_table) [USE_ELGAMAL]: Add real extraspec.
 
67
        * rsa.c (rsa_generate_ext): Adjust for new calling convention.
 
68
        * dsa.c (dsa_generate_ext): Ditto.
 
69
        * elgamal.c (_gcry_elg_generate): Ditto. Rename to elg_generate_ext.
 
70
        (elg_generate): New.
 
71
        (_gcry_elg_generate_using_x): Remove after merging code with
 
72
        elg_generate_ext.
 
73
        (_gcry_pubkey_extraspec_elg): New.
 
74
        (_gcry_elg_check_secret_key, _gcry_elg_encrypt, _gcry_elg_sign) 
 
75
        (_gcry_elg_verify, _gcry_elg_get_nbits): Make static and remove
 
76
        _gcry_ prefix.
 
77
        * ecc.c (_gcry_ecc_generate): Rename to ecc_generate_ext and
 
78
        adjust for new calling convention.
 
79
        (_gcry_ecc_get_param): Rename to ecc_get_param and make static.
 
80
        (_gcry_pubkey_extraspec_ecdsa): Add ecc_generate_ext and
 
81
        ecc_get_param.
 
82
        
 
83
2008-11-20  Werner Koch  <wk@g10code.com>
 
84
 
 
85
        * pubkey.c (pubkey_generate): Add arg DERIVEPARMS.
 
86
        (gcry_pk_genkey): Parse derive-parms and pass it to above.
 
87
        * rsa.c (generate_x931): New.
 
88
        (rsa_generate_ext): Add arg DERIVEPARMS and call new function in
 
89
        fips mode or if DERIVEPARMS is given.
 
90
        * primegen.c (_gcry_derive_x931_prime, find_x931_prime): New.
 
91
 
 
92
2008-11-19  Werner Koch  <wk@g10code.com>
 
93
 
 
94
        * rsa.c (rsa_decrypt): Use gcry_create_nonce for blinding.
 
95
        (generate): Rename to generate_std.
 
96
 
 
97
2008-11-05  Werner Koch  <wk@g10code.com>
 
98
 
 
99
        * md.c (md_open): Use a switch to set the Bsize.
 
100
        (prepare_macpads): Fix long key case for SHA384 and SHA512.
 
101
 
 
102
        * cipher.c (gcry_cipher_handle): Add field EXTRASPEC.
 
103
        (gcry_cipher_open): Set it.
 
104
        (gcry_cipher_ctl): Add private control code to disable weak key
 
105
        detection and to return the current input block.
 
106
        * des.c (_tripledes_ctx): Add field FLAGS.
 
107
        (do_tripledes_set_extra_info): New.
 
108
        (_gcry_cipher_extraspec_tripledes): Add new function.
 
109
        (do_tripledes_setkey): Disable weak key detection.
 
110
 
 
111
2008-10-24  Werner Koch  <wk@g10code.com>
 
112
 
 
113
        * md.c (digest_table): Allow MD5 in fips mode.
 
114
        (md_register_default): Take special action for MD5.
 
115
        (md_enable, gcry_md_hash_buffer): Ditto.
 
116
 
 
117
2008-09-30  Werner Koch  <wk@g10code.com>
 
118
 
 
119
        * rijndael.c (do_setkey): Properly align "t" and "tk".
 
120
        (prepare_decryption): Properly align "w".  Fixes bug #936.
 
121
 
 
122
2008-09-18  Werner Koch  <wk@g10code.com>
 
123
 
 
124
        * pubkey.c (gcry_pk_genkey): Parse domain parameter.
 
125
        (pubkey_generate): Add new arg DOMAIN and remove special case for
 
126
        DSA with qbits.
 
127
        * rsa.c (rsa_generate): Add dummy args QBITS, NAME and DOMAIN and
 
128
        rename to rsa_generate_ext.  Change caller.
 
129
        (_gcry_rsa_generate, _gcry_rsa_check_secret_key) 
 
130
        (_gcry_rsa_encrypt, _gcry_rsa_decrypt, _gcry_rsa_sign) 
 
131
        (_gcry_rsa_verify, _gcry_rsa_get_nbits): Make static and remove
 
132
        _gcry_ prefix.
 
133
        (_gcry_pubkey_spec_rsa, _gcry_pubkey_extraspec_rsa): Adjust names.
 
134
        * dsa.c (dsa_generate_ext): New.
 
135
        (_gcry_dsa_generate): Replace code by a call to dsa_generate.
 
136
        (_gcry_dsa_check_secret_key, _gcry_dsa_sign, _gcry_dsa_verify)
 
137
        (_gcry_dsa_get_nbits): Make static and remove _gcry prefix.
 
138
        (_gcry_dsa_generate2): Remove.
 
139
        (_gcry_pubkey_spec_dsa): Adjust to name changes.
 
140
        (_gcry_pubkey_extraspec_rsa): Add dsa_generate_ext.
 
141
 
 
142
2008-09-16  Werner Koch  <wk@g10code.com>
 
143
 
 
144
        * ecc.c (run_selftests): Add arg EXTENDED.
 
145
 
 
146
2008-09-12  Werner Koch  <wk@g10code.com>
 
147
 
 
148
        * rsa.c (test_keys): Do a bad case signature check.
 
149
        * dsa.c (test_keys): Do a bad case check.
 
150
 
 
151
        * cipher.c (_gcry_cipher_selftest): Add arg EXTENDED and pass it
 
152
        to the called tests.
 
153
        * md.c (_gcry_md_selftest): Ditto.
 
154
        * pubkey.c (_gcry_pk_selftest): Ditto.
 
155
        * rijndael.c (run_selftests): Add arg EXTENDED and pass it to the
 
156
        called tests.
 
157
        (selftest_fips_128): Add arg EXTENDED and run only one test
 
158
        non-extended mode.
 
159
        (selftest_fips_192): Add dummy arg EXTENDED.
 
160
        (selftest_fips_256): Ditto.
 
161
        * hmac-tests.c (_gcry_hmac_selftest): Ditto.
 
162
        (run_selftests): Ditto.
 
163
        (selftests_sha1): Add arg EXTENDED and run only one test
 
164
        non-extended mode.
 
165
        (selftests_sha224, selftests_sha256): Ditto.
 
166
        (selftests_sha384, selftests_sha512): Ditto.
 
167
        * sha1.c (run_selftests): Add arg EXTENDED and pass it to the
 
168
        called test.
 
169
        (selftests_sha1): Add arg EXTENDED and run only one test
 
170
        non-extended mode.
 
171
        * sha256.c (run_selftests): Add arg EXTENDED and pass it to the
 
172
        called tests.
 
173
        (selftests_sha224): Add arg EXTENDED and run only one test
 
174
        non-extended mode.
 
175
        (selftests_sha256): Ditto.
 
176
        * sha512.c (run_selftests): Add arg EXTENDED and pass it to the
 
177
        called tests.
 
178
        (selftests_sha384): Add arg EXTENDED and run only one test
 
179
        non-extended mode.
 
180
        (selftests_sha512): Ditto.
 
181
        * des.c (run_selftests): Add arg EXTENDED and pass it to the
 
182
        called test.
 
183
        (selftest_fips): Add dummy arg EXTENDED.
 
184
        * rsa.c (run_selftests): Add dummy arg EXTENDED.
 
185
 
 
186
        * dsa.c (run_selftests): Add dummy arg EXTENDED.
 
187
 
 
188
        * rsa.c (extract_a_from_sexp): New.
 
189
        (selftest_encr_1024): Check that the ciphertext does not match the
 
190
        plaintext.
 
191
        (test_keys): Improve tests and return an error status.
 
192
        (generate): Return an error if test_keys fails.
 
193
        * dsa.c (test_keys): Add comments and return an error status.
 
194
        (generate): Return an error if test_keys failed.
 
195
 
 
196
2008-09-11  Werner Koch  <wk@g10code.com>
 
197
 
 
198
        * rsa.c (_gcry_rsa_decrypt): Return an error instead of calling
 
199
        BUG in case of a practically impossible condition.
 
200
        (sample_secret_key, sample_public_key): New.
 
201
        (selftest_sign_1024, selftest_encr_1024): New.
 
202
        (selftests_rsa): Implement tests.
 
203
        * dsa.c (sample_secret_key, sample_public_key): New.
 
204
        (selftest_sign_1024): New.
 
205
        (selftests_dsa): Implement tests.
 
206
 
 
207
2008-09-09  Werner Koch  <wk@g10code.com>
 
208
 
 
209
        * hmac-tests.c (selftests_sha1): Add tests.
 
210
        (selftests_sha224, selftests_sha384, selftests_sha512): Make up tests.
 
211
 
 
212
        * hash-common.c, hash-common.h: New.
 
213
        * sha1.c (selftests_sha1): Add 3 tests.
 
214
        * sha256.c (selftests_sha256, selftests_sha224): Ditto.
 
215
        * sha512.c (selftests_sha512, selftests_sha384): Ditto.
 
216
 
 
217
2008-08-29  Werner Koch  <wk@g10code.com>
 
218
 
 
219
        * pubkey.c (gcry_pk_get_keygrip): Remove the special case for RSA
 
220
        and check whether a custom computation function has been setup.
 
221
        * rsa.c (compute_keygrip): New.
 
222
        (_gcry_pubkey_extraspec_rsa): Setup this function.
 
223
        * ecc.c (compute_keygrip): New.
 
224
        (_gcry_pubkey_extraspec_ecdsa): Setup this function.
 
225
 
 
226
2008-08-28  Werner Koch  <wk@g10code.com>
 
227
 
 
228
        * cipher.c (cipher_decrypt, cipher_encrypt): Return an error if
 
229
        mode NONE is used.
 
230
        (gcry_cipher_open): Allow mode NONE only with a debug flag set and
 
231
        if not in FIPS mode.
 
232
 
 
233
2008-08-26  Werner Koch  <wk@g10code.com>
 
234
 
 
235
        * pubkey.c (pubkey_generate): Add arg KEYGEN_FLAGS.
 
236
        (gcry_pk_genkey): Implement new parameter "transient-key" and
 
237
        pass it as flags to pubkey_generate.
 
238
        (pubkey_generate): Make use of an ext_generate function.
 
239
        * rsa.c (generate): Add new arg transient_key and pass appropriate
 
240
        args to the prime generator.
 
241
        (_gcry_rsa_generate): Factor all code out to ...
 
242
        (rsa_generate): .. new func with extra arg KEYGEN_FLAGS.
 
243
        (_gcry_pubkey_extraspec_ecdsa): Setup rsa_generate.
 
244
        * primegen.c (_gcry_generate_secret_prime) 
 
245
        (_gcry_generate_public_prime): Add new arg RANDOM_LEVEL.
 
246
 
 
247
2008-08-21  Werner Koch  <wk@g10code.com>
 
248
 
 
249
        * primegen.c (_gcry_generate_secret_prime)
 
250
        (_gcry_generate_public_prime): Use a constant macro for the random
 
251
        level.
 
252
        
 
253
2008-08-19  Werner Koch  <wk@g10code.com>
 
254
 
 
255
        * pubkey.c (sexp_elements_extract_ecc) [!USE_ECC]: Do not allow
 
256
        allow "curve" parameter.
 
257
 
 
258
2008-08-15  Werner Koch  <wk@g10code.com>
 
259
 
 
260
        * pubkey.c (_gcry_pk_selftest): New.
 
261
        * dsa.c (selftests_dsa, run_selftests): New.
 
262
        * rsa.c (selftests_rsa, run_selftests): New.
 
263
        * ecc.c (selftests_ecdsa, run_selftests): New.
 
264
 
 
265
        * md.c (_gcry_md_selftest): New.
 
266
        * sha1.c (run_selftests, selftests_sha1): New.
 
267
        * sha256.c (selftests_sha224, selftests_sha256, run_selftests): New.
 
268
        * sha512.c (selftests_sha384, selftests_sha512, run_selftests): New.
 
269
 
 
270
        * des.c (selftest): Remove static variable form selftest.
 
271
        (des_setkey): No on-the-fly self test in fips mode.
 
272
        (tripledes_set3keys): Ditto.
 
273
 
 
274
        * cipher.c (_gcry_cipher_setkey, _gcry_cipher_setiv): 
 
275
 
 
276
        * dsa.c (generate): Bail out in fips mode if NBITS is less than 1024.
 
277
        * rsa.c (generate): Return an error code if the the requested size
 
278
        is less than 1024 and we are in fpis mode.
 
279
        (_gcry_rsa_generate): Take care of that error code.
 
280
 
 
281
        * ecc.c (generate_curve): In fips mode enable only NIST curves.
 
282
 
 
283
        * cipher.c (_gcry_cipher_selftest): New.
 
284
 
 
285
        * sha512.c (_gcry_digest_extraspec_sha384)
 
286
        (_gcry_digest_extraspec_sha512): New.
 
287
        * sha256.c (_gcry_digest_extraspec_sha224)
 
288
        (_gcry_digest_extraspec_sha256): New.
 
289
        * sha1.c (_gcry_digest_extraspec_sha1): New.
 
290
        * ecc.c (_gcry_pubkey_extraspec_ecdsa): New.
 
291
        * dsa.c (_gcry_pubkey_extraspec_dsa): New.
 
292
        * rsa.c (_gcry_pubkey_extraspec_rsa): New.
 
293
        * rijndael.c (_gcry_cipher_extraspec_aes)
 
294
        (_gcry_cipher_extraspec_aes192, _gcry_cipher_extraspec_aes256): New.
 
295
        * des.c (_gcry_cipher_extraspec_tripledes): New.
 
296
 
 
297
        * cipher.c (gcry_cipher_register): Rename to _gcry_cipher_register.
 
298
        Add arg EXTRASPEC.
 
299
        (dummy_extra_spec): New.
 
300
        (cipher_table_entry): Add extraspec field.
 
301
        * md.c (_gcry_md_register): Rename to _gcry_md_register.  Add
 
302
        arg EXTRASPEC.
 
303
        (dummy_extra_spec): New.
 
304
        (digest_table_entry): Add extraspec field.
 
305
        * pubkey.c (gcry_pk_register): Rename to _gcry_pk_register.  Add
 
306
        arg EXTRASPEC.
 
307
        (dummy_extra_spec): New.
 
308
        (pubkey_table_entry): Add extraspec field.
 
309
 
 
310
        * ac.c: Let most public functions return GPG_ERR_UNSUPPORTED in
 
311
        fips mode.
 
312
 
 
313
        * pubkey.c (pubkey_table_entry): Add field FIPS_ALLOWED and mark
 
314
        appropriate algorithms.
 
315
        (dummy_generate, dummy_check_secret_key, dummy_encrypt) 
 
316
        (dummy_decrypt, dummy_sign, dummy_verify, dummy_get_nbits): Signal
 
317
        a fips error when used.
 
318
        (gcry_pk_register): In fips mode do not allow to register new
 
319
        algorithms.
 
320
 
 
321
        * md.c (digest_table): Add field FIPS_ALLOWED and mark appropriate
 
322
        algorithms.
 
323
        (md_register_default): In fips mode register only fips algorithms.
 
324
        (gcry_md_register): In fips mode do not allow to register new
 
325
        algorithms.
 
326
        (gcry_md_get): Signal a fips error if called.
 
327
        (gcry_md_hash_buffer): Do not allow rmd160 when not in fips mode.
 
328
        (md_start_debug): Disable in fips_mode.
 
329
 
 
330
        * md.c (gcry_md_register_default): Rename to ..
 
331
        (md_register_default): .. this.
 
332
        (md_digest): Remove this commented fucntion.
 
333
        * pubkey.c (gcry_pk_register_default): Rename to ..
 
334
        (pk_register_default): .. this.
 
335
 
 
336
        * cipher.c (cipher_table_entry): Add field FIPS_ALLOWED.
 
337
        (gcry_cipher_register_default): Register only fips approved
 
338
        algorithms.
 
339
        (gcry_cipher_register): Do not allow to register new ciphers.
 
340
        (cipher_setiv): Signal fips error.
 
341
        
 
342
        * cipher (gcry_cipher_register_default): Rename to ..
 
343
        (cipher_register_default): .. this.
 
344
        (REGISTER_DEFAULT_CIPHERS): Adjust for that change.
 
345
 
 
346
2008-07-05  Werner Koch  <wk@g10code.com>
 
347
 
 
348
        * random-daemon.c, random.h, rndhw.c, rndunix.c, rand-internal.h
 
349
        * random.c, rndegd.c, rndlinux.c, rndw32.c: Move to ../cipher.
 
350
        * Makefile.am: Remove random stuff.
 
351
 
 
352
2008-06-24  Szakats Istvan <szaki.ms@gmail.com>  (wk)
 
353
 
 
354
        * ac.c (_gcry_ac_key_destroy, _gcry_ac_key_pair_generate): Relase
 
355
        some more memory.
 
356
 
 
357
2008-04-22  Werner Koch  <wk@g10code.com>
 
358
 
 
359
        * rijndael.c (_gcry_aes_cfb_enc, _gcry_aes_cbc_enc) 
 
360
        (_gcry_aes_cfb_dec, _gcry_aes_cbc_dec): Use Padlock if possible.
 
361
 
 
362
2008-04-18  Werner Koch  <wk@g10code.com>
 
363
 
 
364
        * sha1.c (transform_aligned): Remove.  That is will obviosuly not
 
365
        work because we need a scratch working area and our internal API
 
366
        does not allow to modify the buffers.
 
367
 
 
368
        * rijndael.c: Factor tables out to ..
 
369
        * rijndael-tables.h: .. new.
 
370
 
 
371
        * ac.c (ac_data_extract): Make static.
 
372
 
 
373
        * camellia.h [HAVE_CONFIG_H]: Include config.h.
 
374
 
 
375
        * rndw32.c (registry_poll): Only print the performance data
 
376
        problem warning once.  Suggested by Simon Josefsson.
 
377
 
 
378
2008-03-19  Werner Koch  <wk@g10code.com>
 
379
 
 
380
        * cipher.c (gcry_cipher_open) [USE_AES]: Init bulk encryption only
 
381
        if requested.  Suggested by Dirk Stoecker.
 
382
 
 
383
2008-03-18  Werner Koch  <wk@g10code.com>
 
384
 
 
385
        * sha1.c: Include stdint.h.
 
386
        (transform): Add arg NBLOCKS so that we can work on more than one
 
387
        block and avoid updates of the chaining variables.  Changed all
 
388
        callers to use 1.
 
389
        (sha1_write): Replace loop around transform.
 
390
        (transform_aligned) [WORDS_BIGENDIAN]: New.
 
391
        (TRANSFORM): New macro to replace all direct calls of transform.
 
392
 
 
393
2008-03-17  Werner Koch  <wk@g10code.com>
 
394
 
 
395
        * rijndael.c (_gcry_aes_cfb_dec): New.
 
396
        (do_encrypt): Factor code out to ..
 
397
        (do_encrypt_aligned): .. New.
 
398
        (_gcry_aes_cfb_enc, _gcry_aes_cfb_dec): Use new function.
 
399
        (do_decrypt): Factor code out to ..
 
400
        (do_decrypt_aligned): .. new.
 
401
        (_gcry_aes_cbc_enc, _gcry_aes_cbc_dec): New.
 
402
        * cipher.c (struct gcry_cipher_handle): Put field IV into new
 
403
        union U_IV to enforce proper alignment.  Change all users.
 
404
        (do_cfb_decrypt): Optimize.
 
405
        (do_cbc_encrypt, do_cbc_decrypt): Optimize.
 
406
 
 
407
2008-03-15  Werner Koch  <wk@g10code.com>
 
408
 
 
409
        * rijndael.c (_gcry_aes_cfb_enc): New.
 
410
        * cipher.c (struct gcry_cipher_handle): Add field ALGO and BULK.
 
411
        (gcry_cipher_open): Set ALGO and BULK.
 
412
        (do_cfb_encrypt): Optimize.
 
413
 
 
414
2008-02-18  Werner Koch  <wk@g10code.com>
 
415
 
 
416
        * rsa.c (_gcry_rsa_verify) [IS_DEVELOPMENT_VERSION]: Print
 
417
        intermediate results.
 
418
 
 
419
2008-01-08  Werner Koch  <wk@g10code.com>
 
420
 
 
421
        * random.c (add_randomness): Do not just increment
 
422
        POOL_FILLED_COUNTER but update it by the actual amount of data.
 
423
 
 
424
2007-12-13  Werner Koch  <wk@g10code.com>
 
425
 
 
426
        * pubkey.c (sexp_data_to_mpi): Support SHA-224.
 
427
 
 
428
2007-12-05  Werner Koch  <wk@g10code.com>
 
429
 
 
430
        * rijndael.c (USE_PADLOCK): Depend on ENABLE_PADLOCK_SUPPORT.
 
431
        * rndhw.c (USE_PADLOCK): Ditto
 
432
 
 
433
        * rsa.c (secret): Fixed condition test for using CRT.  Reported by
 
434
        Dean Scarff.  Fixes bug#864.
 
435
        (_gcry_rsa_check_secret_key): Return an erro if the optional
 
436
        parameters are missing.
 
437
        * pubkey.c (sexp_elements_extract): Add arg ALGO_NAME. Changed all
 
438
        callers to pass NULL. Add hack to allow for optional RSA
 
439
        parameters.
 
440
        (sexp_to_key): Pass algo name to sexp_elements_extract.
 
441
 
 
442
2007-12-03  Werner Koch  <wk@g10code.com>
 
443
 
 
444
        * random.c (gcry_random_add_bytes): Implement it.
 
445
        * rand-internal.h (RANDOM_ORIGIN_EXTERNAL): New.
 
446
 
 
447
2007-11-30  Werner Koch  <wk@g10code.com>
 
448
 
 
449
        * rndhw.c: New.
 
450
        * rndlinux.c (_gcry_rndlinux_gather_random): Try to read 50%
 
451
        directly from the hwrng.
 
452
        * random.c (do_fast_random_poll): Also run the hw rng fast poll.
 
453
        (_gcry_random_dump_stats): Tell whether the hw rng failed.
 
454
 
 
455
2007-11-29  Werner Koch  <wk@g10code.com>
 
456
 
 
457
        * rijndael.c (USE_PADLOCK): Define new macro used for ia32.
 
458
        (RIJNDAEL_context) [USE_PADLOCK]: Add fields USE_PADLOCK and
 
459
        PADLOCK_KEY.
 
460
        (do_setkey) [USE_PADLOCK]: Enable padlock if available for 128 bit
 
461
        AES.
 
462
        (do_padlock) [USE_PADLOCK]: New.
 
463
        (rijndael_encrypt, rijndael_decrypt) [USE_PADLOCK]: Divert to
 
464
        do_padlock.
 
465
        * cipher.c (cipher_context_alignment_t): New.  Use it in this
 
466
        module in place of PROPERLY_ALIGNED_TYPE.
 
467
        (NEED_16BYTE_ALIGNED_CONTEXT): Define macro for ia32.
 
468
        (struct gcry_cipher_handle): Add field HANDLE_OFFSET.
 
469
        (gcry_cipher_open): Take care of increased alignment requirements.
 
470
        (gcry_cipher_close): Ditto.
 
471
 
 
472
2007-11-28  Werner Koch  <wk@g10code.com>
 
473
 
 
474
        * sha256.c (asn224): Fixed wrong template.  It happened due to a
 
475
        bug in RFC4880.  SHA-224 is not in the stable version of libgcrypt
 
476
        so the consequences are limited to users of this devel version.
 
477
 
 
478
2007-10-31  Werner Koch  <wk@g10code.com>
 
479
 
 
480
        * ac.c (gcry_ac_data_new): Remove due to the visibility wrapper.
 
481
        (gcry_ac_data_destroy, gcry_ac_data_copy, gcry_ac_data_length) 
 
482
        (gcry_ac_data_set, gcry_ac_data_get_name, gcry_ac_data_get_index) 
 
483
        (gcry_ac_data_to_sexp, gcry_ac_data_from_sexp) 
 
484
        (gcry_ac_data_clear, gcry_ac_io_init, gcry_ac_open) 
 
485
        (gcry_ac_close, gcry_ac_key_init, gcry_ac_key_pair_generate) 
 
486
        (gcry_ac_key_pair_extract, gcry_ac_key_destroy) 
 
487
        (gcry_ac_key_pair_destroy, gcry_ac_key_data_get) 
 
488
        (gcry_ac_key_test, gcry_ac_key_get_nbits, gcry_ac_key_get_grip) 
 
489
        (gcry_ac_data_encrypt, gcry_ac_data_decrypt, gcry_ac_data_sign) 
 
490
        (gcry_ac_data_verify, gcry_ac_data_encode, gcry_ac_data_decode) 
 
491
        (gcry_ac_mpi_to_os, gcry_ac_mpi_to_os_alloc, gcry_ac_os_to_mpi) 
 
492
        (gcry_ac_data_encrypt_scheme, gcry_ac_data_decrypt_scheme) 
 
493
        (gcry_ac_data_sign_scheme, gcry_ac_data_verify_scheme) 
 
494
        (gcry_ac_io_init_va): Ditto.
 
495
        (gcry_ac_id_to_name, gcry_ac_name_to_id): Remove as these
 
496
        deprecated functions are now implemented by visibility.c.
 
497
 
 
498
2007-10-26  Werner Koch  <wk@g10code.com>
 
499
 
 
500
        * rndw32.c: Disable debug flag.
 
501
 
 
502
2007-10-25  Werner Koch  <wk@g10code.com>
 
503
 
 
504
        * rndw32.c: Updated from current cryptlib snapshot and modified
 
505
        for our use.  Removed support from pre NT systems.
 
506
        (slow_gatherer_windows95): Remove.
 
507
        (_gcry_rndw32_gather_random): Require an NT platform.
 
508
        (init_system_rng, read_system_rng, read_mbm_data): New.
 
509
        (slow_gatherer_windowsNT): Rename to ...
 
510
        (slow_gatherer): .. this.  Read system RNG and MBM.
 
511
        (registry_poll): New with code factored out from slow_gatherer.
 
512
 
 
513
2007-08-23  Werner Koch  <wk@g10code.com>
 
514
 
 
515
        * random.c (pool_filled_counter): New.
 
516
        (add_randomness): Use it.
 
517
 
 
518
2007-08-22  Werner Koch  <wk@g10code.com>
 
519
 
 
520
        * rndw32.c, rndunix.c: Switched to LGPL.
 
521
 
 
522
2007-05-30  Werner Koch  <wk@g10code.com>
 
523
 
 
524
        * camellia.h, camellia.c: Replace by new LGPL version and adjusted
 
525
        camellia.h.
 
526
 
 
527
2007-05-09  Marcus Brinkmann  <marcus@g10code.de>
 
528
 
 
529
        * ac.c (_gcry_ac_io_init_va, _gcry_ac_io_write, _gcry_ac_io_read):
 
530
        Adjust users of gcry_ac_io_t because union is not anonymous
 
531
        anymore.
 
532
 
 
533
2007-05-02  Werner Koch  <wk@g10code.com>
 
534
 
 
535
        * camellia-glue.c (camellia_setkey, camellia_encrypt)
 
536
        (camellia_decrypt): Recalculated used stack size in called
 
537
        functions.
 
538
        * camellia.h: Redefine external symbols.
 
539
 
 
540
2007-05-02  David Shaw  <dshaw@jabberwocky.com>
 
541
 
 
542
        * Makefile.am, cipher.c: Add Camellia.
 
543
 
 
544
        * camellia-glue.c: New.  The necessary glue to interface libgcrypt
 
545
        to the stock NTT Camellia distribution.
 
546
 
 
547
        * camellia.h, camellia.c: The stock NTT Camellia distribution
 
548
        (GPL).
 
549
 
 
550
2007-04-30  David Shaw  <dshaw@jabberwocky.com>
 
551
 
 
552
        * cipher.c: Use #if instead of #ifdef as configure defines the
 
553
        USE_cipher defines as 0 for disabled.
 
554
 
 
555
2007-04-30  Werner Koch  <wk@g10code.com>
 
556
 
 
557
        * rndegd.c (_gcry_rndegd_set_socket_name): New.
 
558
 
 
559
2007-04-30  Marcus Brinkmann  <marcus@g10code.de>
 
560
 
 
561
        * ecc.c (ec2os): Fix relocation of short numbers.
 
562
 
 
563
        * ecc.c (generate_key): Do not allocate D, which will be allocated
 
564
        by GEN_K.  Remove G.  Fix test if g_x, g_y resp. q_x, q_y are
 
565
        requested.
 
566
        (_gcry_ecc_generate): Release unneeded members of SK.
 
567
        * pubkey.c (sexp_to_key): Release NAME.
 
568
 
 
569
2007-04-28  Marcus Brinkmann  <marcus@g10code.de>
 
570
 
 
571
        * ac.c (gcry_ac_mpi): Remove member NAME_PROVIDED.
 
572
        (ac_data_mpi_copy, _gcry_ac_data_set, _gcry_ac_data_get_name)
 
573
        (_gcry_ac_data_get_index, ac_data_construct): Adjust handling of
 
574
        NAME accordingly.
 
575
 
 
576
2007-04-20  Werner Koch  <wk@g10code.com>
 
577
 
 
578
        * ecc.c (domain_parms): Add standard brainpool curves.
 
579
 
 
580
2007-04-18  Werner Koch  <wk@g10code.com>
 
581
 
 
582
        * ecc.c (generate_curve): Implement alias mechanism.
 
583
 
 
584
        * pubkey.c (sexp_elements_extract_ecc): New.
 
585
        (sexp_to_key): Add special case for ecc.
 
586
        (sexp_to_key, sexp_to_sig, sexp_to_enc, gcry_pk_genkey): Replace
 
587
        name_terminated stuff by a call to _gcry_sexp_nth_string.
 
588
        (gcry_pk_get_keygrip): Ditto.
 
589
 
 
590
2007-04-16  Werner Koch  <wk@g10code.com>
 
591
 
 
592
        * ecc.c (_gcry_ecc_generate): Renamed DUMMY to CURVE and use it.
 
593
 
 
594
2007-04-13  Marcus Brinkmann  <marcus@g10code.de>
 
595
 
 
596
        * ac.c (ac_data_construct): Cast const away to suppress compiler
 
597
        warning.
 
598
 
 
599
        * ecc.c (ecc_generate): Avoid compiler warning for unused argument
 
600
        DUMMY.
 
601
        (ecc_verify): Avoid compiler warning for unused arguments CMP and
 
602
        OPAQUEV.
 
603
 
 
604
2007-04-06  Werner Koch  <wk@g10code.com>
 
605
 
 
606
        * sha1.c (oid_spec_sha1): Add another oid from X9.62.
 
607
 
 
608
2007-03-28  Werner Koch  <wk@g10code.com>
 
609
 
 
610
        * pubkey.c (gcry_pk_genkey): Do not issue misc-key-info if it is
 
611
        empty.
 
612
        (gcry_pk_genkey): New parameter "curve".
 
613
 
 
614
        * ecc.c: Entirely rewritten with only a few traces of the old
 
615
        code left.
 
616
        (_gcry_ecc_generate): New.
 
617
        (generate_key) New arg NAME.
 
618
        (generate_curve): Ditto.  Return actual number of NBITS.
 
619
 
 
620
2007-03-26  Werner Koch  <wk@g10code.com>
 
621
 
 
622
        * pubkey.c (gcry_pk_genkey): Increase size of SKEY array and add a
 
623
        runtime bounds check.
 
624
 
 
625
2007-03-23  Werner Koch  <wk@g10code.com>
 
626
 
 
627
        * ecc.c (ecc_ctx_init, ecc_ctx_free, ecc_mod, ecc_mulm): New.
 
628
        (duplicate_point, sum_points, escalar_mult): Don't use a
 
629
        copy of base->p.  Replaced all mpi_mulm by ecc_mulm so that we can
 
630
        experiment with different algorithms.
 
631
        (generate_key, check_secret_key, sign, verify): Initialize a
 
632
        computation context for use by ecc_mulm.
 
633
 
 
634
2007-03-22  Werner Koch  <wk@g10code.com>
 
635
 
 
636
        * pubkey.c (pubkey_table): Initialize ECC.
 
637
        * Makefile.am (EXTRA_libcipher_la_SOURCES): Add ecc.c.
 
638
        * ecc.c: New. Heavily reformatted and changed for use in libgcrypt.
 
639
        (point_init): New.
 
640
        (escalar_mult): Make arg R the first arg to be similar to the mpi
 
641
        functions.
 
642
        (duplicate_point): Ditto
 
643
        (sum_points): Ditto
 
644
        (sign, verify): Remove unneeded copy operations.
 
645
        (sum_points): Removed memory leaks and optimized some compares.
 
646
        (verify): Simplified input check.
 
647
 
 
648
2007-03-14  Werner Koch  <wk@g10code.com>
 
649
 
 
650
        * random.c (MASK_LEVEL): Removed macro as it was used only at one
 
651
        place.  Open coded it there.
 
652
        (gcry_randomize, _gcry_update_random_seed_file)
 
653
        (_gcry_fast_random_poll): Factor lock code out to ..
 
654
        (lock_pool, unlock_pool): .. new.
 
655
        (initialize): Look the pool while allocating. 
 
656
        (read_random_source, do_fast_random_poll): Moved intialization to ...
 
657
        (initialize): .. here.
 
658
        (_gcry_enable_quick_random_gen): No more need for initialization.
 
659
        (is_initialized):  Moved this global flag to ..
 
660
        (initialize): .. here and changed all users to unconditionally call
 
661
        initialize.
 
662
        (add_randomness): Remove initalization here.  It simply can't
 
663
        happen. 
 
664
 
 
665
        * random.c (enum random_origins): Moved to ..
 
666
        * rand-internal.h: .. here.
 
667
        * rndunix.c (_gcry_rndunix_gather_random): Use enum in prototype
 
668
        for ORIGIN and renamed REQUESTOR to ORIGIN.
 
669
        * rndegd.c (_gcry_rndegd_gather_random): Ditto.
 
670
        * rndlinux.c (_gcry_rndlinux_gather_random): Ditto.
 
671
        * rndw32.c (_gcry_rndw32_gather_random): Ditto.
 
672
        (_gcry_rndw32_gather_random_fast): Ditto.
 
673
 
 
674
2007-03-13  Werner Koch  <wk@g10code.com>
 
675
 
 
676
        * random.c (enum random_origins): New.
 
677
        (add_randomness): Renamed arg SOURCE to ORIGIN.
 
678
        (read_random_source): Renamed arg REQUESTOR to ORIGIN.
 
679
        (getfnc_gather_random): Removed static variable because this
 
680
        function is only called one and thus we don't need this
 
681
        optimization.
 
682
        (_gcry_quick_random_gen): Removed and replaced by..
 
683
        (_gcry_enable_quick_random_gen): .. this.  It is onlyu used to
 
684
        enable it and it does not make sense to disable it later. Changed
 
685
        the only one caller too.
 
686
        (get_random_bytes): Removed.
 
687
        (gcry_random_bytes, gcry_random_bytes_secure): Implement in terms
 
688
        of gcry_randomize.
 
689
        * random-daemon.c (_gcry_daemon_get_random_bytes): Removed.
 
690
 
 
691
2007-02-23  Werner Koch  <wk@g10code.com>
 
692
 
 
693
        * elgamal.c (generate): Removed unused variable TEMP.
 
694
        (test_keys): New arg NODIE.
 
695
        (generate_using_x, _gcry_elg_generate_using_x): New.
 
696
        * pubkey.c (pubkey_generate): New arg XVALUE and direct call to
 
697
        the new elgamal generate fucntion.
 
698
        (gcry_pk_genkey): Parse the new "xvalue" tag.
 
699
 
 
700
2007-02-22  Werner Koch  <wk@g10code.com>
 
701
 
 
702
        * pubkey.c (sexp_data_to_mpi): Handle dynamically allocated
 
703
        algorithms.  Suggested by Neil Dunbar.  Fixes bug#596.
 
704
 
 
705
        * rndw32.c (_gcry_rndw32_gather_random_fast): Make it return void.
 
706
 
 
707
        * cipher.c (gcry_cipher_algo_name): Simplified.
 
708
 
 
709
        * random.c: Use the daemon only if compiled with USE_RANDOM_DAEMON. 
 
710
 
 
711
        * Makefile.am (libcipher_la_SOURCES): Build random-daemon support
 
712
        only if requested.
 
713
 
 
714
2007-02-21  Werner Koch  <wk@g10code.com>
 
715
 
 
716
        * random.c (rndpool, keypool): Make unsigned.
 
717
        (mix_pool): Change char* variables to unsigned char*.
 
718
        (gcry_randomize): Make arg BUFFER a void*.
 
719
        (gcry_create_nonce): Ditto.
 
720
 
 
721
        * rmd160.c (gcry_rmd160_mixblock): Make BUFFER a void*.
 
722
        (_gcry_rmd160_hash_buffer): Make OUTBUF and BUFFER void*.
 
723
        * sha1.c (_gcry_sha1_hash_buffer): Ditto.
 
724
 
 
725
        * cipher.c (gcry_cipher_encrypt, cry_cipher_decrypt): Change
 
726
        buffer args to void*.
 
727
        (gcry_cipher_register): Make ALGORITHM_ID a int *.
 
728
 
 
729
        * md.c (md_start_debug): Make SUFFIX a const char*.  Use snprintf.
 
730
        (gcry_md_debug): New.
 
731
        (gcry_md_ctl): Changed arg BUFFER from unsigned char*.
 
732
 
 
733
        * md.c (md_write): Make INBUF a const void*.
 
734
        (gcry_md_write): Remove needless cast.
 
735
        * crc.c (crc32_write): Make INBUF a const void*
 
736
        (update_crc32, crc24rfc2440_write): Ditto.
 
737
        * sha512.c (sha512_write, transform): Ditto.
 
738
        * sha256.c (sha256_write, transform): Ditto.
 
739
        * rmd160.c (rmd160_write, transform): Ditto.
 
740
        * md5.c (md5_write, transform): Ditto.
 
741
        * md4.c (md4_write, transform): Ditto.
 
742
        * sha1.c (sha1_write, transform): Ditto.
 
743
 
 
744
        * tiger.c (tiger_write, transform): Ditto.
 
745
        * whirlpool.c (whirlpool_write, whirlpool_add, transform): Ditto.
 
746
 
 
747
        * elgamal.c (elg_names): Change to a const*.
 
748
        * dsa.c (dsa_names): Ditto.
 
749
        * rsa.c (rsa_names): Ditto.
 
750
        * pubkey.c (gcry_pk_lookup_func_name): Make ALIASES a const.
 
751
 
 
752
2007-02-20  Werner Koch  <wk@g10code.com>
 
753
 
 
754
        * rndlinux.c (open_device): Remove unsused arg MINOR.
 
755
 
 
756
2007-01-30  Werner Koch  <wk@g10code.com>
 
757
 
 
758
        * sha256.c (oid_spec_sha256): Add alias from pkcs#1.
 
759
        * sha512.c (oid_spec_sha512): Ditto.
 
760
        (oid_spec_sha384): Ditto.
 
761
 
 
762
2006-12-18  Werner Koch  <wk@g10code.com>
 
763
 
 
764
        * rndlinux.c (set_cloexec_flag): New.
 
765
        (open_device): Set close-on-exit flags.  Suggested by Max
 
766
        Kellermann.  Fixes Debian#403613.
 
767
 
 
768
        * Makefile.am (AM_CPPFLAGS, AM_CFLAGS): Splitted and merged
 
769
        Moritz' changes.
 
770
        (INCLUDES): Removed.
 
771
 
 
772
2006-11-30  Werner Koch  <wk@g10code.com>
 
773
 
 
774
        * serpent.c (byte_swap_32): Remove trailing semicolon.
 
775
 
 
776
2006-11-15  Werner Koch  <wk@g10code.com>
 
777
 
 
778
        * Makefile.am (INCLUDES): Include ../src/
 
779
 
 
780
2006-11-03  Werner Koch  <wk@g10code.com>
 
781
 
 
782
        * random.c [HAVE_GETTIMEOFDAY]: Included sys/time.h and not
 
783
        sys/times.h.  Reported by Rafaël Carré.
 
784
 
 
785
2006-11-05  Moritz Schulte  <moritz@g10code.com>
 
786
 
 
787
        * Makefile.am (AM_CFLAGS): Added -I$(top_builddir)/src so that the
 
788
        new gcrypt.h is used, not the one installed in the system.
 
789
 
 
790
2006-10-25  Werner Koch  <wk@g10code.com>
 
791
 
 
792
        * primegen.c (prime_generate_internal): Tweaked use of secure
 
793
        memory and entropy use. Safe unused primes from the pool. Allocate
 
794
        at least a pool of 30.
 
795
        (save_pool_prime, get_pool_prime): New.
 
796
 
 
797
2006-10-23  Werner Koch  <wk@g10code.com>
 
798
 
 
799
        * ac.c (_gcry_ac_data_from_sexp): Reset sexp_tmp for failsafe
 
800
        means.  Release sexp_cur if needed.  Reported by Dirk Stoecker.
 
801
 
 
802
        * pubkey.c (pubkeys_registered_lock): Intialized it.  It is not
 
803
         realy needed because this is a mere initialization to 0 anyway.
 
804
         Noted by Victor Stinner.
 
805
 
 
806
2006-10-17  Werner Koch  <wk@g10code.com>
 
807
 
 
808
        * dsa.c (_gcry_dsa_generate2): New.
 
809
        (generate): New arg QBITS.  Add sanity checks for reasonable qbits
 
810
        and nbits.
 
811
        * pubkey.c (gcry_pk_genkey): Parse an qbits element.
 
812
        (pubkey_generate): New arg QBITS.  Pass it to the DSA generation.
 
813
 
 
814
2006-10-05  Werner Koch  <wk@g10code.com>
 
815
 
 
816
        * md.c (gcry_md_algo_info) <get_asnoid>: Check that the algo is
 
817
        available.
 
818
 
 
819
2006-10-04  David Shaw  <dshaw@jabberwocky.com>  (wk)
 
820
 
 
821
        * tiger.c (round): Rename to tiger_round as gcc 4 has a built-in
 
822
        round function that this conflicts with.
 
823
 
 
824
2006-09-11  Werner Koch  <wk@g10code.com>
 
825
 
 
826
        * rndw32.c (slow_gatherer_windowsNT): While adding data use the
 
827
        size of the diskPerformance and not its address. Has been fixed in
 
828
        GnuPG more than a year ago.  Noted by Lee Fisher.
 
829
 
 
830
2006-08-30  Werner Koch  <wk@g10code.com>
 
831
 
 
832
        * pubkey.c (sexp_data_to_mpi): Need to allow "ripemd160" here as
 
833
        this is the canonical name.
 
834
 
 
835
2006-08-29  Hye-Shik Chang <perky@FreeBSD.org>  (wk)
 
836
 
 
837
        * seed.c: New.
 
838
 
 
839
2006-08-03  Werner Koch  <wk@g10code.com>
 
840
 
 
841
        * random-daemon.c (_gcry_daemon_initialize_basics): Don't
 
842
        initialize the socket.  Remove arg SOCKETNAME.
 
843
        (connect_to_socket): Make sure that daemon is set to -1 on error.
 
844
        (call_daemon): Initialize the socket on the first call.
 
845
        (_gcry_daemon_randomize, _gcry_daemon_get_random_bytes) 
 
846
        (_gcry_daemon_create_nonce): New arg SOCKETNAME.
 
847
        * random.c (initialize): Call new daemon initializator.
 
848
        (get_random_bytes, gcry_randomize, gcry_create_nonce): Pass socket
 
849
        name to daemon call and reset allow_daemon on failure.
 
850
 
 
851
2006-07-26  Werner Koch  <wk@g10code.com>
 
852
 
 
853
        * rmd160.c (_gcry_rmd160_mixblock): Add cast to transform call.
 
854
 
 
855
        * blowfish.c (selftest): Cast string to usnigned char*.
 
856
 
 
857
        * primegen.c (prime_generate_internal): Cast unsigned/char*
 
858
        mismatch in calling m_out_of_n.
 
859
        (is_prime): Changed COUNT to unsigned int *.
 
860
 
 
861
        * ac.c (_gcry_ac_data_copy): Initialize DATA_MPIS.
 
862
 
 
863
        * random.c (gcry_create_nonce): Update the pid after a fork.
 
864
        Reported by Uoti Urpala.
 
865
 
 
866
2006-07-04  Marcus Brinkmann  <marcus@g10code.de>
 
867
 
 
868
        * sha512.c: Fix typo in copyright notice.
 
869
 
 
870
2006-06-21  Werner Koch  <wk@g10code.com>
 
871
 
 
872
        * rsa.c (_gcry_rsa_generate): Replace xcalloc by calloc.
 
873
        * pubkey.c (gcry_pk_encrypt, gcry_pk_sign): Ditto.
 
874
        (sexp_to_key, sexp_to_sig, sexp_to_enc, gcry_pk_encrypt) 
 
875
        (gcry_pk_sign, gcry_pk_genkey, gcry_pk_get_keygrip): Ditto. 
 
876
        * md.c (md_copy): Ditto.
 
877
        
 
878
2006-04-22  Moritz Schulte  <moritz@g10code.com>
 
879
 
 
880
        * random-daemon.c (_gcry_daemon_initialize_basics): New argument:
 
881
        SOCKETNAME.  Passing on to connect_to_socket() if non-NULL.
 
882
        (connect_to_socket, writen, readn, call_daemon): New functions.
 
883
        (_gcry_daemon_randomize, _gcry_daemon_get_random_bytes) 
 
884
        (_gcry_daemon_create_nonce): Call call_daemon().
 
885
        (RANDOM_DAEMON_SOCKET): New symbol.
 
886
        (daemon_socket): New static variable.
 
887
 
 
888
        * random.h (_gcry_daemon_initialize_basics): New parameter:
 
889
        SOCKETNAME.
 
890
        (_gcry_set_random_daemon_socket): New declaration.
 
891
 
 
892
        * random.c (initialize_basics): Pass DAEMON_SOCKET_NAME to
 
893
        _gcry_daemon_initialize_basics.
 
894
        (_gcry_set_random_daemon_socket): New function, setting
 
895
        DAEMON_SOCKET_NAME.
 
896
 
 
897
2006-04-01  Moritz Schulte  <moritz@g10code.com>
 
898
 
 
899
        * ac.c (eme_pkcs_v1_5_encode): Use KEY_SIZE directly, no need to
 
900
        call gcry_ac_key_get_nbits.
 
901
        (eme_pkcs_v1_5_decode): Likewise.
 
902
        (ac_es_dencode_prepare_pkcs_v1_5): Fill options_em structure with
 
903
        key_size.
 
904
        (_gcry_ac_data_dump, gcry_ac_data_dump): New functions.
 
905
        (_gcry_ac_data_to_sexp, _gcry_ac_data_from_sexp): More or less
 
906
        rewritten; changed S-Expression format so that it matches the one
 
907
        used in pubkey.c.
 
908
 
 
909
2006-03-15  Werner Koch  <wk@g10code.com>
 
910
 
 
911
        * random-daemon.c: New.
 
912
        * random.c (_gcry_use_random_daemon): New.
 
913
        (get_random_bytes, gcry_randomize, gcry_create_nonce): Try
 
914
        diverting to the daemon functions.
 
915
 
 
916
2006-03-14  Werner Koch  <wk@g10code.com>
 
917
 
 
918
        * random.c (lock_seed_file): New.
 
919
        (read_seed_file, _gcry_update_random_seed_file): Use it.
 
920
 
 
921
        * random.c (gcry_create_nonce):  Detect a fork and re-seed.
 
922
        (read_pool): Fixed the fork detection; it used to work only for
 
923
        multi-threaded processes.
 
924
 
 
925
2006-03-12  Brad Hards  <bradh@frogmouth.net>  (wk)
 
926
 
 
927
        * md.c (md_open): Use new variable macpads_Bsize instead of
 
928
        hardwiring the block size.  Changed at all places.
 
929
 
 
930
2006-03-10  Brad Hards  <bradh@frogmouth.net>  (wk, patch 2005-04-22)
 
931
 
 
932
        * md.c, sha256.c:  Add support for SHA-224.
 
933
        (sha224_init): New.
 
934
        
 
935
2006-01-18  Brad Hards  <bradh@frogmouth.net>  (wk 2006-03-07)
 
936
 
 
937
        * cipher.c (cipher_encrypt, cipher_decrypt, do_ofb_encrypt)
 
938
        (do_ofb_decrypt, gcry_cipher_open): Implement Output Feedback Mode.
 
939
 
 
940
2005-11-02  Moritz Schulte  <moritz@g10code.com>
 
941
 
 
942
        * pubkey.c (gcry_pk_algo_name): Return "?" instead of NULL for
 
943
        unknown algorithm IDs.
 
944
        * cipher.c (cipher_algo_to_string): Likewise.
 
945
 
 
946
2005-11-01  Moritz Schulte  <moritz@g10code.com>
 
947
 
 
948
        * pubkey.c (gcry_pk_algo_info): Don't forget to break after switch
 
949
        case.
 
950
 
 
951
2005-09-19  Werner Koch  <wk@g10code.com>
 
952
 
 
953
        * dsa.c (generate): Add preliminary support for 2 and 4 keys.
 
954
        Return an error code if the key size is not supported.
 
955
        (_gcry_dsa_generate): Return an error.
 
956
 
 
957
2005-08-22  Werner Koch  <wk@g10code.com>
 
958
 
 
959
        * primegen.c (check_prime): New arg RM_ROUNDS.
 
960
        (prime_generate_internal): Call it here with 5 rounds as used
 
961
        before.
 
962
        (gcry_prime_check): But here with 64 rounds.
 
963
        (is_prime): Make sure never to use less than 5 rounds.
 
964
 
 
965
2005-04-16  Moritz Schulte  <moritz@g10code.com>
 
966
 
 
967
        * ac.c (_gcry_ac_init): New function.
 
968
 
 
969
2005-04-12  Moritz Schulte  <moritz@g10code.com>
 
970
 
 
971
        * ac.c (_gcry_ac_io_write, _gcry_ac_io_read): Initialize err to
 
972
        make the compiler happy.
 
973
        Always use errno, now that gcry_malloc() is guaranteed to set
 
974
        errno on failure.
 
975
        (_gcry_ac_data_to_sexp): Don't forget to goto out after error in
 
976
        loop.
 
977
        (_gcry_ac_data_to_sexp): Remove unused variable: mpi_list;
 
978
        (_gcry_ac_data_to_sexp): Always deallocate sexp_buffer.
 
979
        (_gcry_ac_data_from_sexp): Don't forget to initialize data_set_new.
 
980
        (_gcry_ac_data_from_sexp): Handle special case, which is
 
981
        necessary, since gcry_sexp_nth() does not distinguish between
 
982
        "element does not exist" and "element is the empty list".
 
983
        (_gcry_ac_io_init_va): Use assert to make sure that mode and type
 
984
        are correct.
 
985
        Use gcry_error_t types where gcry_err_code_t types have been used
 
986
        before.
 
987
 
 
988
2005-04-11  Moritz Schulte  <moritz@g10code.com>
 
989
 
 
990
        * ac.c (_gcry_ac_data_sign_scheme): Don't forget to initialize
 
991
        buffer.
 
992
 
 
993
        * whirlpool.c: New file.
 
994
        * md.c (digest_table): Add whirlpool.
 
995
        * Makefile.am (EXTRA_libcipher_la_SOURCES): Added: whirlpool.c.
 
996
 
 
997
2005-03-30  Moritz Schulte  <moritz@g10code.com>
 
998
 
 
999
        * ac.c (_gcry_ac_data_from_sexp): Use length of SEXP_CUR, not
 
1000
        length of SEXP; do not forget to set SEXP_TMP to NULL after it has
 
1001
        been released.
 
1002
 
 
1003
        (struct gcry_ac_mpi): New member: name_provided.
 
1004
        (_gcry_ac_data_set): Rename variable `name_final' to `name_cp';
 
1005
        remove const qualifier; change code to not cast away const
 
1006
        qualifiers; use name_provided member as well.
 
1007
        (_gcry_ac_data_set, _gcry_ac_data_get_name): Use name_provided
 
1008
        member of named mpi structure.
 
1009
 
 
1010
        (gcry_ac_name_to_id): Do not forget to initialize err.
 
1011
        (_gcry_ac_data_get_index): Do not forget to initialize mpi_return;
 
1012
        use gcry_free() instead of free(); remove unnecessary cast; rename
 
1013
        mpi_return and name_return to mpi_cp and name_cp; adjust code.
 
1014
        (ac_data_mpi_copy): Do not cast away const qualifier.
 
1015
        (ac_data_values_destroy): Likewise.
 
1016
        (ac_data_construct): Likewise.
 
1017
 
 
1018
        (ac_data_mpi_copy): Initialize flags to GCRY_AC_FLAG_DEALLOC.
 
1019
        (ac_data_extract): Use GCRY_AC_FLAG_DEALLOC instead of
 
1020
        GCRY_AC_FLAG_COPY.
 
1021
 
 
1022
        (_gcry_ac_io_init_va, _gcry_ac_io_init, gcry_ac_io_init)
 
1023
        (gcry_ac_io_init_va, _gcry_ac_io_write, _gcry_ac_io_read)
 
1024
        (_gcry_ac_io_read_all, _gcry_ac_io_process): New functions.
 
1025
        (gry_ac_em_dencode_t): Use gcry_ac_io_t in prototype instead of
 
1026
        memroy strings directly; adjust encode/decode functions to use io
 
1027
        objects.
 
1028
        (emsa_pkcs_v1_5_encode_data_cb): New function ...
 
1029
        (emsa_pkcs_v1_5_encode): ... use it here.
 
1030
        (ac_data_dencode): Use io objects.
 
1031
        (_gcry_ac_data_encode, _gcry_ac_data_decode, gcry_ac_data_encode)
 
1032
        (gcry_ac_data_decode): Likewise.
 
1033
        (_gcry_ac_data_encrypt_scheme, gcry_ac_data_encrypt_scheme)
 
1034
        (_gcry_ac_data_decrypt_scheme, gcry_ac_data_decrypt_scheme)
 
1035
        (_gcry_ac_data_sign_scheme, gcry_ac_data_sign_scheme)
 
1036
        (_gcry_ac_data_verify_scheme, gcry_ac_data_verify_scheme):
 
1037
        Likewise.
 
1038
 
 
1039
2005-03-23  Werner Koch  <wk@g10code.com>
 
1040
 
 
1041
        * rndw32.c (_gcry_rndw32_gather_random_fast): While adding data
 
1042
        use the size of the object and not the one of its address.  Bug
 
1043
        reported by Sascha Kiefer.
 
1044
 
 
1045
2005-03-19  Moritz Schulte  <moritz@g10code.com>
 
1046
 
 
1047
        * cipher.c (do_cbc_encrypt): Be careful to not overwrite data,
 
1048
        which is to be used later on.  This happend, in case CTS is
 
1049
        enabled and OUTBUF is equal to INBUF.
 
1050
 
 
1051
2005-02-25  Werner Koch  <wk@g10code.com>
 
1052
 
 
1053
        * pubkey.c (gcry_pk_get_keygrip): Allow for shadowed-private-key.
 
1054
 
 
1055
2005-02-13  Moritz Schulte  <moritz@g10code.com>
 
1056
 
 
1057
        * serpent.c: Updated from 1.2 branch:
 
1058
 
 
1059
        s/u32_t/u32/ and s/byte_t/byte/.  Too match what we have always
 
1060
        used and are using in all other files too
 
1061
        (serpent_test): Moved prototype out of a fucntion.
 
1062
 
 
1063
2005-02-07  Moritz Schulte  <moritz@g10code.com>
 
1064
 
 
1065
        * ac.c: Major parts rewritten.
 
1066
        * pubkey.c (_gcry_pk_get_elements): New function.
 
1067
 
 
1068
2004-12-09  Werner Koch  <wk@g10code.com>
 
1069
 
 
1070
        * serpent.c (serpent_setkey): Moved prototype of serpent_test to
 
1071
        outer scope.
 
1072
 
 
1073
2004-09-11  Moritz Schulte  <moritz@g10code.com>
 
1074
 
 
1075
        * pubkey.c (pubkey_table): Added an alias entry for GCRY_PK_ELG_E.
 
1076
 
 
1077
2004-08-23  Moritz Schulte  <moritz@g10code.com>
 
1078
 
 
1079
        * ac.c: Do not include <assert.h>.
 
1080
        * rndegd.c: Likewise.
 
1081
        * sha1.c: Likewise.
 
1082
        * rndunix.c: Likewise.
 
1083
        * rndlinux.c: Likewise.
 
1084
        * rmd160.c: Likewise.
 
1085
        * md5.c: Likewise.
 
1086
        * md4.c: Likewise.
 
1087
        * cipher.c: Likewise.
 
1088
        * crc.c: Likewise.
 
1089
        * blowfish.c: Likewise.
 
1090
 
 
1091
        * pubkey.c (dummy_generate, dummy_check_secret_key)
 
1092
        (dummy_encrypt, dummy_decrypt, dummy_sign, dummy_verify): Return
 
1093
        err code GPG_ERR_NOT_IMPLEMENTED instead of aborting through
 
1094
        log_bug().
 
1095
        (dummy_get_nbits): Return 0 instead of aborting though log_bug().
 
1096
 
 
1097
2004-08-19  Werner Koch  <wk@g10code.de>
 
1098
 
 
1099
        * pubkey.c (sexp_data_to_mpi): Changed the zero random byte
 
1100
        substituting code to actually do clever things.  Thanks to
 
1101
        Matthias Urlichs for noting the implementation problem.
 
1102
 
 
1103
2004-08-09  Moritz Schulte  <moritz@g10code.com>
 
1104
 
 
1105
        * pubkey.c (gcry_pk_sign): Fixed memory leak; fix provided by
 
1106
        Modestas Vainius.
 
1107
 
 
1108
2004-07-16  Werner Koch  <wk@gnupg.org>
 
1109
 
 
1110
        * rijndael.c (do_encrypt): Fix alignment problem.  Bugs found by
 
1111
        Matthias Urlichs.
 
1112
        (do_decrypt): Ditto.
 
1113
        (keySched, keySched2): Use 2 macros along with unions in the key
 
1114
        schedule context.
 
1115
 
 
1116
2004-07-14  Moritz Schulte  <moritz@g10code.com>
 
1117
 
 
1118
        * rsa.c (_gcry_rsa_decrypt): Don't forget to free "a".  Thanks to
 
1119
        Nikos Mavroyanopoulos.
 
1120
 
 
1121
2004-05-09  Werner Koch  <wk@gnupg.org>
 
1122
 
 
1123
        * random.c (read_pool): Mix the PID in to better protect after a
 
1124
        fork.
 
1125
 
 
1126
2004-07-04  Moritz Schulte  <moritz@g10code.com>
 
1127
 
 
1128
        * serpent.c: Use "u32_t" instead of "unsigned long", do not
 
1129
        declare S-Box variables as "register".  Fixes failure on
 
1130
        OpenBSD/sparc64, reported by Nikolay Sturm.
 
1131
 
 
1132
2004-05-07  Werner Koch  <wk@gnupg.org>
 
1133
 
 
1134
        * random.c (initialize): Factored out some code to ..
 
1135
        (initialize_basics): .. new function.
 
1136
        (_gcry_random_initialize): Just call initialize_basics unless the
 
1137
        new arg FULL is set to TRUE.
 
1138
        (_gcry_fast_random_poll): Don't do anything unless the random
 
1139
        system has been really initialized.
 
1140
 
 
1141
2004-05-07  Moritz Schulte  <moritz@g10code.de>
 
1142
 
 
1143
        * ac.c (gcry_ac_open): Do not dereference NULL pointer.  Reported
 
1144
        by Umberto Salsi.
 
1145
 
 
1146
2004-02-20  Werner Koch  <wk@gnupg.org>
 
1147
 
 
1148
        * primegen.c (check_prime): New args CB_FUNC and CB_ARG; call them
 
1149
        at different stages.  Pass these arguments through all callers.
 
1150
 
 
1151
2004-02-06  Werner Koch  <wk@gnupg.org>
 
1152
 
 
1153
        * des.c: Add a new OID as used by pkcs#12.
 
1154
 
 
1155
        * rfc2268.c: New. Taken from libgcrypt. 
 
1156
        * cipher.c: Setup the rfc2268 algorithm.
 
1157
 
 
1158
2004-01-25  Moritz Schulte  <mo@g10code.com>
 
1159
 
 
1160
        * primegen.c (prime_generate_internal): Do not forget to free
 
1161
        `q_factor'; fixed by Brieuc Jeunhomme.
 
1162
        (prime_generate_internal): Do not forget to free `prime'.
 
1163
 
 
1164
2004-01-14  Moritz Schulte  <mo@g10code.com>
 
1165
 
 
1166
        * ac.c (gcry_ac_data_set): New argument: flags; slightly
 
1167
        rewritten.
 
1168
        (gcry_ac_data_get_name, gcry_ac_data_get_index): Likewise.
 
1169
        (gcry_ac_key_pair_generate): New argument: misc_data; modified
 
1170
        order of arguments.
 
1171
        (gcry_ac_key_test): New argument: handle.
 
1172
        (gcry_ac_key_get_nbits, gcry_ac_key_get_grip): Likewise.
 
1173
        Use GCRY_AC_FLAG_NO_BLINDING instead of
 
1174
        GCRY_AC_DATA_FLAG_NO_BLINDING.
 
1175
        (gcry_ac_mpi): New member: flags.
 
1176
        (gcry_ac_data_search, gcry_ac_data_add): Removed functions.
 
1177
 
 
1178
2003-12-22  Werner Koch  <wk@gnupg.org>
 
1179
 
 
1180
        * primegen.c (is_prime): Release A2.
 
1181
 
 
1182
2003-12-19  Werner Koch  <wk@gnupg.org>
 
1183
 
 
1184
        * md.c: Moved a couple of functions down below the data structure
 
1185
        definitions.
 
1186
        (struct gcry_md_context): New field ACTUAL_HANDLE_SIZE.
 
1187
        (md_open): Set it here.
 
1188
        (strcut gcry_md_list): New field ACTUAL_STRUCT_SIZE.
 
1189
        (md_enable): Set it here.
 
1190
        (md_close): Wipe the context memory.
 
1191
        secure memory.
 
1192
        * cipher.c (struct gcry_cipher_handle): New field ACTUAL_HANDLE_SIZE.
 
1193
        (gcry_cipher_open): Set it here.
 
1194
        (gcry_cipher_close): Use it to always wipe out the handle data.
 
1195
 
 
1196
        * ac.c (gcry_ac_open): Make sure HANDLE gets initialized even when
 
1197
        the function is not successful.
 
1198
        (gcry_ac_close): Allow a NULL handle.
 
1199
        (gcry_ac_key_destroy, gcry_ac_key_pair_destroy): Ditto.
 
1200
        (gcry_ac_key_get_grip): Return INV_OBJ on error.
 
1201
 
 
1202
        * primegen.c (prime_generate_internal): Fixed error code for
 
1203
        failed malloc.  Replaced the !err if chain by gotos.
 
1204
        (gcry_prime_group_generator): Remove the extra sanity check.
 
1205
 
 
1206
        * md.c: Minor code and comment cleanups.
 
1207
 
 
1208
2003-12-16  Werner Koch  <wk@gnupg.org>
 
1209
 
 
1210
        * primegen.c (gen_prime): Doc fix.  Thanks to Newton Hammet.
 
1211
 
 
1212
2003-12-11  Werner Koch  <wk@gnupg.org>
 
1213
 
 
1214
        * rndunix.c (slow_poll): Don't use #warning but #error.
 
1215
 
 
1216
        * rndegd.c: Changed indentation.
 
1217
        (my_make_filename): Removd the var_arg cruft becuase we
 
1218
        don't need it here.  Changed caller.  
 
1219
 
 
1220
        * rndlinux.c: Changed indentation.
 
1221
        (open_device): Remove the superfluous stat call and clarify
 
1222
        comment.
 
1223
 
 
1224
        * rsa.c: Changed indentation.
 
1225
        (secret): Use the standard algorithm if p, q and u are not
 
1226
        available.
 
1227
        (rsa_blind, rsa_unblind): Renamed from _gcry_rsa_blind,
 
1228
        _gcry_rsa_unblind and moved more to the top.
 
1229
 
 
1230
        * md4.c: Changed indentation.  Removed unnecessary casts.
 
1231
        * md5.c, rmd160.c, sha1.c, tiger.c: Ditto.
 
1232
        * rijndael.c, twofish.c: Ditto.
 
1233
        * serpent.c: Removed unnecessary casts.
 
1234
        * sha256.c, sha512.c: Ditto.
 
1235
 
 
1236
2003-12-09  Werner Koch  <wk@gnupg.org>
 
1237
 
 
1238
        * dsa.c: Unified indentation style.
 
1239
        * elgamal.c: Ditto. 
 
1240
        * des.c (des_key_schedule): Code beautifications.
 
1241
        * blowfish.c: Changed indentation style.
 
1242
        * cast5.c (do_cast_setkey): Ditto.
 
1243
 
 
1244
        * pubkey.c (gcry_pk_encrypt): Replaced the chain of if(!err) tests
 
1245
        by straightforward gotos. Other cleanups.
 
1246
        (gcry_pk_decrypt): Ditto.
 
1247
        (gcry_pk_sign): Ditto.
 
1248
        (gcry_pk_verify): Ditto.
 
1249
        (gcry_pk_genkey): Ditto.  Use strtoul instead of strtol.
 
1250
        (gcry_pk_ctl): Use GPG_ERR_INV_ARG to indicate bad arguments.
 
1251
 
 
1252
2003-12-07  Werner Koch  <wk@gnupg.org>
 
1253
 
 
1254
        * pubkey.c (gcry_pk_register_default): Undef the helper macro.
 
1255
        (gcry_pk_map_name): Allow NULL for string.
 
1256
        (sexp_to_key): Use memcpy and not strncpy.  Use gcry_free and not
 
1257
        free.
 
1258
        (sexp_to_sig): Ditto.
 
1259
        (sexp_to_enc): Ditto.  Replaced the chain of if(!err) tests by
 
1260
        straightforward gotos.
 
1261
 
 
1262
2003-12-05  Werner Koch  <wk@gnupg.org>
 
1263
 
 
1264
        * cipher.c: Documentation cleanups.
 
1265
        (gcry_cipher_mode_from_oid): Allow NULL for STRING.
 
1266
 
 
1267
2003-12-03  Werner Koch  <wk@gnupg.org>
 
1268
 
 
1269
        * elgamal.c (sign, do_encrypt, gen_k): Make sure that a small K is
 
1270
        only used for encryption.
 
1271
 
 
1272
2003-11-18  Werner Koch  <wk@gnupg.org>
 
1273
 
 
1274
        * random.h (rndw32_set_dll_name): Removed unused prototype.
 
1275
 
 
1276
        * Makefile.am (EXTRA_DIST): Added Manifest.
 
1277
 
 
1278
2003-11-11  Werner Koch  <wk@gnupg.org>
 
1279
 
 
1280
        * Manifest: New.
 
1281
 
 
1282
2003-11-04  Werner Koch  <wk@gnupg.org>
 
1283
 
 
1284
        * md.c (gcry_md_hash_buffer): Use shortcut for SHA1
 
1285
        * sha1.c (_gcry_sha1_hash_buffer): New.
 
1286
 
 
1287
        * random.c: Reformatted most functions.
 
1288
        (mix_pool): Moved the failsafe_digest from global
 
1289
        scope to here.
 
1290
        (do_fast_random_poll): Use the generic fucntions even if a fast
 
1291
        gathering function has been used.
 
1292
        (read_pool): Detect a fork and retry.
 
1293
        (gcry_randomize, get_random_bytes): Don't distinguish anymore
 
1294
        between weak and strong random.
 
1295
        (gcry_create_nonce): New.
 
1296
 
 
1297
2003-10-31  Werner Koch  <wk@gnupg.org>
 
1298
 
 
1299
        * rndw32.c (slow_gatherer_windowsNT): Use a plain buffer for the
 
1300
        disk performance values and not the W32 API structure.
 
1301
 
 
1302
        * dsa.c (verify): s/exp/ex/ due to shadowing of a builtin.
 
1303
        * elgamal.c (verify): Ditto.
 
1304
 
 
1305
        * ac.c (gcry_ac_data_get_index): s/index/idx/
 
1306
        (gcry_ac_data_copy_internal): Remove the cast in _gcry_malloc.
 
1307
        (gcry_ac_data_add): Must use gcry_realloc instead of realloc.
 
1308
        * pubkey.c (sexp_elements_extract): s/index/idx/ as tribute to the
 
1309
        forehackers.
 
1310
        (gcry_pk_encrypt): Removed shadowed definition of I. Reordered
 
1311
        arguments to malloc for clarity.
 
1312
        (gcry_pk_sign, gcry_pk_genkey): Ditto.
 
1313
        * primegen.c (prime_generate_internal): s/random/randomlevel/.
 
1314
 
 
1315
2003-10-27  Moritz Schulte  <mo@g10code.com>
 
1316
 
 
1317
        * pubkey.c (gcry_pk_encrypt): Don't forget to deallocate pkey.
 
1318
 
 
1319
2003-10-27  Werner Koch  <wk@gnupg.org>
 
1320
 
 
1321
        * random.c (gcry_random_add_bytes): Return if buflen is zero to
 
1322
        avoid gcc warning about unsed parameter.
 
1323
        (MASK_LEVEL): Simplified; does now work for signed and unsigned
 
1324
        w/o warnings.
 
1325
 
 
1326
        * md.c (md_start_debug): Removed the const from SUFFIX, because
 
1327
        this function is called from the control fucntion which does not
 
1328
        require const.
 
1329
 
 
1330
        Prefixed all (pubkey,digest,cipher}_spec_* globale variables with
 
1331
        _gcry_.
 
1332
 
 
1333
        * ac.c (ac_key_identifiers): Made static.
 
1334
 
 
1335
        * random.c (getfnc_gather_random,getfnc_fast_random_poll): Move
 
1336
        prototypes to ..
 
1337
        * rand-internal.h: .. here 
 
1338
        * random.c (getfnc_gather_random): Include rndw32 gatherer.
 
1339
        * rndunix.c, rndw32.c, rndegd.c: Include them here.
 
1340
        * rndlinux.c (_gcry_rndlinux_gather_random): Prepend the _gcry_
 
1341
        prefix.  Changed all callers.
 
1342
        * rndegd.c (_gcry_rndegd_gather_random): Likewise.
 
1343
        (_gcry_rndegd_connect_socket): Likewise.
 
1344
        * rndunix.c (_gcry_rndunix_gather_random): Likewise.
 
1345
        (waitpid): Made static.
 
1346
        * rndw32.c: Removed the old and unused winseed.dll cruft.
 
1347
        (_gcry_rndw32_gather_random_fast): Renamed from
 
1348
        gather_random_fast.
 
1349
        (_gcry_rndw32_gather_random): Renamed from gather_random.  Note,
 
1350
        that the changes 2003-04-08 somehow got lost.
 
1351
 
 
1352
        * sha512.c (sha512_init, sha384_init): Made static.
 
1353
 
 
1354
        * cipher.c (do_ctr_decrypt): Removed "return" from this void
 
1355
        function.
 
1356
 
 
1357
2003-10-24  Moritz Schulte  <mo@g10code.com>
 
1358
 
 
1359
        * serpent.c: Fix an issue on big-endian systems.
 
1360
 
 
1361
        * rndw32.c: Removed IS_MODULE -cruft.
 
1362
        * rndlinux.c (rndlinux_gather_random): Likewise.
 
1363
 
 
1364
2003-10-10  Werner Koch  <wk@gnupg.org>
 
1365
 
 
1366
        * primegen.c (gen_prime): Bail out if NBITS is less than 16.
 
1367
        (prime_generate_internal): Initialize prime variable to suppress
 
1368
        compiler warning.  Check pbits, initialize qbits when passed as
 
1369
        zero.
 
1370
 
 
1371
        * primegen.c (prime_generate_internal): New arg
 
1372
        ALL_FACTORS. Changed all callers.
 
1373
        (gcry_prime_generate): Make the factors arg optional. Request
 
1374
        all_factors.  Make sure PRIME is set to NULL even on error.
 
1375
        (gcry_prime_group_generator): New.
 
1376
        (gcry_prime_release_factors): New.
 
1377
 
 
1378
2003-10-06  Werner Koch  <wk@gnupg.org>
 
1379
 
 
1380
        * primegen.c (gen_prime): Assert that NBITS is never zero, it
 
1381
        would cause a segv.
 
1382
 
 
1383
2003-09-28  Moritz Schulte  <mo@g10code.com>
 
1384
 
 
1385
        * ac.c: Include "cipher.h".
 
1386
 
 
1387
2003-09-27  Moritz Schulte  <mo@g10code.com>
 
1388
 
 
1389
        * rndegd.c (do_read): Return nread instead of nbytes; thanks to
 
1390
        Michael Caerwyn.
 
1391
 
 
1392
2003-09-04  Werner Koch  <wk@gnupg.org>
 
1393
 
 
1394
        * pubkey.c (_gcry_pk_aliased_algo_name): New.
 
1395
        * ac.c (gcry_ac_open): Use it here.
 
1396
 
 
1397
        * Makefile.am (EXTRA_libcipher_la_SOURCES): Add serpent.c
 
1398
 
 
1399
2003-09-02  Moritz Schulte  <mo@g10code.com>
 
1400
 
 
1401
        * primegen.c (gcry_prime_check, gcry_prime_generate): New
 
1402
        functions.
 
1403
        (prime_generate_internal): New function, based on
 
1404
        _gcry_generate_elg_prime.
 
1405
        (_gcry_generate_elg_prime): Rewritten as a wrapper for
 
1406
        prime_generate_internal.
 
1407
 
 
1408
2003-08-28  Werner Koch  <wk@gnupg.org>
 
1409
 
 
1410
        * pubkey.c (gcry_pk_encrypt): Don't include the flags list in the
 
1411
        return value.  This does not make sense and breaks any programs
 
1412
        parsing the output strictly (e.g. current gpgsm).
 
1413
        (gcry_pk_encrypt): If aliases for the algorithm name exists, take
 
1414
        the first one instead of the regular name to adhere to SPKI
 
1415
        conventions.
 
1416
        (gcry_pk_genkey): Ditto.
 
1417
        (gcry_pk_sign): Ditto. Removed unused KEY_ALGO_NAME.
 
1418
 
 
1419
2003-08-19  Moritz Schulte  <mo@g10code.com>
 
1420
 
 
1421
        * cipher.c: Add support for Serpent
 
1422
        * serpent.c: New file.
 
1423
 
 
1424
2003-08-10  Moritz Schulte  <moritz@g10code.com>
 
1425
 
 
1426
        * rsa.c (_gcry_rsa_blind, _gcry_rsa_unblind): Declare static.
 
1427
 
 
1428
2003-08-09  Timo Schulz  <twoaday@freakmail.de>
 
1429
 
 
1430
        * random.c (getfnc_gather_random): Don't check NAME_OF_DEV_RANDOM
 
1431
        two times, but also the NAME_OF_DEV_URANDOM device.
 
1432
        
 
1433
2003-08-08  Moritz Schulte  <moritz@g10code.com>
 
1434
 
 
1435
        * pubkey.c (sexp_to_enc): Fixed extraction of S-Expression: do not
 
1436
        fail if no `flags' sub S-Expression is found.
 
1437
 
 
1438
2003-07-27  Werner Koch  <wk@gnupg.org>
 
1439
 
 
1440
        * md.c (gcry_md_lookup_func_oid): Allow for empty OID lists.
 
1441
 
 
1442
2003-07-23  Moritz Schulte  <moritz@g10code.com>
 
1443
 
 
1444
        * ac.c (gcry_ac_data_construct): New argument: include_flags, only
 
1445
        include `flags' S-expression, if include_flags is true.  Adjust
 
1446
        callers.  Thanks for triggering a bug caused by `flags'
 
1447
        sub-S-expression where they are not expected to Ralf Schneider.
 
1448
 
 
1449
2003-07-21  Moritz Schulte  <moritz@g10code.com>
 
1450
 
 
1451
        * pubkey.c (gcry_pk_lookup_func_name): Use new member name
 
1452
        `aliases' instead of `sexp_names'.
 
1453
 
 
1454
        * ac.c (gcry_ac_key_data_get): New function.
 
1455
 
 
1456
        * cipher.c (gcry_cipher_lookup_func_name): Fix return value.
 
1457
 
 
1458
2003-07-20  Moritz Schulte  <moritz@g10code.com>
 
1459
 
 
1460
        * blowfish.c: Adjusted for new gcry_cipher_spec_t structure.
 
1461
        * cast5.c: Likewise.
 
1462
        * twofish.c: Likewise.
 
1463
        * arcfour.c: Likewise.
 
1464
        * rijndael.c (rijndael_oids, rijndael192_oids, rijndael256_oids):
 
1465
        New variables, adjust for new gcry_cipher_spec_t structure.
 
1466
        * des.c (oids_tripledes): New variable, adjust for new
 
1467
        gcry_cipher_spec_t structure.
 
1468
 
 
1469
        * md.c (oid_table): Removed.
 
1470
 
 
1471
        * tiger.c (oid_spec_tiger): New variable.
 
1472
        (digest_spec_tiger): Adjusted for new gry_md_spec_t structure.
 
1473
 
 
1474
        * sha512.c (oid_spec_sha512): New variable.
 
1475
        (digest_spec_sha512): Adjusted for new gry_md_spec_t structure.
 
1476
 
 
1477
        * sha512.c (oid_spec_sha384): New variable.
 
1478
        (digest_spec_sha384): Adjusted for new gry_md_spec_t structure.
 
1479
 
 
1480
        * sha256.c (oid_spec_sha256): New variable.
 
1481
        (digest_spec_sha256): Adjusted for new gry_md_spec_t structure.
 
1482
 
 
1483
        * sha1.c (oid_spec_sha1): New variable.
 
1484
        (digest_spec_sha1): Adjusted for new gry_md_spec_t structure.
 
1485
 
 
1486
        * rmd160.c (oid_spec_rmd160): New variable.
 
1487
        (digest_spec_rnd160): Adjusted for new gry_md_spec_t structure.
 
1488
 
 
1489
        * md5.c (oid_spec_md5): New variable.
 
1490
        (digest_spec_md5): Adjusted for new gry_md_spec_t structure.
 
1491
 
 
1492
        * md4.c (oid_spec_md4): New variable.
 
1493
        (digest_spec_md4): Adjusted for new gry_md_spec_t structure.
 
1494
 
 
1495
        * crc.c (digest_spec_crc32, digest_spec_crc32_rfc1510,
 
1496
        digest_spec_crc32_rfc2440): Adjusted for new gry_md_spec_t
 
1497
        structure.
 
1498
 
 
1499
2003-07-19  Moritz Schulte  <moritz@g10code.com>
 
1500
 
 
1501
        * md.c (gcry_md_lookup_func_oid): New function.
 
1502
        (search_oid): New function, copied from cipher.c.
 
1503
        (gcry_md_map_name): Adjust for new search_oid_interface.
 
1504
 
 
1505
        * cipher.c (oid_table): Removed table.
 
1506
        (gcry_cipher_lookup_func_oid): New function.
 
1507
        (search_oid): Rewritten to use the module functions.
 
1508
        (gcry_cipher_map_name): Adjust for new search_oid interface.
 
1509
        (gcry_cipher_mode_from_oid): Likewise.
 
1510
 
 
1511
2003-07-18  Werner Koch  <wk@gnupg.org>
 
1512
 
 
1513
        * md.c (gcry_md_hash_buffer): Convert ERR to gpg_error_t in
 
1514
        gpg_strerror.
 
1515
 
 
1516
2003-07-14  Moritz Schulte  <moritz@g10code.com>
 
1517
 
 
1518
        * cipher.c (gcry_cipher_lookup_func_name): Also check the cipher
 
1519
        name aliases, not just the primary name.
 
1520
        (gcry_cipher_map_name): Remove kludge for aliasing Rijndael to
 
1521
        AES.
 
1522
 
 
1523
        * arcfour.c, blowfish.c, cast5.c, des.c, twofish.c: Adjust cipher
 
1524
        specification structures.
 
1525
 
 
1526
        * rijndael.c (rijndael_names, rijndael192_names,
 
1527
        rijndael256_names): New variables, use them in the cipher
 
1528
        specifications.
 
1529
 
 
1530
        * rmd160test.c: Removed file.
 
1531
 
 
1532
        * ac.c, arcfour.c, blowfish.c, cast5.c, cipher.c, des.c, dsa.c,
 
1533
        elgamal.c, md.c, pubkey.c, random.c, rijndael.c, rsa.c, twofish.c:
 
1534
        Used gcry_err* wrappers for libgpg symbols.
 
1535
 
 
1536
        * primegen.c (gen_prime): Correct the order arguments to
 
1537
        extra_check.
 
1538
 
 
1539
2003-07-12  Moritz Schulte  <moritz@g10code.com>
 
1540
 
 
1541
        * ac.c: Replaced all public occurences of gpg_error_t with
 
1542
        gcry_error_t.
 
1543
        * cipher.c: Likewise.
 
1544
        * md.c: Likewise.
 
1545
        * pubkey.c: Likewise.
 
1546
        * random.c: Likewise.
 
1547
 
 
1548
        * cipher.c: Added support for TWOFISH128.
 
1549
 
 
1550
2003-07-08  Moritz Schulte  <moritz@g10code.com>
 
1551
 
 
1552
        * ac.c (gcry_ac_data_copy_internal): New function, based on
 
1553
        gcry_ac_data_copy.
 
1554
        (gcry_ac_data_copy): Made public, use gcry_ac_data_copy_internal.
 
1555
        (gcry_ac_key_init): Use gcry_ac_data_copy_internal.
 
1556
 
 
1557
2003-07-07  Moritz Schulte  <moritz@g10code.com>
 
1558
 
 
1559
        * ac.c (gcry_ac_data_set): Only release old MPI value if it is
 
1560
        different from the new value.  Bug reported by Simon Josefsson
 
1561
        <jas@extundo.com>.
 
1562
 
 
1563
        * pubkey.c (gcry_pk_list): New function.
 
1564
        * md.c (gcry_md_list): New function.
 
1565
 
 
1566
        * ac.c (gcry_ac_key_pair_generate): Fix calculation of format
 
1567
        string size.
 
1568
 
 
1569
2003-07-05  Moritz Schulte  <moritz@g10code.com>
 
1570
 
 
1571
        * md.c: Named struct of digest_table `digest_table_entry'.
 
1572
        (digest_table_entry): New member: algorithm; filled in.
 
1573
        (digest_table_entry): Removed unused member: flags.
 
1574
        (gcry_md_register): New argument: algorithm_id, filled in.
 
1575
        (gcry_md_register_default): Used algorithm ID from module
 
1576
        structure.
 
1577
        (gcry_md_map_name): Likewise.
 
1578
        (md_enable): Likewise.
 
1579
        (md_read): Likewise.
 
1580
        (gcry_md_info): Likewise.
 
1581
 
 
1582
        * pubkey.c: Named truct for pubkey_table `pubkey_table_entry'.
 
1583
        (pubkey_table_entry): New member: algorithm; filled in.
 
1584
        (gcry_pk_register_default): Used algorithm ID from pubkey_table.
 
1585
        (gcry_pk_register): New argument: algorithm_id, filled in.
 
1586
        (gcry_pk_map_name): Used algorithm ID from module structure.
 
1587
        (gcry_pk_decrypt): Likewise.
 
1588
        (gcry_pk_encrypt): Likewise.
 
1589
        (gcry_pk_verify): Likewise.
 
1590
        (gcry_pk_sign): Likewise.
 
1591
        (gcry_pk_testkey): Likewise.
 
1592
        (gcry_pk_genkey): Likewise.
 
1593
        (gcry_pk_get_nbits): Likewise.
 
1594
        (sexp_to_key): Removed unused variable: algo.
 
1595
        (sexp_to_sig): Likewise.
 
1596
 
 
1597
        * cipher.c: Named struct for cipher_table `cipher_table_entry'.
 
1598
        (cipher_table_entry): New member: algorithm; filled in.
 
1599
        (gcry_cipher_register_default): Used algorithm ID from
 
1600
        cipher_table.
 
1601
        (gcry_cipher_register): New argument: algorithm_id, filled in.
 
1602
        (gcry_cipher_map_name): Used algorithm ID from module structure.
 
1603
 
 
1604
        * arcfour.c (cipher_spec_arcfour): Removed algorithm ID.
 
1605
        * blowfish.c (cipher_spec_blowfish): Likewise.
 
1606
        * cast5.c (cipher_spec_cast5): Likewise.
 
1607
        * crc.c (digest_spec_crc32): Likewise.
 
1608
        * crc.c (digest_spec_crc32_rfc1510): Likewise.
 
1609
        * crc.c (digest_spec_crc32_rfc2440): Likewise.
 
1610
        * des.c (cipher_spec_des): Likewise.
 
1611
        * des.c (cipher_spec_tripledes): Likewise.
 
1612
        * dsa.c (pubkey_spec_dsa): Likewise.
 
1613
        * elgamal.c (pubkey_spec_elg): Likewise.
 
1614
        * md4.c (digest_spec_md4): Likewise.
 
1615
        * md5.c (digest_spec_md5): Likewise.
 
1616
        * aes.c (cipher_spec_aes): Likewise.
 
1617
        * aes.c (cipher_spec_aes192): Likewise.
 
1618
        * aes.c (cipher_spec_aes256): Likewise.
 
1619
        * rsa.c (pubkey_spec_rsa): Likewise.
 
1620
        * sha1.c (digest_spec_sha1): Likewise.
 
1621
        * sha256.c (digest_spec_sha256): Likewise.
 
1622
        * sha512.c (digest_spec_sha512): Likewise.
 
1623
        * tiger.c (digest_spec_tiger): Likewise.
 
1624
        * twofish.c (cipher_spec_twofish): Likewise.
 
1625
        * twofish.c (cipher_spec_twofish128): Likewise.
 
1626
 
 
1627
        * Makefile.am (EXTRA_libcipher_la_SOURCES): Fix list of source
 
1628
        files; reported by Simon Josefsson <jas@extundo.com>.
 
1629
 
 
1630
        * pubkey.c: Replaced all occurences of `id' with `algorithm',
 
1631
        since `id' is a keyword in obj-c.
 
1632
        * md.c: Likewise.
 
1633
        * cipher.c: Likewise.
 
1634
 
 
1635
        * crc.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, tiger.c:
 
1636
        Replaced all occurences of gcry_digest_spec_t with gcry_md_spec_t.
 
1637
 
 
1638
        * dsa.c, rsa.c, elgamal.c: Replaced all occurencens of
 
1639
        gcry_pubkey_spec_t with gcry_pk_spec_t.
 
1640
 
 
1641
        * md.c: Replaced all occurences of gcry_digest_spec_t with
 
1642
        gcry_md_spec_t.
 
1643
        (gcry_digest_register_default): Renamed to ...
 
1644
        (gcry_md_register_default): ... this; adjusted callers.
 
1645
        (gcry_digest_lookup_func_name): Renamed to ...
 
1646
        (gcry_md_lookup_func_name): ... this; adjusted callers.
 
1647
        (gcry_digest_lookup_name): Renamed to ...
 
1648
        (gcry_md_lookup_name): ... this; adjusted callers.
 
1649
        (gcry_digest_register): Renamed to ...
 
1650
        (gcry_md_register): ... this.
 
1651
        (gcry_digest_unregister): Renamed to ...
 
1652
        (gcry_md_unregister): ... this.
 
1653
 
 
1654
        * pubkey.c (gcry_pubkey_register): Renamed to ...
 
1655
        (gcry_pk_register): ... this.
 
1656
        (gcry_pubkey_unregister): Renamed to ...
 
1657
        (gcry_pk_unregister): ... this.
 
1658
        Replaced all occurences of gcry_pubkey_spec_t with gcry_pk_spec_t.
 
1659
        (gcry_pubkey_register_default): Renamed to ...
 
1660
        (gcry_pk_register_default): ... this; adjusted callers.
 
1661
        (gcry_pubkey_lookup_func_name): Renamed to ...
 
1662
        (gcry_pk_lookup_func_name): ... this; adjusted callers.
 
1663
        (gcry_pubkey_lookup_name): Renamed to ...
 
1664
        (gcry_pk_lookup_name): ... this; adjusted callers.
 
1665
 
 
1666
        * md.c (gcry_md_hash_buffer): Fix error checking.  Thanks to Simon
 
1667
        Josefsson <jas@extunde.com>.
 
1668
 
 
1669
2003-07-04  Moritz Schulte  <moritz@g10code.com>
 
1670
 
 
1671
        * cipher.c (gcry_cipher_list): New function.
 
1672
 
 
1673
2003-07-01  Moritz Schulte  <moritz@g10code.com>
 
1674
 
 
1675
        * pubkey.c (sexp_to_sig): Accept a `flags' S-expression to be more
 
1676
        consistent with sexp_to_enc.
 
1677
 
 
1678
2003-06-30  Moritz Schulte  <moritz@g10code.com>
 
1679
 
 
1680
        * Makefile.am (libcipher_la_SOURCES): Added: ac.c.
 
1681
 
 
1682
        * pubkey.c (_gcry_pk_module_lookup): New function.
 
1683
        (_gcry_pk_module_release): New function.
 
1684
 
 
1685
2003-06-29  Moritz Schulte  <moritz@g10code.com>
 
1686
 
 
1687
        * ac.c: New file.
 
1688
 
 
1689
2003-06-26  Werner Koch  <wk@gnupg.org>
 
1690
 
 
1691
        * md.c (gcry_md_hash_buffer): Trigger BUG correcly with new API.
 
1692
 
 
1693
2003-06-19  Werner Koch  <wk@gnupg.org>
 
1694
 
 
1695
        * md.c (gcry_md_is_enabled): Fixed. 
 
1696
 
 
1697
2003-06-18  Werner Koch  <wk@gnupg.org>
 
1698
 
 
1699
        * cipher.c (gcry_cipher_get_algo_keylen): New.
 
1700
        (gcry_cipher_get_algo_blklen): New.
 
1701
 
 
1702
2003-06-18  Moritz Schulte  <moritz@g10code.com>
 
1703
 
 
1704
        * arcfour.c, cipher.c, blowfish.c, md.c, cast5.c, pubkey.c, crc.c,
 
1705
        des.c, dsa.c, elgamal.c, md4.c, md5.c, random.c, rijndael.c,
 
1706
        rmd160.c, rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c:
 
1707
        Replaced older types GcryDigestSpec, GcryCipherSpec and
 
1708
        GcryPubkeySpec with newer types: gcry_digest_spec_t,
 
1709
        gcry_cipher_spec_t and gcry_pubkey_spec_t.
 
1710
 
 
1711
        * md.c (gcry_digest_id_new): Removed function.
 
1712
        (gcry_digest_register): Removed code for generating a new module
 
1713
        ID.
 
1714
 
 
1715
        * pubkey.c (gcry_pubkey_id_new): Removed function.
 
1716
        (gcry_pubkey_register): Removed code for generating a new module
 
1717
        ID.
 
1718
 
 
1719
        * cipher.c, md.c, pubkey.c: Replace old type GcryModule with newer
 
1720
        one: gcry_module_t.
 
1721
        (gcry_cipher_id_new): Removed function.
 
1722
        (gcry_cipher_register): Removed code for generating a new module
 
1723
        ID.
 
1724
 
 
1725
        * cipher.c (gcry_cipher_register): Adjust call to
 
1726
        _gcry_module_add.
 
1727
        (gcry_cipher_register_default): Likewise.
 
1728
        * pubkey.c (gcry_pubkey_register_default): Likewise.
 
1729
        (gcry_pubkey_register): Likewise.
 
1730
        * md.c (gcry_digest_register_default): Likewise.
 
1731
        (gcry_digest_register): Likewise.
 
1732
 
 
1733
        * md.c (gcry_digest_lookup_func_id): Removed function.
 
1734
        (gcry_digest_lookup_id): Likewise.
 
1735
        (gcry_digest_id_new): Use _gcry_module_lookup_id instead of
 
1736
        gcry_digest_lookup_id.
 
1737
        (digest_algo_to_string): Likewise.
 
1738
        (check_digest_algo): Likewise.
 
1739
        (md_enable): Likewise.
 
1740
        (md_digest_length): Likewise.
 
1741
        (md_asn_oid): Likewise.
 
1742
 
 
1743
        * pubkey.c (gcry_pubkey_lookup_id): Removed function.
 
1744
        (gcry_pubkey_lookup_func_id): Likewise.
 
1745
        (gcry_pubkey_id_new): Use _gcry_module_lookup_id instead of
 
1746
        gcry_pubkey_id_new.
 
1747
        (gcry_pk_algo_name): Likewise.
 
1748
        (disable_pubkey_algo): Likewise.
 
1749
        (check_pubkey_algo): Likewise.
 
1750
        (pubkey_get_npkey): Likewise.
 
1751
        (pubkey_get_nskey): Likewise.
 
1752
        (pubkey_get_nsig): Likewise.
 
1753
        (pubkey_get_nenc): Likewise.
 
1754
        (pubkey_generate): Likewise.
 
1755
        (pubkey_check_secret_key): Likewise.
 
1756
        (pubkey_encrypt): Likewise.
 
1757
        (pubkey_decrypt): Likewise.
 
1758
        (pubkey_sign): Likewise.
 
1759
        (pubkey_verify): Likewise.
 
1760
        (gcry_pk_algo_info): Likewise.
 
1761
 
 
1762
        * cipher.c (gcry_cipher_lookup_func_id): Removed function.
 
1763
        (gcry_cipher_lookup_id): Likewise.
 
1764
        (cipher_algo_to_string): use _gcry_module_lookup_id instead of
 
1765
        gcry_cipher_lookup_id.
 
1766
        (disable_cipher_algo): Likewise.
 
1767
        (check_cipher_algo): Likewise.
 
1768
        (cipher_get_blocksize): Likewise.
 
1769
        (gcry_cipher_open): Likewise.
 
1770
        (gcry_cipher_id_new): Likewise.
 
1771
 
 
1772
2003-06-17  Moritz Schulte  <moritz@g10code.com>
 
1773
 
 
1774
        * Makefile.am (GCRYPT_MODULES): Set to @GCRYPT_CIPHERS@,
 
1775
        @GCRYPT_PUBKEY_CIPHERS@, @GCRYPT_DIGESTS@ and @GCRYPT_RANDOM@.
 
1776
        (libcipher_la_DEPENDENCIES): Set to $(GCRYPT_MODULES).
 
1777
        (libcipher_la_LIBADD): Likewise.
 
1778
        (AM_CFLAGS): Added: @GPG_ERROR_CFLAGS@.
 
1779
        (EXTRA_libcipher_la_SOURCES): Added all conditional sources.
 
1780
 
 
1781
        * md.c (md_open): Use _gcry_fast_random_poll instead of
 
1782
        fast_random_poll.
 
1783
        * cipher.c (gcry_cipher_open): Likewise.
 
1784
 
 
1785
        * random.h (fast_random_poll): Removed macro.
 
1786
 
 
1787
        * blowfish.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, sha512.c,
 
1788
        tiger.c: Use Autoconf's WORDS_BIGENDIAN instead of our own
 
1789
        BIG_ENDIAN_HOST.
 
1790
 
 
1791
2003-06-16  Moritz Schulte  <moritz@g10code.com>
 
1792
 
 
1793
        * random.c (getfnc_gather_random): Do not special-case
 
1794
        USE_ALL_RANDOM_MODULES, make it the default.
 
1795
 
 
1796
        * dsa.c: Replace last occurences of old type names with newer
 
1797
        names (i.e. replace MPI with gcry_mpi_t).
 
1798
        * elgamal.c: Likewise.
 
1799
        * primegen.c: Likewise.
 
1800
        * pubkey.c: Likewise.
 
1801
        * rsa.c: Likewise.
 
1802
 
 
1803
2003-06-14  Moritz Schulte  <moritz@g10code.com>
 
1804
 
 
1805
        * des.c (des_setkey): Add selftest check.
 
1806
        (tripledes_set3keys): Likewise.
 
1807
        (do_tripledes_setkey): Remove selftest check.
 
1808
        (do_des_setkey): Likewise.
 
1809
 
 
1810
2003-06-11  Moritz Schulte  <moritz@g10code.com>
 
1811
 
 
1812
        * md.c (_gcry_md_init): New function.
 
1813
        * cipher.c (_gcry_cipher_init): New function.
 
1814
        * pubkey.c (_gcry_pk_init): New function.
 
1815
 
 
1816
2003-06-13  Werner Koch  <wk@gnupg.org>
 
1817
 
 
1818
        * md.c (gcry_md_get_algo): Reverted to old API.  This is a
 
1819
        convenience function anyway and error checking is not approriate.
 
1820
        (gcry_md_is_secure): New.
 
1821
        (gcry_md_is_enabled): New.
 
1822
 
 
1823
2003-06-12  Werner Koch  <wk@gnupg.org>
 
1824
 
 
1825
        * cipher.c (gcry_cipher_open): Make sure HANDLE is set to NULL on
 
1826
        error.
 
1827
 
 
1828
2003-06-11  Werner Koch  <wk@gnupg.org>
 
1829
 
 
1830
        * md.c (gcry_md_open): Make sure H receives either NULL or an
 
1831
        valid handle.
 
1832
        (gcry_md_copy): Swapped arguments so that it is more in lione with
 
1833
        md_open and most other API fucntions like memcpy (destination
 
1834
        comes first).  Make sure HANDLE is set to NULL on error.
 
1835
        
 
1836
        * rijndael.c (do_encrypt): Hack to force correct alignment.  It
 
1837
        seems not to be not sufficient, though.  We should rework this
 
1838
        fucntions and remove all these ugly casts.  Let the compiler
 
1839
        optimize or have an assembler implementation.
 
1840
 
 
1841
2003-06-09  Moritz Schulte  <moritz@g10code.com>
 
1842
 
 
1843
        * Makefile.am: Removed rules serpent, since that is not commited
 
1844
        yet.
 
1845
 
 
1846
2003-06-08  Moritz Schulte  <moritz@g10code.com>
 
1847
 
 
1848
        * pubkey.c (gcry_pk_encrypt): Improve calculation for size of the
 
1849
        format string.
 
1850
 
 
1851
2003-06-07  Moritz Schulte  <moritz@g10code.com>
 
1852
 
 
1853
        * arcfour.c, bithelp.h, blowfish.c, cast5.c, cipher.c, crc.c,
 
1854
        des.c, dsa.c, elgamal.c, md4.c, md5.c, md.c, primegen.c, pubkey.c,
 
1855
        rand-internal.h, random.c, random.h, rijndael.c, rmd160.c,
 
1856
        rmd160test.c, rmd.h, rndeged.c, rndlinux.c, rndunix.c, rndw32.c,
 
1857
        rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c: Edited all
 
1858
        preprocessor instructions to remove whitespace before the '#'.
 
1859
        This is not required by C89, but there are some compilers out
 
1860
        there that don't like it.  Replaced any occurence of the now
 
1861
        deprecated type names with the new ones.
 
1862
        
 
1863
2003-06-04  Moritz Schulte  <moritz@g10code.com>
 
1864
 
 
1865
        * pubkey.c (gcry_pk_encrypt): Construct an arg_list and use
 
1866
        gcry_sexp_build_array instead of gcry_sexp_build.
 
1867
        (gcry_pk_sign): Likewise.
 
1868
        (gcry_pk_genkey): Likewise.
 
1869
 
 
1870
2003-06-01  Moritz Schulte  <moritz@g10code.com>
 
1871
 
 
1872
        * dsa.c (_gcry_dsa_generate): Do not check wether the algorithm ID
 
1873
        does indeed belong to DSA.
 
1874
        (_gcry_dsa_sign): Likewise.
 
1875
        (_gcry_dsa_verify): Likewise.
 
1876
        (_gcry_dsa_get_nbits): Likewise.
 
1877
 
 
1878
        * elgamal.c (_gcry_elg_check_secret_key): Do not check wether the
 
1879
        algorithm ID does indeed belong to ElGamal.
 
1880
        (_gcry_elg_encrypt): Likewise.
 
1881
        (_gcry_elg_decrypt): Likewise.
 
1882
        (_gcry_elg_sign): Likewise.
 
1883
        (_gcry_elg_verify): Likewise.
 
1884
        (_gcry_elg_get_nbits): Likewise.
 
1885
        (_gcry_elg_generate): Likewise.
 
1886
 
 
1887
        * rsa.c (_gcry_rsa_generate): Do not check wether the algorithm ID
 
1888
        does indeed belong to RSA.
 
1889
        (_gcry_rsa_encrypt): Likewise.
 
1890
        (_gcry_rsa_decrypt): Likewise.
 
1891
        (_gcry_rsa_sign): Likewise.
 
1892
        (_gcry_rsa_verify): Likewise.
 
1893
        (_gcry_rsa_get_nbits): Likewise.
 
1894
 
 
1895
2003-05-30  Moritz Schulte  <moritz@g10code.com>
 
1896
 
 
1897
        * md.c (md_get_algo): Return zero in case to algorithm is enabled.
 
1898
 
 
1899
        * md.c (gcry_md_info): Adjusted for new no-errno-API.
 
1900
        (md_final): Likewise.
 
1901
        (gcry_md_get_algo): Likewise.
 
1902
        * pubkey.c (gcry_pk_get_keygrip): Likewise.
 
1903
        (gcry_pk_ctl): Likewise.
 
1904
        (gcry_pk_algo_info): Likewise.
 
1905
        * des.c (selftest): Likewise.
 
1906
 
 
1907
2003-05-29  Moritz Schulte  <moritz@g10code.com>
 
1908
 
 
1909
        * md.c (md_enable): Do not forget to release module on error.
 
1910
        (gcry_md_open): Adjusted for new no-errno-API.
 
1911
        (md_open): Likewise.
 
1912
        (md_copy): Likewise.
 
1913
        (gcry_md_copy): Likewise.
 
1914
        (gcry_md_setkey): Likewise.
 
1915
        (gcry_md_algo_info): Likewise.
 
1916
 
 
1917
        * cipher.c (gcry_cipher_open): Adjusted for new no-errno-API and
 
1918
        also fixed a locking bug.
 
1919
        (gcry_cipher_encrypt): Adjusted for new no-errno-API.
 
1920
        (gcry_cipher_decrypt): Likewise.
 
1921
        (gcry_cipher_ctl): Likewise.
 
1922
        (gcry_cipher_info): Likewise.
 
1923
        (gcry_cipher_algo_info): Likewise.
 
1924
 
 
1925
2003-05-28  Moritz Schulte  <moritz@g10code.com>
 
1926
 
 
1927
        * md.c (md_enable): Adjusted for libgpg-error.
 
1928
        (gcry_md_enable): Likewise.
 
1929
        (gcry_digest_register_default): Likewise.
 
1930
        (gcry_digest_register): Likewise.
 
1931
        (check_digest_algo): Likewise.
 
1932
        (prepare_macpads): Likewise.
 
1933
        (gcry_md_setkey): Likewise.
 
1934
        (gcry_md_ctl): Likewise.
 
1935
        (gcry_md_get): Likewise.
 
1936
        (gcry_md_algo_info): Likewise.
 
1937
        (gcry_md_info): Likewise.
 
1938
        * dsa.c (_gcry_dsa_generate): Likewise.
 
1939
        (_gcry_dsa_check_secret_key): Likewise.
 
1940
        (_gcry_dsa_sign): Likewie.
 
1941
        (_gcry_dsa_verify): Likewise.
 
1942
        * twofish.c (do_twofish_setkey): Likewise.
 
1943
        (twofish_setkey): Likewise.
 
1944
        * cipher.c (gcry_cipher_register): Likewise.
 
1945
 
 
1946
2003-05-25  Moritz Schulte  <moritz@g10code.com>
 
1947
 
 
1948
        * rijndael.c (do_setkey): Adjusted for libgpg-error.
 
1949
        (rijndael_setkey): Likewise.
 
1950
        * random.c (gcry_random_add_bytes): Likewise.
 
1951
        * elgamal.c (_gcry_elg_generate): Likewise.
 
1952
        (_gcry_elg_check_secret_key): Likewise.
 
1953
        (_gcry_elg_encrypt): Likewise.
 
1954
        (_gcry_elg_decrypt): Likewise.
 
1955
        (_gcry_elg_sign): Likewise.
 
1956
        (_gcry_elg_verify): Likewise.
 
1957
        * rsa.c (_gcry_rsa_generate): Likewise.
 
1958
        (_gcry_rsa_check_secret_key): Likewise.
 
1959
        (_gcry_rsa_encrypt): Likewise.
 
1960
        (_gcry_rsa_decrypt): Likewise.
 
1961
        (_gcry_rsa_sign): Likewise.
 
1962
        (_gcry_rsa_verify): Likewise.
 
1963
        * pubkey.c (dummy_generate, dummy_check_secret_key, dummy_encrypt,
 
1964
        dummy_decrypt, dummy_sign, dummy_verify): Likewise.
 
1965
        (gcry_pubkey_register): Likewise.
 
1966
        (check_pubkey_algo): Likewise.
 
1967
        (pubkey_generate): Likewise.
 
1968
        (pubkey_check_secret_key): Likewise.
 
1969
        (pubkey_encrypt): Likewise.
 
1970
        (pubkey_decrypt): Likewise.
 
1971
        (pubkey_sign): Likewise.
 
1972
        (pubkey_verify): Likewise.
 
1973
        (sexp_elements_extract): Likewise.
 
1974
        (sexp_to_key): Likewise.
 
1975
        (sexp_to_sig): Likewise.
 
1976
        (sexp_to_enc): Likewise.
 
1977
        (sexp_data_to_mpi): Likewise.
 
1978
        (gcry_pk_encrypt): Likewise.
 
1979
        (gcry_pk_decrypt): Likewise.
 
1980
        (gcry_pk_sign): Likewise.
 
1981
        (gcry_pk_verify): Likewise.
 
1982
        (gcry_pk_testkey): Likewise.
 
1983
        (gcry_pk_genkey): Likewise.
 
1984
        (gcry_pk_ctl): Likewise.
 
1985
        * cipher.c (dummy_setkey): Likewise.
 
1986
        (check_cipher_algo): Likewise.
 
1987
        (gcry_cipher_open): Likewise.
 
1988
        (cipher_setkey): Likewise.
 
1989
        (gcry_cipher_ctl): Likewise.
 
1990
        (cipher_encrypt): Likewise.
 
1991
        (gcry_cipher_encrypt): Likewise.
 
1992
        (cipher_decrypt): Likewise.
 
1993
        (gcry_cipher_decrypt): Likewise.
 
1994
        (gcry_cipher_info): Likewise.
 
1995
        (gcry_cipher_algo_info): Likewise.
 
1996
        * cast5.c (cast_setkey): Likewise.
 
1997
        (do_cast_setkey): Likewise.
 
1998
        * arcfour.c (arcfour_setkey): Likewise.
 
1999
        (do_arcfour_setkey): Likewise.
 
2000
        * blowfish.c (do_bf_setkey): Likewise.
 
2001
        (bf_setkey): Likewise.
 
2002
        * des.c (do_des_setkey): Likewise.
 
2003
        (do_tripledes_setkey): Likewise.
 
2004
 
 
2005
2003-05-22  Moritz Schulte  <moritz@g10code.com>
 
2006
 
 
2007
        * tiger.c: Merged code ussing the U64_C macro from GnuPG.
 
2008
 
 
2009
        * sha512.c: Likewise.
 
2010
 
 
2011
2003-05-17  Moritz Schulte  <moritz@g10code.com>
 
2012
 
 
2013
        * pubkey.c (gcry_pk_genkey): Fix type: acquire a lock, instead of
 
2014
        releasing it.
 
2015
 
 
2016
2003-05-11  Moritz Schulte  <moritz@g10code.com>
 
2017
 
 
2018
        * pubkey.c (gcry_pk_testkey): Call REGISTER_DEFAULT_CIPHERS.
 
2019
        (gcry_pk_ctl): Likewise.
 
2020
 
 
2021
2003-04-27  Moritz Schulte  <moritz@g10code.com>
 
2022
 
 
2023
        * pubkey.c (gcry_pk_genkey): Release sexp after extracted data has
 
2024
        been used.
 
2025
 
 
2026
        * md.c (gcry_md_get_algo_dlen): Simplified, simply call
 
2027
        md_digest_length to do the job.
 
2028
 
 
2029
        * des.c (do_des_setkey): Check for selftest failure not only
 
2030
        during initialization.
 
2031
        (do_tripledes_setkey): Include check for selftest failure.
 
2032
 
 
2033
        * pubkey.c (gcry_pubkey_register_default): New macro
 
2034
        `pubkey_use_dummy', use it.
 
2035
 
 
2036
        * elgamal.c (elg_names): New variable.
 
2037
        (pubkey_spec_elg): Include elg_names.
 
2038
 
 
2039
        * dsa.c (dsa_names): New variable.
 
2040
        (pubkey_spec_dsa): Include dsa_names.
 
2041
 
 
2042
        * rsa.c (rsa_names): New variable.
 
2043
        (pubkey_spec_rsa): Include rsa_names.
 
2044
 
 
2045
        * pubkey.c (gcry_pubkey_lookup_func_name): Compare name also with
 
2046
        the names listed in `sexp_names'.
 
2047
 
 
2048
2003-04-24  Moritz Schulte  <moritz@g10code.com>
 
2049
 
 
2050
        * pubkey.c (sexp_to_key): New variables: module, pubkey.  Adjusted
 
2051
        to new module interface.
 
2052
        (sexp_to_key): Changend type of argument `retalgo' from `int *' to
 
2053
        `GcryModule **'.  Adjusted all callers.  Removed argument:
 
2054
        r_algotblidx.
 
2055
        (sexp_to_sig): Changend type of argument `retalgo' from `int *' to
 
2056
        `GcryModule **'.  Adjusted all callers.
 
2057
        (sexp_to_enc): Likewise.
 
2058
 
 
2059
        (pubkey_get_npkey, pubkey_get_nskey, pubkey_get_nsig,
 
2060
        pubkey_get_nenc): Use strlen to find out the number.
 
2061
 
 
2062
        * rsa.c: Adjust pubkey_spec_rsa to new internal interface.
 
2063
        * dsa.c: Likewise.
 
2064
        * elgamal.c: Likewise.
 
2065
 
 
2066
2003-04-17  Moritz Schulte  <moritz@g10code.com>
 
2067
 
 
2068
        * pubkey.c (sexp_elements_extract): New function.
 
2069
        * pubkey.c (sexp_to_key): Removed variable `idx', added `err', use
 
2070
        sexp_elements_extract.
 
2071
        (sexp_to_sig): Likewise.
 
2072
        (sexp_to_enc): Likewise.
 
2073
 
 
2074
        * pubkey.c: Terminate list correctly.
 
2075
        * md.c: Include sha512/sha384 in digest_table.
 
2076
 
 
2077
2003-04-16  Moritz Schulte  <moritz@g10code.com>
 
2078
 
 
2079
        * Makefile.am: Include support for sha512.c.
 
2080
 
 
2081
        * sha512.c: New file, merged from GnuPG, with few modifications
 
2082
        for libgcrypt.
 
2083
 
 
2084
        * rand-internal.h: Removed declarations for constructor functions.
 
2085
 
 
2086
        * md.c (md_copy): Call _gcry_module_use for incrementing the usage
 
2087
        counter of the digest modules.
 
2088
 
 
2089
        * rsa.c: Do not include "rsa.h".
 
2090
        * dsa.c: Do not include "dsa.h".
 
2091
        * elgamal.c: Do not include "elgamal.h".
 
2092
        * des.c: Do not include "des.h".
 
2093
        * cast5.c: Do not include "cast5.h".
 
2094
        * blowfish.c: Do not include "blowfish.h".
 
2095
        * arcfour.c: Do not include "arcfour.h".
 
2096
 
 
2097
        * Makefile.am (libcipher_la_DEPENDENCIES): Removed.
 
2098
        (libcipher_la_LIBADD): Removed.
 
2099
        Use Automake conditionals for conditional compilation.
 
2100
 
 
2101
2003-04-13  Moritz Schulte  <moritz@g10code.com>
 
2102
 
 
2103
        * cipher.c (gcry_cipher_open): Call REGISTER_DEFAULT_CIPHERS.
 
2104
 
 
2105
        * md.c (gcry_md_list): New member: module.
 
2106
        (md_enable): New variable: module, changed use of module and
 
2107
        digest.
 
2108
        (md_enable): Initialize member: module.
 
2109
        (md_close): Call _gcry_module_release.
 
2110
 
 
2111
        * cipher.c (gcry_cipher_open): New variable: module, changed use of
 
2112
        module and cipher.
 
2113
        (struct gcry_cipher_handle): New member: module.
 
2114
        (gcry_cipher_open): Initialize member: module.
 
2115
        (gcry_cipher_close): Call _gcry_module_release.
 
2116
 
 
2117
2003-04-09  Moritz Schulte  <moritz@g10code.com>
 
2118
        
 
2119
        * cipher.c: Include "ath.h".
 
2120
        * md.c: Likewise.
 
2121
        * pubkey.c: Likewise.
 
2122
 
 
2123
        * cipher.c (ciphers_registered_lock): New variable.
 
2124
        * md.c (digests_registered_lock): New variable.
 
2125
        * pubkey.c (pubkeys_registered_lock): New variable.
 
2126
 
 
2127
        * rndlinux.c (gnupgext_version, func_table): Removed definitions.
 
2128
        (gnupgext_enum_func): Removed function.
 
2129
        (_gcry_rndlinux_constructor): Removed function.
 
2130
 
 
2131
        * rndegd.c (gnupgext_version, func_table): Removed definitions.
 
2132
        (gnupgext_enum_func): Removed function.
 
2133
        (_gcry_rndegd_constructor): Removed function.
 
2134
 
 
2135
        * rndunix.c (gnupgext_version, func_table): Removed definitions.
 
2136
        (gnupgext_enum_func): Removed function.
 
2137
        (_gcry_rndunix_constructor): Removed function.
 
2138
 
 
2139
        * rndw32.c (gnupgext_version, func_table): Removed definitions.
 
2140
        (gnupgext_enum_func): Removed function.
 
2141
        (_gcry_rndw32_constructor): Removed function.
 
2142
 
 
2143
        * rndegd.c (rndegd_connect_socket): Simplify code for creating the
 
2144
        egd socket address.
 
2145
        (rndegd_connect_socket): Call log_fatal use instead of
 
2146
        g10_log_fatal.
 
2147
        (egd_gather_random): Renamed to ...
 
2148
        (rndegd_gather_random): ... here.
 
2149
 
 
2150
2003-04-08  Moritz Schulte  <moritz@g10code.com>
 
2151
 
 
2152
        * rndlinux.c: Do not include "dynload.h".
 
2153
        * rndunix.c: Likewise.
 
2154
        * rndw32.c: Likewise.
 
2155
 
 
2156
        * rndegd.c (rndegd_connect_socket): Factored out from ...
 
2157
        (egd_gather_random): here; call it.
 
2158
        (egd_socket): New variable.
 
2159
        (egd_gather_random): Initialize fd with egd_socket, do not declare
 
2160
        fd static.
 
2161
        (do_read): Merged few changes from GnuPG. FIXME - not finished?
 
2162
        Do not include "dynload.h".
 
2163
 
 
2164
        * rndw32.c (gather_random): Renamed to rndw32_gather_random, do
 
2165
        not declare static.
 
2166
        (gather_random_fast): Renamed to rndw32_gather_random_fast, do not
 
2167
        declare static.
 
2168
 
 
2169
        * rndunix.c (gather_random): Renamed to rndunix_gather_random, do
 
2170
        not declare static.
 
2171
        * rndegd.c (gather_random): Renamed to rndegd_gather_random, do
 
2172
        not declare static.
 
2173
        * rndlinux.c (gather_random): Renamed to rndlinux_gather_random,
 
2174
        do not declare static.
 
2175
 
 
2176
2003-04-07  Moritz Schulte  <moritz@g10code.com>
 
2177
 
 
2178
        * Makefile.am (libcipher_la_SOURCES): Removed construct.c.
 
2179
        (libcipher_la_SOURCES): Added sha1.c, sha256.c, rmd160.c, md4.c,
 
2180
        md5.c, tiger.c and crc.c
 
2181
        (EXTRA_PROGRAMS): Removed sha1, sha256, rmd160, md4, md5, tiger
 
2182
        and crc.  Removed definitions: EXTRA_md4_SOURCES,
 
2183
        EXTRA_md5_SOURCES, EXTRA_rmd160_SOURCES, EXTRA_sha1_SOURCES,
 
2184
        EXTRA_sha256_SOURCES, EXTRA_tiger_SOURCES and EXTRA_crc_SOURCES,
 
2185
        BUILT_SOURCES, DISTCLEANFILES.
 
2186
 
 
2187
        * pubkey.c: Do not include "elgamal.h", "dsa.h" and "rsa.h".
 
2188
 
 
2189
        * Makefile.am (libcipher_la_SOURCES): Removed rsa.h, elgamal.h,
 
2190
        dsa.h, des.h, cast5.h, arcfour.h and blowfish.h.
 
2191
 
 
2192
        * rsa.h: Removed file.
 
2193
        * elgamal.h: Removed file.
 
2194
        * dsa.h: Removed file.
 
2195
        * des.h: Removed file.
 
2196
        * cast5.h: Removed file.
 
2197
        * arcfour.h: Removed file.
 
2198
        * blowfish.h: Removed file.
 
2199
 
 
2200
        * Makefile.am (libcipher_la_SOURCES): Removed dynload.c and
 
2201
        dynload.h.
 
2202
 
 
2203
        * rsa.c (pubkey_spec_rsa): New variable.
 
2204
        * dsa.c (pubkey_spec_rsa): New variable.
 
2205
        * elgamal.c (pubkey_spec_elg): New variable.
 
2206
        
 
2207
        * rsa.c (_gcry_rsa_get_info): Removed function.
 
2208
        * elgamal.c (_gcry_elg_get_info): Removed function.
 
2209
        * dsa.c (_gcry_dsa_get_info): Removed function.
 
2210
 
 
2211
        * tiger.c (tiger_get_info): Removed function.
 
2212
        (gnupgext_version, func_table): Removed definitions.
 
2213
        (gnupgext_enum_func): Removed function.
 
2214
        (_gcry_tiger_constructor): Removed function.
 
2215
        
 
2216
        * sha1.c (sha1_get_info): Removed function.
 
2217
        (gnupgext_version, func_table): Removed definitions.
 
2218
        (gnupgext_enum_func): Removed function.
 
2219
        (_gcry_sha1_constructor): Removed function.
 
2220
 
 
2221
        * sha256.c (sha256_get_info): Removed function.
 
2222
        (gnupgext_version, func_table): Removed definitions.
 
2223
        (gnupgext_enum_func): Removed function.
 
2224
        (_gcry_sha256_constructor): Removed function.
 
2225
 
 
2226
        * rmd160.c (rmd160_get_info): Removed function.
 
2227
        (gnupgext_version, func_table): Removed definitions.
 
2228
        (gnupgext_enum_func): Removed function.
 
2229
        (_gcry_rmd160_constructor): Removed function.
 
2230
 
 
2231
        * md5.c (md5_get_info): Removed function.
 
2232
        (gnupgext_version, func_table): Removed definitions.
 
2233
        (gnupgext_enum_func): Removed function.
 
2234
        (_gcry_md5_constructor): Removed function.
 
2235
 
 
2236
        * md4.c (md4_get_info): Removed function.
 
2237
        (gnupgext_version, func_table): Removed definitions.
 
2238
        (gnupgext_enum_func): Removed function.
 
2239
        (_gcry_md4_constructor): Removed function.
 
2240
 
 
2241
        * crc.c (crc_get_info): Removed function.
 
2242
 
 
2243
        * arcfour.c (do_arcfour_setkey): Changed type of context argument
 
2244
        to `void *', added local variable for cast, adjusted callers.
 
2245
        (arcfour_setkey): Likewise.
 
2246
        (encrypt_stream): Likewise.
 
2247
        * cast5.c (cast_setkey): Likewise.
 
2248
        (encrypt_block): Likewise.
 
2249
        * rijndael.c (rijndael_setkey): Likewise.
 
2250
        (rijndael_encrypt): Likewise.
 
2251
        (rijndael_decrypt): Likewise.
 
2252
        * twofish.c (twofish_setkey): Likewise.
 
2253
        (twofish_encrypt): Likewise.
 
2254
        (twofish_decrypt): Likewise.
 
2255
        * des.c (do_des_setkey): Likewise.
 
2256
        (do_des_encrypt): Likewise.
 
2257
        (do_des_encrypt): Likewise.
 
2258
        (do_tripledes_encrypt): Likewise.
 
2259
        (do_tripledes_encrypt): Likewise.
 
2260
        * blowfish.c (bf_setkey: Likewise.
 
2261
        (encrypt_block): Likewise.
 
2262
        (decrypt_block): Likewise.
 
2263
        
 
2264
        * arcfour.c (encrypt_stream): Likewise.
 
2265
 
 
2266
        * rijndael.c (gnupgext_version, func_table): Removed definitions.
 
2267
        (gnupgext_enum_func) Removed function.  
 
2268
        
 
2269
        * twofish.c (gnupgext_version, func_table): Removed definitions.
 
2270
        (gnupgext_enum_func) Removed function.  
 
2271
 
 
2272
        * cast5.c (CIPHER_ALGO_CAST5): Removed.
 
2273
 
 
2274
        * blowfish.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros.
 
2275
        (CIPHER_ALGO_BLOWFISH): Removed symbol.
 
2276
        * cast5.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Likewise.
 
2277
        * des.c (selftest_failed): Removed.
 
2278
        (initialized): New variable.
 
2279
        (do_des_setkey): Run selftest, if not yet done.
 
2280
        (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros.
 
2281
 
 
2282
        * arcfour.c (_gcry_arcfour_get_info): Removed function.
 
2283
        * blowfish.c (_gcry_blowfish_get_info): Removed function.
 
2284
        * cast5.c (_gcry_cast5_get_info): Removed function.
 
2285
        * des.c (_gcry_des_get_info): Removed function.
 
2286
        * rijndael.c (_gcry_rijndael_get_info): Removed function.
 
2287
        * twofish.c (_gcry_twofish_get_info): Removed function.
 
2288
 
 
2289
        * arcfour.c (cipher_spec_arcfour): New variable.
 
2290
        * twofish.c (cipher_spec_twofish, cipher_spec_twofish128): New
 
2291
        variables.
 
2292
        * rijndael.c (cipher_spec_aes, cipher_spec_aes192,
 
2293
        cipher_spec256): New variables.
 
2294
        * des.c (cipher_spec_des, cipher_spec_tripledes): New variables.
 
2295
        * cast5.c (cipher_spec_cast5): New variable.
 
2296
        * blowfish.c (cipher_spec_blowfish): Likewise.
 
2297
        
 
2298
        * twofish.c: Do not include "dynload.h".
 
2299
        * rijndael.c: Likewise.
 
2300
        * des.c: Likewise.
 
2301
        * cast5.c: Likewise.
 
2302
        * blowfish.c: Likewise.
 
2303
        * cipher.c: Likewise.
 
2304
        * crc.c: Likewise.
 
2305
        * md4.c: Likewise.
 
2306
        * md5.c: Likewise.
 
2307
        * md.c: Likewise.
 
2308
        * pubkey.c: Likewise.
 
2309
        * rijndael.c: Likewise.
 
2310
        * sha1.c: Likewise.
 
2311
        * sha256.c: Likewise.
 
2312
 
 
2313
        * arcfour.c: Include "cipher.h".
 
2314
        * twofish.c: Likewise.
 
2315
        * rijndael.c: Likewise.
 
2316
        * des.c: Likewise.
 
2317
        * cast5.c: Likewise.
 
2318
        * blowfish.c: Likewise.
 
2319
 
 
2320
        * twofish.c (twofish_setkey): Declared argument `key' const.
 
2321
        (twofish_encrypt): Declared argument `inbuf' const.
 
2322
        (twofish_decrypt): Likewise.
 
2323
 
 
2324
        * rijndael.c (rijndael_setkey): Declared argument `key' const.
 
2325
        (rijndael_encrypt): Declared argument `inbuf' const.
 
2326
        (rijndael_decrypt): Likewise.
 
2327
 
 
2328
        * des.c (do_des_setkey): Declared argument `key' const.
 
2329
        (do_tripledes_setkey): Likewise.
 
2330
        (do_des_encrypt): Declared argument `inbuf' const.
 
2331
        (do_des_decrypt): Likewise.
 
2332
        (do_tripledes_encrypt): Likewise.
 
2333
        (do_tripledes_decrypt): Likewise.
 
2334
 
 
2335
        * cast5.c (encrypt_block): Declared argument `inbuf' const.
 
2336
        (decrypt_block): Likewise.
 
2337
        (cast_setkey): Declared argument `key' const.
 
2338
 
 
2339
        * blowfish.c (do_bf_setkey): Declared argument `key' const.
 
2340
        (encrypt_block): Declared argument `inbuf' const.
 
2341
        (encrypt_block): Likewise.
 
2342
 
 
2343
        
 
2344
 
 
2345
        * cipher.c: Remove CIPHER_ALGO_DUMMY related code.
 
2346
        Removed struct cipher_table_s.
 
2347
        Changed definition of cipher_table.
 
2348
        Removed definition of disabled_algos.
 
2349
        (ciphers_registered, default_ciphers_registered): New variables.
 
2350
        (REGISTER_DEFAULT_CIPHERS): New macro.
 
2351
        (dummy_setkey): Declared argument `key' const.
 
2352
        (dummy_encrypt_block): Declared argument `inbuf' const.
 
2353
        (dummy_encrypt_block): Likewise.
 
2354
        (dummy_encrypt_stream): Likewise.
 
2355
        (dummy_encrypt_stream): Likewise.
 
2356
        (dummy_setkey): Use `unsigned char' instead of `byte'.
 
2357
        (dummy_encrypt_block): Likewise.
 
2358
        (dummy_decrypt_block): Likewise.
 
2359
        (dummy_encrypt_stream): Likewise.
 
2360
        (dummy_decrypt_stream): Likewise.
 
2361
        (gcry_cipher_register_default): New function.
 
2362
        (gcry_cipher_lookup_func_id): New function.
 
2363
        (gcry_cipher_lookup_func_name): New function.
 
2364
        (gcry_cipher_lookup_id): New function.
 
2365
        (gcry_cipher_lookup_name): New function.
 
2366
        (gcry_cipher_id_new): New function.
 
2367
        (gcry_cipher_register): New function.
 
2368
        (gcry_cipher_unregister): New function.
 
2369
        (setup_cipher_table): Removed function.
 
2370
        (load_cipher_modules): Removed function.
 
2371
        (gcry_cipher_map_name): Adjusted to use new module management.
 
2372
        (cipher_algo_to_string): Likewise.
 
2373
        (disable_cipher_algo): Likewise.
 
2374
        (check_cipher_algo): Likewise.
 
2375
        (cipher_get_keylen): Likewise.
 
2376
        (cipher_get_blocksize): Likewise.
 
2377
        (gcry_cipher_open): Likewise.
 
2378
        (struct gcry_cipher_handle): Replaced members algo, algo_index,
 
2379
        blocksize, setkey, encrypt, decrypt, stencrypt, stdecrypt with one
 
2380
        member: cipher.
 
2381
        (gcry_cipher_open): Adjusted code for new handle structure.
 
2382
        (cipher_setkey): Likewise.
 
2383
        (cipher_setiv): Likewise.
 
2384
        (cipher_reset): Likewise.
 
2385
        (do_ecb_encrypt): Likewise.
 
2386
        (do_ecb_decrypt): Likewise.
 
2387
        (do_cbc_encrypt): Likewise.
 
2388
        (do_cbc_decrypt): Likewise.
 
2389
        (do_cfb_encrypt): Likewise.
 
2390
        (do_cfb_decrypt): Likewise.
 
2391
        (do_ctr_encrypt): Likewise.
 
2392
        (cipher_encrypt): Likewise.
 
2393
        (gcry_cipher_encrypt): Likewise.
 
2394
        (cipher_decrypt): Likewise.
 
2395
        (gcry_cipher_decrypt): Likewise.
 
2396
        (cipher_sync): Likewise.
 
2397
        (gcry_cipher_ctl): Likewise.
 
2398
 
 
2399
        * pubkey.c: Removed struct pubkey_table_s.
 
2400
        Changed definition of pubkey_table.
 
2401
        Removed definition of disabled_algos.
 
2402
        (pubkeys_registered, default_pubkeys_registered): New variables.
 
2403
        (REGISTER_DEFAULT_PUBKEYS): New macro.
 
2404
        (setup_pubkey_table): Removed function.
 
2405
        (load_pubkey_modules): Removed function.
 
2406
        (gcry_pubkey_register_default): New function.
 
2407
        (gcry_pubkey_lookup_func_id): New function.
 
2408
        (gcry_pubkey_lookup_func_name): New function.
 
2409
        (gcry_pubkey_lookup_id): New function.
 
2410
        (gcry_pubkey_lookup_name): New function.
 
2411
        (gcry_pubkey_id_new): New function.
 
2412
        (gcry_pubkey_register): New function.
 
2413
        (gcry_pubkey_unregister): New function.
 
2414
        (gcry_pk_map_name): Adjusted to use new module management.
 
2415
        (gcry_pk_algo_name): Likewise.
 
2416
        (disable_pubkey_algo): Likewise.
 
2417
        (check_pubkey_algo): Likewise.
 
2418
        (pubkey_get_npkey): Likewise.
 
2419
        (pubkey_get_nskey): Likewise.
 
2420
        (pubkey_get_nsig): Likewise.
 
2421
        (pubkey_get_nenc): Likewise.
 
2422
        (pubkey_generate): Likewise.
 
2423
        (pubkey_check_secret_key): Likewise.
 
2424
        (pubkey_encrypt): Likewise.
 
2425
        (pubkey_decrypt): Likewise.
 
2426
        (pubkey_sign): Likewise.
 
2427
        (pubkey_verify): Likewise.
 
2428
        (gcry_pk_get_nbits): Likewise.
 
2429
        (gcry_pk_algo_info): Likewise.
 
2430
 
 
2431
        * md.c: Removed struct md_digest_list_s.
 
2432
        (digest_list): Changed definition.
 
2433
        (digests_registered, default_digests_registered): New variables.
 
2434
        (REGISTER_DEFAULT_DIGESTS): New macro.
 
2435
        (new_list_item): Removed function.
 
2436
        (setup_md_table): Removed function.
 
2437
        (load_digest_module): Removed function.
 
2438
        (gcry_digest_register_default): New function.
 
2439
        (gcry_digest_lookup_func_id): New function.
 
2440
        (gcry_digest_lookup_func_name): New function.
 
2441
        (gcry_digest_lookup_id): New function.
 
2442
        (gcry_digest_lookup_name): New function.
 
2443
        (gcry_digest_id_new): New function.
 
2444
        (gcry_digest_register): New function.
 
2445
        (gcry_digest_unregister): New function.
 
2446
        (GcryDigestEntry): New type.
 
2447
        (struct gcry_md_context): Adjusted type of `list'.
 
2448
        (gcry_md_map_name): Adjusted to use new module management.
 
2449
        (digest_algo_to_string): Likewise.
 
2450
        (check_digest_algo): Likewise.
 
2451
        (md_enable): Likewise.
 
2452
        (md_digest_length): Likewise.
 
2453
        (md_asn_oid): Likewise.
 
2454
 
 
2455
2003-04-07  Moritz Schulte  <moritz@g10code.com>
 
2456
 
 
2457
        * pubkey.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA,
 
2458
        PUBKEY_ALGO_RSA with GCRY_PK_RSA and PUBKEY_ALGO_ELGAMAL with
 
2459
        GCRY_PK_ELG.
 
2460
 
 
2461
        * dsa.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA.
 
2462
 
 
2463
2003-04-01  Moritz Schulte  <moritz@g10code.com>
 
2464
 
 
2465
        * des.c: Removed checks for GCRY_CIPHER_3DES and GCRY_CIPHER_DES.
 
2466
 
 
2467
2003-03-31  Moritz Schulte  <moritz@g10code.com>
 
2468
 
 
2469
        * tiger.c (tiger_get_info): Do not declare static.
 
2470
        * sha256.c (sha256_get_info): Likewise.
 
2471
        * sha1.c (sha1_get_info): Likewise.
 
2472
        * rmd160.c (rmd160_get_info): Likewise.
 
2473
        * md5.c (md5_get_info): Likewise.
 
2474
        * md4.c (md4_get_info): Likewise.
 
2475
        * crc.c (crc_get_info): Likewise.
 
2476
 
 
2477
        * md.c (load_digest_module): Call setup_md_table during
 
2478
        initialization.
 
2479
        (new_list_item): Link new element into digest_list.
 
2480
 
 
2481
        * cipher.c (do_ctr_decrypt): Made do_ctr_encrypt act as a wrapper
 
2482
        for do_ctr_encrypt, since these functions are identical.
 
2483
 
 
2484
2003-03-30  Simon Josefsson  <jas@extundo.com>
 
2485
 
 
2486
        * cipher.c (struct gcry_cipher_handle): Add counter field.
 
2487
        (gcry_cipher_open): Add CTR.
 
2488
        (cipher_reset): Clear counter field.
 
2489
        (do_ctr_encrypt, do_ctr_decrypt): New functions.
 
2490
        (cipher_encrypt, cipher_decrypt): Call CTR functions.
 
2491
        (gcry_cipher_ctl): Add SET_CTR to set counter.
 
2492
 
 
2493
2003-03-30  Moritz Schulte  <moritz@g10code.com>
 
2494
 
 
2495
        * rsa.c (_gcry_rsa_blind): New function.
 
2496
        (_gcry_rsa_unblind): New function.
 
2497
        (_gcry_rsa_decrypt): Use _gcry_rsa_blind and _gcry_rsa_decrypt.
 
2498
 
 
2499
2003-03-26  Moritz Schulte  <moritz@g10code.com>
 
2500
 
 
2501
        * dynload.c (_gcry_enum_gnupgext_pubkeys): Adjust `encrypt' and
 
2502
        `decrypt' function arguments.
 
2503
        (_gcry_enum_gnupgext_pubkeys): Likewise.
 
2504
        * dynload.h: Likewise.
 
2505
        
 
2506
        * pubkey.c (dummy_decrypt): Add argument: int flags.
 
2507
        (dummy_encrypt): Likewise.
 
2508
 
 
2509
        * elgamal.c (_gcry_elg_encrypt): Add argument: int flags.
 
2510
        (_gcry_elg_decrypt): Likewise.
 
2511
 
 
2512
        * rsa.c (_gcry_rsa_encrypt): Add argument: int flags.
 
2513
        (_gcry_rsa_decrypt): Likewise.
 
2514
 
 
2515
        * pubkey.c: Add `flags' argument to members `encrypt' and
 
2516
        `decrypt' of struct `pubkey_table_s'.
 
2517
 
 
2518
        * rsa.h: Add `flags' argument to function declarations.
 
2519
        * elgamal.h: Likewise.
 
2520
 
 
2521
        * pubkey.c (sexp_data_to_mpi): New variable: int parsed_flags.
 
2522
        (sexp_data_to_mpi): Set `parsed_flags'.
 
2523
        (sexp_data_to_mpi): New argument: int *flags.
 
2524
        (gcry_pk_encrypt): New variable: int flags.
 
2525
        (gcry_pk_encrypt): Pass `flags' to pubkey_encrypt.
 
2526
        (pubkey_encrypt): New variable: int flags.
 
2527
        (pubkey_encrypt): Pass `flags' to pubkey encrypt function.
 
2528
        (pubkey_decrypt): Likewise.
 
2529
        (pubkey_decrypt): Pass `flags' to pubkey encrypt function.
 
2530
        (gcry_pk_encrypt): Include `flags' s-exp in return list.
 
2531
        (sexp_to_enc): New argument: int *flags.
 
2532
        (gcry_pk_decrypt): New variable: int flags.
 
2533
        (gcry_pk_decrypt): Pass `flags' to pubkey_decrypt.
 
2534
        (sexp_to_enc): New variable: int parsed_flags.
 
2535
        (sexp_to_enc): Set `parsed_flags'.
 
2536
 
 
2537
2003-03-22  Simon Josefsson  <jas@extundo.com>
 
2538
 
 
2539
        * cipher.c (gcry_cipher_open, do_cbc_encrypt)
 
2540
        (gcry_cipher_encrypt): Support GCRY_CIPHER_CBC_MAC.
 
2541
        (gcry_cipher_ctl): Support GCRYCTL_SET_CBC_MAC.
 
2542
 
 
2543
2003-03-19  Werner Koch  <wk@gnupg.org>
 
2544
 
 
2545
        * primegen.c (gen_prime): New args EXTRA_CHECK and EXTRA_CHECK_ARG
 
2546
        to allow for a user callback.  Changed all callers.
 
2547
        (_gcry_generate_secret_prime)
 
2548
        (_gcry_generate_public_prime): Ditto, pass them to gen_prime.
 
2549
        * rsa.c (check_exponent): New.
 
2550
        (generate): Use a callback to ensure that a given exponent is
 
2551
        actually generated.
 
2552
 
 
2553
2003-03-12  Moritz Schulte  <moritz@g10code.com>
 
2554
 
 
2555
        * primegen.c: Initialize `no_of_small_prime_numbers' statically.
 
2556
        (gen_prime): Remove calculation of `no_of_small_prime_numbers'.
 
2557
 
 
2558
2003-03-03  Moritz Schulte  <moritz@g10code.com>
 
2559
 
 
2560
        * md.c (gcry_md_ctl): Rewritten to use same style like the other
 
2561
        functions dispatchers.
 
2562
 
 
2563
2003-03-02  Moritz Schulte  <moritz@g10code.com>
 
2564
 
 
2565
        * cipher.c (struct gcry_cipher_handle): New member: algo_index.
 
2566
        (gcry_cipher_open): Allocate memory for two cipher contexts.
 
2567
        Initialize algo_index.
 
2568
        (cipher_setkey): Duplicate context into reserved memory.
 
2569
        (cipher_reset): New function, which resets the context and clear
 
2570
        the IV.
 
2571
        (gcry_cipher_ctl): Call cipher_reset.
 
2572
 
 
2573
2003-02-23  Moritz Schulte  <moritz@g10code.com>
 
2574
 
 
2575
        * cipher.c: Remove (bogus) `digitp' macro definition.
 
2576
        * md.c: Likewise.
 
2577
 
 
2578
        * blowfish.c (burn_stack): Removed.
 
2579
        * arcfour.c (burn_stack): Likewise.
 
2580
        * cast5.c (burn_stack): Likewise.
 
2581
        * des.c (burn_stack): Likewise.
 
2582
        * md4.c (burn_stack): Likewise.
 
2583
        * md5.c (burn_stack): Likewise.
 
2584
        * random.c (burn_stack): Likewise.
 
2585
        * rijndael.c (burn_stack): Likewise.
 
2586
        * rmd160.c (burn_stack): Likewise.
 
2587
        * sha1.c (burn_stack): Likewise.
 
2588
        * sha256.c (burn_stack): Likewise.
 
2589
        * tiger.c (burn_stack): Likewise.
 
2590
        * twofish.c (burn_stack): Likewise.
 
2591
 
 
2592
        * blowfish.c: Changed all occurences of burn_stack to
 
2593
        _gcry_burn_stack.
 
2594
        * arcfour.c: Likewise.
 
2595
        * cast5.c: Likewise.
 
2596
        * des.c: Likewise.
 
2597
        * md4.c: Likewise.
 
2598
        * md5.c: Likewise.
 
2599
        * random.c: Likewise.
 
2600
        * rijndael.c: Likewise.
 
2601
        * rmd160.c: Likewise.
 
2602
        * sha1.c: Likewise.
 
2603
        * sha256.c: Likewise.
 
2604
        * tiger.c: Likewise.
 
2605
        * twofish.c: Likewise.
 
2606
 
 
2607
        * arcfour.c (_gcry_arcfour_get_info): Use GCRY_CIPHER_ARCFOUR
 
2608
        instead of hard-coded value `301'.
 
2609
 
 
2610
2003-01-24  Werner Koch  <wk@gnupg.org>
 
2611
 
 
2612
        * random.c (_gcry_register_random_progress): New.
 
2613
        (_gcry_random_progress): New.
 
2614
 
 
2615
        * rndlinux.c (gather_random): Call the random progress function. 
 
2616
 
 
2617
2003-01-23  Werner Koch  <wk@gnupg.org>
 
2618
 
 
2619
        * rsa.c (generate): New arg USE_E to request a specific public
 
2620
        exponent.
 
2621
        (_gcry_rsa_generate): Ditto.
 
2622
        * elgamal.c (_gcry_elg_generate): Must add an dummy argument
 
2623
        instead of USE_E.
 
2624
        * dsa.c (_gcry_dsa_generate): Ditto.
 
2625
        * pubkey.c (dummy_generate): Ditto.
 
2626
        (pubkey_generate): Add USE_E arg and pass it down.
 
2627
        (gcry_pk_genkey): Detect "rsa-use-e" parameter and pass it to generate.
 
2628
 
 
2629
        * pubkey.c (sexp_to_enc): New arg RET_MODERN.
 
2630
        (gcry_pk_decrypt): Make use of it to return a real S-expression.
 
2631
        Return better error codes.
 
2632
        (gcry_pk_verify): Return better error codes.
 
2633
 
 
2634
2003-01-21  Werner Koch  <wk@gnupg.org>
 
2635
 
 
2636
        * random.c (gcry_random_add_bytes): Add QUALITY argument, let
 
2637
        function return an error code and disable its core for now.
 
2638
 
 
2639
2003-01-21  Timo Schulz  <twoaday@freakmail.de>
 
2640
 
 
2641
        * random.c (gcry_random_add_bytes): New. Function to add external
 
2642
        random to the pool.
 
2643
        
 
2644
2003-01-20  Simon Josefsson  <jas@extundo.com>
 
2645
 
 
2646
        * crc.c: New.
 
2647
        * Makefile.am (EXTRA_PROGRAMS, EXTRA_crc_SOURCES): Add crc.c.
 
2648
        * md.c (gcry_md_get_algo_dlen): Add values for CRC.
 
2649
 
 
2650
2003-01-20  Werner Koch  <wk@gnupg.org>
 
2651
 
 
2652
        * sha256.c: New.
 
2653
        * bithelp.h (ror): New.
 
2654
        * Makfile.am: Add sha256.c.
 
2655
        * md.c (oid_table): Add values for SHA256 et al.
 
2656
        (gcry_md_get_algo_dlen): Likewise
 
2657
 
 
2658
2003-01-20  Werner Koch  <wk@gnupg.org>
 
2659
 
 
2660
        * pubkey.c (gcry_pk_get_keygrip): Implemented keygrips for DSA
 
2661
        and ElGamal.
 
2662
 
 
2663
2003-01-17  Werner Koch  <wk@gnupg.org>
 
2664
 
 
2665
        * cipher.c (gcry_cipher_encrypt): Reworked so that the output will
 
2666
        never contain the plaintext even if the caller did not checked the
 
2667
        return value.
 
2668
 
 
2669
        * md.c (gcry_md_get_algo): Changed error code to GCRYERR_GENERAL
 
2670
        because we don't have an invalid md algo but no algorithm enabled.
 
2671
 
 
2672
        * pubkey.c (gcry_pk_genkey): Changed error code for bounds check
 
2673
        of table parameters to GCRYERR_INTERNAL.
 
2674
 
 
2675
        * md.c (gcry_md_open): Partly reverted Timo's change from
 
2676
        2002-10-10 by removing the check for the algorithm.  An algorithm
 
2677
        of 0 is allowed and anyway we should not double check it or check
 
2678
        it using a different function.  Also fixed the flags check.
 
2679
 
 
2680
        * pubkey.c (gcry_pk_encrypt): Make sure that R_CIPH points to NULL
 
2681
        on error.
 
2682
        (gcry_pk_decrypt): Ditto for R_PLAIN.
 
2683
        (gcry_pk_sign): Ditto for R_SIG.
 
2684
        (gcry_pk_genkey): Ditto for R_KEY.
 
2685
 
 
2686
2003-01-16  Werner Koch  <wk@gnupg.org>
 
2687
 
 
2688
        * md.c (gcry_md_write): Changed 2nd argument type to void*.
 
2689
        (gcry_md_hash_buffer): Changed type of boths buffers to void*.
 
2690
        (gcry_md_setkey): Changed 2nd argument type to void*.
 
2691
 
 
2692
2003-01-15  Werner Koch  <wk@gnupg.org>
 
2693
 
 
2694
        * pubkey.c (sexp_data_to_mpi): New.  This handles pkcs1 padding.
 
2695
        (gcry_pk_sign, gcry_pk_verify): Use it here.
 
2696
        (gcry_pk_encrypt): And here.
 
2697
        (pubkey_verify): Add debug code.
 
2698
        (sexp_to_enc): Handle flags in the input and return the pkcs1 flag
 
2699
        in a new parameter.
 
2700
        (gcry_pk_decrypt): Prepare for future pkcs1 handling.
 
2701
 
 
2702
2002-12-19  Werner Koch  <wk@gnupg.org>
 
2703
 
 
2704
        * random.c (_gcry_random_initialize): New.
 
2705
 
 
2706
2002-12-16  Werner Koch  <wk@gnupg.org>
 
2707
 
 
2708
        * cipher.c: Added a Teletrust specific OID for 3DES.
 
2709
 
 
2710
2002-12-12  Werner Koch  <wk@gnupg.org>
 
2711
 
 
2712
        * md.c: Added another oddball OIW OID (sha-1WithRSAEncryption).
 
2713
 
 
2714
2002-11-23  Werner Koch  <wk@gnupg.org>
 
2715
 
 
2716
        * md.c (load_digest_module): Enlarged checked_algos bitmap.
 
2717
        * md4.c (func_table):  Fixed entry for md4. 
 
2718
        Both by Simon Josephson.
 
2719
        (transform): Copy data to get the alignment straight. Tested only
 
2720
        on i386.
 
2721
 
 
2722
2002-11-10  Simon Josefsson  <jas@extundo.com>
 
2723
 
 
2724
        * cipher.c (gcry_cipher_open): Don't reject CTS flag.
 
2725
        (do_cbc_encrypt, do_cbc_decrypt, cipher_encrypt) 
 
2726
        (gcry_cipher_encrypt, cipher_decrypt)
 
2727
        (gcry_cipher_decrypt): Support CTS flag.
 
2728
        (gcry_cipher_ctl): Toggle CTS flag.
 
2729
 
 
2730
2002-11-10  Werner Koch  <wk@gnupg.org>
 
2731
 
 
2732
        * md4.c: New. By Simon Josefsson.
 
2733
        * Makefile.am (EXTRA_PROGRAMS): Add md4.c. 
 
2734
        * md.c (oid_table,gcry_md_get_algo_dlen): MD4 support. 
 
2735
 
 
2736
2002-10-14  Werner Koch  <wk@gnupg.org>
 
2737
 
 
2738
        * arcfour.c (do_encrypt_stream): Don't use increment op when
 
2739
        assigning to the same variable.
 
2740
 
 
2741
2002-10-10  Timo Schulz  <ts@winpt.org>
 
2742
 
 
2743
        * pubkey.c (gcry_pk_genkey): Check boundaries.
 
2744
        
 
2745
        * md.c (gcry_md_open): Check that algo is available and only
 
2746
        valid flag values are used.
 
2747
        (gcry_md_get_algo): Add error handling.
 
2748
        
 
2749
2002-09-26  Werner Koch  <wk@gnupg.org>
 
2750
 
 
2751
        * md.c: Include an OID for TIGER.
 
2752
        * tiger.c (tiger_get_info): Use a regular OID.
 
2753
 
 
2754
2002-09-17  Werner Koch  <wk@gnupg.org>
 
2755
 
 
2756
        * random.c: Replaced mutex.h by the new ath.h.  Changed all calls.
 
2757
 
 
2758
2002-09-16  Werner Koch  <wk@gnupg.org>
 
2759
 
 
2760
        * arcfour.c (do_encrypt_stream): Use register modifier and modulo.
 
2761
        According to Nikos Mavroyanopoulos this increases perfromace on
 
2762
        i386 system noticable.  And I always tought gcc is clever enough.
 
2763
        * md5.c (transform): Use register modifier.
 
2764
        * rmd160.c (transform): Ditto.
 
2765
        * sha1.c (transform): Ditto.  We hope that there are 6 free registers.
 
2766
        * random.c (gcry_randomize): Rewrote to avoid malloc calls.
 
2767
 
 
2768
        * rndlinux.c (gather_random): Replaced remaining fprintfs by log_*.
 
2769
        * arcfour.c (do_arcfour_setkey): Ditto.
 
2770
        * twofish.c (do_twofish_setkey): Ditto.
 
2771
        * rndegd.c (gather_random): Ditto.
 
2772
        * rijndael.c (do_setkey): Ditto.
 
2773
        * random.c (_gcry_random_dump_stats): Ditto. 
 
2774
        * primegen.c (_gcry_generate_elg_prime): Ditto.
 
2775
        * des.c (_gcry_des_get_info): Ditto.
 
2776
        * cast5.c (do_cast_setkey): Ditto.
 
2777
        * blowfish.c (do_bf_setkey): Ditto.
 
2778
 
 
2779
2002-08-26  Werner Koch  <wk@gnupg.org>
 
2780
 
 
2781
        * des.c (weak_keys): Fixed one entry in the table and compared
 
2782
        all entries against the literature.
 
2783
        (selftest): Checksum the weak key table.
 
2784
 
 
2785
2002-08-21  Werner Koch  <wk@gnupg.org>
 
2786
 
 
2787
        * pubkey.c: Enable keygrip calculation for "openpgp-rsa".
 
2788
 
 
2789
2002-08-17  Werner Koch  <wk@gnupg.org>
 
2790
 
 
2791
        * cipher.c (setup_cipher_table): Don't overwrite the DES entry
 
2792
        with the entry for DUMMY.
 
2793
 
 
2794
2002-08-14  Werner Koch  <wk@gnupg.org>
 
2795
 
 
2796
        * des.c (do_des_setkey,do_des_encrypt, do_des_decrypt): New.
 
2797
        (_gcry_des_get_info): Support plain old DES.
 
2798
        * cipher.c (setup_cipher_table): Put DES into the table.
 
2799
 
 
2800
2002-07-25  Werner Koch  <wk@gnupg.org>
 
2801
 
 
2802
        * rndunix.c (_gcry_rndunix_constructor): Prefixed with _gcry_.
 
2803
        Noted by Stephan Austermuehle.
 
2804
 
 
2805
2002-07-08  Timo Schulz  <ts@winpt.org>
 
2806
 
 
2807
        * rndw32.c: Replaced the m_ memory functions with the real 
 
2808
        gcry_ functions. Renamed all g10_ prefixed functions to log_.
 
2809
        
 
2810
2002-06-12  Werner Koch  <wk@gnupg.org>
 
2811
 
 
2812
        * rsa.c (generate): Use e = 65537 for now.
 
2813
 
 
2814
2002-06-11  Werner Koch  <wk@gnupg.org>
 
2815
 
 
2816
        * pubkey.c (gcry_pk_get_keygrip): Allow a "protected-private-key".
 
2817
 
 
2818
2002-06-05  Timo Schulz  <ts@winpt.org>
 
2819
 
 
2820
        * cipher.c (gcry_cipher_encrypt, gcry_cipher_decrypt):
 
2821
        Check that the input size is a multiple of the blocksize.
 
2822
        
 
2823
2002-05-23  Werner Koch  <wk@gnupg.org>
 
2824
 
 
2825
        * md.c (oid_table): Add an rsadsi OID for MD5.
 
2826
 
 
2827
2002-05-21  Werner Koch  <wk@gnupg.org>
 
2828
 
 
2829
        * primegen.c, elgamal.c, dsa.c (progress): Do not print anything
 
2830
        by default.  Pass an extra identifying string to the callback and
 
2831
        reserved 2 argumenst for current and total counters.  Changed the
 
2832
        register function prototype.
 
2833
 
 
2834
2002-05-17  Werner Koch  <wk@gnupg.org>
 
2835
 
 
2836
        * rndegd.c (rndegd_constructor): Fixed name of register function
 
2837
        and prefixed the function name with _gcry_.
 
2838
        * rndw32.c (rndw32_constructor): Ditto.
 
2839
        * tiger.c (tiger_constructor): Ditto.
 
2840
 
 
2841
        * Makefile.am: Removed all dynamic loading stuff.
 
2842
        * dynload.c: Ditto. Now only used for the constructor system.
 
2843
 
 
2844
2002-05-15  Werner Koch  <wk@gnupg.org>
 
2845
 
 
2846
        * random.c (gcry_random_bytes,gcry_random_bytes_secure)
 
2847
        (gcry_randomize): Make sure we are initialized.
 
2848
 
 
2849
2002-05-14  Werner Koch  <wk@gnupg.org>
 
2850
 
 
2851
        Changed license of most files to the LGPL.
 
2852
 
 
2853
2002-05-02  Werner Koch  <wk@gnupg.org>
 
2854
 
 
2855
        * random.c (_gcry_fast_random_poll): Initialize the module so the
 
2856
        mutex can be used.
 
2857
 
 
2858
        * primegen.c (small_prime_numbers): Moved table from smallprime.c
 
2859
        * smallprime.c: File removed.
 
2860
 
 
2861
        * des.c (leftkey_swap, rightkey_swap, working_memcmp): Made static.
 
2862
 
 
2863
        * cipher.c (gcry_cipher_map_name): Map "RIJNDAEL" to "AES".
 
2864
        * rijndael.c (rijndael_get_info): We do only support a 128 bit
 
2865
        blocksize so it makes sense to change the algorithm strings to
 
2866
        AES.
 
2867
 
 
2868
        * tiger.c (tiger_final): Removed superfluous token pasting operators.
 
2869
        * md5.c (md5_final): Ditto.
 
2870
 
 
2871
2002-04-30  Werner Koch  <wk@gnupg.org>
 
2872
 
 
2873
        * cipher.c: Fixed list of copyright years.
 
2874
 
 
2875
2002-03-18  Werner Koch  <wk@gnupg.org>
 
2876
 
 
2877
        * random.c (initialize): Initialize the new pool lock mutex.
 
2878
        (_gcry_fast_random_poll): Add locking and moved main
 
2879
        code out to...
 
2880
        (do_fast_random_poll): new function.
 
2881
        (read_pool): Use the new function here.
 
2882
        (get_random_bytes): Add locking.
 
2883
        (_gcry_update_random_seed_file): Ditto.
 
2884
 
 
2885
2002-03-11  Werner Koch  <wk@gnupg.org>
 
2886
 
 
2887
        * md.c: Add rsaSignatureWithripemd160 to OID table.
 
2888
 
 
2889
2002-02-20  Werner Koch  <wk@gnupg.org>
 
2890
 
 
2891
        * sha1.c: Removed a left over comment note.  The code has been
 
2892
        rewritten from scratch in 1998.  Thanks to Niels Möller for
 
2893
        reporting this misleading comment.
 
2894
 
 
2895
2002-02-18  Werner Koch  <wk@gnupg.org>
 
2896
 
 
2897
        * rndunix.c (rndunix_constructor): Use the the new prefixed
 
2898
        function name.  Reported by Jordi Mallach.
 
2899
 
 
2900
2002-02-10  Werner Koch  <wk@gnupg.org>
 
2901
 
 
2902
        * random.c (mix_pool): Carry an extra failsafe_digest buffer
 
2903
        around to make the function more robust.
 
2904
 
 
2905
2002-02-08  Werner Koch  <wk@gnupg.org>
 
2906
 
 
2907
        * random.c (add_randomness): Xor new data into the pool and not
 
2908
        just copy it.  This avoids any choosen input attacks which are not
 
2909
        serious in our setting because an outsider won't be able to mix
 
2910
        data in and even then we keep going with a PRNG.  Thanks to Stefan
 
2911
        Keller for pointing this out.
 
2912
 
 
2913
2002-01-04  Werner Koch  <wk@gnupg.org>
 
2914
 
 
2915
        * pubkey.c (gcry_pk_genkey): Do not release skey - it is static.
 
2916
 
 
2917
        * primegen.c (gen_prime): Of course we should use set_bit
 
2918
        and not set_highbit to set the second high bit.
 
2919
 
 
2920
2001-12-18  Werner Koch  <wk@gnupg.org>
 
2921
 
 
2922
        * rsa.c (generate): Loop until we find the exact modulus size.
 
2923
        Changed the exponent to 41.
 
2924
        (rsa_get_info): s/usage/r_usage/ to avoid shadow warnings.
 
2925
        * primegen.c (gen_prime): Set 2 high order bits for secret primes.
 
2926
 
 
2927
        * Makefile.am (DISTCLEANFILES): Include construct.c.
 
2928
 
 
2929
2001-12-17  Werner Koch  <wk@gnupg.org>
 
2930
 
 
2931
        * pubkey.c (gcry_pk_get_keygrip): New - experimental.
 
2932
 
 
2933
2001-12-11  Werner Koch  <wk@gnupg.org>
 
2934
 
 
2935
        * cipher.c: Added OIDs for AES.
 
2936
        (gcry_cipher_mode_from_oid): New.
 
2937
        (gcry_cipher_map_name): Moved OID search code to ..
 
2938
        (search_oid): .. new function.
 
2939
 
 
2940
2001-12-10  Werner Koch  <wk@gnupg.org>
 
2941
 
 
2942
        * pubkey.c (gcry_pk_encrypt): Find the signature algorithm by name
 
2943
        and not by number.
 
2944
        
 
2945
        * pubkey.c (gcry_pk_encrypt,gcry_pk_decrypt,gcry_pk_sign)
 
2946
        (gcry_pk_verify,gcry_pk_testkey, gcry_pk_genkey)
 
2947
        (gcry_pk_get_nbits): Release the arrays.  Noted by Nikos
 
2948
        Mavroyanopoulos.
 
2949
 
 
2950
2001-12-06  Werner Koch  <wk@gnupg.org>
 
2951
 
 
2952
        * cipher.c (gcry_cipher_map_name): Look also for OIDs prefixed
 
2953
        with "oid."  or "OID.".
 
2954
 
 
2955
2001-12-05  Werner Koch  <wk@gnupg.org>
 
2956
 
 
2957
        * pubkey.c (algo_info_table): Fixed entry for openpgp-rsa. 
 
2958
 
 
2959
2001-11-24  Werner Koch  <wk@gnupg.org>
 
2960
 
 
2961
        * pubkey.c: Added the rsaEncryption OID to the tables.
 
2962
        (sexp_to_key): Add an arg to return the index of the algorithm,
 
2963
        changed all callers.
 
2964
        (gcry_pk_sign): Find the signature algorithm by name and not by
 
2965
        number.
 
2966
        (gcry_pk_get_nbits): Fixed so that we can now really pass a secret
 
2967
        key to get the result.
 
2968
        
 
2969
        * md.c (gcry_md_map_name): Look also for OIDs prefixed with "oid."
 
2970
        or "OID." so that an OID string can be used as an S-Exp token.
 
2971
 
 
2972
2001-11-20  Werner Koch  <wk@gnupg.org>
 
2973
 
 
2974
        * md.c (gcry_md_map_name): Lookup by OID if the the name begins
 
2975
        with a digit.
 
2976
        (oid_table): New.
 
2977
        
 
2978
2001-11-16  Werner Koch  <wk@gnupg.org>
 
2979
 
 
2980
        * md.c (gcry_md_info): New operator GCRYCTL_IS_ALGO_ENABLED.
 
2981
 
 
2982
2001-11-07  Werner Koch  <wk@gnupg.org>
 
2983
 
 
2984
        * md.c (gcry_md_hash_buffer): Close the handle which was left open
 
2985
        for algorithms other than rmd160.
 
2986
 
 
2987
2001-08-08  Werner Koch  <wk@gnupg.org>
 
2988
 
 
2989
        * rndw32.c (gather_random): Use toolhelp in addition to the NT
 
2990
        gatherer for Windows2000.  Suggested by Sami Tolvanen.
 
2991
 
 
2992
        * random.c (read_pool): Fixed length check, this used to be one
 
2993
        byte to strict.  Made an assert out of it because the caller has
 
2994
        already made sure that only poolsize bytes are requested.
 
2995
        Reported by Marcus Brinkmann.
 
2996
 
 
2997
2001-08-03  Werner Koch  <wk@gnupg.org>
 
2998
 
 
2999
        * cipher.c (cipher_encrypt, cipher_decrypt): Prepare to return
 
3000
        errors. We have to change the interface to all ciphers to make
 
3001
        this really work but we should do so to prepare for hardware
 
3002
        encryption modules.
 
3003
        (gcry_cipher_encrypt, gcry_cipher_decrypt): Return the error and
 
3004
        set lasterr. 
 
3005
        (gcry_cipher_ctl): Make sure that errors from setkey are returned.
 
3006
 
 
3007
2001-08-02  Werner Koch  <wk@gnupg.org>
 
3008
 
 
3009
        * rndlinux.c (gather_random): casted a size_t arg to int so that
 
3010
        the format string is correct.  Casting is okay here and avoids
 
3011
        translation changes. 
 
3012
 
 
3013
        * random.c (fast_random_poll): Do not check the return code of
 
3014
        getrusage.
 
3015
 
 
3016
        * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7
 
3017
        and 8.
 
3018
 
 
3019
        * tiger.c (print_abc,print_data): Removed.
 
3020
 
 
3021
        * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c, arcfour.c
 
3022
        (burn_stack): New.  Add wrappers for most functions to be able to
 
3023
        call burn_stack after the function invocation. This methods seems
 
3024
        to be the most portable way to zeroise the stack used. It does
 
3025
        only work on stack frame based machines but it is highly portable
 
3026
        and has no side effects.  Just setting the automatic variables at
 
3027
        the end of a function to zero does not work well because the
 
3028
        compiler will optimize them away - marking them as volatile would
 
3029
        be bad for performance.
 
3030
        * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise.
 
3031
        * random.c (burn_stack): New.
 
3032
        (mix_pool): Use it here to burn the stack of the mixblock function.
 
3033
 
 
3034
        * primegen.c (_gcry_generate_elg_prime): Freed q at 3 places.
 
3035
        Thanks to Tommi Komulainen.
 
3036
 
 
3037
        * arcfour.c (arcfour_setkey): Check the minimim keylength against
 
3038
        bytes and not bits.
 
3039
        (selftest): Must reset the key before decryption. 
 
3040
 
 
3041
2001-05-31  Werner Koch  <wk@gnupg.org>
 
3042
 
 
3043
        * sha1.c (sha1_init): Made static.
 
3044
 
 
3045
        Changed all g10_ prefixed function names as well as some mpi_
 
3046
        function names to cope with the introduced naming changes.
 
3047
        
 
3048
        * md.c (prepare_macpads): Made key const.
 
3049
 
 
3050
2001-05-28  Werner Koch  <wk@gnupg.org>
 
3051
 
 
3052
        * rndegd.c (gather_random): Removed the use of tty_printf.
 
3053
 
 
3054
2001-03-29  Werner Koch  <wk@gnupg.org>
 
3055
 
 
3056
        * md5.c (md5_final): Fixed calculation of hashed length.  Thanks
 
3057
        to disastry@saiknes.lv for pointing out that it was horrible wrong
 
3058
        for more than 512MB of input.
 
3059
        * sha1.c (sha1_final): Ditto.
 
3060
        * rmd160.c (rmd160_final): Ditto.
 
3061
        * tiger.c (tiger_final): Ditto.
 
3062
 
 
3063
        * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to
 
3064
        avoid name clashes with an encrypt function in stdlib.h of
 
3065
        Dynix/PIX.  Thanks to Gene Carter.
 
3066
        * elgamal.c (encrypt,do_encrypt): Ditto.
 
3067
 
 
3068
        * twofish.c (gnupgext_enum_func): Use only when when compiled as a
 
3069
        module.
 
3070
        * rijndael.c (gnupgext_enum_func): Ditto.
 
3071
 
 
3072
        * tiger.c (tiger_get_info): Return "TIGER192" and not just
 
3073
        "TIGER".  By Edwin Woudt.
 
3074
        
 
3075
        * random.c: Always include time.h - standard requirement.  Thanks
 
3076
        to James Troup.
 
3077
 
 
3078
        * rndw32.c: Fixes to the macros.
 
3079
 
 
3080
2001-01-11  Werner Koch  <wk@gnupg.org>
 
3081
 
 
3082
        * cipher.c (cipher_encrypt,gcry_cipher_encrypt): Use blocksize and
 
3083
        not 8.
 
3084
 
 
3085
2000-12-19  Werner Koch  <wk@gnupg.org>
 
3086
 
 
3087
        Major change:
 
3088
        Removed all GnuPG stuff and renamed this piece of software
 
3089
        to gcrypt. 
 
3090
 
 
3091
2000-11-14  Werner Koch  <wk@gnupg.org>
 
3092
 
 
3093
        * dsa.c (test_keys): Replaced mpi_alloc by gcry_mpi_new and
 
3094
        mpi_free by gcry_mpi_release.
 
3095
        * elgamal.c (test_keys,generate): Ditto, also for mpi_alloc_secure.
 
3096
        * rsa.c (test_keys,generate,rsa_verify): Ditto.
 
3097
        * primegen.c (generate_elg_prime): Ditto.
 
3098
        (gen_prime): Ditto and removed nlimbs.
 
3099
 
 
3100
        * rsa.c (generate): Allocate 2 more vars in secure memory.
 
3101
 
 
3102
        * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
 
3103
        problems.
 
3104
 
 
3105
2000-10-09  Werner Koch  <wk@gnupg.org>
 
3106
 
 
3107
        * arcfour.c, arcfour.h: New.
 
3108
        * cipher.c (cipher_encrypt, cipher_decrypt): Add stream mode.
 
3109
        (setup_cipher_table): Add Arcfour.
 
3110
        (gcry_cipher_open): Kludge to allow stream mode.
 
3111
 
 
3112
Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
 
3113
 
 
3114
        * sha1.c (transform): Use rol() macro.  Actually this is not needed
 
3115
        for a newer gcc but there are still aoter compilers.
 
3116
 
 
3117
        * rsa.c (test_keys): Use new random function. 
 
3118
 
 
3119
        * md.c (gcry_md_setkey): New function to overcome problems with
 
3120
        const conflics.  
 
3121
        (gcry_md_ctl): Pass set key to the new functions.
 
3122
 
 
3123
        * rijndael.c: New.
 
3124
        * cipher.c: Add Rijndael support.
 
3125
 
 
3126
Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
 
3127
 
 
3128
        * rndlinux.c (open_device): Loose random device checking.
 
3129
        By Nils Ellmenreich.
 
3130
 
 
3131
        * random.c (fast_random_poll): Check ENOSYS for getrusage.
 
3132
        * rndunix.c:  Add 2 sources for QNX. By Sam Roberts.
 
3133
 
 
3134
        * pubkey.c (gcry_pk_algo_info): Add GCRYCTL_GET_ALGO_USAGE.
 
3135
 
 
3136
        * rsa.c: Changed the comment about the patent.
 
3137
        (secret): Speed up by using the CRT.  For a 2k keys this
 
3138
        is about 3 times faster.
 
3139
        (stronger_key_check): New but unused code to check the secret key.
 
3140
        * Makefile.am: Included rsa.[ch].
 
3141
        * pubkey.c: Enabled RSA support.
 
3142
        (pubkey_get_npkey): Removed RSA workaround.
 
3143
 
 
3144
Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
 
3145
 
 
3146
  * pubkey.c: Replaced all gcry_sexp_{car,cdr}_{data,mpi} by the new
 
3147
  gcry_sexp_nth_{data,mpi} functions.
 
3148
 
 
3149
Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
 
3150
 
 
3151
  * pubkey.c (exp_to_key,sexp_to_sig,sexp_to_enc,gcry_pk_encrypt,
 
3152
    gcry_pk_decrypt,gcry_pk_sign,gcry_pk_genkey): Changed to work with
 
3153
    the new S-Exp interface.
 
3154
 
 
3155
Mon Jul 17 16:35:47 CEST 2000  Werner Koch  <wk@>
 
3156
 
 
3157
  * random.c (gather_faked): Replaced make_timestamp by time(2) again.
 
3158
 
 
3159
Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
 
3160
 
 
3161
  * md.c (gcry_md_ctl): Support GCRYCTL_{START,STOP}_DUMP.
 
3162
 
 
3163
  * Makefile.am: Never compile mingw32 as module.
 
3164
 
 
3165
  * Makefile.am: Tweaked module build and removed libtool
 
3166
 
 
3167
  * Makefile.am:  Replaced -O1 by -O. Suggested by Alec Habig.
 
3168
 
 
3169
  * elgamal.c (sign): Removed inactive code.
 
3170
 
 
3171
  * rsa.c, rsa.h: New based on the old module version (only in CVS for now).
 
3172
  * pubkey.c (setup_pubkey_table): Added commented support for RSA.
 
3173
 
 
3174
  * rndunix.c (waitpid): New. For UTS 2.1.  All by Dave Dykstra.
 
3175
  (my_popen): Do the FD_CLOEXEC only if it is available
 
3176
  (start_gatherer): Cope with missing _SC_OPEN_MAX
 
3177
 
 
3178
  * rndunix.c: Add some more headers for QNX. By Sam Roberts.
 
3179
 
 
3180
  * rndegd.c (gather_random): Shortcut level 0.
 
3181
  * rndunix.c (gather_random): Ditto.
 
3182
  * rndw32.c (gather_random): Ditto.
 
3183
 
 
3184
  * rndw32.c: Replaced with code from Cryptlib and commented the old stuff.
 
3185
  * rndw32.c: Add some debuging code enabled by an environment variable.
 
3186
 
 
3187
  * random.c (read_seed_file): Binary open for DOSish system
 
3188
  (update_random_seed_file): Ditto.
 
3189
  * random.c [MINGW32]: Include process.h for getpid.
 
3190
  * random.c (fast_random_poll): Add clock_gettime() as fallback for
 
3191
  system which support this POSIX.4 fucntion. By Sam Roberts.
 
3192
 
 
3193
  * random.c (read_seed_file): Removed the S_ISLNK test becuase it
 
3194
  is already covered by !S_ISREG and is not defined in Unixware.
 
3195
  Reported by Dave Dykstra.
 
3196
  (update_random_seed_file): Silently ignore update request when pool
 
3197
  is not filled.
 
3198
 
 
3199
  * random.c (read_seed_file): New.
 
3200
  (set_random_seed_file): New.
 
3201
  (read_pool): Try to read the seeding file.
 
3202
  (update_random_seed_file): New.
 
3203
 
 
3204
  (read_pool): Do an initial extra seeding when level 2 quality random
 
3205
  is requested the first time.  This requestes at least POOLSIZE/2 bytes
 
3206
  of entropy.  Compined with the seeding file this should make normal
 
3207
  random bytes cheaper and increase the quality of the random bytes
 
3208
  used for key generation.
 
3209
 
 
3210
  * random.c (read_pool): Print a more friendly error message in
 
3211
  cases when too much random is requested in one call.
 
3212
 
 
3213
  * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined;
 
3214
  this is not the case for some ESIX and Unixware, although they have
 
3215
  getrusage().
 
3216
 
 
3217
  * primegen.c (generate_elg_prime): All primes are now generated with
 
3218
  the lowest random quality level.  Because they are public anyway we
 
3219
  don't need stronger random and by this we do not drain the systems
 
3220
  entropy so much.
 
3221
 
 
3222
  * primegen.c (register_primegen_progress): New.
 
3223
  * dsa.c (register_pk_dsa_progress): New.
 
3224
  * elgamal.c (register_pk_elg_progress): New.
 
3225
 
 
3226
  * elgamal.c (wiener_map): New.
 
3227
  (gen_k): Use a much smaller k.
 
3228
  (generate): Calculate the qbits using the wiener map and
 
3229
  choose an x at a size comparable to the one choosen in gen_k
 
3230
 
 
3231
  * rmd160.c (rmd160_get_info): Moved casting to the left side due to a
 
3232
  problem with UTS4.3.  Suggested by Dave Dykstra.
 
3233
  * sha1.c (sha1_get_info): Ditto.
 
3234
  * tiger.c (tiger_get_info): Ditto.
 
3235
  * md5.c (md5_get_info): Ditto
 
3236
  * des.c (des_get_info): Ditto.
 
3237
  * blowfish.c (blowfish_get_info): Ditto.
 
3238
  * cast5.c (cast5_get_info): Ditto.
 
3239
  * twofish.c (twofish_get_info): Ditto.
 
3240
 
 
3241
Fri Mar 24 11:25:45 CET 2000  Werner Koch  <wk@openit.de>
 
3242
 
 
3243
        * md.c (md_open): Add hmac arg and allocate space for the pads.
 
3244
        (md_finalize): Add HMAC support.
 
3245
        (md_copy): Ditto.
 
3246
        (md_close): Ditto.
 
3247
        (gcry_md_reset): Ditto.
 
3248
        (gcry_md_ctl): Ditto.
 
3249
        (prepare_macpdas): New.
 
3250
 
 
3251
Mon Mar 13 19:22:46 CET 2000  Werner Koch  <wk@openit.de>
 
3252
 
 
3253
        * md.c (gcry_md_hash_buffer): Add support for the other algorithms.
 
3254
 
 
3255
Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
 
3256
 
 
3257
        * genprime.c (generate_elg_prime): Fixed returned factors which never
 
3258
        worked for non-DSA keys.
 
3259
 
 
3260
Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
 
3261
 
 
3262
        * pubkey.c (sexp_to_key): Fixed mem leaks in case of errors.
 
3263
 
 
3264
Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
 
3265
 
 
3266
        * pubkey.c (gcry_pk_decrypt): Implemented.
 
3267
        (gcry_pk_encrypt): Implemented.
 
3268
        (gcry_pk_testkey): New.
 
3269
        (gcry_pk_genkey): New.
 
3270
        (pubkey_decrypt): Made static.
 
3271
        (pubkey_encrypt): Ditto.
 
3272
        (pubkey_check_secret_key): Ditto.
 
3273
        (pubkey_generate): Ditto.
 
3274
 
 
3275
Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
 
3276
 
 
3277
        * pubkey.c (pubkey_nbits): Removed and replaced by ...
 
3278
        (gcry_pk_get_nbits): this new one.
 
3279
 
 
3280
Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
 
3281
 
 
3282
        * dsa.c: s/mpi_powm/gcry_mpi_powm/g
 
3283
        * elgamal.c: Ditto.
 
3284
        * primegen.c: Ditto.
 
3285
 
 
3286
        * : Replaced g10_opt_verbose by g10_log_verbosity().
 
3287
 
 
3288
        * Makefile.am (INCLUDES): removed intl, add ../gcrypt
 
3289
 
 
3290
Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
 
3291
 
 
3292
        * dynload.c (cmp_filenames): New to replaced compare_filename() in
 
3293
        module.
 
3294
        (register_cipher_extension): Removed the tilde expansion stuff.
 
3295
        * rndeg.c (my_make_filename): New.
 
3296
 
 
3297
        * : Replaced header util.h by g10lib.h
 
3298
 
 
3299
        * random.c (gather_faked): Replaced make_timestamp by time(2).
 
3300
        Disabled wrning printed with tty_printf.
 
3301
        * rndlinux.c (gather_random): Always use fprintf instead of tty_xxx;
 
3302
        this should be replaced by a callback function.
 
3303
 
 
3304
        * primegen.c (gen_prime): Use gcry_mpi_randomize.
 
3305
        (is_prime): Ditto.
 
3306
        * elgamal.c (test_keys): Ditto.
 
3307
        * dsa.c (test_keys): Ditto.
 
3308
 
 
3309
        * cipher.c (gcry_cipher_close): Die on invalid handle.
 
3310
 
 
3311
Mon Nov 15 21:36:02 CET 1999  Werner Koch  <wk@gnupg.de>
 
3312
 
 
3313
        * elgamal.c (gen_k): Use the new random API.
 
3314
        (generate): Ditto.
 
3315
        * dsa.c (gen_k): Ditto.
 
3316
        (generate): Ditto.
 
3317
 
 
3318
Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
 
3319
 
 
3320
        * pubkey.c (disable_pubkey_algo): Made static.
 
3321
        (gcry_pk_ctl): New.
 
3322
 
 
3323
        * random.c (get_random_bits): Renamed to ...
 
3324
        (get_random_bytes): ... this and made static.
 
3325
        (gcry_random_bytes): New.
 
3326
        (gcry_random_bytes_secure): New.
 
3327
        (randomize_buffer): Renamed to ...
 
3328
        (gcry_randomize): ...this.
 
3329
 
 
3330
        * md.c (gcry_md_hash_buffer): New.
 
3331
 
 
3332
        * pubkey.c (gcry_pk_algo_info): 4 new commands.
 
3333
        (pubkey_get_npkey): Made static.
 
3334
        (pubkey_get_nskey): Made static.
 
3335
        (pubkey_get_nsig): Made static.
 
3336
        (pubkey_get_nenc): Made static.
 
3337
 
 
3338
        * pubkey.c: Removed all G10ERR_xxx.
 
3339
        * cipher.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_CIPHER_ALGO.
 
3340
        * md.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_MD_ALGO.
 
3341
        * cast5.c (cast_setkey): Changed errocodes to GCRYERR_xxx.
 
3342
        * blowfish.c: Ditto.
 
3343
        * des.c: Ditto.
 
3344
        * twofish.c: Ditto.
 
3345
        * dsa.c: Ditto.
 
3346
        * elgamal.c: Ditto.
 
3347
 
 
3348
        * g10c.c: Removed
 
3349
 
 
3350
        * cipher.c (gcry_cipher_open): Replaced alloc functions and return NULL
 
3351
        if we are out of core.
 
3352
        * dynload.c: Replaced all memory allocation functions.
 
3353
        * md.c: Ditto.
 
3354
        * primegen.c: Ditto.
 
3355
        * pubkey.c: Ditto.
 
3356
        * random.c: Ditto.
 
3357
        * rndw32.c: Ditto.
 
3358
        * elgamal.c: Ditto.
 
3359
        * dsa.c: Ditto.
 
3360
 
 
3361
Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
 
3362
 
 
3363
        * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
 
3364
 
 
3365
        * cipher.c: Merged with gcrypt/symapi.c.
 
3366
 
 
3367
        * pubkey.c (string_to_pubkey_algo): Renamed function to ...
 
3368
        (gcry_pk_map_name): ... this.
 
3369
        (pubkey_algo_to_string): Renamed function to ...
 
3370
        (gcry_pk_algo_name): ... this.
 
3371
        (gcry_pk_algo_info): New.
 
3372
        * pubkey.c: Merged with gcrypt/pkapi.c.
 
3373
 
 
3374
        * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
 
3375
        fixing this bug.
 
3376
 
 
3377
        * md.c: Merged with gcrypt/mdapi.c
 
3378
 
 
3379
Wed Sep 15 14:39:59 CEST 1999  Michael Roth <mroth@nessie.de>
 
3380
 
 
3381
        * des.c: Various speed improvements: One bit pre rotation
 
3382
          trick after initial permutation (Richard Outerbridge).
 
3383
          Finished test of SSLeay Tripple-DES patterns.
 
3384
 
 
3385
Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3386
 
 
3387
        * rndw32.c: New.
 
3388
 
 
3389
Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3390
 
 
3391
        * bithelp.h: New.
 
3392
        * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
 
3393
 
 
3394
Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3395
 
 
3396
        * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
 
3397
 
 
3398
Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3399
 
 
3400
        * des.c (selftest): Add some testpattern
 
3401
 
 
3402
Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3403
 
 
3404
        * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
 
3405
        in place encryption. Pointed out by Frank Stajano.
 
3406
 
 
3407
Mon Jul 26 09:34:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3408
 
 
3409
        * md5.c (md5_final): Fix for a SCO cpp bug.
 
3410
 
 
3411
Thu Jul 15 10:15:35 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3412
 
 
3413
        * elgamal.c (elg_check_secret_key,elg_encrypt
 
3414
        elg_decrypt,elg_sign,elg_verify): Sanity check on the args.
 
3415
        * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto.
 
3416
 
 
3417
        * pubkey.c (disable_pubkey_algo): New.
 
3418
        (check_pubkey_algo2): Look at disabled algo table.
 
3419
        * cipher.c (disable_cipher_algo): New.
 
3420
        (check_cipher_algo): Look at disabled algo table.
 
3421
 
 
3422
Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3423
 
 
3424
        * Makefile.am: Support for libtool.
 
3425
 
 
3426
Fri Jul  2 11:45:54 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3427
 
 
3428
        * dsa.c (gen_k): Changed algorithm to consume less random bytes
 
3429
        * elgamal.c (gen_k): Ditto.
 
3430
 
 
3431
        * random.c (random_dump_stats): New.
 
3432
 
 
3433
Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3434
 
 
3435
        * primegen.c, elgamal.c, dsa.c (progess): New and replaced all
 
3436
        fputc with a call to this function.
 
3437
 
 
3438
Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3439
 
 
3440
        * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs.
 
3441
 
 
3442
        * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New.
 
3443
 
 
3444
        * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra).
 
3445
        * Makefile.am (install-exec-hook): Removed.
 
3446
 
 
3447
Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3448
 
 
3449
        * cipher.c (setup_cipher_table): Enable Twofish
 
3450
 
 
3451
        * random.c (fast_random_poll): Disable use of times() for mingw32.
 
3452
 
 
3453
Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3454
 
 
3455
        * dynload.c (register_internal_cipher_extension): Minor init fix.
 
3456
 
 
3457
Tue May  4 15:47:53 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3458
 
 
3459
        * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug
 
3460
        that we didn't correct for step when passing the prime to the
 
3461
        Rabin-Miller test which led to bad performance (Stefan Keller).
 
3462
        (check_prime): Add a first Fermat test.
 
3463
 
 
3464
Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3465
 
 
3466
        * cipher.c (cipher_setiv): Add ivlen arg, changed all callers.
 
3467
 
 
3468
        * random.c (randomize_buffer): alway use secure memory because
 
3469
        we can't use m_is_secure() on a statically allocated buffer.
 
3470
 
 
3471
        * twofish.c: Replaced some macros by a loop to reduce text size.
 
3472
        * Makefile.am (twofish): No more need for sed editing.
 
3473
 
 
3474
Fri Apr  9 12:26:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3475
 
 
3476
        * cipher.c (cipher_open): Reversed the changes for AUTO_CFB.
 
3477
 
 
3478
        * blowfish.c: Dropped the Blowfish 160 mode.
 
3479
        * cipher.c (cipher_open): Ditto.
 
3480
        (setup_cipher_table): Ditto.  And removed support of twofish128
 
3481
 
 
3482
Wed Apr  7 20:51:39 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3483
 
 
3484
        * random.c (get_random_bits): Can now handle requests > POOLSIZE
 
3485
 
 
3486
        * cipher.c (cipher_open): Now uses standard CFB for automode if
 
3487
        the blocksize is gt 8 (according to rfc2440).
 
3488
 
 
3489
        * twofish.c: Applied Matthew Skala's patches for 256 bit key.
 
3490
 
 
3491
Tue Apr  6 19:58:12 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3492
 
 
3493
        * random.c (get_random_bits): Can now handle requests > POOLSIZE
 
3494
 
 
3495
        * cipher.c (cipher_open): Now uses standard CFB for automode if
 
3496
        the blocksize is gt 8 (according to rfc2440).
 
3497
 
 
3498
Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3499
 
 
3500
        * rndlinux.c (tty_printf) [IS_MODULE]: Removed.
 
3501
 
 
3502
        * rndegd.c (gather_random): Some fixes.
 
3503
 
 
3504
Wed Mar 17 13:09:03 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3505
 
 
3506
        * rndegd.c (do_read): New.
 
3507
        (gather_random): Changed the implementation.
 
3508
 
 
3509
Mon Mar  8 20:47:17 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3510
 
 
3511
        * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed.
 
3512
 
 
3513
Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3514
 
 
3515
        * md.c: Nearly a total rewrote.
 
3516
 
 
3517
Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3518
 
 
3519
        * cipher.c (context): Fixed alignment
 
3520
        * md.c: Ditto.
 
3521
 
 
3522
        * rndegd.c: New
 
3523
 
 
3524
Mon Feb 22 20:04:00 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3525
 
 
3526
        * rndegd.c: New.
 
3527
 
 
3528
Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3529
 
 
3530
        * Makefile.am: Modules are now figured out by configure
 
3531
        * construct.c: New. Generated by configure. Changed all modules
 
3532
        to work with that.
 
3533
        * sha1.h: Removed.
 
3534
        * md5.h: Removed.
 
3535
 
 
3536
        * twofish.c: Changed interface to allow Twofish/256
 
3537
 
 
3538
        * rndunix.c (start_gatherer): Die on SIGPIPE.
 
3539
 
 
3540
Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3541
 
 
3542
        * rndunix.c (gather_random): Fix to avoid infinite loop.
 
3543
 
 
3544
Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3545
 
 
3546
        * des.c (is_weak_key): Replace system memcmp due to bugs
 
3547
        in SunOS's memcmp.
 
3548
        (des_get_info): Return error on failed selftest.
 
3549
        * twofish.c (twofish_setkey): Return error on failed selftest or
 
3550
        invalid keylength.
 
3551
        * cast5.c (cast_setkey): Ditto.
 
3552
        * blowfish.c (bf_setkey): Return error on failed selftest.
 
3553
 
 
3554
Tue Jan 12 11:17:18 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3555
 
 
3556
        * random.c (random_is_faked): New.
 
3557
 
 
3558
        * tiger.c: Only compile if we have the u64 type
 
3559
 
 
3560
Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3561
 
 
3562
        * rndunix.c (gather_random): check for setuid.
 
3563
 
 
3564
        * Makefile.am: Add a way to staically link random modules
 
3565
 
 
3566
Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3567
 
 
3568
        * md.c (md_stop_debug): Do a flush first.
 
3569
        (md_open): size of buffer now depends on the secure parameter
 
3570
 
 
3571
Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
3572
 
 
3573
        * rndunix.c (start_gatherer): Fixed stupid ==/= bug
 
3574
 
 
3575
1998-12-31  Geoff Keating  <geoffk@ozemail.com.au>
 
3576
 
 
3577
        * des.c (is_weak_key): Rewrite loop end condition.
 
3578
 
 
3579
Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
3580
 
 
3581
        * random.c: add unistd.h for getpid().
 
3582
        (RAND_MAX): Fallback value for Sun.
 
3583
 
 
3584
Wed Dec 23 17:12:24 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
3585
 
 
3586
        * md.c (md_copy): Reset debug.
 
3587
 
 
3588
Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
3589
 
 
3590
        * random.c (read_random_source): Changed the interface to the
 
3591
        random gathering function.
 
3592
        (gather_faked): Use new interface.
 
3593
        * dynload.c (dynload_getfnc_fast_random_poll): Ditto.
 
3594
        (dynload_getfnc_gather_random): Ditto.
 
3595
        * rndlinux.c (gather_random): Ditto.
 
3596
        * rndunix.c (gather_random): Ditto.
 
3597
 
 
3598
Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
3599
 
 
3600
        * dynload.c (SYMBOL_VERSION): New to cope with system which needs
 
3601
        underscores.
 
3602
 
 
3603
        * rndunix.c: Rewrote large parts
 
3604
 
 
3605
Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
3606
 
 
3607
        * dynload.c (load_extension): increased needed verbosity level.
 
3608
 
 
3609
        * random.c (fast_random_poll): Fallback to a default fast random
 
3610
        poll function.
 
3611
        (read_random_source): Always use the faked entroy gatherer if no
 
3612
        gather module is available.
 
3613
        * rndlinux.c (fast_poll): Removed.
 
3614
        * rndunix.c (fast_poll): Removed.
 
3615
 
 
3616
 
 
3617
Wed Nov 25 12:33:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3618
 
 
3619
        * rand-*.c: Removed.
 
3620
        * rndlinux.c : New.
 
3621
        * rndunix.c : New.
 
3622
        * random.c : Restructured the interface to the gather modules.
 
3623
        (intialize): Call constructor functions
 
3624
        (read_radnom_source): Moved to here.
 
3625
        * dynload.c (dynload_getfnc_gather_random): New.
 
3626
        (dynload_getfnc_fast_random_poll): New.
 
3627
        (register_internal_cipher_extension): New.
 
3628
        (register_cipher_extension): Support of internal modules.
 
3629
 
 
3630
Sun Nov  8 17:44:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3631
 
 
3632
        * rand-unix.c (read_random_source): Removed the assert.
 
3633
 
 
3634
Mon Oct 19 18:34:30 1998  me,,,  (wk@tobold)
 
3635
 
 
3636
        * pubkey.c: Hack to allow us to give some info about RSA keys back.
 
3637
 
 
3638
Thu Oct 15 11:47:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3639
 
 
3640
        * dynload.c: Support for DLD
 
3641
 
 
3642
Wed Oct 14 12:13:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3643
 
 
3644
        * rand-unix.c: Now uses names from configure for /dev/random.
 
3645
 
 
3646
1998-10-10  SL Baur  <steve@altair.xemacs.org>
 
3647
 
 
3648
        * Makefile.am: fix sed -O substitutions to catch -O6, etc.
 
3649
 
 
3650
Tue Oct  6 10:06:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3651
 
 
3652
        * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-)
 
3653
        * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto.
 
3654
 
 
3655
Mon Sep 28 13:23:09 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3656
 
 
3657
        * md.c (md_digest): New.
 
3658
        (md_reset): New.
 
3659
 
 
3660
Wed Sep 23 12:27:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3661
 
 
3662
        * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned.
 
3663
 
 
3664
Mon Sep 21 06:22:53 1998  Werner Koch  (wk@(none))
 
3665
 
 
3666
        * des.c: Some patches from Michael.
 
3667
 
 
3668
Thu Sep 17 19:00:06 1998  Werner Koch  (wk@(none))
 
3669
 
 
3670
        * des.c : New file from Michael Roth <mroth@nessie.de>
 
3671
 
 
3672
Mon Sep 14 11:10:55 1998  Werner Koch  (wk@(none))
 
3673
 
 
3674
        * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys.
 
3675
 
 
3676
Mon Sep 14 09:19:25 1998  Werner Koch  (wk@(none))
 
3677
 
 
3678
        * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined.
 
3679
 
 
3680
Mon Sep  7 17:04:33 1998  Werner Koch  (wk@(none))
 
3681
 
 
3682
        * Makefile.am: Fixes to allow a different build directory
 
3683
 
 
3684
Thu Aug  6 17:25:38 1998  Werner Koch,mobil,,,  (wk@tobold)
 
3685
 
 
3686
        * random.c (get_random_byte): Removed and changed all callers
 
3687
        to use get_random_bits()
 
3688
 
 
3689
Mon Jul 27 10:30:22 1998  Werner Koch  (wk@(none))
 
3690
 
 
3691
        * cipher.c : Support for other blocksizes
 
3692
        (cipher_get_blocksize): New.
 
3693
        * twofish.c: New.
 
3694
        * Makefile.am: Add twofish module.
 
3695
 
 
3696
Mon Jul 13 21:30:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3697
 
 
3698
        * random.c (read_pool): Simple alloc if secure_alloc is not set.
 
3699
        (get_random_bits): Ditto.
 
3700
 
 
3701
Thu Jul  9 13:01:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3702
 
 
3703
        * dynload.c (load_extension): Function now nbails out if
 
3704
        the program is run setuid.
 
3705
 
 
3706
Wed Jul  8 18:58:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3707
 
 
3708
        * rmd160.c (rmd160_hash_buffer): New.
 
3709
 
 
3710
Thu Jul  2 10:50:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3711
 
 
3712
        * cipher.c (cipher_open): algos >=100 use standard CFB
 
3713
 
 
3714
Thu Jun 25 11:18:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3715
 
 
3716
        * Makefile.am: Support for extensions
 
3717
 
 
3718
Thu Jun 18 12:09:38 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3719
 
 
3720
        * random.c (mix_pool): simpler handling for level 0
 
3721
 
 
3722
Mon Jun 15 14:40:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3723
 
 
3724
        * tiger.c: Removed from dist, will reappear as dynload module
 
3725
 
 
3726
Sat Jun 13 14:16:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3727
 
 
3728
        * pubkey.c: Major changes to allow extensions. Changed the inteface
 
3729
        of all public key ciphers and added the ability to load extensions
 
3730
        on demand.
 
3731
 
 
3732
        * misc.c: Removed.
 
3733
 
 
3734
Wed Jun 10 07:52:08 1998  Werner Koch,mobil,,,  (wk@tobold)
 
3735
 
 
3736
        * dynload.c: New.
 
3737
        * cipher.c: Major changes to allow extensions.
 
3738
 
 
3739
Mon Jun  8 22:43:00 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3740
 
 
3741
        * cipher.c: Major internal chnages to support extensions.
 
3742
        * blowfish.c (blowfish_get_info): New and made all internal
 
3743
        functions static, changed heder.
 
3744
        * cast5.c (cast5_get_info): Likewise.
 
3745
 
 
3746
Mon Jun  8 12:27:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3747
 
 
3748
        * tiger.c (transform): Fix for big endian
 
3749
 
 
3750
        * cipher.c (do_cfb_decrypt): Big endian fix.
 
3751
 
 
3752
Fri May 22 07:30:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3753
 
 
3754
        * md.c (md_get_oid): Add a new one for TIGER.
 
3755
 
 
3756
Thu May 21 13:24:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3757
 
 
3758
        * cipher.c: Add support for a dummy cipher
 
3759
 
 
3760
Thu May 14 15:40:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3761
 
 
3762
        * rmd160.c (transform): fixed sigbus - I should better
 
3763
        add Christian von Roques's new implemenation of rmd160_write.
 
3764
 
 
3765
Fri May  8 18:07:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3766
 
 
3767
        * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New
 
3768
        * random.c: Moved system specific functions to rand-****.c
 
3769
 
 
3770
Fri May  8 14:01:17 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3771
 
 
3772
        * random.c (fast_random_poll): add call to gethrtime.
 
3773
 
 
3774
Tue May  5 21:28:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3775
 
 
3776
        * elgamal.c (elg_generate): choosing x was not correct, could
 
3777
        yield 6 bytes which are not from the random pool, tsss, tsss..
 
3778
 
 
3779
Tue May  5 14:09:06 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3780
 
 
3781
        * primegen.c (generate_elg_prime): Add arg mode, changed all
 
3782
        callers and implemented mode 1.
 
3783
 
 
3784
Mon Apr 27 14:41:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3785
 
 
3786
        * cipher.c (cipher_get_keylen): New.
 
3787
 
 
3788
Sun Apr 26 14:44:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3789
 
 
3790
        * tiger.c, tiger.h: New.
 
3791
 
 
3792
Wed Apr  8 14:57:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3793
 
 
3794
        * misc.c (check_pubkey_algo2): New.
 
3795
 
 
3796
Tue Apr  7 18:46:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3797
 
 
3798
        * cipher.c: New
 
3799
        * misc.c (check_cipher_algo): Moved to cipher.c
 
3800
        * cast5.c: Moved many functions to cipher.c
 
3801
        * blowfish.c: Likewise.
 
3802
 
 
3803
Sat Apr  4 19:52:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3804
 
 
3805
        * cast5.c: Implemented and tested.
 
3806
 
 
3807
Wed Apr  1 16:38:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3808
 
 
3809
        * elgamal.c (elg_generate): Faster generation of x in some cases.
 
3810
 
 
3811
Thu Mar 19 13:54:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3812
 
 
3813
        * blowfish.c (blowfish_decode_cfb): changed XOR operation
 
3814
        (blowfish_encode_cfb): Ditto.
 
3815
 
 
3816
Thu Mar 12 14:04:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3817
 
 
3818
        * sha1.c (transform): Rewrote
 
3819
 
 
3820
        * blowfish.c (encrypt): Unrolled for rounds == 16
 
3821
        (decrypt): Ditto.
 
3822
 
 
3823
Tue Mar 10 16:32:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3824
 
 
3825
        * rmd160.c (transform): Unrolled the loop.
 
3826
 
 
3827
Tue Mar 10 13:05:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3828
 
 
3829
        * random.c (read_pool): Add pool_balance stuff.
 
3830
        (get_random_bits): New.
 
3831
 
 
3832
        * elgamal.c (elg_generate): Now uses get_random_bits to generate x.
 
3833
 
 
3834
 
 
3835
Tue Mar 10 11:33:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3836
 
 
3837
        * md.c (md_digest_length): New.
 
3838
 
 
3839
Tue Mar 10 11:27:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3840
 
 
3841
        * dsa.c (dsa_verify): Works.
 
3842
 
 
3843
Mon Mar  9 12:59:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3844
 
 
3845
        * dsa.c, dsa.h: Removed some unused code.
 
3846
 
 
3847
Wed Mar  4 10:39:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3848
 
 
3849
        * md.c (md_open): Add call to fast_random_poll.
 
3850
        blowfish.c (blowfish_setkey): Ditto.
 
3851
 
 
3852
Tue Mar  3 13:32:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3853
 
 
3854
        * rmd160.c (rmd160_mixblock): New.
 
3855
        * random.c: Restructured to start with a new RNG implementation.
 
3856
        * random.h: New.
 
3857
 
 
3858
Mon Mar  2 19:21:46 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3859
 
 
3860
        * gost.c, gost.h: Removed because they did only contain trash.
 
3861
 
 
3862
Sun Mar  1 16:42:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3863
 
 
3864
        * random.c (fill_buffer): removed error message if n == -1.
 
3865
 
 
3866
Fri Feb 27 16:39:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3867
 
 
3868
        * md.c (md_enable): No init if called twice.
 
3869
 
 
3870
Thu Feb 26 07:57:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3871
 
 
3872
        * primegen.c (generate_elg_prime): Changed the progress printing.
 
3873
        (gen_prime): Ditto.
 
3874
 
 
3875
Tue Feb 24 12:28:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3876
 
 
3877
        * md5.c, md.5 : Replaced by a modified version of md5.c from
 
3878
        GNU textutils 1.22.
 
3879
 
 
3880
Wed Feb 18 14:08:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3881
 
 
3882
        * md.c, md.h : New debugging support
 
3883
 
 
3884
Mon Feb 16 10:08:47 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
3885
 
 
3886
        * misc.c (cipher_algo_to_string): New
 
3887
        (pubkey_algo_to_string): New.
 
3888
        (digest_algo_to_string): New.
 
3889
 
 
3890
 
 
3891
 Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006
 
3892
           2007, 2008, 2009 Free Software Foundation, Inc.
 
3893
 
 
3894
 This file is free software; as a special exception the author gives
 
3895
 unlimited permission to copy and/or distribute it, with or without
 
3896
 modifications, as long as this notice is preserved.
 
3897
 
 
3898
 This file is distributed in the hope that it will be useful, but
 
3899
 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 
3900
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.