ChangeLog 178 KB
Newer Older
1
2
3
4
2011-06-07  Niels Mller  <nisse@lysator.liu.se>

	* serpent-encrypt.c (SBOX0): Renamed arguments. Eliminated
	temporaries.
5
	(SBOX1): Likewise.
6

7
8
2011-06-06  Niels Mller  <nisse@lysator.liu.se>

9
10
11
12
13
14
15
16
17
18
	* Makefile.in (DISTFILES): Added serpent-internal.h.
	(nettle_SOURCES): Replaced serpent.c by serpent-set-key.c,
	serpent-encrypt.c, and serpent-decrypt.c.

	* serpent.c: Replaced by several new files.
	* serpent-set-key.c: New file.
	* serpent-encrypt.c: New file.
	* serpent-decrypt.c: New file.
	* serpent-internal.h: New file.

19
20
21
22
	* serpent.c [HAVE_NATIVE_64_BIT]: Process two blocks at a time in
	parallel. Measured speedup of 10%--25% (higher for encryption) on
	x86_64.

23
24
2011-06-01  Niels Mller  <nisse@lysator.liu.se>

25
26
27
28
29
30
31
32
33
34
35
36
37
38
	* serpent.c (ROUNDS): Deleted macro.
	(serpent_block_t): Deleted array typedef.
	(KEYXOR): New macro, replacing BLOCK_XOR.
	(BLOCK_COPY, SBOX, SBOX_INVERSE): Deleted macros.
	(LINEAR_TRANSFORMATION): Use four separate arguments.
	(LINEAR_TRANSFORMATION_INVERSE): Likewise.
	(ROUND): Take separate arguments for all input and output words.
	(ROUND_INVERSE): Likewise.
	(ROUND_LAST, ROUND_FIRST_INVERSE): Deleted macros.
	(serpent_set_key): Moved loop termination test.
	(serpent_encrypt): Rewrote with unrolling of just eight rounds,
	and without serpent_block_t.
	(serpent_decrypt): Likewise.

39
40
41
42
43
44
45
46
47
48
	* serpent.c: Added do { ... } while (0) around block macros.
	(serpent_key_t): Deleted array typedef.
	(ROL32, ROR32): Renamed macros, were rol and ror.
	(KS_RECURRENCE, KS): New macros.
	(serpent_key_pad): Renamed, from...
	(serpent_key_prepare): ...old name.
	(serpent_subkeys_generate): Deleted function.
	(serpent_set_key): Rewrote the generation of subkeys. Reduced both
	temporary storage and code size (less unrolling)

Niels Möller's avatar
Niels Möller committed
49
50
2011-05-31  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
51
52
53
	* testsuite/serpent-test.c (test_main): Enabled test with short,
	40-bit, key.

Niels Möller's avatar
Niels Möller committed
54
55
56
57
	* serpent.c (byte_swap_32): Deleted macro.
	(serpent_key_prepare): Use LE_READ_UINT32. Don't require aligned
	input, and support arbitrary key sizes.

Simon Josefsson's avatar
Simon Josefsson committed
58
59
60
61
62
63
64
2011-05-30  Simon Josefsson  <simon@josefsson.org>

	* serpent.c: Rewrite, based on libgcrypt code.  License changed
	from GPL to LGPL.
	* serpent_sboxes.h: Removed.
	* Makefile.in: Drop serpent_sboxes.h.

Niels Möller's avatar
Niels Möller committed
65
66
67
68
69
2011-05-31  Niels Mller  <nisse@lysator.liu.se>

	* testsuite/serpent-test.c (test_main): Added some tests for
	padding of keys of length which is not a multiple of four bytes.

Niels Möller's avatar
Niels Möller committed
70
71
72
73
74
2011-05-30  Simon Josefsson  <simon@josefsson.org>

	* testsuite/serpent-test.c (test_main): Add test vectors from
	libgcrypt.

75
76
77
78
79
2011-05-21  Niels Mller  <nisse@lysator.liu.se>

	* dsa-keygen.c (dsa_generate_keypair): Avoid double init of mpz
	variable. Spotted by Nikos Mavrogiannopoulos.

80
81
82
83
84
85
86
87
88
89
2011-05-06  Niels Mller  <nisse@lysator.liu.se>

	* configure.ac: Fix link flags for shared libraries on Solaris,
	which needs -h to set the soname. Patch contributed by Dagobert
	Michelsen.

2011-05-06  Niels Mller  <nisse@lysator.liu.se>

	* configure.ac: New configure option --enable-gcov.

Niels Möller's avatar
Niels Möller committed
90
	* arcfour.h (arcfour_stream): Deleted obsolete define.
Niels Möller's avatar
Niels Möller committed
91

Niels Möller's avatar
Niels Möller committed
92
93
94
95
2011-04-27  Niels Mller  <nisse@lysator.liu.se>

	* tools/nettle-hash.c (find_algorithm): Require exact match.

Niels Möller's avatar
Niels Möller committed
96
97
98
99
100
101
102
103
104
105
106
107
108
2011-04-15  Niels Mller  <nisse@lysator.liu.se>

	Reverted broken byte-order change from 2001-06-17:
	* serpent.c (serpent_set_key): Use correct byteorder.
	(serpent_encrypt): Likewise.
	(serpent_decrypt): Likewise.

	* testsuite/serpent-test.c (decode_hex_reverse): New function.
	(RH, RHL): New macros.
	(test_main): Byte reverse inputs and outputs for the testvectors
	taken from the serpent submission package. Enable test vectors
	from http://www.cs.technion.ac.il/~biham/Reports/Serpent/.

Niels Möller's avatar
Niels Möller committed
109
110
2011-03-23  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
111
112
113
	* tools/sexp-conv.c (xalloc): Deleted function, now it's in misc.c
	instead.

Niels Möller's avatar
Niels Möller committed
114
115
	* configure.ac: Use LSH_FUNC_STRERROR.

