Andy Polyakov
bc0f56d6d7
aes-s390x.pl: fix crash in AES_set_decrypt_key in linux32-s390x build [from HEAD].
2012-04-09 15:12:30 +00:00
Andy Polyakov
8cd2ea552e
aes-armv4.pl: make it more foolproof [inspired by aes-s390x.pl in 1.0.1].
2012-04-05 08:32:08 +00:00
Andy Polyakov
3f0becbf75
aes-s390x.pl: fix endless loop in linux32-s390x build [from 1.0.1].
2012-04-05 08:17:47 +00:00
Andy Polyakov
9df9c9d102
vpaes-x86[_64].pl: handle zero length in vpaes_cbc_encrypt [from HEAD].
...
PR: 2775
2012-03-31 16:55:34 +00:00
Andy Polyakov
d68d160cb7
bsaes-x86_64.pl: optimize key conversion [from HEAD].
2012-03-16 21:45:51 +00:00
Andy Polyakov
397977726c
aes-sparcv9.pl: clean up regexp [from HEAD].
...
PR: 2685
2012-01-11 15:32:08 +00:00
Andy Polyakov
700384be8e
vpaes-x86.pl: revert previous commit and solve the problem through x86masm.pl [from HEAD].
...
PR: 2657
2011-12-15 22:20:26 +00:00
Andy Polyakov
3918de9ad1
vpaes-x86.pl: portability fix.
...
PR: 2657
2011-12-14 21:30:25 +00:00
Andy Polyakov
0a8f00af34
bsaes-x86_64.pl: fix buffer overrun in tail processing [from HEAD].
2011-11-16 23:36:40 +00:00
Andy Polyakov
58402976b4
aes-armv4.pl: make it link.
2011-11-15 13:55:52 +00:00
Andy Polyakov
aecc0756e8
aes-s390x.pl: make it link.
2011-11-15 12:20:55 +00:00
Andy Polyakov
2357ae17e7
x86 assembler pack update from HEAD.
2011-11-14 21:06:50 +00:00
Andy Polyakov
70b52222f5
x86_64 assembler pack update from HEAD.
2011-11-14 21:01:21 +00:00
Andy Polyakov
88cb59727c
ARM assembler pack update from HEAD.
2011-11-14 20:58:01 +00:00
Andy Polyakov
b66723b23e
MIPS assembler pack update from HEAD.
2011-11-14 20:55:24 +00:00
Andy Polyakov
cf96d71c22
PPC assembler pack update from HEAD.
2011-11-14 20:54:17 +00:00
Andy Polyakov
1a111921da
PA-RISC assembler pack update from HEAD.
2011-11-14 20:50:15 +00:00
Andy Polyakov
9833757b5d
s390x assembler pack update from HEAD.
2011-11-14 20:47:22 +00:00
Andy Polyakov
42660b3cf1
aesni-x86[_64].pl: pull from HEAD.
2011-10-14 09:21:03 +00:00
Andy Polyakov
84e7485bfb
Add RC4-MD5 and AESNI-SHA1 "stitched" implementations [from HEAD].
2011-08-23 20:53:34 +00:00
Dr. Stephen Henson
8315aa03fc
Fix assembly language function renaming so it works on WIN64.
2011-07-01 14:13:52 +00:00
Andy Polyakov
fbe2e28911
AES-NI backport from HEAD. Note that e_aes.c doesn't implement all modes
...
from HEAD yet, more will be back-ported later.
2011-06-28 14:49:35 +00:00
Dr. Stephen Henson
c6fa97a6d6
FIPS low level blocking for AES, RC4 and Camellia. This is complicated by
...
use of assembly language routines: rename the assembly language function
to the private_* variant unconditionally and perform tests from a small
C wrapper.
2011-06-05 17:36:44 +00:00
Andy Polyakov
4e2b990734
ARM assembler pack: reschedule instructions for dual-issue pipeline [from HEAD].
...
Modest improvement coefficients mean that code already had some
parallelism and there was not very much room for improvement. Special
thanks to Ted Krovetz for benchmarking the code with such patience.
2010-07-13 14:08:22 +00:00
Andy Polyakov
c73cff12f1
aes-ppc.pl: 10% performance improvement on Power6 [from HEAD].
2010-04-10 14:54:34 +00:00
Andy Polyakov
1244d5b713
ARMv4 assembler: [unconfirmed] fix for compilation failure [from HEAD].
2010-03-29 09:59:58 +00:00
Andy Polyakov
3e719c99f5
s390x assembler update: add support for run-time facility detection [from HEAD].
2010-01-19 21:40:58 +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