Skip to content

Commit 40c5578

Browse files
Tom St Denissjaeckel
authored andcommitted
added libtomcrypt-0.95
1 parent 1f8b8bd commit 40c5578

180 files changed

Lines changed: 10106 additions & 4965 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

LICENSE

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
LibTomCrypt is public domain. As should all quality software be.
2-
3-
All of the software was either written by or donated to Tom St Denis for the purposes
4-
of this project. The only exception is the SAFER.C source which has no known
5-
license status (assumed copyrighted) which is why SAFER,C is shipped as disabled.
6-
7-
Tom St Denis
1+
LibTomCrypt is public domain. As should all quality software be.
2+
3+
All of the software was either written by or donated to Tom St Denis for the purposes
4+
of this project. The only exception is the SAFER.C source which has no known
5+
license status (assumed copyrighted) which is why SAFER,C is shipped as disabled.
6+
7+
Tom St Denis
8+
9+

PLAN

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
The following functions are marked for removal and/or behavioural change by v1.00 of LibTomCrypt
2+
3+
1. RSA Support
4+
5+
rsa_pad, rsa_signpad, rsa_depad, rsa_signdepad, rsa_import, rsa_export
6+
7+
They will be replaced with PKCS #1 compliant OAEP/PSS padding function as early as v0.96
8+
9+
2. DSA Support
10+
11+
dsa_import, dsa_export
12+
13+
Will be replaced with suitable DSS [what is the standard?] compliant formats. Planned for v0.96
14+
15+
3. Key Ring Support
16+
17+
(all)
18+
19+
The entire API will be dropped as early as v0.96. It was just an experiment and nobody uses it anyways.
20+
21+
4. Test Harness
22+
23+
demos/test.c
24+
25+
The test harness is well overdue for a makeover. Planned for as early as v0.97
26+
27+
28+
Put things in order...
29+
30+
v0.96 -- removed keyring.c and gf.c
31+
-- removed LTC RSA padding
32+
-- DSS support [whatever this entails]
33+
-- Bug fixes/updates to the PKCS/DSS support, should be stable in this release
34+
35+
v0.97 -- Re-written test harness
36+
-- More demos in the manual and demos/ directory
37+
38+
... future???

aes.c

