ChangeLog 31.7 KB
Newer Older
Niels Möller's avatar
Niels Möller committed
1
2
3
4
5
6
2002-05-14  Niels Möller  <niels@s3.kth.se>

	* x86/aes.asm (aes_decrypt): Adapted to the current interface.
	Notably, the order of the subkeys was reversed. Single block
	encrypt/decrypt works now.

Niels Möller's avatar
Niels Möller committed
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2002-05-07  Niels Möller  <niels@s3.kth.se>

	* configure.ac: Generate config.m4.

	* x86/aes.asm: Use C for comments, include the tables using
	include_src, and commented out the key setup functions.
	Fixed the processing of the first handling of the round function.
	Now, encryption of a single block works! Multiple blocks, and
	decryption, is still broken.

	* x86/machine.m4: New file (empty).

	* x86/aes-encrypt.asm: New file, empty for now.

	* Makefile.am (%.asm): Added asm.m4, machine.m4 and config.m4 to
	the m4 command line.
	(libnettle_a_SOURCES): Added aes-encrypt-table.c.

	* sparc/aes.asm: No need to include asm.m4, that is taken care of
	by the Makefile. 

	* config.m4.in: New file, configuration for asm.m4.

	* asm.m4 (C, include_src): New macros.

	* aes-encrypt-table.c: New file, table moved out from
	aes-encrypt.c. 

Niels Möller's avatar
Niels Möller committed
35
36
37
38
2002-05-06  Niels Möller  <niels@s3.kth.se>

	* configure.ac (CFLAGS): Don't enable -Waggregate-return.

Niels Möller's avatar
Niels Möller committed
39
40
41
42
2002-05-05  Niels Möller  <nisse@lysator.liu.se>

	* configure.ac: Pass no arguments to AM_INIT_AUTOMAKE.

Niels Möller's avatar
Niels Möller committed
43
44
45
46
47
48
2002-05-05  Niels Möller  <nisse@cuckoo.hack.org>

	* configure.ac: Update for automake-1.6.

	* configure.ac: Renamed file, used to be configure.in.
	
Niels Möller's avatar
Niels Möller committed
49
50
51
52
2002-03-20  Niels Möller  <nisse@cuckoo.hack.org>

	* testsuite/run-tests (test_program): Added missing single quote.

Niels Möller's avatar
Niels Möller committed
53
54
55
56
57
2002-03-20  Niels Möller  <nisse@lysator.liu.se>

	* testsuite/run-tests (test_program): Test the exit status of the
	right process.

Pontus Freyhult's avatar
Pontus Freyhult committed
58
59
60
61
2002-03-19  Pontus Sköld  <pont@it.uu.se>

	* testsuite/run-tests: Removed /bin/bashisms to use with /bin/sh. 

Niels Möller's avatar
Niels Möller committed
62
63
64
65
66
2002-03-18  Niels Möller  <nisse@cuckoo.hack.org>

	* rsa-keygen.c (rsa_generate_keypair): Output a newline after a
	non-empty line of 'e':s (bad e was chosen, try again).

Niels Möller's avatar
Niels Möller committed
67
68
69
70
71
2002-03-16  Niels Möller  <nisse@cuckoo.hack.org>

	* configure.in (asm_path): AC_CONFIG_LINKS adds $srcdir
	automatically. 

Niels Möller's avatar
Niels Möller committed
72
2002-03-14  Niels Möller  <nisse@cuckoo.hack.org>
Niels Möller's avatar
Niels Möller committed
73

Niels Möller's avatar
Niels Möller committed
74
75
76
77
78
79
	* sparc/aes.asm, x86/aes.asm: Added copyright notice.

	* Makefile.am (libnettle_a_SOURCES): Added aes-internal.h.
	(EXTRA_DIST): Added assembler files.

	* configure.in (asm_path): Use $srcdir when looking for the files. 
Niels Möller's avatar
Niels Möller committed
80
	* configure.in (asm_path): For now, disable x86 assembler code. 
Niels Möller's avatar
Niels Möller committed
81
	Bumped version to 1.6.
Niels Möller's avatar
Niels Möller committed
82

Niels Möller's avatar
Niels Möller committed
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
2002-02-25  Niels Möller  <nisse@cuckoo.hack.org>

	* sparc/aes.asm (_aes_crypt): Moved increment of src into the
	source_loop. Also fixed stop condition, the loop was run 5 times,
	not 4, as it should.
	(_aes_crypt): Use src directly when accessing the source data,
	don't use %o5.
	(_aes_crypt): Renamed variables in source_loop.
	(_aes_crypt): Changed stop condition in source_loop to not depend
	on i. Finally reduced the source_loop to 16 instructions. Also
	increased the alignment of the code to 16.
	(_aes_crypt): In final_loop, use preshifted indices.
	(_aes_crypt): In final_loop, construct the result in t0. Use t0-t3
	for intermediate values.
	(_aes_crypt): In final_loop, use the register idx.
	(_aes_crypt): In final_loop, keep i multiplied by 4. Use key to
	get to the current roundkey.
	(_aes_crypt): In final_loop, use i for indexing.
	(_aes_crypt): Update dst in the output loop. This yields a delay
	slot that isn't filled yet.
	(_aes_crypt): Decrement round when looping, saving yet some
	instructions.
	(_aes_crypt): Reformatted code as blocks of four instructions
	each.
	(_aes_crypt): Copy the addresses of the indexing tables into
	registers at the start. No more need for the idx register.
	(_aes_crypt): Deleted idx register.
	(_aes_crypt): Some peep hole optimizations, duplicating some
	instructions to fill nop:s, and put branch instructions on even
	word addresses.

2002-02-22  Niels Möller  <nisse@cuckoo.hack.org>

	* sparc/aes.asm (_aes_crypt): Moved some more additions out of the
	inner loop, using additional registers.
	(_aes_crypt): Deleted one more addition from the inner loop, by
	using the subkey pointer.

