summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2002-05-15 23:19:49 +0200
committerNiels Möller <nisse@lysator.liu.se>2002-05-15 23:19:49 +0200
commitbc527459a99f94bbf754cb5c50d04b893540880a (patch)
treef1ff93363dca21c6e65945c597a158bf5a39352c
parent220b54547bed3c32f4622f4aeb4d0614ae68ff22 (diff)
downloadnettle-bc527459a99f94bbf754cb5c50d04b893540880a.tar.gz
* aes-internal.h (struct aes_table): sparc_idx[0] should now
contain index values shifted by the size of a word, and with 2 added. This saves some additions in the sparc assembler code. Updates aes-encrypt-table.c and aes-decrypt-table.c. * aes-internal.h (struct aes_table): Renamed the shift_idx field to sparc_idx, as it will be tweaked to improve the sparc code. Also reduced its size to [2][4]. (IDX_FACTOR): Deleted constant. * aes-encrypt-table.c (_aes_encrypt_table): Adapted initializer of sparc_idx. * aes-decrypt-table.c (_aes_decrypt_table): Likewise. * asm.m4: Deleted AES_SIDX2, to match struct aes_table. Rev: src/nettle/aes-decrypt-table.c:1.3 Rev: src/nettle/aes-encrypt-table.c:1.3 Rev: src/nettle/aes-internal.h:1.8
-rw-r--r--aes-decrypt-table.c6
-rw-r--r--aes-encrypt-table.c6
-rw-r--r--aes-internal.h7
3 files changed, 12 insertions, 7 deletions
diff --git a/aes-decrypt-table.c b/aes-decrypt-table.c
index e2f1efe8..8eceb2bc 100644
--- a/aes-decrypt-table.c
+++ b/aes-decrypt-table.c
@@ -66,9 +66,9 @@ _aes_decrypt_table =
{ 3, 0, 1, 2 },
{ 2, 3, 0, 1 },
{ 1, 2, 3, 0 } },
- { /* sparc_idx, IDX1 and IDX3 shifted by the size of a word */
- { 12, 0, 4, 8 },
- { 4, 8, 12, 0 } },
+ { /* sparc_idx, explained in aes-internal.h */
+ { 14, 2, 6, 10 },
+ { 4, 8, 12, 0 } },
{ /* itable */
{
0x50a7f451,0x5365417e,0xc3a4171a,0x965e273a,
diff --git a/aes-encrypt-table.c b/aes-encrypt-table.c
index 73d59205..89f79673 100644
--- a/aes-encrypt-table.c
+++ b/aes-encrypt-table.c
@@ -77,9 +77,9 @@ _aes_encrypt_table =
{ 1, 2, 3, 0 },
{ 2, 3, 0, 1 },
{ 3, 0, 1, 2 } },
- { /* sparc_idx, IDX1 and IDX3 shifted by the size of a word */
- { 4, 8, 12, 0 },
- { 12, 0, 4, 8 } },
+ { /* sparc_idx, explained in aes-internal.h */
+ { 6, 10, 14, 2 },
+ { 12, 0, 4, 8 } },
{ /* dtable */
{
0xa56363c6,0x847c7cf8,0x997777ee,0x8d7b7bf6,
diff --git a/aes-internal.h b/aes-internal.h
index 0fa8ed00..e79c8b9b 100644
--- a/aes-internal.h
+++ b/aes-internal.h
@@ -45,7 +45,12 @@ struct aes_table
unsigned idx[3][4];
/* Variant of the idx array suitable for the sparc
- * assembler code. */
+ * assembler code.
+ *
+ * sparc_idx[0][i] = idx[0][i] * 4 + 2
+ * sparc_idx[1][i] = idx[2][i] * 4
+ */
+
unsigned sparc_idx [2][4];
uint32_t table[AES_TABLE_SIZE][0x100];