From b175384e4312a9ee0b8432fd411f4b968da8d557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Thu, 12 Mar 2015 20:51:55 +0100 Subject: [PATCH] Micro optimization of base64 and base16 context structs. --- ChangeLog | 5 +++++ base16.h | 4 ++-- base64.h | 12 ++++++------ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index aeb55b56..3d12926c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2015-03-12 Niels Möller <nisse@diamant.hack.org> + * base64.h (struct base64_encode_ctx): Micro optimization of + struct layout, saving a few bytes. + (struct base64_decode_ctx): Likewise. + * base16.h (struct base16_decode_ctx): Likewise. + * nettle.texinfo (ASCII encoding): Document base64url functions. 2015-03-10 Niels Möller <nisse@diamant.hack.org> diff --git a/base16.h b/base16.h index 3facfd4e..2579c0ef 100644 --- a/base16.h +++ b/base16.h @@ -74,8 +74,8 @@ base16_encode_update(uint8_t *dst, struct base16_decode_ctx { - unsigned word; /* Leftover bits */ - unsigned bits; /* Number buffered bits */ + unsigned char word; /* Leftover bits */ + unsigned char bits; /* Number buffered bits */ }; void diff --git a/base64.h b/base64.h index 10c4965c..79194bd4 100644 --- a/base64.h +++ b/base64.h @@ -73,9 +73,9 @@ extern "C" { struct base64_encode_ctx { - unsigned word; /* Leftover bits */ - unsigned bits; /* Number of bits, always 0, 2, or 4. */ const uint8_t *alphabet; /* Alphabet to use for encoding */ + unsigned short word; /* Leftover bits */ + unsigned char bits; /* Number of bits, always 0, 2, or 4. */ }; /* Initialize encoding context for base-64 */ @@ -126,12 +126,12 @@ base64_encode_group(uint8_t *dst, uint32_t group); struct base64_decode_ctx { - unsigned word; /* Leftover bits */ - unsigned bits; /* Number buffered bits */ + const signed char *table; /* Decoding table */ + unsigned short word; /* Leftover bits */ + unsigned char bits; /* Number buffered bits */ /* Number of padding characters encountered */ - unsigned padding; - const signed char *table; /* Decoding table */ + unsigned char padding; }; /* Initialize decoding context for base-64 */ -- GitLab