Niels Möller's avatar
Niels Möller committed
121
122
123
124
125
2002-02-19  Niels Möller  <nisse@cuckoo.hack.org>

	* configure.in (asm_path): Renamed "path" to "asm_path". Also look
	for a machine.m4.

Niels Möller's avatar
Niels Möller committed
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
2002-02-16  Niels Möller  <nisse@cuckoo.hack.org>

	* sparc/aes.asm: Use that IDX2(j) == j ^ 2

	* Makefile.am (libnettle_a_SOURCES): Reordered aes-decrypt.c and
	aes-encrypt.c. For some strange reason it makes the benchmark go
	faster... 

	* sparc/aes.asm (_aes_crypt): Use double-buffering, and no
	separate loop for adding the round key.
	(round): Keep round index muliplied by 16, so it can be used
	directly for indexing the subkeys.
	(_aes_crypt): In the final loop, use ctx+round to access the
	subkeys, no need for an extra register.

2002-02-15  Niels Möller  <nisse@cuckoo.hack.org>

	* sparc/aes.asm (_aes_crypt): Renaming variables, allocating
	locals starting from %l0.
	(_aes_crypt): Consistently use %l4, aka i, as the variable for the
	innermost loops.
	(_aes_crypt): Moved reading of ctx->nrounds out of the loop.
	(_aes_crypt): In final_loop, deleted a redundant mov, and use i as
	loop variable.
	(_aes_crypt): Started renumbering registers in the inner loop. The
	computation for the table[j] sub-expression should be kept in
	register %o[j].
	(_aes_crypt): Renamed more variables in the inner loop. Now the
	primary variables are t0, t1, t2, t3.

	* sparc/aes.asm (_aes_crypt): Swapped register %i0 and %o5, %i1
	and %o0, %i2 and %o4, %i3 and %o3, %i4 and %o2.
	(_aes_crypt): wtxt was stored in both %l1 and %l2 for the entire
	function. Freed %l2 for other uses.
	(_aes_crypt): Likewise for tmp, freeing register %o1.	

	* sparc/machine.m4: New file, for sparc-specific macros.

	* sparc/aes.asm (_aes_crypt): Hacked the source_loop, to get rid
	of yet another redundant loop variable, and one instruction.
	(_aes_crypt): Strength reduce loop variable in the
	inner loop, getting rid of one register.
	(_aes_crypt): Use pre-shifted indices (aes_table.idx_shift), to
	avoid some shifts in the inner loop.
	(_aes_crypt): Don't check for nrounds==0 at the start of the loop.

	* asm.m4: Define and use structure-defining macros.

	* Makefile.am (%.asm): Use a GNU pattern rule, to make %.o depend
	on both %.asm and asm.m4.

	* aes-internal.h (struct aes_table): New subtable idx_shift.
	Updated tables in aes_encrypt.c and aes_decrypt.c.

	* asm.m4: Use eval to compute values.

	* sparc/aes.asm (_aes_crypt): Deleted commented out old version of
	the code.

	* asm.m4: Added constants for individual rows of the aes table.

	* aes.c (IDX0, IDX1, IDX2, IDX3): New macros, encapsualting the
	structure of the idx table.

	* asm.m4: Define various aes struct offsets.

	* testsuite/cbc-test.c (test_cbc_bulk): Use aes_set_encrypt_key
	and aes_set_decrypt_key.

	* sparc/aes.asm (_aes_crypt): Use symbolic names for the fucntion
	arguments. 

Niels Möller's avatar
Niels Möller committed
198
199
2002-02-14  Niels Möller  <nisse@cuckoo.hack.org>

Niels Möller's avatar
Niels Möller committed
200
201
202
203
204
205
206
207
208
209
210
211
212
	* sparc/aes.asm: Copied gcc assembler code for _aes_crypt.

	* aesdata.c: New program for generating AES-related tables.

	* testsuite/testutils.c (print_hex): New function (moved from
	yarrow-test.c). 

	* testsuite/rsa-keygen-test.c (progress): Declare the ctx argument
	as UNUSED.

	* testsuite/cbc-test.c (test_cbc_bulk): New function, testing CBC
	with larger blocks.

Niels Möller's avatar
Niels Möller committed
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
	* yarrow256.c: Replaced uses of aes_set_key with
	aes_set_encrypt_key. 

	* nettle-meta.h (_NETTLE_CIPHER_SEP): New macro, useful for
	algorithms with separate encyption and decryption key setup. 

	* aes-internal.h (struct aes_table): New structure, including all
	constant tables needed by the unified encryption or decryption
	function _aes_crypt.

	* aes.c (_aes_crypt): New function, which unifies encryption and
	decryption.

	AES key setup now uses two separate functions for setting
	encryption and decryption keys. Applications that don't do
	decryption need no inverted subkeys and no code to generate them.
	Similarly, the tables (about 4K each for encryption and
	decryption), are put into separate files.

	* aes.h (struct aes_ctx): Deleted space for inverse subkeys. For
	decryption, the inverse subkeys replace the normal subkeys, and
	they are stored _in the order they are used_. 

	* aes-set-key.c (aes_set_key): Deleted file, code moved...
	* aes-set-decrypt-key.c, aes-set-encrypt-key.c: New files,
	separated normal and inverse key setup.

	* aes-tables.c: Deleted, tables moved elsewhere...
	* aes-encrypt.c, aes-decrypt.c: New files; moved encryption and
	decryption funktions, and needed tables, into separate files.