Niels Möller's avatar
Niels Möller committed
116
117
118
119
120
121
122
123
124
125
126
	* tools/Makefile.in (TARGETS): Added nettle-hash, and related
	build rules.
	(SOURCES): Added nettle-hash.c.

	* tools/misc.c (xalloc): New function.

	* tools/pkcs1-conv.c (main): Made the OPT_* constants local, and
	fixed numerical values to start with non-ASCII 0x300.

	* tools/nettle-hash.c: New file.

127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
2011-03-23  Niels Mller  <nisse@lysator.liu.se>

	Contributed by Daniel Kahn Gillmor:
	* testsuite/Makefile.in (TS_NETTLE_SOURCES): Added
	meta-hash-test.c, meta-cipher-test.c, and meta-armor-test.c.

	* testsuite/meta-hash-test.c: New file.
	* testsuite/meta-cipher-test.c: New file.
	* testsuite/meta-armor-test.c: New file.

	* nettle.texinfo: Document nettle_hashes and nettle_ciphers.

	* nettle-meta.h: Declare algorithm lists nettle_ciphers,
	nettle_hashes, nettle_armors.

	* Makefile.in (nettle_SOURCES): Added nettle-meta-hashes.c,
	nettle-meta-ciphers.c, and nettle-meta-armors.c.

	* nettle-meta-armors.c: New file.
	* nettle-meta-ciphers.c: New file.
	* nettle-meta-hashes.c: New file.

149
150
151
152
153
2011-02-18  Niels Mller  <nisse@lysator.liu.se>

	* arcfour.c (arcfour_stream): Deleted function. It's not very
	useful, and neither documented nor tested.

154
155
2011-02-16  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
156
157
158
159
	* cbc.h (CBC_ENCRYPT): Avoid using NULL; we don't ensure that it
	is defined.
	(CBC_DECRYPT): Likewise.

160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
	* gcm-aes.c (gcm_aes_set_iv): Use GCM_SET_IV.
	(gcm_aes_set_key): Deleted cast.
	(gcm_aes_encrypt): Likewise.
	(gcm_aes_decrypt): Likewise.
	(gcm_aes_digest): Likewise.
	(gcm_aes_update): One less argument to GCM_UPDATE.

	* gcm.h (GCM_SET_KEY): Added cast to nettle_crypt_func *. Help
	compiler type checking despite this cast.
	(GCM_ENCRYPT): Likewise.
	(GCM_DECRYPT): Likewise.
	(GCM_DIGEST): Likewise.
	(GCM_SET_IV): New macro, for completeness.
	(GCM_UPDATE): Deleted unused argument encrypt.

Niels Möller's avatar
Niels Möller committed
175
176
2011-02-14  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
177
178
179
	* nettle.texinfo: Split node on cipher modes, and started on
	the GCM documentation.

Niels Möller's avatar
Niels Möller committed
180
181
182
183
184
185
186
187
188
189
190
191
192
193
	* testsuite/gcm-test.c (test_gcm_aes): Deleted function, replaced
	by test_aead.
	(test_main): Use test_aead.

	* testsuite/testutils.c (test_aead): New function, replacing
	test_gcm_aes and before that test_cipher_gcm.

	* nettle-internal.c (nettle_gcm_aes128): New const struct.
	(nettle_gcm_aes192): Likewise.
	(nettle_gcm_aes256): Likewise.

	* nettle-internal.h (struct nettle_aead): Tentative interface for
	authenticated encryption with associated data.

Niels Möller's avatar
Niels Möller committed
194
195
196
197
198
	* examples/nettle-benchmark.c (time_gcm): Renamed. Updated for
	gcm_aes_auth to gcm_aes_update renaming. Benchmark both encryption
	and hashing.
	(time_gmac): ...old name.

Niels Möller's avatar
Niels Möller committed
199
200
201
202
203
204
205
206
	* nettle-internal.c (des_set_key_hack): Don't touch the bits
	parity, since thay are now ignored.
	(des3_set_key_hack): Likewise.

	* cast128-meta.c (nettle_cast128): Don't pass keysize.
	* nettle-meta.h (_NETTLE_CIPHER_FIX): Deleted keysize parameter
	derived from the appropriate constant instead.

Niels Möller's avatar
Niels Möller committed
207
208
209
	* testsuite/gcm-test.c (test_gcm_aes): Updated for gcm_aes_auth to
	gcm_aes_update renaming.

210
211
212
213
214
215
216
217
218
219
220
221
222
223
2011-02-13  Niels Mller  <nisse@lysator.liu.se>

	* gcm.h (GCM_UPDATE): Renamed, from...
	(GCM_AUTH): ...old name.

	* gcm-aes.c (gcm_aes_update): Renamed, from...
	(gcm_aes_auth): ...old name.

	* gcm.c (gcm_update): Renamed, and fixed an assert. From...
	(gcm_auth): ...old name.

	* gcm.h (GCM_TABLE_BITS): Increase table size to 8 bits,
	corresponding to 4 KByte of key-dependent tables.

Niels Möller's avatar
Niels Möller committed
224
2011-02-10  Niels Mller  <nisse@lysator.liu.se>
Niels Möller's avatar
Niels Möller committed
225
226
227
228
229

	* x86_64/memxor.asm: New file. Improves performance by 22% for the
	unaligned01 case and 35% for the unaligned12 case, benchmarked on
	Intel SU1400.

Niels Möller's avatar
Niels Möller committed
230
231
232
233
234
235
236
237
238
239
	* examples/nettle-benchmark.c (cgt_works_p): New function.
	(cgt_time_start): Likewise.
	(cgt_time_end): Likewise.
	(clock_time_start): Likewise.
	(clock_time_end): Likewise.
	(time_function): Read clock via function pointers time_start and
	time_end, so we can select method at runtime.
	(xalloc): Use die function.
	(main): Choose timing function. If available, try clock_gettime,
	and fall back to clock if it doesn't exist.
Niels Möller's avatar
Niels Möller committed
240

Niels Möller's avatar
Niels Möller committed
241
242
243
	* examples/nettle-benchmark.c (die): New function.
	(TIME_END, TIME_START): Check return value from clock_gettime.

