1
2009-01-22 Werner Koch <wk@g10code.com>
3
* ecc.c (compute_keygrip): Remove superfluous const.
5
2009-01-06 Werner Koch <wk@g10code.com>
7
* rmd160.c (oid_spec_rmd160): Add TeleTrust identifier.
9
2008-12-10 Werner Koch <wk@g10code.com>
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.
16
* rijndael.c (rijndael_names): Add "AES128" and "AES-128".
17
(rijndael192_names): Add "AES-192".
18
(rijndael256_names): Add "AES-256".
20
2008-12-05 Werner Koch <wk@g10code.com>
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
27
2008-11-28 Werner Koch <wk@g10code.com>
29
* dsa.c (generate_fips186): Add arg DERIVEPARMS and use the seed
32
* primegen.c (_gcry_generate_fips186_2_prime): Fix inner p loop.
34
2008-11-26 Werner Koch <wk@g10code.com>
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.
40
2008-11-25 Werner Koch <wk@g10code.com>
42
* dsa.c (generate_fips186): New.
43
(dsa_generate_ext): Use new function if derive-parms are given or
45
* primegen.c (_gcry_generate_fips186_2_prime): New.
47
2008-11-24 Werner Koch <wk@g10code.com>
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
56
* dsa.c (dsa_generate_ext): Put RETFACTORS into R_EXTRAINFO if
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
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.
71
(_gcry_elg_generate_using_x): Remove after merging code with
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
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
83
2008-11-20 Werner Koch <wk@g10code.com>
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.
92
2008-11-19 Werner Koch <wk@g10code.com>
94
* rsa.c (rsa_decrypt): Use gcry_create_nonce for blinding.
95
(generate): Rename to generate_std.
97
2008-11-05 Werner Koch <wk@g10code.com>
99
* md.c (md_open): Use a switch to set the Bsize.
100
(prepare_macpads): Fix long key case for SHA384 and SHA512.
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.
111
2008-10-24 Werner Koch <wk@g10code.com>
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.
117
2008-09-30 Werner Koch <wk@g10code.com>
119
* rijndael.c (do_setkey): Properly align "t" and "tk".
120
(prepare_decryption): Properly align "w". Fixes bug #936.
122
2008-09-18 Werner Koch <wk@g10code.com>
124
* pubkey.c (gcry_pk_genkey): Parse domain parameter.
125
(pubkey_generate): Add new arg DOMAIN and remove special case for
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
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.
142
2008-09-16 Werner Koch <wk@g10code.com>
144
* ecc.c (run_selftests): Add arg EXTENDED.
146
2008-09-12 Werner Koch <wk@g10code.com>
148
* rsa.c (test_keys): Do a bad case signature check.
149
* dsa.c (test_keys): Do a bad case check.
151
* cipher.c (_gcry_cipher_selftest): Add arg EXTENDED and pass it
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
157
(selftest_fips_128): Add arg EXTENDED and run only one test
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
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
169
(selftests_sha1): Add arg EXTENDED and run only one test
171
* sha256.c (run_selftests): Add arg EXTENDED and pass it to the
173
(selftests_sha224): Add arg EXTENDED and run only one test
175
(selftests_sha256): Ditto.
176
* sha512.c (run_selftests): Add arg EXTENDED and pass it to the
178
(selftests_sha384): Add arg EXTENDED and run only one test
180
(selftests_sha512): Ditto.
181
* des.c (run_selftests): Add arg EXTENDED and pass it to the
183
(selftest_fips): Add dummy arg EXTENDED.
184
* rsa.c (run_selftests): Add dummy arg EXTENDED.
186
* dsa.c (run_selftests): Add dummy arg EXTENDED.
188
* rsa.c (extract_a_from_sexp): New.
189
(selftest_encr_1024): Check that the ciphertext does not match the
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.
196
2008-09-11 Werner Koch <wk@g10code.com>
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.
207
2008-09-09 Werner Koch <wk@g10code.com>
209
* hmac-tests.c (selftests_sha1): Add tests.
210
(selftests_sha224, selftests_sha384, selftests_sha512): Make up tests.
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.
217
2008-08-29 Werner Koch <wk@g10code.com>
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.
226
2008-08-28 Werner Koch <wk@g10code.com>
228
* cipher.c (cipher_decrypt, cipher_encrypt): Return an error if
230
(gcry_cipher_open): Allow mode NONE only with a debug flag set and
233
2008-08-26 Werner Koch <wk@g10code.com>
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.
247
2008-08-21 Werner Koch <wk@g10code.com>
249
* primegen.c (_gcry_generate_secret_prime)
250
(_gcry_generate_public_prime): Use a constant macro for the random
253
2008-08-19 Werner Koch <wk@g10code.com>
255
* pubkey.c (sexp_elements_extract_ecc) [!USE_ECC]: Do not allow
256
allow "curve" parameter.
258
2008-08-15 Werner Koch <wk@g10code.com>
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.
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.
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.
274
* cipher.c (_gcry_cipher_setkey, _gcry_cipher_setiv):
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.
281
* ecc.c (generate_curve): In fips mode enable only NIST curves.
283
* cipher.c (_gcry_cipher_selftest): New.
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.
297
* cipher.c (gcry_cipher_register): Rename to _gcry_cipher_register.
299
(dummy_extra_spec): New.
300
(cipher_table_entry): Add extraspec field.
301
* md.c (_gcry_md_register): Rename to _gcry_md_register. Add
303
(dummy_extra_spec): New.
304
(digest_table_entry): Add extraspec field.
305
* pubkey.c (gcry_pk_register): Rename to _gcry_pk_register. Add
307
(dummy_extra_spec): New.
308
(pubkey_table_entry): Add extraspec field.
310
* ac.c: Let most public functions return GPG_ERR_UNSUPPORTED in
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
321
* md.c (digest_table): Add field FIPS_ALLOWED and mark appropriate
323
(md_register_default): In fips mode register only fips algorithms.
324
(gcry_md_register): In fips mode do not allow to register new
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.
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.
336
* cipher.c (cipher_table_entry): Add field FIPS_ALLOWED.
337
(gcry_cipher_register_default): Register only fips approved
339
(gcry_cipher_register): Do not allow to register new ciphers.
340
(cipher_setiv): Signal fips error.
342
* cipher (gcry_cipher_register_default): Rename to ..
343
(cipher_register_default): .. this.
344
(REGISTER_DEFAULT_CIPHERS): Adjust for that change.
346
2008-07-05 Werner Koch <wk@g10code.com>
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.
352
2008-06-24 Szakats Istvan <szaki.ms@gmail.com> (wk)
354
* ac.c (_gcry_ac_key_destroy, _gcry_ac_key_pair_generate): Relase
357
2008-04-22 Werner Koch <wk@g10code.com>
359
* rijndael.c (_gcry_aes_cfb_enc, _gcry_aes_cbc_enc)
360
(_gcry_aes_cfb_dec, _gcry_aes_cbc_dec): Use Padlock if possible.
362
2008-04-18 Werner Koch <wk@g10code.com>
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.
368
* rijndael.c: Factor tables out to ..
369
* rijndael-tables.h: .. new.
371
* ac.c (ac_data_extract): Make static.
373
* camellia.h [HAVE_CONFIG_H]: Include config.h.
375
* rndw32.c (registry_poll): Only print the performance data
376
problem warning once. Suggested by Simon Josefsson.
378
2008-03-19 Werner Koch <wk@g10code.com>
380
* cipher.c (gcry_cipher_open) [USE_AES]: Init bulk encryption only
381
if requested. Suggested by Dirk Stoecker.
383
2008-03-18 Werner Koch <wk@g10code.com>
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
389
(sha1_write): Replace loop around transform.
390
(transform_aligned) [WORDS_BIGENDIAN]: New.
391
(TRANSFORM): New macro to replace all direct calls of transform.
393
2008-03-17 Werner Koch <wk@g10code.com>
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.
407
2008-03-15 Werner Koch <wk@g10code.com>
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.
414
2008-02-18 Werner Koch <wk@g10code.com>
416
* rsa.c (_gcry_rsa_verify) [IS_DEVELOPMENT_VERSION]: Print
417
intermediate results.
419
2008-01-08 Werner Koch <wk@g10code.com>
421
* random.c (add_randomness): Do not just increment
422
POOL_FILLED_COUNTER but update it by the actual amount of data.
424
2007-12-13 Werner Koch <wk@g10code.com>
426
* pubkey.c (sexp_data_to_mpi): Support SHA-224.
428
2007-12-05 Werner Koch <wk@g10code.com>
430
* rijndael.c (USE_PADLOCK): Depend on ENABLE_PADLOCK_SUPPORT.
431
* rndhw.c (USE_PADLOCK): Ditto
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
440
(sexp_to_key): Pass algo name to sexp_elements_extract.
442
2007-12-03 Werner Koch <wk@g10code.com>
444
* random.c (gcry_random_add_bytes): Implement it.
445
* rand-internal.h (RANDOM_ORIGIN_EXTERNAL): New.
447
2007-11-30 Werner Koch <wk@g10code.com>
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.
455
2007-11-29 Werner Koch <wk@g10code.com>
457
* rijndael.c (USE_PADLOCK): Define new macro used for ia32.
458
(RIJNDAEL_context) [USE_PADLOCK]: Add fields USE_PADLOCK and
460
(do_setkey) [USE_PADLOCK]: Enable padlock if available for 128 bit
462
(do_padlock) [USE_PADLOCK]: New.
463
(rijndael_encrypt, rijndael_decrypt) [USE_PADLOCK]: Divert to
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.
472
2007-11-28 Werner Koch <wk@g10code.com>
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.
478
2007-10-31 Werner Koch <wk@g10code.com>
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.
498
2007-10-26 Werner Koch <wk@g10code.com>
500
* rndw32.c: Disable debug flag.
502
2007-10-25 Werner Koch <wk@g10code.com>
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.
513
2007-08-23 Werner Koch <wk@g10code.com>
515
* random.c (pool_filled_counter): New.
516
(add_randomness): Use it.
518
2007-08-22 Werner Koch <wk@g10code.com>
520
* rndw32.c, rndunix.c: Switched to LGPL.
522
2007-05-30 Werner Koch <wk@g10code.com>
524
* camellia.h, camellia.c: Replace by new LGPL version and adjusted
527
2007-05-09 Marcus Brinkmann <marcus@g10code.de>
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
533
2007-05-02 Werner Koch <wk@g10code.com>
535
* camellia-glue.c (camellia_setkey, camellia_encrypt)
536
(camellia_decrypt): Recalculated used stack size in called
538
* camellia.h: Redefine external symbols.
540
2007-05-02 David Shaw <dshaw@jabberwocky.com>
542
* Makefile.am, cipher.c: Add Camellia.
544
* camellia-glue.c: New. The necessary glue to interface libgcrypt
545
to the stock NTT Camellia distribution.
547
* camellia.h, camellia.c: The stock NTT Camellia distribution
550
2007-04-30 David Shaw <dshaw@jabberwocky.com>
552
* cipher.c: Use #if instead of #ifdef as configure defines the
553
USE_cipher defines as 0 for disabled.
555
2007-04-30 Werner Koch <wk@g10code.com>
557
* rndegd.c (_gcry_rndegd_set_socket_name): New.
559
2007-04-30 Marcus Brinkmann <marcus@g10code.de>
561
* ecc.c (ec2os): Fix relocation of short numbers.
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
566
(_gcry_ecc_generate): Release unneeded members of SK.
567
* pubkey.c (sexp_to_key): Release NAME.
569
2007-04-28 Marcus Brinkmann <marcus@g10code.de>
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
576
2007-04-20 Werner Koch <wk@g10code.com>
578
* ecc.c (domain_parms): Add standard brainpool curves.
580
2007-04-18 Werner Koch <wk@g10code.com>
582
* ecc.c (generate_curve): Implement alias mechanism.
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.
590
2007-04-16 Werner Koch <wk@g10code.com>
592
* ecc.c (_gcry_ecc_generate): Renamed DUMMY to CURVE and use it.
594
2007-04-13 Marcus Brinkmann <marcus@g10code.de>
596
* ac.c (ac_data_construct): Cast const away to suppress compiler
599
* ecc.c (ecc_generate): Avoid compiler warning for unused argument
601
(ecc_verify): Avoid compiler warning for unused arguments CMP and
604
2007-04-06 Werner Koch <wk@g10code.com>
606
* sha1.c (oid_spec_sha1): Add another oid from X9.62.
608
2007-03-28 Werner Koch <wk@g10code.com>
610
* pubkey.c (gcry_pk_genkey): Do not issue misc-key-info if it is
612
(gcry_pk_genkey): New parameter "curve".
614
* ecc.c: Entirely rewritten with only a few traces of the old
616
(_gcry_ecc_generate): New.
617
(generate_key) New arg NAME.
618
(generate_curve): Ditto. Return actual number of NBITS.
620
2007-03-26 Werner Koch <wk@g10code.com>
622
* pubkey.c (gcry_pk_genkey): Increase size of SKEY array and add a
623
runtime bounds check.
625
2007-03-23 Werner Koch <wk@g10code.com>
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.
634
2007-03-22 Werner Koch <wk@g10code.com>
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.
640
(escalar_mult): Make arg R the first arg to be similar to the mpi
642
(duplicate_point): Ditto
644
(sign, verify): Remove unneeded copy operations.
645
(sum_points): Removed memory leaks and optimized some compares.
646
(verify): Simplified input check.
648
2007-03-14 Werner Koch <wk@g10code.com>
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
662
(add_randomness): Remove initalization here. It simply can't
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.
674
2007-03-13 Werner Koch <wk@g10code.com>
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
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
689
* random-daemon.c (_gcry_daemon_get_random_bytes): Removed.
691
2007-02-23 Werner Koch <wk@g10code.com>
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.
700
2007-02-22 Werner Koch <wk@g10code.com>
702
* pubkey.c (sexp_data_to_mpi): Handle dynamically allocated
703
algorithms. Suggested by Neil Dunbar. Fixes bug#596.
705
* rndw32.c (_gcry_rndw32_gather_random_fast): Make it return void.
707
* cipher.c (gcry_cipher_algo_name): Simplified.
709
* random.c: Use the daemon only if compiled with USE_RANDOM_DAEMON.
711
* Makefile.am (libcipher_la_SOURCES): Build random-daemon support
714
2007-02-21 Werner Koch <wk@g10code.com>
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.
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.
725
* cipher.c (gcry_cipher_encrypt, cry_cipher_decrypt): Change
726
buffer args to void*.
727
(gcry_cipher_register): Make ALGORITHM_ID a int *.
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*.
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.
744
* tiger.c (tiger_write, transform): Ditto.
745
* whirlpool.c (whirlpool_write, whirlpool_add, transform): Ditto.
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.
752
2007-02-20 Werner Koch <wk@g10code.com>
754
* rndlinux.c (open_device): Remove unsused arg MINOR.
756
2007-01-30 Werner Koch <wk@g10code.com>
758
* sha256.c (oid_spec_sha256): Add alias from pkcs#1.
759
* sha512.c (oid_spec_sha512): Ditto.
760
(oid_spec_sha384): Ditto.
762
2006-12-18 Werner Koch <wk@g10code.com>
764
* rndlinux.c (set_cloexec_flag): New.
765
(open_device): Set close-on-exit flags. Suggested by Max
766
Kellermann. Fixes Debian#403613.
768
* Makefile.am (AM_CPPFLAGS, AM_CFLAGS): Splitted and merged
772
2006-11-30 Werner Koch <wk@g10code.com>
774
* serpent.c (byte_swap_32): Remove trailing semicolon.
776
2006-11-15 Werner Koch <wk@g10code.com>
778
* Makefile.am (INCLUDES): Include ../src/
780
2006-11-03 Werner Koch <wk@g10code.com>
782
* random.c [HAVE_GETTIMEOFDAY]: Included sys/time.h and not
783
sys/times.h. Reported by Rafaël Carré.
785
2006-11-05 Moritz Schulte <moritz@g10code.com>
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.
790
2006-10-25 Werner Koch <wk@g10code.com>
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.
797
2006-10-23 Werner Koch <wk@g10code.com>
799
* ac.c (_gcry_ac_data_from_sexp): Reset sexp_tmp for failsafe
800
means. Release sexp_cur if needed. Reported by Dirk Stoecker.
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.
806
2006-10-17 Werner Koch <wk@g10code.com>
808
* dsa.c (_gcry_dsa_generate2): New.
809
(generate): New arg QBITS. Add sanity checks for reasonable qbits
811
* pubkey.c (gcry_pk_genkey): Parse an qbits element.
812
(pubkey_generate): New arg QBITS. Pass it to the DSA generation.
814
2006-10-05 Werner Koch <wk@g10code.com>
816
* md.c (gcry_md_algo_info) <get_asnoid>: Check that the algo is
819
2006-10-04 David Shaw <dshaw@jabberwocky.com> (wk)
821
* tiger.c (round): Rename to tiger_round as gcc 4 has a built-in
822
round function that this conflicts with.
824
2006-09-11 Werner Koch <wk@g10code.com>
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.
830
2006-08-30 Werner Koch <wk@g10code.com>
832
* pubkey.c (sexp_data_to_mpi): Need to allow "ripemd160" here as
833
this is the canonical name.
835
2006-08-29 Hye-Shik Chang <perky@FreeBSD.org> (wk)
839
2006-08-03 Werner Koch <wk@g10code.com>
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.
851
2006-07-26 Werner Koch <wk@g10code.com>
853
* rmd160.c (_gcry_rmd160_mixblock): Add cast to transform call.
855
* blowfish.c (selftest): Cast string to usnigned char*.
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 *.
861
* ac.c (_gcry_ac_data_copy): Initialize DATA_MPIS.
863
* random.c (gcry_create_nonce): Update the pid after a fork.
864
Reported by Uoti Urpala.
866
2006-07-04 Marcus Brinkmann <marcus@g10code.de>
868
* sha512.c: Fix typo in copyright notice.
870
2006-06-21 Werner Koch <wk@g10code.com>
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.
878
2006-04-22 Moritz Schulte <moritz@g10code.com>
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.
888
* random.h (_gcry_daemon_initialize_basics): New parameter:
890
(_gcry_set_random_daemon_socket): New declaration.
892
* random.c (initialize_basics): Pass DAEMON_SOCKET_NAME to
893
_gcry_daemon_initialize_basics.
894
(_gcry_set_random_daemon_socket): New function, setting
897
2006-04-01 Moritz Schulte <moritz@g10code.com>
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
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
909
2006-03-15 Werner Koch <wk@g10code.com>
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.
916
2006-03-14 Werner Koch <wk@g10code.com>
918
* random.c (lock_seed_file): New.
919
(read_seed_file, _gcry_update_random_seed_file): Use it.
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.
925
2006-03-12 Brad Hards <bradh@frogmouth.net> (wk)
927
* md.c (md_open): Use new variable macpads_Bsize instead of
928
hardwiring the block size. Changed at all places.
930
2006-03-10 Brad Hards <bradh@frogmouth.net> (wk, patch 2005-04-22)
932
* md.c, sha256.c: Add support for SHA-224.
935
2006-01-18 Brad Hards <bradh@frogmouth.net> (wk 2006-03-07)
937
* cipher.c (cipher_encrypt, cipher_decrypt, do_ofb_encrypt)
938
(do_ofb_decrypt, gcry_cipher_open): Implement Output Feedback Mode.
940
2005-11-02 Moritz Schulte <moritz@g10code.com>
942
* pubkey.c (gcry_pk_algo_name): Return "?" instead of NULL for
943
unknown algorithm IDs.
944
* cipher.c (cipher_algo_to_string): Likewise.
946
2005-11-01 Moritz Schulte <moritz@g10code.com>
948
* pubkey.c (gcry_pk_algo_info): Don't forget to break after switch
951
2005-09-19 Werner Koch <wk@g10code.com>
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.
957
2005-08-22 Werner Koch <wk@g10code.com>
959
* primegen.c (check_prime): New arg RM_ROUNDS.
960
(prime_generate_internal): Call it here with 5 rounds as used
962
(gcry_prime_check): But here with 64 rounds.
963
(is_prime): Make sure never to use less than 5 rounds.
965
2005-04-16 Moritz Schulte <moritz@g10code.com>
967
* ac.c (_gcry_ac_init): New function.
969
2005-04-12 Moritz Schulte <moritz@g10code.com>
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
975
(_gcry_ac_data_to_sexp): Don't forget to goto out after error in
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
985
Use gcry_error_t types where gcry_err_code_t types have been used
988
2005-04-11 Moritz Schulte <moritz@g10code.com>
990
* ac.c (_gcry_ac_data_sign_scheme): Don't forget to initialize
993
* whirlpool.c: New file.
994
* md.c (digest_table): Add whirlpool.
995
* Makefile.am (EXTRA_libcipher_la_SOURCES): Added: whirlpool.c.
997
2005-03-30 Moritz Schulte <moritz@g10code.com>
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
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.
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.
1018
(ac_data_mpi_copy): Initialize flags to GCRY_AC_FLAG_DEALLOC.
1019
(ac_data_extract): Use GCRY_AC_FLAG_DEALLOC instead of
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
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):
1039
2005-03-23 Werner Koch <wk@g10code.com>
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.
1045
2005-03-19 Moritz Schulte <moritz@g10code.com>
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.
1051
2005-02-25 Werner Koch <wk@g10code.com>
1053
* pubkey.c (gcry_pk_get_keygrip): Allow for shadowed-private-key.
1055
2005-02-13 Moritz Schulte <moritz@g10code.com>
1057
* serpent.c: Updated from 1.2 branch:
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.
1063
2005-02-07 Moritz Schulte <moritz@g10code.com>
1065
* ac.c: Major parts rewritten.
1066
* pubkey.c (_gcry_pk_get_elements): New function.
1068
2004-12-09 Werner Koch <wk@g10code.com>
1070
* serpent.c (serpent_setkey): Moved prototype of serpent_test to
1073
2004-09-11 Moritz Schulte <moritz@g10code.com>
1075
* pubkey.c (pubkey_table): Added an alias entry for GCRY_PK_ELG_E.
1077
2004-08-23 Moritz Schulte <moritz@g10code.com>
1079
* ac.c: Do not include <assert.h>.
1080
* rndegd.c: Likewise.
1082
* rndunix.c: Likewise.
1083
* rndlinux.c: Likewise.
1084
* rmd160.c: Likewise.
1087
* cipher.c: Likewise.
1089
* blowfish.c: Likewise.
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
1095
(dummy_get_nbits): Return 0 instead of aborting though log_bug().
1097
2004-08-19 Werner Koch <wk@g10code.de>
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.
1103
2004-08-09 Moritz Schulte <moritz@g10code.com>
1105
* pubkey.c (gcry_pk_sign): Fixed memory leak; fix provided by
1108
2004-07-16 Werner Koch <wk@gnupg.org>
1110
* rijndael.c (do_encrypt): Fix alignment problem. Bugs found by
1112
(do_decrypt): Ditto.
1113
(keySched, keySched2): Use 2 macros along with unions in the key
1116
2004-07-14 Moritz Schulte <moritz@g10code.com>
1118
* rsa.c (_gcry_rsa_decrypt): Don't forget to free "a". Thanks to
1119
Nikos Mavroyanopoulos.
1121
2004-05-09 Werner Koch <wk@gnupg.org>
1123
* random.c (read_pool): Mix the PID in to better protect after a
1126
2004-07-04 Moritz Schulte <moritz@g10code.com>
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.
1132
2004-05-07 Werner Koch <wk@gnupg.org>
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.
1141
2004-05-07 Moritz Schulte <moritz@g10code.de>
1143
* ac.c (gcry_ac_open): Do not dereference NULL pointer. Reported
1146
2004-02-20 Werner Koch <wk@gnupg.org>
1148
* primegen.c (check_prime): New args CB_FUNC and CB_ARG; call them
1149
at different stages. Pass these arguments through all callers.
1151
2004-02-06 Werner Koch <wk@gnupg.org>
1153
* des.c: Add a new OID as used by pkcs#12.
1155
* rfc2268.c: New. Taken from libgcrypt.
1156
* cipher.c: Setup the rfc2268 algorithm.
1158
2004-01-25 Moritz Schulte <mo@g10code.com>
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'.
1164
2004-01-14 Moritz Schulte <mo@g10code.com>
1166
* ac.c (gcry_ac_data_set): New argument: flags; slightly
1168
(gcry_ac_data_get_name, gcry_ac_data_get_index): Likewise.
1169
(gcry_ac_key_pair_generate): New argument: misc_data; modified
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.
1178
2003-12-22 Werner Koch <wk@gnupg.org>
1180
* primegen.c (is_prime): Release A2.
1182
2003-12-19 Werner Koch <wk@gnupg.org>
1184
* md.c: Moved a couple of functions down below the data structure
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.
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.
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.
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.
1206
* md.c: Minor code and comment cleanups.
1208
2003-12-16 Werner Koch <wk@gnupg.org>
1210
* primegen.c (gen_prime): Doc fix. Thanks to Newton Hammet.
1212
2003-12-11 Werner Koch <wk@gnupg.org>
1214
* rndunix.c (slow_poll): Don't use #warning but #error.
1216
* rndegd.c: Changed indentation.
1217
(my_make_filename): Removd the var_arg cruft becuase we
1218
don't need it here. Changed caller.
1220
* rndlinux.c: Changed indentation.
1221
(open_device): Remove the superfluous stat call and clarify
1224
* rsa.c: Changed indentation.
1225
(secret): Use the standard algorithm if p, q and u are not
1227
(rsa_blind, rsa_unblind): Renamed from _gcry_rsa_blind,
1228
_gcry_rsa_unblind and moved more to the top.
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.
1236
2003-12-09 Werner Koch <wk@gnupg.org>
1238
* dsa.c: Unified indentation style.
1240
* des.c (des_key_schedule): Code beautifications.
1241
* blowfish.c: Changed indentation style.
1242
* cast5.c (do_cast_setkey): Ditto.
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.
1252
2003-12-07 Werner Koch <wk@gnupg.org>
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
1258
(sexp_to_sig): Ditto.
1259
(sexp_to_enc): Ditto. Replaced the chain of if(!err) tests by
1260
straightforward gotos.
1262
2003-12-05 Werner Koch <wk@gnupg.org>
1264
* cipher.c: Documentation cleanups.
1265
(gcry_cipher_mode_from_oid): Allow NULL for STRING.
1267
2003-12-03 Werner Koch <wk@gnupg.org>
1269
* elgamal.c (sign, do_encrypt, gen_k): Make sure that a small K is
1270
only used for encryption.
1272
2003-11-18 Werner Koch <wk@gnupg.org>
1274
* random.h (rndw32_set_dll_name): Removed unused prototype.
1276
* Makefile.am (EXTRA_DIST): Added Manifest.
1278
2003-11-11 Werner Koch <wk@gnupg.org>
1282
2003-11-04 Werner Koch <wk@gnupg.org>
1284
* md.c (gcry_md_hash_buffer): Use shortcut for SHA1
1285
* sha1.c (_gcry_sha1_hash_buffer): New.
1287
* random.c: Reformatted most functions.
1288
(mix_pool): Moved the failsafe_digest from global
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.
1297
2003-10-31 Werner Koch <wk@gnupg.org>
1299
* rndw32.c (slow_gatherer_windowsNT): Use a plain buffer for the
1300
disk performance values and not the W32 API structure.
1302
* dsa.c (verify): s/exp/ex/ due to shadowing of a builtin.
1303
* elgamal.c (verify): Ditto.
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
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/.
1315
2003-10-27 Moritz Schulte <mo@g10code.com>
1317
* pubkey.c (gcry_pk_encrypt): Don't forget to deallocate pkey.
1319
2003-10-27 Werner Koch <wk@gnupg.org>
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
1326
* md.c (md_start_debug): Removed the const from SUFFIX, because
1327
this function is called from the control fucntion which does not
1330
Prefixed all (pubkey,digest,cipher}_spec_* globale variables with
1333
* ac.c (ac_key_identifiers): Made static.
1335
* random.c (getfnc_gather_random,getfnc_fast_random_poll): Move
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
1349
(_gcry_rndw32_gather_random): Renamed from gather_random. Note,
1350
that the changes 2003-04-08 somehow got lost.
1352
* sha512.c (sha512_init, sha384_init): Made static.
1354
* cipher.c (do_ctr_decrypt): Removed "return" from this void
1357
2003-10-24 Moritz Schulte <mo@g10code.com>
1359
* serpent.c: Fix an issue on big-endian systems.
1361
* rndw32.c: Removed IS_MODULE -cruft.
1362
* rndlinux.c (rndlinux_gather_random): Likewise.
1364
2003-10-10 Werner Koch <wk@gnupg.org>
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
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.
1378
2003-10-06 Werner Koch <wk@gnupg.org>
1380
* primegen.c (gen_prime): Assert that NBITS is never zero, it
1383
2003-09-28 Moritz Schulte <mo@g10code.com>
1385
* ac.c: Include "cipher.h".
1387
2003-09-27 Moritz Schulte <mo@g10code.com>
1389
* rndegd.c (do_read): Return nread instead of nbytes; thanks to
1392
2003-09-04 Werner Koch <wk@gnupg.org>
1394
* pubkey.c (_gcry_pk_aliased_algo_name): New.
1395
* ac.c (gcry_ac_open): Use it here.
1397
* Makefile.am (EXTRA_libcipher_la_SOURCES): Add serpent.c
1399
2003-09-02 Moritz Schulte <mo@g10code.com>
1401
* primegen.c (gcry_prime_check, gcry_prime_generate): New
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.
1408
2003-08-28 Werner Koch <wk@gnupg.org>
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
1416
(gcry_pk_genkey): Ditto.
1417
(gcry_pk_sign): Ditto. Removed unused KEY_ALGO_NAME.
1419
2003-08-19 Moritz Schulte <mo@g10code.com>
1421
* cipher.c: Add support for Serpent
1422
* serpent.c: New file.
1424
2003-08-10 Moritz Schulte <moritz@g10code.com>
1426
* rsa.c (_gcry_rsa_blind, _gcry_rsa_unblind): Declare static.
1428
2003-08-09 Timo Schulz <twoaday@freakmail.de>
1430
* random.c (getfnc_gather_random): Don't check NAME_OF_DEV_RANDOM
1431
two times, but also the NAME_OF_DEV_URANDOM device.
1433
2003-08-08 Moritz Schulte <moritz@g10code.com>
1435
* pubkey.c (sexp_to_enc): Fixed extraction of S-Expression: do not
1436
fail if no `flags' sub S-Expression is found.
1438
2003-07-27 Werner Koch <wk@gnupg.org>
1440
* md.c (gcry_md_lookup_func_oid): Allow for empty OID lists.
1442
2003-07-23 Moritz Schulte <moritz@g10code.com>
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.
1449
2003-07-21 Moritz Schulte <moritz@g10code.com>
1451
* pubkey.c (gcry_pk_lookup_func_name): Use new member name
1452
`aliases' instead of `sexp_names'.
1454
* ac.c (gcry_ac_key_data_get): New function.
1456
* cipher.c (gcry_cipher_lookup_func_name): Fix return value.
1458
2003-07-20 Moritz Schulte <moritz@g10code.com>
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.
1469
* md.c (oid_table): Removed.
1471
* tiger.c (oid_spec_tiger): New variable.
1472
(digest_spec_tiger): Adjusted for new gry_md_spec_t structure.
1474
* sha512.c (oid_spec_sha512): New variable.
1475
(digest_spec_sha512): Adjusted for new gry_md_spec_t structure.
1477
* sha512.c (oid_spec_sha384): New variable.
1478
(digest_spec_sha384): Adjusted for new gry_md_spec_t structure.
1480
* sha256.c (oid_spec_sha256): New variable.
1481
(digest_spec_sha256): Adjusted for new gry_md_spec_t structure.
1483
* sha1.c (oid_spec_sha1): New variable.
1484
(digest_spec_sha1): Adjusted for new gry_md_spec_t structure.
1486
* rmd160.c (oid_spec_rmd160): New variable.
1487
(digest_spec_rnd160): Adjusted for new gry_md_spec_t structure.
1489
* md5.c (oid_spec_md5): New variable.
1490
(digest_spec_md5): Adjusted for new gry_md_spec_t structure.
1492
* md4.c (oid_spec_md4): New variable.
1493
(digest_spec_md4): Adjusted for new gry_md_spec_t structure.
1495
* crc.c (digest_spec_crc32, digest_spec_crc32_rfc1510,
1496
digest_spec_crc32_rfc2440): Adjusted for new gry_md_spec_t
1499
2003-07-19 Moritz Schulte <moritz@g10code.com>
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.
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.
1511
2003-07-18 Werner Koch <wk@gnupg.org>
1513
* md.c (gcry_md_hash_buffer): Convert ERR to gpg_error_t in
1516
2003-07-14 Moritz Schulte <moritz@g10code.com>
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
1523
* arcfour.c, blowfish.c, cast5.c, des.c, twofish.c: Adjust cipher
1524
specification structures.
1526
* rijndael.c (rijndael_names, rijndael192_names,
1527
rijndael256_names): New variables, use them in the cipher
1530
* rmd160test.c: Removed file.
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.
1536
* primegen.c (gen_prime): Correct the order arguments to
1539
2003-07-12 Moritz Schulte <moritz@g10code.com>
1541
* ac.c: Replaced all public occurences of gpg_error_t with
1543
* cipher.c: Likewise.
1545
* pubkey.c: Likewise.
1546
* random.c: Likewise.
1548
* cipher.c: Added support for TWOFISH128.
1550
2003-07-08 Moritz Schulte <moritz@g10code.com>
1552
* ac.c (gcry_ac_data_copy_internal): New function, based on
1554
(gcry_ac_data_copy): Made public, use gcry_ac_data_copy_internal.
1555
(gcry_ac_key_init): Use gcry_ac_data_copy_internal.
1557
2003-07-07 Moritz Schulte <moritz@g10code.com>
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
1563
* pubkey.c (gcry_pk_list): New function.
1564
* md.c (gcry_md_list): New function.
1566
* ac.c (gcry_ac_key_pair_generate): Fix calculation of format
1569
2003-07-05 Moritz Schulte <moritz@g10code.com>
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
1577
(gcry_md_map_name): Likewise.
1578
(md_enable): Likewise.
1579
(md_read): Likewise.
1580
(gcry_md_info): Likewise.
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.
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
1601
(gcry_cipher_register): New argument: algorithm_id, filled in.
1602
(gcry_cipher_map_name): Used algorithm ID from module structure.
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.
1627
* Makefile.am (EXTRA_libcipher_la_SOURCES): Fix list of source
1628
files; reported by Simon Josefsson <jas@extundo.com>.
1630
* pubkey.c: Replaced all occurences of `id' with `algorithm',
1631
since `id' is a keyword in obj-c.
1633
* cipher.c: Likewise.
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.
1638
* dsa.c, rsa.c, elgamal.c: Replaced all occurencens of
1639
gcry_pubkey_spec_t with gcry_pk_spec_t.
1641
* md.c: Replaced all occurences of gcry_digest_spec_t with
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.
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.
1666
* md.c (gcry_md_hash_buffer): Fix error checking. Thanks to Simon
1667
Josefsson <jas@extunde.com>.
1669
2003-07-04 Moritz Schulte <moritz@g10code.com>
1671
* cipher.c (gcry_cipher_list): New function.
1673
2003-07-01 Moritz Schulte <moritz@g10code.com>
1675
* pubkey.c (sexp_to_sig): Accept a `flags' S-expression to be more
1676
consistent with sexp_to_enc.
1678
2003-06-30 Moritz Schulte <moritz@g10code.com>
1680
* Makefile.am (libcipher_la_SOURCES): Added: ac.c.
1682
* pubkey.c (_gcry_pk_module_lookup): New function.
1683
(_gcry_pk_module_release): New function.
1685
2003-06-29 Moritz Schulte <moritz@g10code.com>
1689
2003-06-26 Werner Koch <wk@gnupg.org>
1691
* md.c (gcry_md_hash_buffer): Trigger BUG correcly with new API.
1693
2003-06-19 Werner Koch <wk@gnupg.org>
1695
* md.c (gcry_md_is_enabled): Fixed.
1697
2003-06-18 Werner Koch <wk@gnupg.org>
1699
* cipher.c (gcry_cipher_get_algo_keylen): New.
1700
(gcry_cipher_get_algo_blklen): New.
1702
2003-06-18 Moritz Schulte <moritz@g10code.com>
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.
1711
* md.c (gcry_digest_id_new): Removed function.
1712
(gcry_digest_register): Removed code for generating a new module
1715
* pubkey.c (gcry_pubkey_id_new): Removed function.
1716
(gcry_pubkey_register): Removed code for generating a new module
1719
* cipher.c, md.c, pubkey.c: Replace old type GcryModule with newer
1721
(gcry_cipher_id_new): Removed function.
1722
(gcry_cipher_register): Removed code for generating a new module
1725
* cipher.c (gcry_cipher_register): Adjust call to
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.
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.
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
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.
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.
1772
2003-06-17 Moritz Schulte <moritz@g10code.com>
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.
1781
* md.c (md_open): Use _gcry_fast_random_poll instead of
1783
* cipher.c (gcry_cipher_open): Likewise.
1785
* random.h (fast_random_poll): Removed macro.
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
1791
2003-06-16 Moritz Schulte <moritz@g10code.com>
1793
* random.c (getfnc_gather_random): Do not special-case
1794
USE_ALL_RANDOM_MODULES, make it the default.
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.
1803
2003-06-14 Moritz Schulte <moritz@g10code.com>
1805
* des.c (des_setkey): Add selftest check.
1806
(tripledes_set3keys): Likewise.
1807
(do_tripledes_setkey): Remove selftest check.
1808
(do_des_setkey): Likewise.
1810
2003-06-11 Moritz Schulte <moritz@g10code.com>
1812
* md.c (_gcry_md_init): New function.
1813
* cipher.c (_gcry_cipher_init): New function.
1814
* pubkey.c (_gcry_pk_init): New function.
1816
2003-06-13 Werner Koch <wk@gnupg.org>
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.
1823
2003-06-12 Werner Koch <wk@gnupg.org>
1825
* cipher.c (gcry_cipher_open): Make sure HANDLE is set to NULL on
1828
2003-06-11 Werner Koch <wk@gnupg.org>
1830
* md.c (gcry_md_open): Make sure H receives either NULL or an
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.
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.
1841
2003-06-09 Moritz Schulte <moritz@g10code.com>
1843
* Makefile.am: Removed rules serpent, since that is not commited
1846
2003-06-08 Moritz Schulte <moritz@g10code.com>
1848
* pubkey.c (gcry_pk_encrypt): Improve calculation for size of the
1851
2003-06-07 Moritz Schulte <moritz@g10code.com>
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.
1863
2003-06-04 Moritz Schulte <moritz@g10code.com>
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.
1870
2003-06-01 Moritz Schulte <moritz@g10code.com>
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.
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.
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.
1895
2003-05-30 Moritz Schulte <moritz@g10code.com>
1897
* md.c (md_get_algo): Return zero in case to algorithm is enabled.
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.
1907
2003-05-29 Moritz Schulte <moritz@g10code.com>
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.
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.
1925
2003-05-28 Moritz Schulte <moritz@g10code.com>
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.
1946
2003-05-25 Moritz Schulte <moritz@g10code.com>
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.
2005
2003-05-22 Moritz Schulte <moritz@g10code.com>
2007
* tiger.c: Merged code ussing the U64_C macro from GnuPG.
2009
* sha512.c: Likewise.
2011
2003-05-17 Moritz Schulte <moritz@g10code.com>
2013
* pubkey.c (gcry_pk_genkey): Fix type: acquire a lock, instead of
2016
2003-05-11 Moritz Schulte <moritz@g10code.com>
2018
* pubkey.c (gcry_pk_testkey): Call REGISTER_DEFAULT_CIPHERS.
2019
(gcry_pk_ctl): Likewise.
2021
2003-04-27 Moritz Schulte <moritz@g10code.com>
2023
* pubkey.c (gcry_pk_genkey): Release sexp after extracted data has
2026
* md.c (gcry_md_get_algo_dlen): Simplified, simply call
2027
md_digest_length to do the job.
2029
* des.c (do_des_setkey): Check for selftest failure not only
2030
during initialization.
2031
(do_tripledes_setkey): Include check for selftest failure.
2033
* pubkey.c (gcry_pubkey_register_default): New macro
2034
`pubkey_use_dummy', use it.
2036
* elgamal.c (elg_names): New variable.
2037
(pubkey_spec_elg): Include elg_names.
2039
* dsa.c (dsa_names): New variable.
2040
(pubkey_spec_dsa): Include dsa_names.
2042
* rsa.c (rsa_names): New variable.
2043
(pubkey_spec_rsa): Include rsa_names.
2045
* pubkey.c (gcry_pubkey_lookup_func_name): Compare name also with
2046
the names listed in `sexp_names'.
2048
2003-04-24 Moritz Schulte <moritz@g10code.com>
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:
2055
(sexp_to_sig): Changend type of argument `retalgo' from `int *' to
2056
`GcryModule **'. Adjusted all callers.
2057
(sexp_to_enc): Likewise.
2059
(pubkey_get_npkey, pubkey_get_nskey, pubkey_get_nsig,
2060
pubkey_get_nenc): Use strlen to find out the number.
2062
* rsa.c: Adjust pubkey_spec_rsa to new internal interface.
2064
* elgamal.c: Likewise.
2066
2003-04-17 Moritz Schulte <moritz@g10code.com>
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.
2074
* pubkey.c: Terminate list correctly.
2075
* md.c: Include sha512/sha384 in digest_table.
2077
2003-04-16 Moritz Schulte <moritz@g10code.com>
2079
* Makefile.am: Include support for sha512.c.
2081
* sha512.c: New file, merged from GnuPG, with few modifications
2084
* rand-internal.h: Removed declarations for constructor functions.
2086
* md.c (md_copy): Call _gcry_module_use for incrementing the usage
2087
counter of the digest modules.
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".
2097
* Makefile.am (libcipher_la_DEPENDENCIES): Removed.
2098
(libcipher_la_LIBADD): Removed.
2099
Use Automake conditionals for conditional compilation.
2101
2003-04-13 Moritz Schulte <moritz@g10code.com>
2103
* cipher.c (gcry_cipher_open): Call REGISTER_DEFAULT_CIPHERS.
2105
* md.c (gcry_md_list): New member: module.
2106
(md_enable): New variable: module, changed use of module and
2108
(md_enable): Initialize member: module.
2109
(md_close): Call _gcry_module_release.
2111
* cipher.c (gcry_cipher_open): New variable: module, changed use of
2113
(struct gcry_cipher_handle): New member: module.
2114
(gcry_cipher_open): Initialize member: module.
2115
(gcry_cipher_close): Call _gcry_module_release.
2117
2003-04-09 Moritz Schulte <moritz@g10code.com>
2119
* cipher.c: Include "ath.h".
2121
* pubkey.c: Likewise.
2123
* cipher.c (ciphers_registered_lock): New variable.
2124
* md.c (digests_registered_lock): New variable.
2125
* pubkey.c (pubkeys_registered_lock): New variable.
2127
* rndlinux.c (gnupgext_version, func_table): Removed definitions.
2128
(gnupgext_enum_func): Removed function.
2129
(_gcry_rndlinux_constructor): Removed function.
2131
* rndegd.c (gnupgext_version, func_table): Removed definitions.
2132
(gnupgext_enum_func): Removed function.
2133
(_gcry_rndegd_constructor): Removed function.
2135
* rndunix.c (gnupgext_version, func_table): Removed definitions.
2136
(gnupgext_enum_func): Removed function.
2137
(_gcry_rndunix_constructor): Removed function.
2139
* rndw32.c (gnupgext_version, func_table): Removed definitions.
2140
(gnupgext_enum_func): Removed function.
2141
(_gcry_rndw32_constructor): Removed function.
2143
* rndegd.c (rndegd_connect_socket): Simplify code for creating the
2145
(rndegd_connect_socket): Call log_fatal use instead of
2147
(egd_gather_random): Renamed to ...
2148
(rndegd_gather_random): ... here.
2150
2003-04-08 Moritz Schulte <moritz@g10code.com>
2152
* rndlinux.c: Do not include "dynload.h".
2153
* rndunix.c: Likewise.
2154
* rndw32.c: Likewise.
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
2161
(do_read): Merged few changes from GnuPG. FIXME - not finished?
2162
Do not include "dynload.h".
2164
* rndw32.c (gather_random): Renamed to rndw32_gather_random, do
2166
(gather_random_fast): Renamed to rndw32_gather_random_fast, do not
2169
* rndunix.c (gather_random): Renamed to rndunix_gather_random, do
2171
* rndegd.c (gather_random): Renamed to rndegd_gather_random, do
2173
* rndlinux.c (gather_random): Renamed to rndlinux_gather_random,
2174
do not declare static.
2176
2003-04-07 Moritz Schulte <moritz@g10code.com>
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.
2187
* pubkey.c: Do not include "elgamal.h", "dsa.h" and "rsa.h".
2189
* Makefile.am (libcipher_la_SOURCES): Removed rsa.h, elgamal.h,
2190
dsa.h, des.h, cast5.h, arcfour.h and blowfish.h.
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.
2200
* Makefile.am (libcipher_la_SOURCES): Removed dynload.c and
2203
* rsa.c (pubkey_spec_rsa): New variable.
2204
* dsa.c (pubkey_spec_rsa): New variable.
2205
* elgamal.c (pubkey_spec_elg): New variable.
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.
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.
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.
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.
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.
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.
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.
2241
* crc.c (crc_get_info): Removed function.
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.
2264
* arcfour.c (encrypt_stream): Likewise.
2266
* rijndael.c (gnupgext_version, func_table): Removed definitions.
2267
(gnupgext_enum_func) Removed function.
2269
* twofish.c (gnupgext_version, func_table): Removed definitions.
2270
(gnupgext_enum_func) Removed function.
2272
* cast5.c (CIPHER_ALGO_CAST5): Removed.
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.
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.
2289
* arcfour.c (cipher_spec_arcfour): New variable.
2290
* twofish.c (cipher_spec_twofish, cipher_spec_twofish128): New
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.
2298
* twofish.c: Do not include "dynload.h".
2299
* rijndael.c: Likewise.
2301
* cast5.c: Likewise.
2302
* blowfish.c: Likewise.
2303
* cipher.c: Likewise.
2308
* pubkey.c: Likewise.
2309
* rijndael.c: Likewise.
2311
* sha256.c: Likewise.
2313
* arcfour.c: Include "cipher.h".
2314
* twofish.c: Likewise.
2315
* rijndael.c: Likewise.
2317
* cast5.c: Likewise.
2318
* blowfish.c: Likewise.
2320
* twofish.c (twofish_setkey): Declared argument `key' const.
2321
(twofish_encrypt): Declared argument `inbuf' const.
2322
(twofish_decrypt): Likewise.
2324
* rijndael.c (rijndael_setkey): Declared argument `key' const.
2325
(rijndael_encrypt): Declared argument `inbuf' const.
2326
(rijndael_decrypt): Likewise.
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.
2335
* cast5.c (encrypt_block): Declared argument `inbuf' const.
2336
(decrypt_block): Likewise.
2337
(cast_setkey): Declared argument `key' const.
2339
* blowfish.c (do_bf_setkey): Declared argument `key' const.
2340
(encrypt_block): Declared argument `inbuf' const.
2341
(encrypt_block): Likewise.
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
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.
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.
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.
2455
2003-04-07 Moritz Schulte <moritz@g10code.com>
2457
* pubkey.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA,
2458
PUBKEY_ALGO_RSA with GCRY_PK_RSA and PUBKEY_ALGO_ELGAMAL with
2461
* dsa.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA.
2463
2003-04-01 Moritz Schulte <moritz@g10code.com>
2465
* des.c: Removed checks for GCRY_CIPHER_3DES and GCRY_CIPHER_DES.
2467
2003-03-31 Moritz Schulte <moritz@g10code.com>
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.
2477
* md.c (load_digest_module): Call setup_md_table during
2479
(new_list_item): Link new element into digest_list.
2481
* cipher.c (do_ctr_decrypt): Made do_ctr_encrypt act as a wrapper
2482
for do_ctr_encrypt, since these functions are identical.
2484
2003-03-30 Simon Josefsson <jas@extundo.com>
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.
2493
2003-03-30 Moritz Schulte <moritz@g10code.com>
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.
2499
2003-03-26 Moritz Schulte <moritz@g10code.com>
2501
* dynload.c (_gcry_enum_gnupgext_pubkeys): Adjust `encrypt' and
2502
`decrypt' function arguments.
2503
(_gcry_enum_gnupgext_pubkeys): Likewise.
2504
* dynload.h: Likewise.
2506
* pubkey.c (dummy_decrypt): Add argument: int flags.
2507
(dummy_encrypt): Likewise.
2509
* elgamal.c (_gcry_elg_encrypt): Add argument: int flags.
2510
(_gcry_elg_decrypt): Likewise.
2512
* rsa.c (_gcry_rsa_encrypt): Add argument: int flags.
2513
(_gcry_rsa_decrypt): Likewise.
2515
* pubkey.c: Add `flags' argument to members `encrypt' and
2516
`decrypt' of struct `pubkey_table_s'.
2518
* rsa.h: Add `flags' argument to function declarations.
2519
* elgamal.h: Likewise.
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'.
2537
2003-03-22 Simon Josefsson <jas@extundo.com>
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.
2543
2003-03-19 Werner Koch <wk@gnupg.org>
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
2553
2003-03-12 Moritz Schulte <moritz@g10code.com>
2555
* primegen.c: Initialize `no_of_small_prime_numbers' statically.
2556
(gen_prime): Remove calculation of `no_of_small_prime_numbers'.
2558
2003-03-03 Moritz Schulte <moritz@g10code.com>
2560
* md.c (gcry_md_ctl): Rewritten to use same style like the other
2561
functions dispatchers.
2563
2003-03-02 Moritz Schulte <moritz@g10code.com>
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
2571
(gcry_cipher_ctl): Call cipher_reset.
2573
2003-02-23 Moritz Schulte <moritz@g10code.com>
2575
* cipher.c: Remove (bogus) `digitp' macro definition.
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.
2592
* blowfish.c: Changed all occurences of burn_stack to
2594
* arcfour.c: Likewise.
2595
* cast5.c: Likewise.
2599
* random.c: Likewise.
2600
* rijndael.c: Likewise.
2601
* rmd160.c: Likewise.
2603
* sha256.c: Likewise.
2604
* tiger.c: Likewise.
2605
* twofish.c: Likewise.
2607
* arcfour.c (_gcry_arcfour_get_info): Use GCRY_CIPHER_ARCFOUR
2608
instead of hard-coded value `301'.
2610
2003-01-24 Werner Koch <wk@gnupg.org>
2612
* random.c (_gcry_register_random_progress): New.
2613
(_gcry_random_progress): New.
2615
* rndlinux.c (gather_random): Call the random progress function.
2617
2003-01-23 Werner Koch <wk@gnupg.org>
2619
* rsa.c (generate): New arg USE_E to request a specific public
2621
(_gcry_rsa_generate): Ditto.
2622
* elgamal.c (_gcry_elg_generate): Must add an dummy argument
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.
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.
2634
2003-01-21 Werner Koch <wk@gnupg.org>
2636
* random.c (gcry_random_add_bytes): Add QUALITY argument, let
2637
function return an error code and disable its core for now.
2639
2003-01-21 Timo Schulz <twoaday@freakmail.de>
2641
* random.c (gcry_random_add_bytes): New. Function to add external
2644
2003-01-20 Simon Josefsson <jas@extundo.com>
2647
* Makefile.am (EXTRA_PROGRAMS, EXTRA_crc_SOURCES): Add crc.c.
2648
* md.c (gcry_md_get_algo_dlen): Add values for CRC.
2650
2003-01-20 Werner Koch <wk@gnupg.org>
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
2658
2003-01-20 Werner Koch <wk@gnupg.org>
2660
* pubkey.c (gcry_pk_get_keygrip): Implemented keygrips for DSA
2663
2003-01-17 Werner Koch <wk@gnupg.org>
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
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.
2672
* pubkey.c (gcry_pk_genkey): Changed error code for bounds check
2673
of table parameters to GCRYERR_INTERNAL.
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.
2680
* pubkey.c (gcry_pk_encrypt): Make sure that R_CIPH points to NULL
2682
(gcry_pk_decrypt): Ditto for R_PLAIN.
2683
(gcry_pk_sign): Ditto for R_SIG.
2684
(gcry_pk_genkey): Ditto for R_KEY.
2686
2003-01-16 Werner Koch <wk@gnupg.org>
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*.
2692
2003-01-15 Werner Koch <wk@gnupg.org>
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
2700
(gcry_pk_decrypt): Prepare for future pkcs1 handling.
2702
2002-12-19 Werner Koch <wk@gnupg.org>
2704
* random.c (_gcry_random_initialize): New.
2706
2002-12-16 Werner Koch <wk@gnupg.org>
2708
* cipher.c: Added a Teletrust specific OID for 3DES.
2710
2002-12-12 Werner Koch <wk@gnupg.org>
2712
* md.c: Added another oddball OIW OID (sha-1WithRSAEncryption).
2714
2002-11-23 Werner Koch <wk@gnupg.org>
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
2722
2002-11-10 Simon Josefsson <jas@extundo.com>
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.
2730
2002-11-10 Werner Koch <wk@gnupg.org>
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.
2736
2002-10-14 Werner Koch <wk@gnupg.org>
2738
* arcfour.c (do_encrypt_stream): Don't use increment op when
2739
assigning to the same variable.
2741
2002-10-10 Timo Schulz <ts@winpt.org>
2743
* pubkey.c (gcry_pk_genkey): Check boundaries.
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.
2749
2002-09-26 Werner Koch <wk@gnupg.org>
2751
* md.c: Include an OID for TIGER.
2752
* tiger.c (tiger_get_info): Use a regular OID.
2754
2002-09-17 Werner Koch <wk@gnupg.org>
2756
* random.c: Replaced mutex.h by the new ath.h. Changed all calls.
2758
2002-09-16 Werner Koch <wk@gnupg.org>
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.
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.
2779
2002-08-26 Werner Koch <wk@gnupg.org>
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.
2785
2002-08-21 Werner Koch <wk@gnupg.org>
2787
* pubkey.c: Enable keygrip calculation for "openpgp-rsa".
2789
2002-08-17 Werner Koch <wk@gnupg.org>
2791
* cipher.c (setup_cipher_table): Don't overwrite the DES entry
2792
with the entry for DUMMY.
2794
2002-08-14 Werner Koch <wk@gnupg.org>
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.
2800
2002-07-25 Werner Koch <wk@gnupg.org>
2802
* rndunix.c (_gcry_rndunix_constructor): Prefixed with _gcry_.
2803
Noted by Stephan Austermuehle.
2805
2002-07-08 Timo Schulz <ts@winpt.org>
2807
* rndw32.c: Replaced the m_ memory functions with the real
2808
gcry_ functions. Renamed all g10_ prefixed functions to log_.
2810
2002-06-12 Werner Koch <wk@gnupg.org>
2812
* rsa.c (generate): Use e = 65537 for now.
2814
2002-06-11 Werner Koch <wk@gnupg.org>
2816
* pubkey.c (gcry_pk_get_keygrip): Allow a "protected-private-key".
2818
2002-06-05 Timo Schulz <ts@winpt.org>
2820
* cipher.c (gcry_cipher_encrypt, gcry_cipher_decrypt):
2821
Check that the input size is a multiple of the blocksize.
2823
2002-05-23 Werner Koch <wk@gnupg.org>
2825
* md.c (oid_table): Add an rsadsi OID for MD5.
2827
2002-05-21 Werner Koch <wk@gnupg.org>
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.
2834
2002-05-17 Werner Koch <wk@gnupg.org>
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.
2841
* Makefile.am: Removed all dynamic loading stuff.
2842
* dynload.c: Ditto. Now only used for the constructor system.
2844
2002-05-15 Werner Koch <wk@gnupg.org>
2846
* random.c (gcry_random_bytes,gcry_random_bytes_secure)
2847
(gcry_randomize): Make sure we are initialized.
2849
2002-05-14 Werner Koch <wk@gnupg.org>
2851
Changed license of most files to the LGPL.
2853
2002-05-02 Werner Koch <wk@gnupg.org>
2855
* random.c (_gcry_fast_random_poll): Initialize the module so the
2858
* primegen.c (small_prime_numbers): Moved table from smallprime.c
2859
* smallprime.c: File removed.
2861
* des.c (leftkey_swap, rightkey_swap, working_memcmp): Made static.
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
2868
* tiger.c (tiger_final): Removed superfluous token pasting operators.
2869
* md5.c (md5_final): Ditto.
2871
2002-04-30 Werner Koch <wk@gnupg.org>
2873
* cipher.c: Fixed list of copyright years.
2875
2002-03-18 Werner Koch <wk@gnupg.org>
2877
* random.c (initialize): Initialize the new pool lock mutex.
2878
(_gcry_fast_random_poll): Add locking and moved main
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.
2885
2002-03-11 Werner Koch <wk@gnupg.org>
2887
* md.c: Add rsaSignatureWithripemd160 to OID table.
2889
2002-02-20 Werner Koch <wk@gnupg.org>
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.
2895
2002-02-18 Werner Koch <wk@gnupg.org>
2897
* rndunix.c (rndunix_constructor): Use the the new prefixed
2898
function name. Reported by Jordi Mallach.
2900
2002-02-10 Werner Koch <wk@gnupg.org>
2902
* random.c (mix_pool): Carry an extra failsafe_digest buffer
2903
around to make the function more robust.
2905
2002-02-08 Werner Koch <wk@gnupg.org>
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.
2913
2002-01-04 Werner Koch <wk@gnupg.org>
2915
* pubkey.c (gcry_pk_genkey): Do not release skey - it is static.
2917
* primegen.c (gen_prime): Of course we should use set_bit
2918
and not set_highbit to set the second high bit.
2920
2001-12-18 Werner Koch <wk@gnupg.org>
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.
2927
* Makefile.am (DISTCLEANFILES): Include construct.c.
2929
2001-12-17 Werner Koch <wk@gnupg.org>
2931
* pubkey.c (gcry_pk_get_keygrip): New - experimental.
2933
2001-12-11 Werner Koch <wk@gnupg.org>
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.
2940
2001-12-10 Werner Koch <wk@gnupg.org>
2942
* pubkey.c (gcry_pk_encrypt): Find the signature algorithm by name
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
2950
2001-12-06 Werner Koch <wk@gnupg.org>
2952
* cipher.c (gcry_cipher_map_name): Look also for OIDs prefixed
2953
with "oid." or "OID.".
2955
2001-12-05 Werner Koch <wk@gnupg.org>
2957
* pubkey.c (algo_info_table): Fixed entry for openpgp-rsa.
2959
2001-11-24 Werner Koch <wk@gnupg.org>
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
2966
(gcry_pk_get_nbits): Fixed so that we can now really pass a secret
2967
key to get the result.
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.
2972
2001-11-20 Werner Koch <wk@gnupg.org>
2974
* md.c (gcry_md_map_name): Lookup by OID if the the name begins
2978
2001-11-16 Werner Koch <wk@gnupg.org>
2980
* md.c (gcry_md_info): New operator GCRYCTL_IS_ALGO_ENABLED.
2982
2001-11-07 Werner Koch <wk@gnupg.org>
2984
* md.c (gcry_md_hash_buffer): Close the handle which was left open
2985
for algorithms other than rmd160.
2987
2001-08-08 Werner Koch <wk@gnupg.org>
2989
* rndw32.c (gather_random): Use toolhelp in addition to the NT
2990
gatherer for Windows2000. Suggested by Sami Tolvanen.
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.
2997
2001-08-03 Werner Koch <wk@gnupg.org>
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
3003
(gcry_cipher_encrypt, gcry_cipher_decrypt): Return the error and
3005
(gcry_cipher_ctl): Make sure that errors from setkey are returned.
3007
2001-08-02 Werner Koch <wk@gnupg.org>
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.
3013
* random.c (fast_random_poll): Do not check the return code of
3016
* rndunix.c: Add a signal.h header to avoid warnings on Solaris 7
3019
* tiger.c (print_abc,print_data): Removed.
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.
3034
* primegen.c (_gcry_generate_elg_prime): Freed q at 3 places.
3035
Thanks to Tommi Komulainen.
3037
* arcfour.c (arcfour_setkey): Check the minimim keylength against
3039
(selftest): Must reset the key before decryption.
3041
2001-05-31 Werner Koch <wk@gnupg.org>
3043
* sha1.c (sha1_init): Made static.
3045
Changed all g10_ prefixed function names as well as some mpi_
3046
function names to cope with the introduced naming changes.
3048
* md.c (prepare_macpads): Made key const.
3050
2001-05-28 Werner Koch <wk@gnupg.org>
3052
* rndegd.c (gather_random): Removed the use of tty_printf.
3054
2001-03-29 Werner Koch <wk@gnupg.org>
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.
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.
3068
* twofish.c (gnupgext_enum_func): Use only when when compiled as a
3070
* rijndael.c (gnupgext_enum_func): Ditto.
3072
* tiger.c (tiger_get_info): Return "TIGER192" and not just
3073
"TIGER". By Edwin Woudt.
3075
* random.c: Always include time.h - standard requirement. Thanks
3078
* rndw32.c: Fixes to the macros.
3080
2001-01-11 Werner Koch <wk@gnupg.org>
3082
* cipher.c (cipher_encrypt,gcry_cipher_encrypt): Use blocksize and
3085
2000-12-19 Werner Koch <wk@gnupg.org>
3088
Removed all GnuPG stuff and renamed this piece of software
3091
2000-11-14 Werner Koch <wk@gnupg.org>
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.
3100
* rsa.c (generate): Allocate 2 more vars in secure memory.
3102
* Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
3105
2000-10-09 Werner Koch <wk@gnupg.org>
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.
3112
Wed Oct 4 13:16:18 CEST 2000 Werner Koch <wk@openit.de>
3114
* sha1.c (transform): Use rol() macro. Actually this is not needed
3115
for a newer gcc but there are still aoter compilers.
3117
* rsa.c (test_keys): Use new random function.
3119
* md.c (gcry_md_setkey): New function to overcome problems with
3121
(gcry_md_ctl): Pass set key to the new functions.
3124
* cipher.c: Add Rijndael support.
3126
Mon Sep 18 16:35:45 CEST 2000 Werner Koch <wk@openit.de>
3128
* rndlinux.c (open_device): Loose random device checking.
3129
By Nils Ellmenreich.
3131
* random.c (fast_random_poll): Check ENOSYS for getrusage.
3132
* rndunix.c: Add 2 sources for QNX. By Sam Roberts.
3134
* pubkey.c (gcry_pk_algo_info): Add GCRYCTL_GET_ALGO_USAGE.
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.
3144
Mon Jul 31 10:04:47 CEST 2000 Werner Koch <wk@openit.de>
3146
* pubkey.c: Replaced all gcry_sexp_{car,cdr}_{data,mpi} by the new
3147
gcry_sexp_nth_{data,mpi} functions.
3149
Tue Jul 25 17:44:15 CEST 2000 Werner Koch <wk@openit.de>
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.
3155
Mon Jul 17 16:35:47 CEST 2000 Werner Koch <wk@>
3157
* random.c (gather_faked): Replaced make_timestamp by time(2) again.
3159
Fri Jul 14 19:38:23 CEST 2000 Werner Koch <wk@>
3161
* md.c (gcry_md_ctl): Support GCRYCTL_{START,STOP}_DUMP.
3163
* Makefile.am: Never compile mingw32 as module.
3165
* Makefile.am: Tweaked module build and removed libtool
3167
* Makefile.am: Replaced -O1 by -O. Suggested by Alec Habig.
3169
* elgamal.c (sign): Removed inactive code.
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.
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
3178
* rndunix.c: Add some more headers for QNX. By Sam Roberts.
3180
* rndegd.c (gather_random): Shortcut level 0.
3181
* rndunix.c (gather_random): Ditto.
3182
* rndw32.c (gather_random): Ditto.
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.
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.
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
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.
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.
3210
* random.c (read_pool): Print a more friendly error message in
3211
cases when too much random is requested in one call.
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
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
3222
* primegen.c (register_primegen_progress): New.
3223
* dsa.c (register_pk_dsa_progress): New.
3224
* elgamal.c (register_pk_elg_progress): New.
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
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.
3241
Fri Mar 24 11:25:45 CET 2000 Werner Koch <wk@openit.de>
3243
* md.c (md_open): Add hmac arg and allocate space for the pads.
3244
(md_finalize): Add HMAC support.
3247
(gcry_md_reset): Ditto.
3248
(gcry_md_ctl): Ditto.
3249
(prepare_macpdas): New.
3251
Mon Mar 13 19:22:46 CET 2000 Werner Koch <wk@openit.de>
3253
* md.c (gcry_md_hash_buffer): Add support for the other algorithms.
3255
Mon Jan 31 16:37:34 CET 2000 Werner Koch <wk@gnupg.de>
3257
* genprime.c (generate_elg_prime): Fixed returned factors which never
3258
worked for non-DSA keys.
3260
Thu Jan 27 18:00:44 CET 2000 Werner Koch <wk@gnupg.de>
3262
* pubkey.c (sexp_to_key): Fixed mem leaks in case of errors.
3264
Mon Jan 24 22:24:38 CET 2000 Werner Koch <wk@gnupg.de>
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.
3275
Mon Jan 24 13:04:28 CET 2000 Werner Koch <wk@gnupg.de>
3277
* pubkey.c (pubkey_nbits): Removed and replaced by ...
3278
(gcry_pk_get_nbits): this new one.
3280
Wed Dec 8 21:58:32 CET 1999 Werner Koch <wk@gnupg.de>
3282
* dsa.c: s/mpi_powm/gcry_mpi_powm/g
3284
* primegen.c: Ditto.
3286
* : Replaced g10_opt_verbose by g10_log_verbosity().
3288
* Makefile.am (INCLUDES): removed intl, add ../gcrypt
3290
Fri Nov 19 17:15:20 CET 1999 Werner Koch <wk@gnupg.de>
3292
* dynload.c (cmp_filenames): New to replaced compare_filename() in
3294
(register_cipher_extension): Removed the tilde expansion stuff.
3295
* rndeg.c (my_make_filename): New.
3297
* : Replaced header util.h by g10lib.h
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.
3304
* primegen.c (gen_prime): Use gcry_mpi_randomize.
3306
* elgamal.c (test_keys): Ditto.
3307
* dsa.c (test_keys): Ditto.
3309
* cipher.c (gcry_cipher_close): Die on invalid handle.
3311
Mon Nov 15 21:36:02 CET 1999 Werner Koch <wk@gnupg.de>
3313
* elgamal.c (gen_k): Use the new random API.
3315
* dsa.c (gen_k): Ditto.
3318
Sat Nov 13 17:44:23 CET 1999 Werner Koch <wk@gnupg.de>
3320
* pubkey.c (disable_pubkey_algo): Made static.
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.
3330
* md.c (gcry_md_hash_buffer): New.
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.
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.
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.
3354
* primegen.c: Ditto.
3361
Tue Oct 26 14:10:21 CEST 1999 Werner Koch <wk@gnupg.de>
3363
* elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
3365
* cipher.c: Merged with gcrypt/symapi.c.
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.
3374
* md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
3377
* md.c: Merged with gcrypt/mdapi.c
3379
Wed Sep 15 14:39:59 CEST 1999 Michael Roth <mroth@nessie.de>
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.
3385
Wed Sep 15 16:22:17 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3389
Mon Sep 13 10:51:29 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3392
* rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
3394
Tue Sep 7 16:23:36 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3396
* Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
3398
Mon Sep 6 19:59:08 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3400
* des.c (selftest): Add some testpattern
3402
Mon Aug 30 20:38:33 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3404
* cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
3405
in place encryption. Pointed out by Frank Stajano.
3407
Mon Jul 26 09:34:46 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3409
* md5.c (md5_final): Fix for a SCO cpp bug.
3411
Thu Jul 15 10:15:35 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
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.
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.
3422
Wed Jul 7 13:08:40 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3424
* Makefile.am: Support for libtool.
3426
Fri Jul 2 11:45:54 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3428
* dsa.c (gen_k): Changed algorithm to consume less random bytes
3429
* elgamal.c (gen_k): Ditto.
3431
* random.c (random_dump_stats): New.
3433
Thu Jul 1 12:47:31 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3435
* primegen.c, elgamal.c, dsa.c (progess): New and replaced all
3436
fputc with a call to this function.
3438
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3440
* rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs.
3442
* cipher.c (do_cbc_encrypt, do_cbc_decrypt): New.
3444
* dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra).
3445
* Makefile.am (install-exec-hook): Removed.
3447
Sun May 23 14:20:22 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3449
* cipher.c (setup_cipher_table): Enable Twofish
3451
* random.c (fast_random_poll): Disable use of times() for mingw32.
3453
Mon May 17 21:54:43 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3455
* dynload.c (register_internal_cipher_extension): Minor init fix.
3457
Tue May 4 15:47:53 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
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.
3464
Sun Apr 18 10:11:28 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3466
* cipher.c (cipher_setiv): Add ivlen arg, changed all callers.
3468
* random.c (randomize_buffer): alway use secure memory because
3469
we can't use m_is_secure() on a statically allocated buffer.
3471
* twofish.c: Replaced some macros by a loop to reduce text size.
3472
* Makefile.am (twofish): No more need for sed editing.
3474
Fri Apr 9 12:26:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3476
* cipher.c (cipher_open): Reversed the changes for AUTO_CFB.
3478
* blowfish.c: Dropped the Blowfish 160 mode.
3479
* cipher.c (cipher_open): Ditto.
3480
(setup_cipher_table): Ditto. And removed support of twofish128
3482
Wed Apr 7 20:51:39 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3484
* random.c (get_random_bits): Can now handle requests > POOLSIZE
3486
* cipher.c (cipher_open): Now uses standard CFB for automode if
3487
the blocksize is gt 8 (according to rfc2440).
3489
* twofish.c: Applied Matthew Skala's patches for 256 bit key.
3491
Tue Apr 6 19:58:12 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
3493
* random.c (get_random_bits): Can now handle requests > POOLSIZE
3495
* cipher.c (cipher_open): Now uses standard CFB for automode if
3496
the blocksize is gt 8 (according to rfc2440).
3498
Sat Mar 20 11:44:21 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3500
* rndlinux.c (tty_printf) [IS_MODULE]: Removed.
3502
* rndegd.c (gather_random): Some fixes.
3504
Wed Mar 17 13:09:03 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3506
* rndegd.c (do_read): New.
3507
(gather_random): Changed the implementation.
3509
Mon Mar 8 20:47:17 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3511
* dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed.
3513
Fri Feb 26 17:55:41 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3515
* md.c: Nearly a total rewrote.
3517
Wed Feb 24 11:07:27 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3519
* cipher.c (context): Fixed alignment
3524
Mon Feb 22 20:04:00 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3528
Wed Feb 10 17:15:39 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3530
* Makefile.am: Modules are now figured out by configure
3531
* construct.c: New. Generated by configure. Changed all modules
3536
* twofish.c: Changed interface to allow Twofish/256
3538
* rndunix.c (start_gatherer): Die on SIGPIPE.
3540
Wed Jan 20 18:59:49 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3542
* rndunix.c (gather_random): Fix to avoid infinite loop.
3544
Sun Jan 17 11:04:33 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3546
* des.c (is_weak_key): Replace system memcmp due to bugs
3548
(des_get_info): Return error on failed selftest.
3549
* twofish.c (twofish_setkey): Return error on failed selftest or
3551
* cast5.c (cast_setkey): Ditto.
3552
* blowfish.c (bf_setkey): Return error on failed selftest.
3554
Tue Jan 12 11:17:18 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3556
* random.c (random_is_faked): New.
3558
* tiger.c: Only compile if we have the u64 type
3560
Sat Jan 9 16:02:23 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3562
* rndunix.c (gather_random): check for setuid.
3564
* Makefile.am: Add a way to staically link random modules
3566
Thu Jan 7 18:00:58 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3568
* md.c (md_stop_debug): Do a flush first.
3569
(md_open): size of buffer now depends on the secure parameter
3571
Sun Jan 3 15:28:44 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
3573
* rndunix.c (start_gatherer): Fixed stupid ==/= bug
3575
1998-12-31 Geoff Keating <geoffk@ozemail.com.au>
3577
* des.c (is_weak_key): Rewrite loop end condition.
3579
Tue Dec 29 14:41:47 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
3581
* random.c: add unistd.h for getpid().
3582
(RAND_MAX): Fallback value for Sun.
3584
Wed Dec 23 17:12:24 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
3586
* md.c (md_copy): Reset debug.
3588
Mon Dec 14 21:18:49 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
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.
3598
Sat Dec 12 18:40:32 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
3600
* dynload.c (SYMBOL_VERSION): New to cope with system which needs
3603
* rndunix.c: Rewrote large parts
3605
Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
3607
* dynload.c (load_extension): increased needed verbosity level.
3609
* random.c (fast_random_poll): Fallback to a default fast random
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.
3617
Wed Nov 25 12:33:41 1998 Werner Koch (wk@isil.d.shuttle.de)
3619
* rand-*.c: Removed.
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.
3630
Sun Nov 8 17:44:36 1998 Werner Koch (wk@isil.d.shuttle.de)
3632
* rand-unix.c (read_random_source): Removed the assert.
3634
Mon Oct 19 18:34:30 1998 me,,, (wk@tobold)
3636
* pubkey.c: Hack to allow us to give some info about RSA keys back.
3638
Thu Oct 15 11:47:57 1998 Werner Koch (wk@isil.d.shuttle.de)
3640
* dynload.c: Support for DLD
3642
Wed Oct 14 12:13:07 1998 Werner Koch (wk@isil.d.shuttle.de)
3644
* rand-unix.c: Now uses names from configure for /dev/random.
3646
1998-10-10 SL Baur <steve@altair.xemacs.org>
3648
* Makefile.am: fix sed -O substitutions to catch -O6, etc.
3650
Tue Oct 6 10:06:32 1998 Werner Koch (wk@isil.d.shuttle.de)
3652
* rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-)
3653
* rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto.
3655
Mon Sep 28 13:23:09 1998 Werner Koch (wk@isil.d.shuttle.de)
3657
* md.c (md_digest): New.
3660
Wed Sep 23 12:27:02 1998 Werner Koch (wk@isil.d.shuttle.de)
3662
* tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned.
3664
Mon Sep 21 06:22:53 1998 Werner Koch (wk@(none))
3666
* des.c: Some patches from Michael.
3668
Thu Sep 17 19:00:06 1998 Werner Koch (wk@(none))
3670
* des.c : New file from Michael Roth <mroth@nessie.de>
3672
Mon Sep 14 11:10:55 1998 Werner Koch (wk@(none))
3674
* blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys.
3676
Mon Sep 14 09:19:25 1998 Werner Koch (wk@(none))
3678
* dynload.c (RTLD_NOW): Now defined to 1 if it is undefined.
3680
Mon Sep 7 17:04:33 1998 Werner Koch (wk@(none))
3682
* Makefile.am: Fixes to allow a different build directory
3684
Thu Aug 6 17:25:38 1998 Werner Koch,mobil,,, (wk@tobold)
3686
* random.c (get_random_byte): Removed and changed all callers
3687
to use get_random_bits()
3689
Mon Jul 27 10:30:22 1998 Werner Koch (wk@(none))
3691
* cipher.c : Support for other blocksizes
3692
(cipher_get_blocksize): New.
3694
* Makefile.am: Add twofish module.
3696
Mon Jul 13 21:30:52 1998 Werner Koch (wk@isil.d.shuttle.de)
3698
* random.c (read_pool): Simple alloc if secure_alloc is not set.
3699
(get_random_bits): Ditto.
3701
Thu Jul 9 13:01:14 1998 Werner Koch (wk@isil.d.shuttle.de)
3703
* dynload.c (load_extension): Function now nbails out if
3704
the program is run setuid.
3706
Wed Jul 8 18:58:23 1998 Werner Koch (wk@isil.d.shuttle.de)
3708
* rmd160.c (rmd160_hash_buffer): New.
3710
Thu Jul 2 10:50:30 1998 Werner Koch (wk@isil.d.shuttle.de)
3712
* cipher.c (cipher_open): algos >=100 use standard CFB
3714
Thu Jun 25 11:18:25 1998 Werner Koch (wk@isil.d.shuttle.de)
3716
* Makefile.am: Support for extensions
3718
Thu Jun 18 12:09:38 1998 Werner Koch (wk@isil.d.shuttle.de)
3720
* random.c (mix_pool): simpler handling for level 0
3722
Mon Jun 15 14:40:48 1998 Werner Koch (wk@isil.d.shuttle.de)
3724
* tiger.c: Removed from dist, will reappear as dynload module
3726
Sat Jun 13 14:16:57 1998 Werner Koch (wk@isil.d.shuttle.de)
3728
* pubkey.c: Major changes to allow extensions. Changed the inteface
3729
of all public key ciphers and added the ability to load extensions
3734
Wed Jun 10 07:52:08 1998 Werner Koch,mobil,,, (wk@tobold)
3737
* cipher.c: Major changes to allow extensions.
3739
Mon Jun 8 22:43:00 1998 Werner Koch (wk@isil.d.shuttle.de)
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.
3746
Mon Jun 8 12:27:52 1998 Werner Koch (wk@isil.d.shuttle.de)
3748
* tiger.c (transform): Fix for big endian
3750
* cipher.c (do_cfb_decrypt): Big endian fix.
3752
Fri May 22 07:30:39 1998 Werner Koch (wk@isil.d.shuttle.de)
3754
* md.c (md_get_oid): Add a new one for TIGER.
3756
Thu May 21 13:24:52 1998 Werner Koch (wk@isil.d.shuttle.de)
3758
* cipher.c: Add support for a dummy cipher
3760
Thu May 14 15:40:36 1998 Werner Koch (wk@isil.d.shuttle.de)
3762
* rmd160.c (transform): fixed sigbus - I should better
3763
add Christian von Roques's new implemenation of rmd160_write.
3765
Fri May 8 18:07:44 1998 Werner Koch (wk@isil.d.shuttle.de)
3767
* rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New
3768
* random.c: Moved system specific functions to rand-****.c
3770
Fri May 8 14:01:17 1998 Werner Koch (wk@isil.d.shuttle.de)
3772
* random.c (fast_random_poll): add call to gethrtime.
3774
Tue May 5 21:28:55 1998 Werner Koch (wk@isil.d.shuttle.de)
3776
* elgamal.c (elg_generate): choosing x was not correct, could
3777
yield 6 bytes which are not from the random pool, tsss, tsss..
3779
Tue May 5 14:09:06 1998 Werner Koch (wk@isil.d.shuttle.de)
3781
* primegen.c (generate_elg_prime): Add arg mode, changed all
3782
callers and implemented mode 1.
3784
Mon Apr 27 14:41:58 1998 Werner Koch (wk@isil.d.shuttle.de)
3786
* cipher.c (cipher_get_keylen): New.
3788
Sun Apr 26 14:44:52 1998 Werner Koch (wk@isil.d.shuttle.de)
3790
* tiger.c, tiger.h: New.
3792
Wed Apr 8 14:57:11 1998 Werner Koch (wk@isil.d.shuttle.de)
3794
* misc.c (check_pubkey_algo2): New.
3796
Tue Apr 7 18:46:49 1998 Werner Koch (wk@isil.d.shuttle.de)
3799
* misc.c (check_cipher_algo): Moved to cipher.c
3800
* cast5.c: Moved many functions to cipher.c
3801
* blowfish.c: Likewise.
3803
Sat Apr 4 19:52:08 1998 Werner Koch (wk@isil.d.shuttle.de)
3805
* cast5.c: Implemented and tested.
3807
Wed Apr 1 16:38:27 1998 Werner Koch (wk@isil.d.shuttle.de)
3809
* elgamal.c (elg_generate): Faster generation of x in some cases.
3811
Thu Mar 19 13:54:48 1998 Werner Koch (wk@isil.d.shuttle.de)
3813
* blowfish.c (blowfish_decode_cfb): changed XOR operation
3814
(blowfish_encode_cfb): Ditto.
3816
Thu Mar 12 14:04:05 1998 Werner Koch (wk@isil.d.shuttle.de)
3818
* sha1.c (transform): Rewrote
3820
* blowfish.c (encrypt): Unrolled for rounds == 16
3823
Tue Mar 10 16:32:08 1998 Werner Koch (wk@isil.d.shuttle.de)
3825
* rmd160.c (transform): Unrolled the loop.
3827
Tue Mar 10 13:05:14 1998 Werner Koch (wk@isil.d.shuttle.de)
3829
* random.c (read_pool): Add pool_balance stuff.
3830
(get_random_bits): New.
3832
* elgamal.c (elg_generate): Now uses get_random_bits to generate x.
3835
Tue Mar 10 11:33:51 1998 Werner Koch (wk@isil.d.shuttle.de)
3837
* md.c (md_digest_length): New.
3839
Tue Mar 10 11:27:41 1998 Werner Koch (wk@isil.d.shuttle.de)
3841
* dsa.c (dsa_verify): Works.
3843
Mon Mar 9 12:59:08 1998 Werner Koch (wk@isil.d.shuttle.de)
3845
* dsa.c, dsa.h: Removed some unused code.
3847
Wed Mar 4 10:39:22 1998 Werner Koch (wk@isil.d.shuttle.de)
3849
* md.c (md_open): Add call to fast_random_poll.
3850
blowfish.c (blowfish_setkey): Ditto.
3852
Tue Mar 3 13:32:54 1998 Werner Koch (wk@isil.d.shuttle.de)
3854
* rmd160.c (rmd160_mixblock): New.
3855
* random.c: Restructured to start with a new RNG implementation.
3858
Mon Mar 2 19:21:46 1998 Werner Koch (wk@isil.d.shuttle.de)
3860
* gost.c, gost.h: Removed because they did only contain trash.
3862
Sun Mar 1 16:42:29 1998 Werner Koch (wk@isil.d.shuttle.de)
3864
* random.c (fill_buffer): removed error message if n == -1.
3866
Fri Feb 27 16:39:34 1998 Werner Koch (wk@isil.d.shuttle.de)
3868
* md.c (md_enable): No init if called twice.
3870
Thu Feb 26 07:57:02 1998 Werner Koch (wk@isil.d.shuttle.de)
3872
* primegen.c (generate_elg_prime): Changed the progress printing.
3875
Tue Feb 24 12:28:42 1998 Werner Koch (wk@isil.d.shuttle.de)
3877
* md5.c, md.5 : Replaced by a modified version of md5.c from
3880
Wed Feb 18 14:08:30 1998 Werner Koch (wk@isil.d.shuttle.de)
3882
* md.c, md.h : New debugging support
3884
Mon Feb 16 10:08:47 1998 Werner Koch (wk@isil.d.shuttle.de)
3886
* misc.c (cipher_algo_to_string): New
3887
(pubkey_algo_to_string): New.
3888
(digest_algo_to_string): New.
3891
Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006
3892
2007, 2008, 2009 Free Software Foundation, Inc.
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.
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.