Hi all,
I tried using the AES-assembler code for my PowerPC EABI, but everytime I start
"speed aes" my OS crashes. The 32Bit OS is a custom one.
The first problem was the usage of r13. On Page 3 of the PowerPC EABI spec [1],
the r13 register is described as a dedicated register.
So the usage of such a register is delicate.
I could not use it because it is forbidden in our startup code.
But at Line 101 of "crypto/aes/asm/aes-ppc.pl" I found a workaround for the 64
bit case, which replaces r13 with r0.
# stay away from TLS pointer
if ($SIZE_T==8) { die if ($t1 ne "r13"); $t1="r0"; }
else { die if ($Tbl3 ne "r2"); $Tbl3=$t0; $t0="r0"; }
So in the aes-ppc Perl source I replaced r13 with r0 at line 77, which made the
line 538
lwz $t1,4($key)
execute smoothly.
I do not think it compromises the security since its just using a different
register.
The second and much more delicate problem was the "LAES_Te" symbol: why do we
need this piece of code? Would it be safe to leave it aside? I'm asking because
this code (in my case) overwrites r3, therefore leaving me without access to
the first argument of the whole function. Because the value of the link
register is saved in r3, the "out" argument will point to the .text section,
and thus the whole code will crash if the MMU prohibits accesses to this
section.
Sincerely yours
Marius Peschke
[1]
http://www.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF77852569970071B0D6/$file/eabi_app.pdf
--
NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!
Jetzt informieren: http://www.gmx.net/de/go/freephone
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [email protected]