244
245
	* gcm.h (union gcm_block): Use correct length for w array.

Niels Möller's avatar
Niels Möller committed
246
247
248
	* testsuite/gcm-test.c (test_main): Added the rest of the
	testcases from the spec.

249
250
2011-02-09  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
251
252
253
254
255
256
257
258
259
260
	* testsuite/gcm-test.c (test_main): Enabled testcases 5 and 6,
	with different IV lengths.

	* gcm-aes.c (gcm_aes_set_iv): Updated for gcm_set_iv change.

	* gcm.c (gcm_hash_sizes): New function.
	(gcm_set_iv): Added support for IVs of arbitrary size. Needed
	another argument, for the hash subkey.
	(gcm_digest): Use gcm_hash_sizes.

Niels Möller's avatar
Niels Möller committed
261
262
263
264
265
266
267
268
269
	* examples/nettle-benchmark.c (time_gmac): Use gcm_aes interface.

	* testsuite/gcm-test.c (test_gcm_aes): New function, replacing
	test_cipher_gcm and using the new gcm_aes interface.
	(test_main): Updated to use test_gcm_aes.
	* testsuite/testutils.c (test_cipher_gcm): Deleted function.

	* Makefile.in (nettle_SOURCES): Added gcm-aes.c.

270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
	* gcm.c (gcm_set_key): Replaced context argument by a struct
	gcm_key *.
	(gcm_hash): Replaced context argument by a struct gcm_key * and a
	pointer to the hashing state block.
	(gcm_auth): Added struct gcm_key * argument.
	(gcm_encrypt): Likewise.
	(gcm_decrypt): Likewise.
	(gcm_digest): Likewise.

	* gcm-aes.c: New file.
	(gcm_aes_set_key): New function.
	(gcm_aes_set_iv): Likewise.
	(gcm_aes_auth): Likewise.
	(gcm_aes_encrypt): Likewise.
	(gcm_aes_decrypt): Likewise.
	(gcm_aes_digest): Likewise.

	* gcm.h (struct gcm_key): Moved the key-dependent and
	message-independent state to its own struct.
	(struct gcm_ctx): ... and removed it here.
	(GCM_CTX): New macro.
	(GCM_SET_KEY): Likewise.
	(GCM_AUTH): Likewise.
	(GCM_ENCRYPT): Likewise.
	(GCM_DECRYPT): Likewise.
	(GCM_DIGEST): Likewise.
	(struct gcm_aes_ctx): New struct.

298
299
2011-02-08  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
300
301
	* gcm.h (struct gcm_ctx): The hash key is now always an array,
	named h, with array size depending on GCM_TABLE_BITS.
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
	* gcm.c (gcm_gf_shift): Added a separate result argument.
	(gcm_gf_mul): Compile bitwise version only when GCM_TABLE_BITS ==
	0. Simplified interface with just two arguments pointing to
	complete blocks.
	(gcm_gf_shift_4, gcm_gf_shift_8): Renamed table-based functions, from...
	(gcm_gf_shift_chunk): ... old name.
	(gcm_gf_mul): Renamed both table-based versions and made the
	argument types compatible with the bitwise gcm_gf_mul.
	(gcm_gf_mul_chunk): ... the old name.
	(gcm_set_key): Initialize the table using adds and shifts only.
	When GCM_TABLE_BITS > 0, this eliminates the only use of the
	bitwise multiplication.
	(gcm_hash): Simplified, now that we have the same interface for
	gcm_gf_mul, regardless of table size.

317
318
319
320
	* gcm.c	(GHASH_POLYNOMIAL): Use unsigned long for this constant.
	(gcm_gf_shift_chunk): Fixed bugs for the big endian 64-bit case,
	e.g., sparc64. For both 4-bit and 8-bit tables.

321
322
323
324
	* gcm.c: Use the new union gcm_block for all gf operations.

	* gcm.h (union gcm_block): New union, used to enforce alignment.

Niels Möller's avatar
Niels Möller committed
325
326
2011-02-07  Niels Mller  <nisse@lysator.liu.se>

327
328
329
	* gcm.c (gcm_gf_shift_chunk) : Bug fix for little-endian 8-bit
	tables.

Niels Möller's avatar
Niels Möller committed
330
331
332
333
334
335
336
	* gcm.c (gcm_gf_mul_chunk): Special case first and last iteration.
	(gcm_gf_add): New function, a special case of memxor. Use it for
	all memxor calls with word-aligned 16 byte blocks. Improves
	performance to 152 cycles/byte with no tables, 28 cycles per byte
	with 4-bit tables and 10.5 cycles per byte with 8-bit tables.

	Introduced 8-bit tables. If enabled, gives gmac performance of 19
Niels Möller's avatar
Niels Möller committed
337
338
339
340
341
	cycles per byte (still on intel x86_64).
	* gcm.c (gcm_gf_shift_chunk): New implementation for 8-bit tables.
	(gcm_gf_mul_chunk): Likewise.
	(gcm_set_key): Generate 8-bit tables.

Niels Möller's avatar
Niels Möller committed
342
343
	* Makefile.in (SOURCES): Added gcmdata.c.

Niels Möller's avatar
Niels Möller committed
344
345
	* gcm.h (GCM_TABLE_BITS): Set to 4.

Niels Möller's avatar
Niels Möller committed
346
347
2011-02-06  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
	* Makefile.in (TARGETS): Added gcmdata.
	(gcmdata): New rule.

	Introduced 4-bit tables. Gives gmac performance of 45 cycles per
	byte (still on intel x86_64).
	* gcm.c (gcm_gf_shift): Renamed. Tweaked little-endian masks.
	(gcm_rightshift): ... old name.
	(gcm_gf_mul): New argument for the output. Added length argument
	for one of the inputs (implicitly padding with zeros).
	(shift_table): New table (in 4-bit and 8-bit versions), generated
	by gcmdata.
	(gcm_gf_shift_chunk): New function shifting 4 bits at
	a time.
	(gcm_gf_mul_chunk): New function processing 4 bits at a time.
	(gcm_set_key): Generation of 4-bit key table.
	(gcm_hash): Use tables, when available.

	* gcmdata.c (main): New file.