Niels Möller's avatar
Niels Möller committed
244
245
246
247
248
249
250
251
252
253
254
255
256
2002-02-13  Niels Möller  <nisse@cuckoo.hack.org>

	* aes.c (aes_encrypt): Don't unroll the innerloop.
	(aes_encrypt): Don't unroll the loop for the final round.
	(aes_decrypt): Likewise, no loop unrolling.

	* aes-set-key.c (aes_set_key): Reversed the order of the inverted
	subkeys. They are now stored in the same order as they are used.

	* aes-tables.c (itable): New bigger table, generated by aesdata.c. 

	* aes.c (aes_decrypt): Rewrote to use the bigger tables.

Niels Möller's avatar
Niels Möller committed
257
258
2002-02-12  Niels Möller  <nisse@cuckoo.hack.org>

Niels Möller's avatar
Niels Möller committed
259
260
261
262
263
264
265
266
267
268
269
270
	* aes.c (aes_encrypt): Interleave computation and output in the
	final round.

	* aes-internal.h (AES_SMALL): New macro.

	* aes.c (aes_encrypt): Optionally use smaller rotating inner loop.

	* aes-tables.c (dtbl): Replaced with table generated by aesdata.

	* aes.c (aes_encrypt): Rewrite, now uses larger tables in order to
	avoid rotates.

Niels Möller's avatar
Niels Möller committed
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
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
	* sparc/aes.asm (aes_encrypt): Strength reduced on j, getting rid
	of one register and one instruction in the inner loop.

	* sparc/aes.asm (idx, aes_encrypt): Multiplied tabled values by 4,
	making it possible to get rid of some shifts in the inner loop.

	* configure.in: Fixed spelling of --enable-assembler. Commented
	out debug echo:s.

	* asm.m4: New file. For now, only doing changequote and changecom.  

	* sparc/aes.asm (aes_encrypt): Added comments.
	(aes_encrypt): Cut off redundant instruction per block, also
	saving one redundant register pointing to idx.
	(idx_row): New macro. Include asm.m4.

2002-02-11  Niels Möller  <nisse@cuckoo.hack.org>

	* sparc/aes.asm (key_addition_8to32): Cleaned up.
	Deleted gcc-generated debugging information.

	* sparc/aes.asm (key_addition32): First attempt at optimization.
	Made it slower ;-)

	* sparc/aes.asm (key_addition32): Unrolled loop, gained 4%
	speed, payed four instructions compared to gcc
	generated code. 
	
	* Makefile.am (.asm.o): New rule for assembling via m4.
	(libnettle_a_SOURCES): Added new rsa and aes files.

	* configure.in: New command line option --enable-assembler.
	Selects assembler code depending on the host system.

	* rsa-decrypt.c, rsa-encrypt.c: New files for rsa pkcs#1
	encryption. 

	* aes-set-key.c, aes-tables.c: New files, split off from aes.c.
	Tables are now not static, but use a _aes_ prefix on their names. 

	* aes-internal.h: New file.

	* cast128-meta.c (_NETTLE_CIPHER_FIX): Use _NETTLE_CIPHER_FIX. 

	* cbc.c (cbc_decrypt_internal): New function, doing the real CBC
	procesing and requiring that src != dst.
	(cbc_decrypt): Use cbc_decrypt_internal. If src == dst, use a
	buffer of limited size to copy the ciphertext.

	* nettle-internal.c (nettle_blowfish128): Fixed definition, with
	key size in bits.

	* nettle-meta.h (_NETTLE_CIPHER_FIX): New macro, suitable for
	ciphers with a fixed key size.

	* examples/nettle-benchmark.c (display): New function for
	displaying the results, including MB/s figures.

	* sparc/aes.asm: New file. Not yet tuned in any way (it's just the
	code generated by gcc).

Niels Möller's avatar
Niels Möller committed
332
333
334
335
336
2002-02-11  Niels Möller  <nisse@lysator.liu.se>

	* x86/aes.asm, x86/aes_tables.asm: New assembler implementation by
	Rafael Sevilla. 

Niels Möller's avatar
Niels Möller committed
337
338
339
340
341
342
343
344
345
346
347
348
349
350
2002-02-06  Niels Möller  <nisse@cuckoo.hack.org>

	Applied patch from Dan Egnor improving the base64 code.
	* base64.h (BASE64_ENCODE_LENGTH): New macro.
	(struct base64_ctx): New context struct, for decoding.
	(BASE64_DECODE_LENGTH): New macro.
	* base64.c (base64_decode_init): New function.
	(base64_decode_update): New function, replacing base64_decode.
	Takes a struct base64_ctx argument.
	* nettle-meta.h: Updated nettle_armor, and related typedefs and
	macros. 
	* testsuite/testutils.c (test_armor): Updated.
	* configure.in: Use AC_PREREQ(2.50).

Niels Möller's avatar
Niels Möller committed
351
352
353
354
2002-02-01  Niels Möller  <nisse@cuckoo.hack.org>

	* Released nettle-1.5.

Niels Möller's avatar
Niels Möller committed
355
356
357
358
359
2002-01-31  Niels Möller  <nisse@cuckoo.hack.org>

	* acinclude.m4: Commented out gmp-related macros, they're probably
	not needed anymore.

Niels Möller's avatar
Niels Möller committed
360
361
362
363
364
365
366
367
2002-01-31  Niels Möller  <nisse@lysator.liu.se>

	* configure.in: Added command line options --with-lib-path and
	--with-include-path. Use the RPATH-macros to get correct flags for
	linking the test programs with gmp.

	* acinclude.m4: New file.

Niels Möller's avatar
Niels Möller committed
368
369
370
371
372
373
374
375
376
377
378
2002-01-31  Niels Möller  <nisse@cuckoo.hack.org>

	* nettle.texinfo (Randomness): New subsection on Yarrow.

2002-01-30  Niels Möller  <nisse@cuckoo.hack.org>

	* nettle.texinfo (Randomness): New chapter.
	Spell checking and ispell configuration.

	* md5.c: Added reference to RFC 1321.

