Commit Graph

234 Commits

Author SHA1 Message Date
Andy Polyakov
cb3b9b1323 Throw in more PA-RISC assembler. 2009-12-27 20:49:40 +00:00
Andy Polyakov
6f766a4181 aesni-x86.pl: eliminate development comments. 2009-11-15 16:40:22 +00:00
Andy Polyakov
c5036d785a aesni-x86_64.pl: resolve LNK1223 error. 2009-05-02 10:21:29 +00:00
Andy Polyakov
d608b4d662 AES-NI engine jumbo update. 2009-05-02 09:04:17 +00:00
Andy Polyakov
eda2da3235 aesni-x86.pl: fix another typo and add test script. 2009-04-27 15:46:32 +00:00
Andy Polyakov
c0b03d44fb aesni-x86.pl: fix typos. 2009-04-27 12:50:44 +00:00
Andy Polyakov
d64a7232d4 Intel AES-NI engine.
Submitted by: Huang Ying
2009-04-27 05:55:13 +00:00
Andy Polyakov
4e52b9845e aes-390x.pl: commentary update. 2009-03-17 20:04:11 +00:00
Andy Polyakov
e22b864846 Make SPARC assembler modules *really* Purify-friendly. 2009-03-17 18:31:08 +00:00
Andy Polyakov
4c78bc05c4 Make SPARC assembler Pirify-friendly (Purify can't cope with certain
PIC constructs).
2009-03-16 13:32:38 +00:00
Andy Polyakov
8626230a02 s390x assembler pack update. 2009-02-09 15:42:04 +00:00
Andy Polyakov
3b0ee0d2bf Revisit RT#1801 and complete fix. 2008-12-27 13:32:21 +00:00
Andy Polyakov
be01f79d3d x86_64 assembler pack: add support for Win64 SEH. 2008-12-19 11:17:29 +00:00
Andy Polyakov
6786f52ada SEGV in AES_cbc_encrypt in aes-x86_64 assembler module.
PR: 1801
Submitted by: Huang Ying
2008-12-17 14:11:30 +00:00
Andy Polyakov
aa8f38e49b x86_64 assembler pack to comply with updated styling x86_64-xlate.pl rules. 2008-11-12 08:15:52 +00:00
Andy Polyakov
492279f6f3 AIX build updates. 2008-09-12 14:45:54 +00:00
Andy Polyakov
96d13fe62b Micro-profiling assisted "optimization" for Power6. Essentially it's so
to say educational commit. Reordering instructions doesn't improve
performance much, rather exhibits Power6 limitations.
2008-02-06 10:18:19 +00:00
Andy Polyakov
addd641f3a Unify ppc assembler make rules. 2008-01-13 22:01:30 +00:00
Andy Polyakov
ab0ff06205 Make aes-x86_64 work with debug Win64 build. 2008-01-05 18:17:20 +00:00
Andy Polyakov
79eeb47031 Make AES_T[ed] private to aes-586 module. 2008-01-05 08:58:18 +00:00
Andy Polyakov
ad8bd4ece8 Combat [bogus] relocations in some assember modules. 2007-11-22 20:51:48 +00:00
Andy Polyakov
7722e53f12 Yet another ARM update. It appears to be more appropriate to make
developers responsible for -march choice.
2007-09-27 16:27:03 +00:00
Andy Polyakov
d7e915616d 10% performance tweak in 64-bit mode. 2007-09-27 06:19:25 +00:00
Andy Polyakov
55eab3b74b Make x86_64 modules work under Win64/x64. 2007-08-23 12:01:58 +00:00
Andy Polyakov
983180bb8b Buglet fixes and minor optimization in aes-x86_86 assembler. 2007-07-30 16:42:57 +00:00
Andy Polyakov
afaad0ada6 AES for IA64 update. 2007-07-27 18:20:52 +00:00
Andy Polyakov
a61710b868 Allow for option to skip hardware support. 2007-07-23 20:38:57 +00:00
Andy Polyakov
a415ebd026 Complete synchronization of aes-x86_64 with aes-586. 2007-07-21 14:20:46 +00:00
Andy Polyakov
52ee3d01ae Lppc_AES_[en|de]crypt_compact: size optimization. 2007-07-19 15:31:22 +00:00
Andy Polyakov
e59f992be6 Minor optimization in AES_set_encryption_key for x86_64. 2007-07-19 14:59:26 +00:00
Andy Polyakov
8bae7722a2 _x86_64_AES_[en|de]crypt_compact: size optimization and aggressive
T[ed]4 prefetch.
2007-07-19 14:29:41 +00:00
Andy Polyakov
96b0f6c16d Various minor updates to AES assembler modules. 2007-07-13 17:42:13 +00:00
Andy Polyakov
e1612ea59d Add _x86_64_AES_[en|de]crypt_compact. 2007-07-13 17:39:40 +00:00
Andy Polyakov
f20af72312 AES_set_[en|de]crypt_key for ARMv4. 2007-05-30 15:57:31 +00:00
Andy Polyakov
7ef643360d s390x gas can't handle .align 128. 2007-05-28 16:32:50 +00:00
Andy Polyakov
76c828c627 AES_set_[en|de]crypt_key for s390x. 2007-05-28 16:30:18 +00:00
Andy Polyakov
86d8f3ee19 Typo in aes-ppc.pl. 2007-05-19 20:00:33 +00:00
Andy Polyakov
9c200f5471 Initial draft of AES for PPC. 2007-05-19 17:16:27 +00:00
Andy Polyakov
3f6916cf29 Fix bug introduced in cn#16195. 2007-05-03 09:12:47 +00:00
Andy Polyakov
a4470ae7b2 Fine reading of manual suggests that km can return non-normal completion code. 2007-05-03 07:26:27 +00:00
Andy Polyakov
251718e4c1 Fix s390x bugs and correct performance coefficients. 2007-05-02 11:44:02 +00:00
Andy Polyakov
a2a54ffc5f s390x assembler pack. 2007-04-30 08:42:54 +00:00
Andy Polyakov
14b1d089b6 Minor touch to aes-armv4.pl. 2007-01-25 11:28:07 +00:00
Andy Polyakov
a296239bdd AES for ARMv4. 2007-01-25 10:44:48 +00:00
Andy Polyakov
591e85e928 Linking errors on IA64 and typo in aes-ia64.S. 2006-10-17 06:41:27 +00:00
Andy Polyakov
3a8012cbf2 Improve 386 portability of aes-586.pl. 2006-09-18 19:13:15 +00:00
Andy Polyakov
2b8a5406f9 Fix bug in aes-586.pl. 2006-08-31 21:15:38 +00:00
Andy Polyakov
6c69aa532e Revised AES_cbc_encrypt in x86 assembler module. 2006-08-07 09:05:52 +00:00
Andy Polyakov
fc92414273 Agressively prefetch S-box in SSE codepatch, relax alignment requirement,
check for SSE bit instead of MMX, as pshufw was introduces in PIII, minor
optimization, typos...
2006-08-02 22:38:16 +00:00
Andy Polyakov
53154d71c3 Switch to compact S-box when generating AES key schedule. 2006-08-02 07:46:56 +00:00
Andy Polyakov
22c268e6c9 Next generation aes-586.pl featuring AES_[en|de]crypt, accessing exclusively
256 byte S-box. AES_cbc_encrypt needs further work as it should also use
slow routines when processing smaller amount of data.
2006-07-31 20:03:56 +00:00
Andy Polyakov
af8c1d81a3 Reimplement outer rounds as "compact" in x86 assembler. This has rather
strong impact on decrypt performance, 20-25%. One probably should consider
switching between slower and faster routines depending on how much data
we were asked to process.
2006-07-18 10:05:38 +00:00
Andy Polyakov
985e4c4154 Mitigate the hazard of cache-collision timing attack on last round. The
only chance for T[ed]4 to get evicted in this module is when its cache
"overlaps" with last 128 bits of key schedule.
2006-06-28 08:52:16 +00:00
Andy Polyakov
9598fa8759 Mitigate the hazard of cache-collision timing attack on last round. Well,
prefetch could have been moved closer to Td4 references. Something for
later consideration...
2006-06-28 08:48:54 +00:00
Andy Polyakov
35e00cc2d8 Minor aes-sparcv9.pl optimization. 2005-12-10 12:32:22 +00:00
Andy Polyakov
7395d852c3 Initial draft for AES for UltraSPARC assembler. 2005-12-10 11:19:56 +00:00
Andy Polyakov
0066590f98 Pedantic polish to aes-ia64 and sha512-ia64. 2005-07-20 15:15:22 +00:00
Andy Polyakov
b3f56e8b38 Typo in version number. 2005-07-20 11:11:14 +00:00
Andy Polyakov
5826e4f481 Perl stylistic/cosmetic update for aes-x86_64.pl. 2005-07-20 11:09:02 +00:00
Andy Polyakov
ef428d5681 Fix unwind directives in IA-64 assembler modules. This helps symbolic
debugging and doesn't affect functionality.