Niels Möller's avatar
Niels Möller committed
367
368
369
370
371
372
373
374
375
	* gcm.c (gcm_rightshift): Moved the reduction of the shifted out
	bit here.
	(gcm_gf_mul): Updated for gcm_rightshift change. Improves gmac
	performance to 181 cycles/byte.

	* gcm.c (gcm_gf_mul): Rewrote. Still uses the bitwise algorithm from the
	specification, but with separate byte and bit loops. Improves gmac
	performance a bit further, to 227 cycles/byte.

Niels Möller's avatar
Niels Möller committed
376
377
378
379
	* gcm.c (gcm_rightshift): Complete rewrite, to use word rather
	than byte operations. Improves gmac performance from 830 cycles /
	byte to (still poor) 268 cycles per byte on intel x86_64.

380
381
2011-02-05  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
	* examples/nettle-benchmark.c (time_gmac): New function.
	(main): Call time_gmac.

	* testsuite/Makefile.in (TS_NETTLE_SOURCES): Added gcm-test.c.

	* testsuite/testutils.c (test_cipher_gcm): New function,
	contributed by Nikos Mavrogiannopoulos.

	* testsuite/gcm-test.c: New file, contributed by Nikos
	Mavrogiannopoulos.

	* Makefile.in (nettle_SOURCES): Added gcm.c.
	(HEADERS): Added gcm.h.

	* gcm.c: New file, contributed by Nikos Mavrogiannopoulos.
	* gcm.h: New file, contributed by Nikos Mavrogiannopoulos.

399
400
401
402
	* macros.h (INCREMENT): New macro, moved from ctr.c. Deleted third
	argument.
	* ctr.c: Use INCREMENT macro from macros.h, deleted local version.

Niels Möller's avatar
Niels Möller committed
403
404
2011-01-07  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
405
406
407
	* testsuite/Makefile.in (check): Add ../.lib to PATH, since that's
	where w*ndows looks for dlls.

Niels Möller's avatar
Niels Möller committed
408
409
410
	* testsuite/testutils.c (test_cipher_stream): More debug output on
	failure.

Niels Möller's avatar
Niels Möller committed
411
412
413
414
415
416
417
418
419
420
2010-12-14  Niels Mller  <nisse@lysator.liu.se>

	* nettle-types.h: Deleted some unnecessary parenthesis from
	function typedefs.
	(nettle_realloc_func): Moved typedef here...
	* realloc.h: ...from here.

	* buffer.c (nettle_buffer_init_realloc): Use an explicit pointer
	for realloc argument.

421
422
423
424
2010-12-07  Niels Mller  <nisse@lysator.liu.se>

	* nettle.texinfo (Copyright): Updated info on blowfish.

425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
2010-11-26  Niels Mller  <nisse@lysator.liu.se>

	Reapplied optimizations (150% speedup on x86_32) and other fixes,
	relicensing them as LGPL.
	* blowfish.c (do_encrypt): Renamed, to...
	(encrypt): ...new name.
	(F): Added context argument. Shift input explicitly, instead of
	reading individual bytes via memory.
	(R): Added context argument.
	(encrypt): Deleted a bunch of local variables. Using the context
	pointer for everything should consume less registers.
	(decrypt): Likewise.
	(initial_ctx): Arrange constants into a struct, to simplify key
	setup.
	(blowfish_set_key): Some simplification.

Simon Josefsson's avatar
Simon Josefsson committed
441
442
443
444
445
2010-11-26  Simon Josefsson  <simon@josefsson.org>

	* blowfish.c: New version ported from libgcrypt. License changed
	from GPL to LGPL.

446
447
448
449
450
451
2010-11-25  Niels Mller  <nisse@lysator.liu.se>

	* Makefile.in (install-shared-nettle): Use INSTALL_DATA, which
	clears the execute permission bits.
	(install-shared-hogweed): Likewise.

Niels Möller's avatar
Niels Möller committed
452
453
454
455
2010-11-16  Niels Mller  <nisse@lysator.liu.se>

	* configure.ac: Updated gmp url.

Niels Möller's avatar
Niels Möller committed
456
457
458
459
2010-11-01  Niels Mller  <nisse@lysator.liu.se>

	* tools/misc.c (werror): Don't call exit (copy&paste-error).

Simon Josefsson's avatar
Simon Josefsson committed
460
2010-10-26  Niels Mller  <nisse@lysator.liu.se>
Niels Möller's avatar
Niels Möller committed
461
462
463
464
465
466
467
468
469
470

	* examples/rsa-encrypt.c (main): No extra message for bad options.

	* examples/rsa-keygen.c (main): Added long options. Deleted -?,
	and fixed handling of bad options.

	* examples/next-prime.c (main): Deleted -?, and fixed handling of
	bad options.
	* examples/random-prime.c (main): Likewise.

Simon Josefsson's avatar
Simon Josefsson committed
471
2010-10-22  Niels Mller  <nisse@lysator.liu.se>
Niels Möller's avatar
Niels Möller committed
472
473
474
475
476
477

	* examples/nettle-benchmark.c (main): Added long options. Deleted -?,
	and fixed handling of bad options.

	* examples/eratosthenes.c (main): Added long options. Deleted -?,
	and fixed handling of bad options. Renamed -s to -q (long option
Niels Möller's avatar
Niels Möller committed
478
	--quiet).
Niels Möller's avatar
Niels Möller committed
479
480
481
482
483

	* tools/pkcs1-conv.c (main): Deleted short alias -? for --help,
	and fixed handling of bad options.
	* tools/sexp-conv.c (parse_options): Likewise.