Lines changed: 81 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* algorithms in a highly modular and flexible manner.
55
*
66
* The library is free for all purposes without any express
7-
* gurantee it works.
7+
* guarantee it works.
88
*
99
* Tom St Denis, tomstdenis@iahu.ca, http://libtomcrypt.org
1010
*/
@@ -183,28 +183,28 @@ int rijndael_setup(const unsigned char *key, int keylen, int rounds, symmetric_k
183183
#ifdef SMALL_CODE
184184
temp = rrk[0];
185185
rk[0] =
186-
Td0[255 & Te4[byte(temp, 3)]] ^
187-
Td1[255 & Te4[byte(temp, 2)]] ^
188-
Td2[255 & Te4[byte(temp, 1)]] ^
189-
Td3[255 & Te4[byte(temp, 0)]];
186+
Td0(255 & Te4[byte(temp, 3)]) ^
187+
Td1(255 & Te4[byte(temp, 2)]) ^
188+
Td2(255 & Te4[byte(temp, 1)]) ^
189+
Td3(255 & Te4[byte(temp, 0)]);
190190
temp = rrk[1];
191191
rk[1] =
192-
Td0[255 & Te4[byte(temp, 3)]] ^
193-
Td1[255 & Te4[byte(temp, 2)]] ^
194-
Td2[255 & Te4[byte(temp, 1)]] ^
195-
Td3[255 & Te4[byte(temp, 0)]];
192+
Td0(255 & Te4[byte(temp, 3)]) ^
193+
Td1(255 & Te4[byte(temp, 2)]) ^
194+
Td2(255 & Te4[byte(temp, 1)]) ^
195+
Td3(255 & Te4[byte(temp, 0)]);
196196
temp = rrk[2];
197197
rk[2] =
198-
Td0[255 & Te4[byte(temp, 3)]] ^
199-
Td1[255 & Te4[byte(temp, 2)]] ^
200-
Td2[255 & Te4[byte(temp, 1)]] ^
201-
Td3[255 & Te4[byte(temp, 0)]];
198+
Td0(255 & Te4[byte(temp, 3)]) ^
199+
Td1(255 & Te4[byte(temp, 2)]) ^
200+
Td2(255 & Te4[byte(temp, 1)]) ^
201+
Td3(255 & Te4[byte(temp, 0)]);
202202
temp = rrk[3];
203203
rk[3] =
204-
Td0[255 & Te4[byte(temp, 3)]] ^
205-
Td1[255 & Te4[byte(temp, 2)]] ^
206-
Td2[255 & Te4[byte(temp, 1)]] ^
207-
Td3[255 & Te4[byte(temp, 0)]];
204+
Td0(255 & Te4[byte(temp, 3)]) ^
205+
Td1(255 & Te4[byte(temp, 2)]) ^
206+
Td2(255 & Te4[byte(temp, 1)]) ^
207+
Td3(255 & Te4[byte(temp, 0)]);
208208
#else
209209
temp = rrk[0];
210210
rk[0] =
@@ -276,28 +276,28 @@ void rijndael_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_
276276
r = Nr >> 1;
277277
for (;;) {
278278
t0 =
279-
Te0[byte(s0, 3)] ^
280-
Te1[byte(s1, 2)] ^
281-
Te2[byte(s2, 1)] ^
282-
Te3[byte(s3, 0)] ^
279+
Te0(byte(s0, 3)) ^
280+
Te1(byte(s1, 2)) ^
281+
Te2(byte(s2, 1)) ^
282+
Te3(byte(s3, 0)) ^
283283
rk[4];
284284
t1 =
285-
Te0[byte(s1, 3)] ^
286-
Te1[byte(s2, 2)] ^
287-
Te2[byte(s3, 1)] ^
288-
Te3[byte(s0, 0)] ^
285+
Te0(byte(s1, 3)) ^
286+
Te1(byte(s2, 2)) ^
287+
Te2(byte(s3, 1)) ^
288+
Te3(byte(s0, 0)) ^
289289
rk[5];
290290
t2 =
291-
Te0[byte(s2, 3)] ^
292-
Te1[byte(s3, 2)] ^
293-
Te2[byte(s0, 1)] ^
294-
Te3[byte(s1, 0)] ^
291+
Te0(byte(s2, 3)) ^
292+
Te1(byte(s3, 2)) ^
293+
Te2(byte(s0, 1)) ^
294+
Te3(byte(s1, 0)) ^
295295
rk[6];
296296
t3 =
297-
Te0[byte(s3, 3)] ^
298-
Te1[byte(s0, 2)] ^
299-
Te2[byte(s1, 1)] ^
300-
Te3[byte(s2, 0)] ^
297+
Te0(byte(s3, 3)) ^
298+
Te1(byte(s0, 2)) ^
299+
Te2(byte(s1, 1)) ^
300+
Te3(byte(s2, 0)) ^
301301
rk[7];
302302

303303
rk += 8;
@@ -306,28 +306,28 @@ void rijndael_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_
306306
}
307307

308308
s0 =
309-
Te0[byte(t0, 3)] ^
310-
Te1[byte(t1, 2)] ^
311-
Te2[byte(t2, 1)] ^
312-
Te3[byte(t3, 0)] ^
309+
Te0(byte(t0, 3)) ^
310+
Te1(byte(t1, 2)) ^
311+
Te2(byte(t2, 1)) ^
312+
Te3(byte(t3, 0)) ^
313313
rk[0];
314314
s1 =
315-
Te0[byte(t1, 3)] ^
316-
Te1[byte(t2, 2)] ^
317-
Te2[byte(t3, 1)] ^
318-
Te3[byte(t0, 0)] ^
315+
Te0(byte(t1, 3)) ^
316+
Te1(byte(t2, 2)) ^
317+
Te2(byte(t3, 1)) ^
318+
Te3(byte(t0, 0)) ^
319319
rk[1];
320320
s2 =
321-
Te0[byte(t2, 3)] ^
322-
Te1[byte(t3, 2)] ^
323-
Te2[byte(t0, 1)] ^
324-
Te3[byte(t1, 0)] ^
321+
Te0(byte(t2, 3)) ^
322+
Te1(byte(t3, 2)) ^
323+
Te2(byte(t0, 1)) ^
324+
Te3(byte(t1, 0)) ^
325325
rk[2];
326326
s3 =
327-
Te0[byte(t3, 3)] ^
328-
Te1[byte(t0, 2)] ^
329-
Te2[byte(t1, 1)] ^
330-
Te3[byte(t2, 0)] ^
327+
Te0(byte(t3, 3)) ^
328+
Te1(byte(t0, 2)) ^
329+
Te2(byte(t1, 1)) ^
330+
Te3(byte(t2, 0)) ^
331331
rk[3];
332332
}
333333
/*
@@ -404,28 +404,28 @@ void rijndael_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_
404404
for (;;) {
405405

406406
t0 =
407-
Td0[byte(s0, 3)] ^
408-
Td1[byte(s3, 2)] ^
409-
Td2[byte(s2, 1)] ^
410-
Td3[byte(s1, 0)] ^
407+
Td0(byte(s0, 3)) ^
408+
Td1(byte(s3, 2)) ^
409+
Td2(byte(s2, 1)) ^
410+
Td3(byte(s1, 0)) ^
411411
rk[4];
412412
t1 =
413-
Td0[byte(s1, 3)] ^
414-
Td1[byte(s0, 2)] ^
415-
Td2[byte(s3, 1)] ^
416-
Td3[byte(s2, 0)] ^
413+
Td0(byte(s1, 3)) ^
414+
Td1(byte(s0, 2)) ^
415+
Td2(byte(s3, 1)) ^
416+
Td3(byte(s2, 0)) ^
417417
rk[5];
418418
t2 =
419-
Td0[byte(s2, 3)] ^
420-
Td1[byte(s1, 2)] ^
421-
Td2[byte(s0, 1)] ^
422-
Td3[byte(s3, 0)] ^
419+
Td0(byte(s2, 3)) ^
420+
Td1(byte(s1, 2)) ^
421+
Td2(byte(s0, 1)) ^
422+
Td3(byte(s3, 0)) ^
423423
rk[6];
424424
t3 =
425-
Td0[byte(s3, 3)] ^
426-
Td1[byte(s2, 2)] ^
427-
Td2[byte(s1, 1)] ^
428-
Td3[byte(s0, 0)] ^
425+
Td0(byte(s3, 3)) ^
426+
Td1(byte(s2, 2)) ^
427+
Td2(byte(s1, 1)) ^
428+
Td3(byte(s0, 0)) ^
429429
rk[7];
430430

431431
rk += 8;
@@ -435,28 +435,28 @@ void rijndael_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_
435435

436436

437437
s0 =
438-
Td0[byte(t0, 3)] ^
439-
Td1[byte(t3, 2)] ^
440-
Td2[byte(t2, 1)] ^
441-
Td3[byte(t1, 0)] ^
438+
Td0(byte(t0, 3)) ^
439+
Td1(byte(t3, 2)) ^
440+
Td2(byte(t2, 1)) ^
441+
Td3(byte(t1, 0)) ^
442442
rk[0];
443443
s1 =
444-
Td0[byte(t1, 3)] ^
445-
Td1[byte(t0, 2)] ^
446-
Td2[byte(t3, 1)] ^
447-
Td3[byte(t2, 0)] ^
444+
Td0(byte(t1, 3)) ^
445+
Td1(byte(t0, 2)) ^
446+
Td2(byte(t3, 1)) ^
447+
Td3(byte(t2, 0)) ^
448448
rk[1];
449449
s2 =
450-
Td0[byte(t2, 3)] ^
451-
Td1[byte(t1, 2)] ^
452-
Td2[byte(t0, 1)] ^
453-
Td3[byte(t3, 0)] ^
450+
Td0(byte(t2, 3)) ^
451+
Td1(byte(t1, 2)) ^
452+
Td2(byte(t0, 1)) ^
453+
Td3(byte(t3, 0)) ^
454454
rk[2];
455455
s3 =
456-
Td0[byte(t3, 3)] ^
457-
Td1[byte(t2, 2)] ^
458-
Td2[byte(t1, 1)] ^
459-
Td3[byte(t0, 0)] ^
456+
Td0(byte(t3, 3)) ^
457+
Td1(byte(t2, 2)) ^
458+
Td2(byte(t1, 1)) ^
459+
Td3(byte(t0, 0)) ^
460460
rk[3];
461461
}
462462

0 commit comments

Comments
 (0)