diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-11-25 14:03:59 +0100 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-11-25 14:03:59 +0100 |
| commit | be5ca42e8d5f36145cca6c2120899e7e2ad4f0b3 (patch) | |
| tree | 82128dc2958a2ff9a295ecba1c6c78073d2676d3 | |
| parent | 23d0d8caf42b6b55e531b2405d949c6606ed3e85 (diff) | |
| download | busybox-w32-be5ca42e8d5f36145cca6c2120899e7e2ad4f0b3.tar.gz busybox-w32-be5ca42e8d5f36145cca6c2120899e7e2ad4f0b3.tar.bz2 busybox-w32-be5ca42e8d5f36145cca6c2120899e7e2ad4f0b3.zip | |
tls: code shrink
function old new delta
aesgcm_GHASH 223 196 -27
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| -rw-r--r-- | networking/tls.c | 2 | ||||
| -rw-r--r-- | networking/tls_aesgcm.c | 18 |
2 files changed, 14 insertions, 6 deletions
diff --git a/networking/tls.c b/networking/tls.c index 7bdd58018..85a4e21dd 100644 --- a/networking/tls.c +++ b/networking/tls.c | |||
| @@ -867,7 +867,6 @@ static void xwrite_encrypted_aesgcm(tls_state_t *tls, unsigned size, unsigned ty | |||
| 867 | xorbuf_aligned_AES_BLOCK_SIZE(authtag, scratch); | 867 | xorbuf_aligned_AES_BLOCK_SIZE(authtag, scratch); |
| 868 | 868 | ||
| 869 | memcpy(buf, authtag, sizeof(authtag)); | 869 | memcpy(buf, authtag, sizeof(authtag)); |
| 870 | #undef COUNTER | ||
| 871 | 870 | ||
| 872 | /* Write out */ | 871 | /* Write out */ |
| 873 | xhdr = (void*)(tls->outbuf + OUTBUF_PFX - 8 - RECHDR_LEN); | 872 | xhdr = (void*)(tls->outbuf + OUTBUF_PFX - 8 - RECHDR_LEN); |
| @@ -881,6 +880,7 @@ static void xwrite_encrypted_aesgcm(tls_state_t *tls, unsigned size, unsigned ty | |||
| 881 | dump_raw_out(">> %s\n", xhdr, size); | 880 | dump_raw_out(">> %s\n", xhdr, size); |
| 882 | xwrite(tls->ofd, xhdr, size); | 881 | xwrite(tls->ofd, xhdr, size); |
| 883 | dbg("wrote %u bytes\n", size); | 882 | dbg("wrote %u bytes\n", size); |
| 883 | #undef COUNTER | ||
| 884 | } | 884 | } |
| 885 | 885 | ||
| 886 | static void xwrite_encrypted(tls_state_t *tls, unsigned size, unsigned type) | 886 | static void xwrite_encrypted(tls_state_t *tls, unsigned size, unsigned type) |
diff --git a/networking/tls_aesgcm.c b/networking/tls_aesgcm.c index 32ca40260..688df85fb 100644 --- a/networking/tls_aesgcm.c +++ b/networking/tls_aesgcm.c | |||
| @@ -87,8 +87,8 @@ void FAST_FUNC aesgcm_GHASH(byte* h, | |||
| 87 | ) | 87 | ) |
| 88 | { | 88 | { |
| 89 | byte x[AES_BLOCK_SIZE] ALIGNED_long; | 89 | byte x[AES_BLOCK_SIZE] ALIGNED_long; |
| 90 | byte scratch[AES_BLOCK_SIZE] ALIGNED_long; | 90 | // byte scratch[AES_BLOCK_SIZE] ALIGNED_long; |
| 91 | word32 blocks, partial; | 91 | unsigned blocks, partial; |
| 92 | //was: byte* h = aes->H; | 92 | //was: byte* h = aes->H; |
| 93 | 93 | ||
| 94 | //XMEMSET(x, 0, AES_BLOCK_SIZE); | 94 | //XMEMSET(x, 0, AES_BLOCK_SIZE); |
| @@ -133,9 +133,17 @@ void FAST_FUNC aesgcm_GHASH(byte* h, | |||
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | /* Hash in the lengths of A and C in bits */ | 135 | /* Hash in the lengths of A and C in bits */ |
| 136 | FlattenSzInBits(&scratch[0], aSz); | 136 | //FlattenSzInBits(&scratch[0], aSz); |
| 137 | FlattenSzInBits(&scratch[8], cSz); | 137 | //FlattenSzInBits(&scratch[8], cSz); |
| 138 | xorbuf_aligned_AES_BLOCK_SIZE(x, scratch); | 138 | //xorbuf_aligned_AES_BLOCK_SIZE(x, scratch); |
| 139 | // simpler: | ||
| 140 | #define P32(v) ((uint32_t*)v) | ||
| 141 | //P32(x)[0] ^= 0; | ||
| 142 | P32(x)[1] ^= SWAP_BE32(aSz * 8); | ||
| 143 | //P32(x)[2] ^= 0; | ||
| 144 | P32(x)[3] ^= SWAP_BE32(cSz * 8); | ||
| 145 | #undef P32 | ||
| 146 | |||
| 139 | GMULT(x, h); | 147 | GMULT(x, h); |
| 140 | 148 | ||
| 141 | /* Copy the result into s. */ | 149 | /* Copy the result into s. */ |