Simon Josefsson's avatar
Simon Josefsson committed
484
2010-10-06  Niels Mller  <nisse@lysator.liu.se>
Niels Möller's avatar
Niels Möller committed
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504

	* memxor.c (memxor3): Optimized.
	(memxor3_common_alignment): New function.
	(memxor3_different_alignment_b): New function.
	(memxor3_different_alignment_ab): New function.
	(memxor3_different_alignment_all): New function.

	* examples/nettle-benchmark.c (time_function): Reorganized, to
	reduce overhead.
	(time_memxor): Also benchmark memxor3.

	* x86_64/memxor.asm: New file.

	* examples/nettle-benchmark.c (overhead): New global variable.
	(time_function): Compensate for call overhead.
	(bench_nothing, time_overhead): New functions.
	(time_memxor): Tweaked src size, making it an integral number of
	words.
	(main): Call time_overhead.

Simon Josefsson's avatar
Simon Josefsson committed
505
2010-10-01  Niels Mller  <nisse@lysator.liu.se>
Niels Möller's avatar
Niels Möller committed
506
507
508
509
510
511

	* x86_64/camellia-crypt-internal.asm (ROUND): Reordered sbox
	lookups.

	* testsuite/memxor-test.c: Also test memxor3.

Simon Josefsson's avatar
Simon Josefsson committed
512
2010-09-30  Niels Mller  <nisse@lysator.liu.se>
Niels Möller's avatar
Niels Möller committed
513

Niels Möller's avatar
Niels Möller committed
514
515
	* configure.ac: Link in memxor.asm, if found.

Niels Möller's avatar
Niels Möller committed
516
517
518
519
520
521
522
523
	* testsuite/testutils.c (test_cipher_cbc): Print more info when
	failing.

	* testsuite/memxor-test.c (test_xor): Added verbose printout.

	* examples/nettle-benchmark.c (time_memxor): Count size of
	unsigned long as "block size" for memxor.

524
525
2010-09-24  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
526
527
528
529
530
531
532
533
534
535
536
	* testsuite/.test-rules.make: Added rule for memxor-test.
	* testsuite/Makefile.in (TS_NETTLE_SOURCES): Added memxor-test.c
	* testsuite/memxor-test.c: New file.

	* memxor.c (memxor_common_alignment): New function.
	(memxor_different_alignment): New function.
	(memxor): Optimized to do word-operations rather than byte
	operations.

	* configure.ac (HAVE_NATIVE_64_BIT): New config.h define.

537
538
539
540
541
542
543
	Partial revert of 2010-09-20 changes.
	* camellia-set-encrypt-key.c (camellia_set_encrypt_key):
	Reintroduce CAMELLIA_F_HALF_INV, for 32-bit machines.
	* camellia-crypt-internal.c (CAMELLIA_ROUNDSM): Two variants,
	differing in where addition of the key is done.
	* x86/camellia-crypt-internal.asm: Moved addition of key.

Simon Josefsson's avatar
Simon Josefsson committed
544
2010-09-22  Niels Mller  <nisse@lysator.liu.se>
Niels Möller's avatar
Niels Möller committed
545
546
547
548
549
550

	* examples/nettle-benchmark.c (BENCH_INTERVAL): Changed unit to
	seconds.
	(time_function): Use clock_gettime with CLOCK_PROCESS_CPUTIME_ID,
	if available. This gives better accuracy, at least on recent
	linux.
Niels Möller's avatar
Niels Möller committed
551
552
553
554
555
556
	(BENCH_INTERVAL): Reduced to 0.1 s.
	(struct bench_memxor_info): New struct.
	(bench_memxor): New function.
	(time_memxor): New function.
	(main): Use time_memxor. Added optional argument used to limit the
	algorithms being benchmarked.
Niels Möller's avatar
Niels Möller committed
557
558
	(GET_CYCLE_COUNTER): Define also for x86_64.
	(time_memxor): Improved display.
Niels Möller's avatar
Niels Möller committed
559
560
561
562
563
564
565

	* examples/Makefile.in (nettle-benchmark): Link using
	$(BENCH_LIBS) rather than $(LIBS).

	* configure.ac: Check for clock_gettime, and add -lrt to
	BENCH_LIBS if needed.

Simon Josefsson's avatar
Simon Josefsson committed
566
2010-09-20  Niels Mller  <nisse@lysator.liu.se>
Niels Möller's avatar
Niels Möller committed
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585

	* configure.ac: Less quoting when invoking $CC, to allow CC="gcc
	-m32".

	* x86/camellia-crypt-internal.asm (ROUND): Adapted to new key
	convention, moving key xor to the end.

	* camellia-set-encrypt-key.c (CAMELLIA_F_HALF_INV): Deleted macro.
	(camellia_set_encrypt_key): Deleted the CAMELLIA_F_HALF_INV
	operations intended for moving the key xor into the middle of the
	round.

	* camellia-crypt-internal.c (CAMELLIA_ROUNDSM): Moved addition of
	key to the end, to use a 64-bit xor operation.

	* x86_64/camellia-crypt-internal.asm: New file.

	* x86_64/machine.m4 (LREG, HREG, XREG): New macros.

Niels Möller's avatar
Niels Möller committed
586
587
588
589
590
2010-09-17  Niels Mller  <nisse@lysator.liu.se>

	* configure.ac: Support shared libraries (dlls) with mingw32.
	Contributed by David Hoyt.

Niels Möller's avatar
Niels Möller committed
591
592
2010-07-25  Niels Mller  <nisse@lysator.liu.se>

593
594
	* configure.ac: Changed version number to nettle-2.2.

595
596
	* Released nettle-2.1.

Niels Möller's avatar
Niels Möller committed
597
	* configure.ac: Use camellia-crypt-internal.asm, if available.
598
599
	Bumped soname to libnettle.so.4, and reset LIBNETTLE_MINOR to
	zero.
Niels Möller's avatar
Niels Möller committed
600

Niels Möller's avatar
Niels Möller committed
601
	* x86/machine.m4 (LREG, HREG): Moved macros here, from...
Niels Möller's avatar
Niels Möller committed
602
603
604
605
	* x86/aes.m4: ...here.

	* x86/camellia-crypt-internal.asm: New file.

Niels Möller's avatar
Niels Möller committed
606
607
608
609
	* nettle.texinfo: Updated and expanded section on DSA.
	Document aes_invert_key, and camellia. Added missing functions
	rsa_sha512_verify and rsa_sha512_verify_digest.