Submitted by: David Mosberger

Obtained from: http://www.hpl.hp.com/research/linux/crypto/
2005-07-18 09:54:14 +00:00
Andy Polyakov
afbe674edb ~15% better AES x86_64 assembler. 2005-07-18 09:15:04 +00:00
Andy Polyakov
b4f5e5c959 Commentary section update. 2005-07-14 13:16:31 +00:00
Andy Polyakov
d85185217b AES x86_64 assembler implementation. 2005-07-12 15:44:58 +00:00
Andy Polyakov
4e28f13209 Pedantic polish to aes-586.pl:-) 2005-07-01 10:13:30 +00:00
Andy Polyakov
53a20bfd94 Typos in commentary section. 2005-06-30 22:09:03 +00:00
Andy Polyakov
a28062338c AES_cbc_encrypt to allow end-user to retain small blocks performance by
aligning the key schedule in a specific manner.
2005-06-30 22:06:35 +00:00
Andy Polyakov
e19e549041 Comply with optimization manual (no data should share cache-line with code). 2005-05-09 21:48:01 +00:00
Andy Polyakov
57ee007035 Fix constants.
PR: 1059
2005-05-07 08:11:50 +00:00
Andy Polyakov
3d5fd31280 Avoid L1 cache aliasing even between key and S-boxes. 2005-04-24 21:09:20 +00:00
Andy Polyakov
04d0d0accf Avoid aliasing between stack frames and S-boxes. Compress prefetch code. 2005-04-22 11:49:32 +00:00
Andy Polyakov
c8d5c71af5 Mitigate cache-timing attack in CBC mode. This is done by implementing
compressed tables (2x compression factor) and by pre-fetching them into
processor cache prior every CBC en-/decryption pass. One can argue why
just CBC? Well, it's commonly used mode in real-life applications and
API allows us to amortize the prefetch costs for larger data chunks...
2005-04-16 15:23:21 +00:00
Ulf Möller
8d274837e5 fix breakage for Perl versions that do boolean operations on long words 2005-03-19 11:13:30 +00:00
Andy Polyakov
efde5230f1 Improve ECB performance (48+14*rounds -> 18+13*rounds) and reserve for
hand-coded zero-copy AES_cbc_encrypt.
2005-01-24 14:14:53 +00:00
Andy Polyakov
bac252a5e3 Bug-fix in CBC encrypt tail processing and commentary section update. 2005-01-20 10:33:37 +00:00
Andy Polyakov
addb6e16a8 Throw in AES CBC assembler, up to +40% on aes-128-cbc benchmark. 2005-01-18 01:04:41 +00:00
Andy Polyakov
e7e1150706 "Monolithic" x86 assembler replacement for aes_core.c. Up to +15% better
performance on recent microarchitectures.
2005-01-13 15:35:44 +00:00
Andy Polyakov
25866e3982 Commentary update for AES IA-64 assembler module. 2004-12-30 10:55:02 +00:00
Andy Polyakov
3b3df98ca6 Minor AES x86 assembler tune-up. 2004-12-30 10:46:03 +00:00
Andy Polyakov
f1ce306f30 Oops-kind typos in aes-ia64.S... 2004-12-28 17:10:42 +00:00
Andy Polyakov
25558bf743 Eliminate copies of TeN and TdN, use those found in assembler module. 2004-12-23 21:40:23 +00:00
Andy Polyakov
713147109c AES x86 assembler implementation. 2004-12-23 21:32:34 +00:00
Andy Polyakov
5bd4c26057 Various IA-64 assembler fix-ups. 2004-07-23 22:54:18 +00:00
Andy Polyakov
2232b10f5a Add licensing terms. 2004-07-17 13:24:58 +00:00
Andy Polyakov
51ce5230cd AES assembler implementation for IA-64. Note that there is no anchor from
C code yet...
2004-07-01 11:15:23 +00:00