Niels Möller's avatar
Niels Möller committed
379
380
381
382
2002-01-24  Niels Möller  <nisse@cuckoo.hack.org>

	* nettle.texinfo (Public-key algorithms): Minor fixes.

Niels Möller's avatar
Niels Möller committed
383
384
385
386
387
388
2002-01-22  Niels Möller  <nisse@cuckoo.hack.org>

	* nettle.texinfo (Nettle soup): New chapter.
	(Hash functions): New subsection on struct nettle_hash. 
	(Hash functions): New subsection on struct nettle_cipher.
	(Keyed hash functions): New section, describing MAC:s and HMAC.
Niels Möller's avatar
Niels Möller committed
389
	(Public-key algorithms): New chapter.
Niels Möller's avatar
Niels Möller committed
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406

	* testsuite/testutils.c (test_armor): New function.

	* testsuite/base64-test.c: New testcase.

	* testsuite/Makefile.am (TS_PROGS): Added base64-test.

	* nettle-meta.h (struct nettle_armor): New struct.

	* configure.in: Bumped version to 1.5.

	* Makefile.am (libnettle_a_SOURCES): Added base64 files, and some
	missing header files.

	* base64.c, base64.h, base64-meta.c: New files, hacked by Dan
	Egnor. 

Niels Möller's avatar
Niels Möller committed
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
2002-01-16  Niels Möller  <nisse@cuckoo.hack.org>

	* testsuite/yarrow-test.c: Deleted ran_array code, use
	knuth-lfib.h instead.

	* testsuite/testutils.c (test_rsa_md5, test_rsa_sha1): Moved
	functions here...
	* testsuite/rsa-test.c: ...from here.

	* testsuite/rsa-keygen-test.c: New file.

	* testsuite/knuth-lfib-test.c: New file.

	* Makefile.am (libnettle_a_SOURCES): Added knuth-lfib.c and
	rsa-keygen.c.

	* rsa-keygen.c: New file.

	* rsa.h (RSA_MINIMUM_N_OCTETS): New constant.
	(RSA_MINIMUM_N_BITS): New constant.
	(nettle_random_func, nettle_progress_func): New typedefs. Perhaps
	they don't really belong in this file.
	(rsa_generate_keypair): Added progress-callback argument.

	* macros.h (READ_UINT24, WRITE_UINT24, READ_UINT16, WRITE_UINT16):
	New macros.

	* knuth-lfib.c, knuth-lfib.h: New files, implementing a
	non-cryptographic prng.

Niels Möller's avatar
Niels Möller committed
437
438
439
440
2002-01-15  Niels Möller  <nisse@cuckoo.hack.org>

	* hmac-sha1.c: New file.

Niels Möller's avatar
Niels Möller committed
441
442
2002-01-14  Niels Möller  <nisse@cuckoo.hack.org>

Niels Möller's avatar
Niels Möller committed
443
444
	* configure.in: Bumped version to 1.1.

Niels Möller's avatar
Niels Möller committed
445
446
447
448
449
450
451
452
453
454
455
	* testsuite/hmac-test.c (test_main): Added hmac-sha1 test cases.

	* rsa.c (rsa_init_private_key, rsa_clear_private_key): Handle d. 

	* rsa.h (struct rsa_private_key): Reintroduced d attribute, to be
	used only for key generation output.
	(rsa_generate_keypair): Wrote a prototype.

	* Makefile.am (libnettle_a_SOURCES): Added hmac-sha1.c and
	nettle-internal.h. 

Niels Möller's avatar
Niels Möller committed
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
	* des.c: Use static const for all tables.
	(des_set_key): Use a new const * variable for the parity
	procesing, for constness reasons.

	* list-obj-sizes.awk: New file.

	* nettle-internal.c, nettle-internal.h: New files.

	* testsuite/Makefile.am (TS_PROGS): Added hmac-test. Deleted old
	m4-stuff. 

	* testsuite/testutils.h (LDATA): Moved this macro here,...
	* testsuite/rsa-test.c: ... from here.

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

	* hmac.h: General cleanup. Added declarations of hmac-md5,
	hmac-sha1 and hmac-sha256.

	* hmac.c: Bug fixes.

	* hmac-md5.c: First working version.

	* Makefile.am (libnettle_a_SOURCES): Added hmac.c and hmac-md5.c.
	(libnettleinclude_HEADERS): Added hmac.h.

	* testsuite/rsa-test.c: Also test a 777-bit key.

	* rsa.c (rsa_check_size): Changed argument to an mpz_t. Updated
	callers. 
	(rsa_prepare_private_key): Compute the size of the key by
	computing n = p * q.

	* rsa-compat.c: Adapted to new private key struct.
	* rsa_md5.c: Likesize.
	* rsa_sha1.c: Likesize.

	* rsa.c (rsa_check_size): New function, for computing and checking
	the size of the modulo in octets.
	(rsa_prepare_public_key): Usa rsa_check_size.
	(rsa_init_private_key): Removed code handling n, e and d.
	(rsa_clear_private_key): Likewise.
	(rsa_compute_root): Always use CRT.

	* rsa.h (struct rsa_private_key): Deleted public key and d from
	the struct, as they are not needed. Added size attribute.

Niels Möller's avatar
Niels Möller committed
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
2002-01-12  Niels Möller  <nisse@cuckoo.hack.org>

	* Makefile.am: Added *-meta files.

	* rsa.c (rsa_init_public_key): New function.
	(rsa_clear_public_key): Likewise.
	(rsa_init_private_key): Likewise.
	(rsa_clear_private_key): Likewise.

	* aes-meta.c: New file.
	* arcfour-meta.c: New file.
	* cast128-meta.c: New file.
	* serpent-meta.c: New file.
	* twofish-meta.c: New file.

	* examples/nettle-benchmark.c: Use the interface in nettle-meta.h. 