610
	* camellia.h (struct camellia_ctx): Eliminate the two unused
Niels Möller's avatar
Niels Möller committed
611
	subkeys, and renumber the remaining ones.
612
613
614
615
616
	* camellia-crypt-internal.c (_camellia_crypt): Updated for
	renumbered subkeys.
	* camellia-set-encrypt-key.c (camellia_set_encrypt_key): Likewise.
	* camellia-set-decrypt-key.c (camellia_invert_key): Likewise.

Niels Möller's avatar
Niels Möller committed
617
618
619
620
621
622
	* camellia-set-encrypt-key.c (camellia_set_encrypt_key): Inline
	the expansion of camellia_setup128 and camellia_setup256, keeping
	the unexpanded key in scalar variables.
	(camellia_setup128): Deleted.
	(camellia_setup256): Deleted.

623
624
2010-07-24  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
625
626
627
628
	* camellia-set-encrypt-key.c (camellia_set_encrypt_key): Reduced
	code size, no complete loop unroll. Use one loop for each phase of
	the post-processing.

Niels Möller's avatar
Niels Möller committed
629
630
631
	* testsuite/camellia-test.c: New tests for camellia_invert_key.
	* testsuite/aes-test.c: New tests for aes_invert_key.

632
633
634
635
636
637
	* aes.h (aes_invert_key): Declare it.

	* aes-set-decrypt-key.c (aes_invert_key): New function, key
	inversion code extracted from aes_set_decrypt_key.
	(aes_set_decrypt_key): Use aes_invert_key.

638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
	* camellia-set-encrypt-key.c (camellia_setup128): Generate
	unmodified subkeys according to the spec. Moved clever combination
	of subkeys to camellia_set_encrypt_key.
	(camellia_setup256): Likewise.
	(camellia_set_encrypt_key): Moved subkey post-processing code
	here, and reduce code duplication between 128-bit keys and larger
	keys.

	* camellia.c: Deleted file, split into several new files...
	* camellia-table.c (_camellia_table): New file with the constant
	sbox tables.
	* camellia-set-encrypt-key.c: New file.
	(camellia_setup128): Generate unmodified subkeys according to the
	spec. Moved clever combination of subkeys to camellia_set_encrypt_key.
	(camellia_setup256): Likewise.

	* camellia-set-decrypt-key.c: New file.
	(camellia_invert_key): Key inversion function.
	(camellia_set_decrypt_key): New key setup function.
	* camellia-internal.h: New file.
	* camellia-crypt.c (camellia_crypt): New file, new wrapper
	function passing the sbox table to _camellia_crypt.
	* camellia-crypt-internal.c (_camellia_crypt): New file, with main
	encrypt/decrypt function.
	* Makefile.in (nettle_SOURCES): Updated list of camellia source files.	
	(DISTFILES): Added camellia-internal.h.
Niels Möller's avatar
Niels Möller committed
664

665
666
2010-07-20  Niels Mller  <nisse@lysator.liu.se>

667
668
	* camellia-meta.c: Use _NETTLE_CIPHER_SEP_SET_KEY.

669
670
671
672
673
674
675
676
677
678
679
680
681
	* camellia.h (struct camellia_ctx): Replaced flag camellia128 by
	expanded key length nkeys.

	* camellia.c (camellia_set_encrypt_key): Renamed, from...
	(camellia_set_key): ... old name.
	(camellia_invert_key): New function.
	(camellia_set_decrypt_key): New function, using
	camellia_invert_key.
	(camellia_crypt): Renamed, from...
	(camellia_encrypt): ... old name.
	(camellia_decrypt): Deleted, no longer needed. camellia_crypt used
	for both encryption and decryption.

Niels Möller's avatar
Niels Möller committed
682
683
684
685
	* nettle-meta.h (_NETTLE_CIPHER_SEP_SET_KEY): New macro.

	* dsa-keygen.c: Removed unnecessary include of memxor.h.

686
687
688
689
690
691
692
	* camellia.c: Rewrote to use 64-bit type for subkeys and use
	64-bit operations throughout. Performance on x86_32, when compiled
	with gcc-4.4.4, is reduced by roughly 15%, this should be fixed
	later.

	* camellia.h (struct camellia_ctx): Use type uint64_t for subkeys.

693
694
2010-07-07  Niels Mller  <nisse@lysator.liu.se>

695
696
697
698
699
700
701
	* aes.h (aes_encrypt, aes_decrypt): Declare ctx argument as const.
	Also updated implementation.
	* blowfish.h (blowfish_encrypt, blowfish_decrypt): Likewise.
	* cast128.h (cast128_encrypt, cast128_decrypt): Likewise.
	* serpent.h (serpent_encrypt, serpent_decrypt): Likewise.
	* twofish.h (twofish_encrypt, twofish_decrypt): Likewise.

Niels Möller's avatar
Niels Möller committed
702
703
704
	* testsuite/Makefile.in (TS_NETTLE_SOURCES): Added
	camellia-test.c.

Niels Möller's avatar
Niels Möller committed
705
706
	* examples/nettle-benchmark.c: Added camellia ciphers.

707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
	* Makefile.in (nettle_SOURCES): Added camellia.c and
	camellia-meta.c.
	(HEADERS): Added camellia.h.

	* nettle-meta.h (nettle_camellia128): Declare.
	(nettle_camellia192): Likewise.
	(nettle_camellia256): Likewise.

	* camellia-meta.c: New file.

	* camellia.h: Rewrote interface to match nettle conventions.

	* camellia.c: Converted to nettle conventions.
	(camellia_encrypt128, camellia_encrypt256): Unified to new
	function...
	(camellia_encrypt): ...New function, with a loop doing 6
	regular rounds, one FL round and one FLINV round per iteration,
	with iteration count depending on the key size.

	(camellia_decrypt128, camellia_decrypt256): Similarly unified
	as...
	(camellia_decrypt): ...New function, analogous to
	camellia_encrypt.

