On 2/24/2014 11:59 AM, Richard Henderson wrote:
> On 02/12/2014 01:23 PM, Tom Musta wrote:
>> +static uint8_t SBOX[256] = {
>
> I'm not keen on yet another copy of AES data.
>
> Please reuse "qemu/aes.h" as much as possible. Please see how we use those in
> target-i386; from a quick reading, these insns should match up:
>
> aesenc vcipher
> aesenclast vcipherlast
> aesdec vncipher
> aesdeclast vncipherlast
>
> It does look like the aes_shifts/aes_ishifts arrays should be moved from i386
> specific code. Which would also be good since ops_sse.h is included multiple
> times and thus we have unnecessary multiple copies of this data.
>
> There's more data that should be moved out to common code in
> target-arm/crypto_helper.c. The most pertinent of which is a copy of your
> SBOX
> and InvSBOX arrays, which you'll still need for the vsbox insn.
>
> I'll also note that arm contains a second copy of the aes_{i,}shifts arrays.
> So after those are moved to common code, we avoid that duplication too.
>
>
> r~
>
Richard,
Thanks for the feedback ... this is a good suggestion.
I see one problem with the PowerPC vncipher instruction. This instruction is
not equivalent the aesdec. Moreover, the AddRoundKey (XOR) is performed
*before*
applying the InvMixColumns operation. So the AES_Te4 mapping is not correct
for PPC.