2002-01-11  Niels Möller  <nisse@cuckoo.hack.org>

	Don't use m4 for generating test programs, it's way overkill. Use
	the C preprocessor instead.
	* testsuite/*-test.c: New file.

	* hmac.c, hmac.h, hmac-md5.c: New files.

	Defined structures describing the algoriths. Useful for code that
	wants to treat an algorithm as a black box.
	* nettle-meta.h, md5-meta.c, sha1-meta.c, sha256-meta.c: New
	files. 

Niels Möller's avatar
Niels Möller committed
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
2002-01-09  Niels Möller  <nisse@cuckoo.hack.org>

	* rsa-compat.c: Updated for new md5 and rsa conventions.

	* rsa_md5.c: Represent a signature as an mpz_t, not a string.
	Updated calls of md5 functions.
	* rsa_sha1.c: Likewise.

	* rsa.c (rsa_prepare_public_key): Renamed function, was
	rsa_init_public_key. 
	(rsa_prepare_private_key): Renamed function, was
	rsa_init_private_key. 

	* nettle.texinfo (Hash functions): Update for the changed
	interface without *_final. Document sha256.

	* testsuite/md5-test.m4, testsuite/sha1-test.m4,
	testsuite/sha256-test.m4, testsuite/yarrow-test.c: Updated for new
	hash function interface.

	* yarrow256.c: Removed calls of sha256_final and and some calls of
	sha256_init.

	* md5-compat.c (MD5Final): Call only md5_digest.

	* md5.c (md5_digest): Call md5_final and md5_init.
	(md5_final): Declared static.
	sha1.c, sha256.c: Analogous changes.
	
	* bignum.c (nettle_mpz_get_str_256): Declare the input argument
	const. 

Niels Möller's avatar
Niels Möller committed
565
566
567
568
569
570
2001-12-14  Niels Möller  <nisse@cuckoo.hack.org>

	* Makefile.am (EXTRA_DIST): Added $(des_headers). Changed
	dependencies for $(des_headers) to depend only on the source file
	desdata.c, not on the executable.	

Niels Möller's avatar
Niels Möller committed
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
2001-12-12  Niels Möller  <nisse@cuckoo.hack.org>

	* testsuite/yarrow-test.c (main): Updated testcase to match fixed
	generator. Send verbose output to stdout, not stderr.

	* yarrow256.c (yarrow_slow_reseed): Bug fix, update the fast pool
	with the digest of the slow pool.
	(yarrow256_init): Initialize seed_file and counter to zero, to
	ease debugging. 

2001-12-07  Niels Möller  <nisse@cuckoo.hack.org>

	* bignum.c (nettle_mpz_get_str_256): Fixed handling of leading
	zeroes. 

Niels Möller's avatar
Niels Möller committed
586
587
588
589
590
591
592
593
594
595
596
597
598
2001-12-05  Niels Möller  <nisse@cuckoo.hack.org>

	* testsuite/yarrow-test.c (main): Updated test to match the fixed
	key event estimator.

	* yarrow_key_event.c (yarrow_key_event_estimate): Fixed handling
	of timing info. 

	* nettle.texinfo (Copyright): Say that under certain
	circumstances, Nettle can be used as if under the LGPL.

	* README: Added a paragraph on copyright.

599
600
601
602
2001-11-15  Niels Möller  <nisse@cuckoo.hack.org>

	* yarrow256.c (yarrow256_force_reseed): New function.

Niels Möller's avatar
Niels Möller committed
603
604
605
606
607
608
609
610
2001-11-14  Niels Möller  <nisse@ehand.com>

	* testsuite/yarrow-test.c (main): Use yarrow256_is_seeded.

	* yarrow256.c (yarrow256_needed_sources): New function.
	(yarrow256_is_seeded): New function.
	(yarrow256_update): Use yarrow256_needed_sources. 

Niels Möller's avatar
Niels Möller committed
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
2001-11-14  Niels Möller  <nisse@cuckoo.hack.org>

	* testsuite/yarrow-test.out: Updated, to match the seed-file aware
	generator. 

	* testsuite/yarrow-test.c: Updated expected_output. Check the seed
	file contents at the end.

	* yarrow256.c (yarrow256_seed): New function.
	(yarrow_fast_reseed): Create new seed file contents.

2001-11-13  Niels Möller  <nisse@cuckoo.hack.org>

	* yarrow.h: Deleted yarrow160 declarations.

Niels Möller's avatar
Niels Möller committed
626
627
628
629
630
2001-11-02  Niels Möller  <nisse@ehand.com>

	* yarrow256.c (yarrow256_init): Fixed order of code and
	declarations. 

Niels Möller's avatar
Niels Möller committed
631
632
2001-10-30  Niels Möller  <nisse@ehand.com>

Niels Möller's avatar
Niels Möller committed
633
634
635
636
637
638
639
640
	* rsa-compat.h: Added real prototypes and declarations.

	* Makefile.am (libnettle_a_SOURCES): Added rsa-compat.h and
	rsa-compat.c. 

	* rsa-compat.c: New file, implementing RSA ref signature and
	verification functions.

Niels Möller's avatar
Niels Möller committed
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
	* configure.in: Check for libgmp. Deleted tests for SIZEOF_INT and
	friends. 

	* rsa_sha1.c: New file, PKCS#1 rsa-sha1 signatures. 
	* rsa_md5.c: New file, PKCS#1 rsa-md5 signatures.

	* rsa.c: New file with general rsa functions.

	* Makefile.am (libnettle_a_SOURCES): Added rsa and bignum files.

	* bignum.c, bignum.h: New file, with base256 functions missing in
	gmp. 

	* testsuite/Makefile.am: Added bignum-test.

	* testsuite/run-tests (test_program): Check the xit code more
	carefully, and treat 77 as skip. This convention was borrowed from
	autotest. 

	* testsuite/macros.m4: New macro SKIP which exits with code 77.

	* testsuite/bignum-test.m4: New file.

Niels Möller's avatar
Niels Möller committed
664
665
666
667
668
2001-10-15  Niels Möller  <nisse@ehand.com>

	* testsuite/Makefile.am (EXTRA_DIST): Include rfc1750.txt in the
	distribution.

Niels Möller's avatar
Niels Möller committed
669
670
2001-10-14  Niels Möller  <nisse@cuckoo.hack.org>

Niels Möller's avatar
Niels Möller committed
671
672
673
	* testsuite/des-test.m4: Added testcase taken from applied
	cryptography. 

Niels Möller's avatar
Niels Möller committed
674
675
676
677
678
679
680
681
682
683
	* testsuite/yarrow-test.c: Use sha256 instead of sha1 for checking
	input and output. Updated the expected values.

	* yarrow256.c (YARROW_RESEED_ITERATIONS): New constant.
	(yarrow_iterate): New function.
	(yarrow_fast_reseed): Call yarrow_iterate.

	* testsuite/yarrow-test.c: Added verbose flag, disabled by
	default. 

Niels Möller's avatar
Niels Möller committed
684
685
686
687
688
689
690
691
2001-10-12  Niels Möller  <nisse@ehand.com>

	* examples/nettle-benchmark.c: Added more ciphers.

	* Makefile.am (SUBDIRS): Added the examples subdir.

	* configure.in: Output examples/Makefile.

Niels Möller's avatar
Niels Möller committed
692
693
694
695
2001-10-12  Niels Möller  <nisse@cuckoo.hack.org>

	* examples/nettle-benchmark.c: New benchmarking program. 

Niels Möller's avatar
Niels Möller committed
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
2001-10-10  Niels Möller  <nisse@ehand.com>

	* testsuite/yarrow-test.c: Open rfc1750.txt. Hash input and
	output, and compare to expected values.

	* testsuite/Makefile.am (CFLAGS): Don't disable optimization.
	(run-tests): Set srcdir in the environment when running run-tests. 

	* testsuite/rfc1750.txt: Added this rfc as test input for yarrow. 

	* yarrow_key_event.c (yarrow_key_event_estimate): Check if
	previous is zero.
	(yarrow_key_event_init): Initialize previous to zero.

	* yarrow256.c: Added debug some output.

	* testsuite/yarrow-test.c (main): Better output of entropy
	estimates at the end. 

Niels Möller's avatar
Niels Möller committed
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
2001-10-09  Niels Möller  <nisse@ehand.com>

	* testsuite/Makefile.am (TS_PROGS): Added yarrow-test.

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

	* yarrow256.c (yarrow256_init): Initialize the sources. 
	(yarrow256_random): Fixed loop condition.

	* yarrow.h (YARROW_KEY_EVENT_BUFFER): New constant.

	* yarrow_key_event.c: New file.

	* Makefile.am (libnettle_a_SOURCES): Added yarrow_key_event.c.

Niels Möller's avatar
Niels Möller committed
730
731
2001-10-08  Niels Möller  <nisse@cuckoo.hack.org>

732
733
	* yarrow.h (struct yarrow_key_event_ctx): New struct.

Niels Möller's avatar
Niels Möller committed
734
735
736
	* yarrow256.c (yarrow_fast_reseed): Generate two block of output
	using the old key and feed into the pool.

Niels Möller's avatar
Niels Möller committed
737
738
739
	* yarrow.h (struct yarrow256_ctx): Deleted buffer, index and
	block_count. 

Niels Möller's avatar
Niels Möller committed
740
741
742
	* yarrow256.c (yarrow_fast_reseed): New function.
	(yarrow_slow_reseed): New function.
	(yarrow256_update): Check seed/reseed thresholds.
Niels Möller's avatar
Niels Möller committed
743
744
745
746
747
748
749
	(yarrow_gate): New function, extracted from
	yarrow_generate_block_with_gate which was deleted.
	(yarrow_generate_block_with_gate): Deleted function.
	(yarrow256_random): Don't buffer any output, instead gate after
	each request.
	(YARROW_GATE_THRESHOLD): Deleted constant.
	
Niels Möller's avatar
Niels Möller committed
750
751
2001-10-07  Niels Möller  <nisse@cuckoo.hack.org>

Niels Möller's avatar
Niels Möller committed
752
753
754
755
756
757
	* Makefile.am: Added yarrow files.

	* yarrow256.c: New file, implementing Yarrow. Work in progress. 

	* sha256.c: New file, implementing SHA-256.

Niels Möller's avatar
Niels Möller committed
758
759
760
761
762
763
764
765
766
	* testsuite/Makefile.am (CFLAGS): Added sha256-test.

	* testsuite/sha256-test.m4: New testcases for SHA-256.

	* shadata.c: New file, for generating SHA-256 constants.

	* sha.h: Renamed sha1.h to sha.h, and added declarations for
	SHA-256. 

Niels Möller's avatar
Niels Möller committed
767
768
769
770
771
772
773
774
2001-10-05  Niels Möller  <nisse@ehand.com>

	* testsuite/aes-test.m4: Added a comment with NIST test vectors.

2001-10-04  Niels Möller  <nisse@ehand.com>

	* rsa.h, rsa-compat.h, yarrow.h: New files. 

Niels Möller's avatar
Niels Möller committed
775
776
777
778
2001-09-25  Niels Möller  <nisse@cuckoo.hack.org>

	* Released version 1.0.

Niels Möller's avatar
Niels Möller committed
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
2001-09-25  Niels Möller  <nisse@ehand.com>

	* sha1.c: Include stdlib.h, for abort.

	* md5.c: Include string.h, for memcpy.

	* testsuite/Makefile.am (M4_FILES): New variable. Explicitly list
	those C source files that should be generated by m4.

	* configure.in: Changed package name from "libnettle" to "nettle".

	* Makefile.am (EXTRA_DIST): Added .bootstrap.

	* AUTHORS: Added a reference to the manual.

Niels Möller's avatar
Niels Möller committed
794
795
796
797
798
2001-09-25  Niels Möller  <nisse@lysator.liu.se>

	* des-compat.c (des_cbc_cksum): Bug fix, local variable was
	declared in the middle of a block.

Niels Möller's avatar
Niels Möller committed
799
800
801
802
803
2001-09-19  Niels Möller  <nisse@cuckoo.hack.org>

	* nettle.texinfo (Compatibility functions): New section,
	mentioning md5-compat.h and des-compat.h.

Niels Möller's avatar
Niels Möller committed
804
805
806
807
2001-09-18  Niels Möller  <nisse@ehand.com>

	* index.html: New file.

Niels Möller's avatar
Niels Möller committed
808
809
2001-09-16  Niels Möller  <nisse@cuckoo.hack.org>

Niels Möller's avatar
Niels Möller committed
810
811
	* nettle.texinfo: Added description of des3. Minor fixes.

Niels Möller's avatar
Niels Möller committed
812
813
814
815
816
817
818
819
	* testsuite/des-compat-test.c (cbc_data): Shorten to 32 bytes (4
	blocks), the last block of zeroes wasn't used anyway.

	* des-compat.c (des_compat_des3_decrypt): Decrypt in the right
	order. 
	(des_ncbc_encrypt): Bug fixed.
	(des_cbc_encrypt): Rewritten as a wrapper around des_ncbc_encrypt.

Niels Möller's avatar
Niels Möller committed
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
2001-09-14  Niels Möller  <nisse@ehand.com>

	* testsuite/des-compat-test.c: New file, copied from libdes
	(freeswan). All implemented functions but des_cbc_cksum seems to
	work now.

	* testsuite/Makefile.am (TS_PROGS): Added des-compat-test.

	* des-compat.c: Added libdes typedef:s. Had to remove all use of
	const in the process.
	(des_check_key): New global variable, checked by des_set_key.

	* des.c (des_set_key): Go on and expand the key even if it is
	weak.

	* des-compat.c (des_cbc_cksum): Implemented.
	(des_key_sched): Fixed return values.

Niels Möller's avatar
Niels Möller committed
838
839
840
841
842
843
844
845
2001-09-11  Niels Möller  <nisse@cuckoo.hack.org>

	* Makefile.am: Added des-compat.c and des-compat.h

	* des-compat.c: Bugfixes, more functions implemented.

	* des-compat.h: Define DES_ENCRYPT and DES_DECRYPT. Bugfixes.

Niels Möller's avatar
Niels Möller committed
846
847
848
849
850
851
2001-09-10  Niels Möller  <nisse@ehand.com>

	* nettle.texinfo (Copyright): Added copyright information for
	serpent.
	(Miscellaneous functions): Started writing documentation on the CBC
	functions.
Niels Möller's avatar
Niels Möller committed
852
	(Cipher Block Chaining): This section more or less complete now.
Niels Möller's avatar
Niels Möller committed
853

Niels Möller's avatar
Niels Möller committed
854
855
2001-09-09  Niels Möller  <nisse@cuckoo.hack.org>

Niels Möller's avatar
Niels Möller committed
856
857
858
859
860
861
862
863
864
	* testsuite/cbc-test.m4: Record intermediate values in a comment. 
	* testsuite/des3-test.m4: Likewise.

	* testsuite/aes-test.m4: Added test case that appeared broken in
	the cbc test.

	* cbc.c (cbc_encrypt): Bug fix, encrypt block *after* XOR:ing the
	iv. 

Niels Möller's avatar
Niels Möller committed
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
	* Makefile.am (libnettleinclude_HEADERS): Added cbc.h. Deleted
	des3.h. 
	(libnettle_a_SOURCES): Added des3.c.

	* testsuite/Makefile.am (TS_PROGS): Added des3-test and cbc-test.

	* testsuite/cbc-test.m4: New testcase.

	* testsuite/des3-test.m4: New testcase.

	* cbc.h (CBC_CTX): New macro.
	(CBC_ENCRYPT): New macro.
	(CBC_DECRYPT): New macro.

	* des.c (des_fix_parity): New function.

	* des3.c: New file, implementing triple des.

Niels Möller's avatar
Niels Möller committed
883
884
885
886
887
888
2001-09-06  Niels Möller  <nisse@cuckoo.hack.org>

	* cbc.c, cbc.h: New files, for general CBC encryption.

	* des-compat.h: Added some prototypes.

Niels Möller's avatar
Niels Möller committed
889
890
891
892
893
894
895
896
897
898
899
900
901
902
2001-09-05  Niels Möller  <nisse@ehand.com>

	* testsuite/Makefile.am (TS_PROGS): Added md5-compat-test.

	* README: Copied introduction from the manual.

	* configure.in: Bumped version to 1.0.

	* Makefile.am (libnettleinclude_HEADERS): Added missing includes.
	(libnettle_a_SOURCES): Added md5-compat.c and md5-compat.h.

	* md5-compat.c, md5-compat.h: New files, implementing an RFC
	1321-style interface.

Niels Möller's avatar
Niels Möller committed
903
904
905
906
907
908
2001-09-02  Niels Möller  <nisse@cuckoo.hack.org>

	* twofish.c (twofish_decrypt): Fixed for();-bug in the block-loop.
	Spotted by Jean-Pierre.
	(twofish_encrypt): Likewise.

Niels Möller's avatar
Niels Möller committed
909
910
911
912
913
914
2001-07-03  Niels Möller  <nisse@ehand.com>

	* testsuite/testutils.c: Include string.h.

	* twofish.c: Include string.h.

Niels Möller's avatar
Niels Möller committed
915
916
2001-06-17  Niels Möller  <nisse@lysator.liu.se>

917
918
919
	* Makefile.am (des_headers): Dont use $(srcdir)/-prefixes as that
	seems to break with GNU make 3.79.1.

Niels Möller's avatar
Niels Möller committed
920
921
	* testsuite/testutils.c, testsuite/testutils.h: Use <inttypes.h>,
	not <stdint.h>.
922
	Include <stdlib.h>.
Niels Möller's avatar
Niels Möller committed
923

Niels Möller's avatar
Niels Möller committed
924
925
2001-06-17  Niels Möller  <nisse@cuckoo.hack.org>

Niels Möller's avatar
Niels Möller committed
926
927
928
929
	* Use <inttypes.h>, not <stdint.h>.

	* blowfish.h (BLOWFISH_MAX_KEY_SIZE): Fixed, should be 56. 

Niels Möller's avatar
Niels Möller committed
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
	* Fixed copyright notices.

	* Makefile.am (libnettle_a_SOURCES): Added desinfo.h and
	desCode.h. 
	(info_TEXINFOS): Added manual.
	(EXTRA_DIST): Added nettle.html.
	(%.html): Added rule for building nettle.html.

	* nettle.texinfo: New manual.

	* configure.in: Bumped version to 0.2.

	* testsuite/Makefile.am (TS_PROGS): Added cast128 test.

	* Added CAST128.

Niels Möller's avatar
Niels Möller committed
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
	* testsuite/serpent-test.m4: Added a few rudimentary tests
	extracted from the serpent package.

	* twofish.c: Adapted to nettle. Made constant tables const.
	Deleted bytes_to_word and word_to_bytes; use LE_READ_UINT32 and
	LE_WRITE_UINT32 instead.
	(twofish_selftest): Deleted. Moved the tests to the external
	testsuite. 
	(twofish_set_key): Don't silently truncate too large keys. 

	* sha1.c (sha1_update): Use unsigned for length.

	* serpent.c (serpent_set_key): Read the key backwards. Fixed
	padding (but there are no test vectors for key_size not a multiple
	of 4).
	(serpent_encrypt): Read and write data in the strange order used
	by the reference implementation.
	(serpent_decrypt): Likewise.

	* macros.h (FOR_BLOCKS): New macro, taken from lsh.

	* blowfish.h (struct blowfish_ctx): Use a two-dimensional array
	for s.

	* blowfish.c (initial_ctx): Arrange constants into a struct, to
	simplify key setup.
	(F): Deleted all but one definitions of the F function/macro.
	Added a context argument, and use that to find the subkeys.
	(R): Added context argument, and use that to find the subkeys.
	(blowfish_set_key): Some simplification.

	(encrypt): Deleted code for non-standard number of rounds. Deleted
	a bunch of local variables. Using the context pointer for
	everything should consume less registers.
	(decrypt): Likewise.

	* Makefile.am (libnettle_a_SOURCES): Added twofish.

2001-06-16  Niels Möller  <nisse@cuckoo.hack.org>

	* testsuite/blowfish-test.m4: Fixed test.

	* Added twofish implementation.

	* blowfish.h (struct blowfish_ctx): Use the correct size for the p
	array. 

Niels Möller's avatar
Niels Möller committed
993
994
2001-06-15  Niels Möller  <nisse@ehand.com>

Niels Möller's avatar
Niels Möller committed
995
996
997
	* testsuite/blowfish-test.m4: Fixed testcase, use correct key
	length. 

Niels Möller's avatar
Niels Möller committed
998
	* Makefile.am (libnettle_a_SOURCES): Added blowfish files.
Niels Möller's avatar
Niels Möller committed
999
1000
	($(des_headers)): Strip directory part when passing file name to
	desdata. 
Niels Möller's avatar
Niels Möller committed
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012

	* testsuite/blowfish-test.m4: Added one test, from GNUPG.

	* Created blowfish.c and blowfish.h (from GNUPG via LSH). Needs
	more work.

	* aes.h: Fixed copyright notice to not mention GNU MP. XXX: Review
	all nettle copyrights.

	* testsuite/Makefile.am (TS_PROGS): Added tests for twofish and
	blowfish.

Niels Möller's avatar
Niels Möller committed
1013
1014
1015
1016
2001-06-13  Niels Möller  <nisse@ehand.com>

	* Makefile.am (libnettle_a_SOURCES): Added serpent files.

Niels Möller's avatar
Niels Möller committed
1017
1018
2001-06-12  Niels Möller  <nisse@cuckoo.hack.org>

Niels Möller's avatar
Niels Möller committed
1019
1020
1021
	* des.c (des_encrypt, des_decrypt): Assert that the key setup was
	successful.
	
Niels Möller's avatar
Niels Möller committed
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
	* testsuite/Makefile.am (TS_PROGS): Added tests for des and sha1. 

	* testsuite/sha1-test.m4: New file.

	* testsuite/des-test.m4: New file.

	* Added SHA1 files.

	* Added desCore files.
	
	* Makefile.am: Added desCore and sha1.

1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
2001-04-17  Niels Möller  <nisse@cuckoo.hack.org>

	* install-sh: Copied the standard install script.

	* testsuite/Makefile.am (CFLAGS): Disable optimization. Add
	$(top_srcdir) to the include path.
	(EXTRA_DIST): Added testutils.h, testutils.c and run-tests.
	(run-tests): Fixed path to run-tests.

	* Makefile.am (EXTRA_DIST): Added memxor.h.
	(libnettleinclude_HEADERS): Install headers in
	$(libnettleincludedir). 

Niels Möller's avatar
Niels Möller committed
1047
1048
1049
1050
2001-04-13  Niels Möller  <nisse@cuckoo.hack.org>

	* Initial checkin.