2010-07-06  Niels Mller  <nisse@lysator.liu.se>

	* camellia.c, camellia.h: New files, copied from
	http://info.isl.ntt.co.jp/crypt/eng/camellia/dl/camellia-LGPL-1.2.0.tar.gz.

	* testsuite/camellia-test.c: New file.

Niels Möller's avatar
Niels Möller committed
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
2010-07-05  Niels Mller  <nisse@lysator.liu.se>

	* nettle.texinfo: Document new conventions for weak key and des
	parity checks. Document des_check_parity.

	* testsuite/des-test.c (test_weak): Don't check the deleted status
	attribute.

	* des-compat.c (des_key_sched): Rewrote error checking logic for
	the case of non-zero des_check_key.

	* des3.c (des3_set_key): Changed weak key detection logic.
	Complete key setup also for weak keys, and don't set the status
	attribute.

	* des.c (des_set_key): New iteration logic, to keep key pointer
	unchanged. Moved weak key check to the end, and don't set the
	status attribute.
	(des_encrypt): Ignore status attribute.
	(des_decrypt): Likewise.

	* des.h (enum des_error): Deleted.
	(struct des_ctx): Deleted status attribute.
	(struct des3_ctx): Likewise.

	* blowfish.c (initial_ctx): Deleted status value.
	(blowfish_encrypt): Ignore status attribute.
	(blowfish_decrypt): Likewise.
766
	(blowfish_set_key): Return result from weak key check, without
Niels Möller's avatar
Niels Möller committed
767
768
769
770
771
772
773
	setting the status attribute.

	* blowfish.h (enum blowfish_error): Deleted.
	(struct blowfish_ctx): Deleted status attribute.

	* Makefile.in (des_headers): Deleted parity.h.

Niels Möller's avatar
Niels Möller committed
774
775
2010-06-30  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
776
777
778
779
780
781
	* testsuite/des-test.c (test_des): New function.
	(test_weak): New function.
	(test_main): Use test_des and test_weak. Added tests for all the
	weak keys. Added some tests with invalid (to be ignored) parity
	bits.

Niels Möller's avatar
Niels Möller committed
782
783
784
785
786
787
788
789
	* des.c (parity_16): New smaller parity table.
	(des_check_parity): New function.
	(des_fix_parity): Use parity_16.
	(des_weak_p): New weak-key detection. Ignores parity bits, and
	uses a hash table.
	(des_set_key): Deleted parity checking code. Replaced old weak-key
	detection code by a call to des_weak_p.

Niels Möller's avatar
Niels Möller committed
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
2010-06-04  Niels Mller  <nisse@lysator.liu.se>

	* testsuite/testutils.c (test_dsa_key): Updated for new name
	DSA_SHA1_MIN_P_BITS.

	* dsa-keygen.c (dsa_generate_keypair): Use DSA_SHA1_MIN_P_BITS and
	DSA_SHA256_MIN_P_BITS.

	* dsa.h (DSA_MIN_P_BITS, DSA_Q_OCTETS, DSA_Q_BITS): Renamed to...
	(DSA_SHA1_MIN_P_BITS, DSA_SHA1_Q_OCTETS, DSA_SHA1_Q_BITS): New
	names.

	* sexp2dsa.c (dsa_keypair_from_sexp_alist): New argument q_bits.
	Renamed parameter limit to p_max_bits.
	(dsa_sha1_keypair_from_sexp): Renamed, was dsa_keypair_from_sexp.
	Updated to call dsa_keypair_from_sexp_alist with the new argument.
	(dsa_sha256_keypair_from_sexp): New function.
	(dsa_signature_from_sexp): New argument q_bits.

	* der2dsa.c (dsa_params_from_der_iterator): Enforce 160-bit limit
	on q. Renamed parameter limit to p_max_bits.
	(dsa_openssl_private_key_from_der_iterator): Enforce 160-bit limit
	on q and x. Renamed parameter limit to p_max_bits.

2010-06-03  Niels Mller  <nisse@lysator.liu.se>

	* testsuite/dsa-test.c (test_main): Added test for dsa-sha256.

Niels Möller's avatar
Niels Möller committed
818
819
820
821
822
823
824
825
826
2010-06-02  Niels Mller  <nisse@lysator.liu.se>

	* testsuite/dsa-test.c (test_main): Provide expected value of the
	signature.

	* testsuite/testutils.c (test_dsa160): Added argument for expected
	signature.
	(test_dsa256): Likewise.

Niels Möller's avatar
Niels Möller committed
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
2010-06-01  Niels Mller  <nisse@lysator.liu.se>

	* testsuite/rsa-keygen-test.c (test_main): Updated expected
	signatures.

	* examples/random-prime.c (main): Updated for nettle_random_prime
	change.
	* testsuite/random-prime-test.c (test_main): Likewise.

	* rsa-keygen.c (bignum_random_prime): Deleted function.
	(rsa_generate_keypair): Use new nettle_random_prime. Generate
	secret factors p and q with the two most significant bits set.

	* dsa-keygen.c (dsa_generate_keypair): Updated for changes in
	nettle_random_prime and _nettle_generate_pocklington_prime. Invoke
	progress callback.

	* bignum-random-prime.c (_nettle_generate_pocklington_prime): New
	argument top_bits_set, to optionally generate primes with the two
	most significant bits set. Reordered argument list.
	(nettle_random_prime): Likewise, added top_bits_set argument.
	Invoke progress callback when a prime is generated.

850
851
2010-05-26  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
852
853
854
855
856
857
858
	* dsa-keygen.c (dsa_generate_keypair): Use
	_nettle_generate_pocklington_prime. Deleted old key generation
	code.

	* bignum-random-prime.c (_nettle_generate_pocklington_prime): Also
	return the used r. Updated caller.

Niels Möller's avatar
Niels Möller committed
859
860
	* examples/random-prime.c (main): Allow sizes down to 3 bits.

