tls: replace aes encryption/decryption by much smaller one
authorDenys Vlasenko <vda.linux@googlemail.com>
Sat, 1 Apr 2017 18:11:59 +0000 (20:11 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sat, 1 Apr 2017 18:11:59 +0000 (20:11 +0200)
commit6e99f1cb45621d36958fa97943074d9c5e2e9306
tree8f17a96c9df15c2f7f8f49786c42d3efe4c1ed4c
parent8808f7fc2ec434621a213c1deb5966833bcfec58
tls: replace aes encryption/decryption by much smaller one

The replacement code is ~6 times slower,
but drastically decreases size of tls_aes.o:

text data bss dec hex filename
8050 0 0 8050 1f72 tls_aes_OLD.o
2461 0 0 2461 99d tls_aes.o

function                                             old     new   delta
sbox                                                   -     256    +256
rsbox                                                  -     256    +256
KeyExpansion                                           -     197    +197
Subword                                                -      66     +66
AddRoundKey                                            -      61     +61
static.Rcon                                            -      10     +10
rcon                                                  40       -     -40
setup_mix                                             80       -     -80
setup_mix2                                           123       -    -123
aes_cbc_decrypt                                     1377     971    -406
aes_cbc_encrypt                                     1375     644    -731
psAesInit                                            848       -    -848
Te4                                                 1024       -   -1024
TE0                                                 1024       -   -1024
TD0                                                 1024       -   -1024
Td4                                                 1040       -   -1040
------------------------------------------------------------------------------
(add/remove: 6/8 grow/shrink: 0/2 up/down: 846/-6340)       Total: -5494 bytes

This code is based on public domain "tiny-AES128-C" code.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/tls_aes.c