861
862
863
864
865
866
867
868
	* bignum-random-prime.c (_nettle_generate_pocklington_prime): New
	function. Rely on mpz_probab_prime_p (for lack of a trial division
	function) for trial division.
	(nettle_random_prime): Rewritten. Uses the prime table for the
	smallest sizes, then trial division using a new set of tables, and
	then Maurer's algorithm, calling the new
	_nettle_generate_pocklington_prime for the final search.

Niels Möller's avatar
Niels Möller committed
869
870
871
2010-05-25  Niels Mller  <nisse@lysator.liu.se>

	* testsuite/dsa-test.c (test_main): Updated for dsa testing
872
	changes.
Niels Möller's avatar
Niels Möller committed
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890

	* testsuite/dsa-keygen-test.c (test_main): Test dsa256.

	* testsuite/testutils.h (struct nettle_mac): New struct, currently
	unused.

	* testsuite/testutils.c (test_mac): New function (currently not
	used).
	(test_dsa): Replaced by two new functions...
	(test_dsa160): New function.
	(test_dsa256): New function.
	(test_dsa_key): New argument q_size.
	(DSA_VERIFY): Generalized.

	* dsa-keygen.c (dsa_generate_keypair): Rewritten, now generating
	primes using Pocklington's theorem. Takes both p_size and q_size
	as arguments.

891
892
893
894
895
2010-05-20  Niels Mller  <nisse@lysator.liu.se>

	* bignum-random-prime.c (miller_rabin_pocklington): Fixed broken
	logic when Miller-rabin succeeds early.

896
897
2010-04-09  Niels Mller  <nisse@lysator.liu.se>

898
899
900
901
902
903
	* bignum-next-prime.c: Include stdlib.h, needed for alloca on
	freebsd.
	* hmac.c: Likewise.

	* examples/Makefile.in (SOURCES): Added random-prime.c.

Niels Möller's avatar
Niels Möller committed
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
	* examples/random-prime.c: New program.

	* testsuite/Makefile.in (TS_NETTLE_SOURCES): Moved
	knuth-lfib-test.c, cbc-test.c, ctr-test.c, hmac-test.c here, from
	TS_HOGWEED_SOURCES.
	(TS_HOGWEED_SOURCES): Added random-prime-test.c.

	* testsuite/random-prime-test.c: New test case.

	* examples/next-prime.c (main): With no command line arguments.
	exit after dislaying usage message.

	* examples/io.c (simple_random): Free buffer when done.

	* configure.ac: Changed message, say CC is the recommended
	way to configure the ABI.

	* bignum-random.c: Deleted test of HAVE_LIBGMP.
	* bignum.c: Likewise.
	* sexp2bignum.c: Likewise.

925
926
927
928
929
	* Makefile.in (hogweed_SOURCES): Added bignum-random-prime.c.

	* bignum-random-prime.c (nettle_random_prime): New file, new
	function.

Niels Möller's avatar
Niels Möller committed
930
931
932
933
2010-03-31  Niels Mller  <nisse@lysator.liu.se>

	* examples/nettle-benchmark.c (main): Benchmark sha224.

934
935
2010-03-30  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
936
937
938
939
	* testsuite/testutils.c (DSA_VERIFY): Updated for dsa_sha1_verify
	rename.
	(test_dsa): Check return value from dsa_sha1_sign.

940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
	* Makefile.in (hogweed_SOURCES): Added dsa-sha1-sign.c,
	dsa-sha1-verify.c, dsa-sha256-sign.c, and dsa-sha256-verify.c.

	* dsa.h: Updated and added dsa declarations.

	* dsa-sha256-verify.c (dsa_sha256_verify_digest): New file, new
	function.
	(dsa_sha256_verify): New function.
	* dsa-sha256-sign.c (dsa_sha256_sign_digest): New file, new
	function.
	(dsa_sha256_sign): New function.

	* dsa-sha1-verify.c (dsa_sha1_verify_digest): New file. Moved and
	renamed function, from dsa_verify_digest, rewrote to use
	_dsa_verify.
	(dsa_sha1_verify): Analogous change, renamed from dsa_verify.
	* dsa-sha1-sign.c (dsa_sha1_sign_digest): New file. Moved and
	renamed function, from dsa_sign_digest, rewrote to use _dsa_sign,
	and added return value.
	(dsa_sha1_sign): Analogous change, renamed from dsa_sign.

	* dsa-verify.c (_dsa_verify): New general verification function,
	for any hash.
	* dsa-sign.c (_dsa_sign): New general signing function, for any
	hash. Returns success code, like the rsa signture functions.

966
967
2010-03-29  Niels Mller  <nisse@lysator.liu.se>

968
969
970
971
972
	* configure.ac (ABI): Attempt to use a better, ABI-dependant,
	default value for libdir.

	* x86/md5-compress.asm: Fixed function name in epilogue.

973
974
	* asm.m4 (EPILOGUE): Use . to refer to current address.

975
976
977
	* configure.ac (ABI): Detect which ABI the compiler is using.
	On x86_64, also check for __arch64__.

978
979
980
981
982
2010-03-28  Niels Mller  <nisse@lysator.liu.se>

	* configure.ac (asm_path): For x86_64, check if compiler is
	generating 32-bit code.

983
984
2010-03-27  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
985
986
987
988
	* testsuite/hmac-test.c (test_main): Rewrote rest of tests to use
	HMAC_TEST, and added more tests from Daniel Kahn Gillmor and from
	RFC 4231.

989
990
991
992
993
994
995
	* Makefile.in (nettle_SOURCES): Added hmac-sha224.c and
	hmac-sha384.c.

	* hmac.h: Added declarations of hmac-sha224 and hmac-sha384.

	* hmac-sha224.c: New file.

Niels Möller's avatar
Niels Möller committed
996
997
2010-03-26  Niels Mller  <nisse@lysator.liu.se>

Niels Möller's avatar
Niels Möller committed
998
999
1000
	* testsuite/hmac-test.c (HMAC_TEST): New macro.
	(test_main): Use HMAC_TEST for the md5 and sha1 tests, and add
	test vectors from Daniel Kahn Gillmor.
For faster browsing, not all history is shown. View entire blame