[git commit] libbb: code shrink in DES crypt

Denys Vlasenko vda.linux at googlemail.com
Sun Jul 6 17:14:09 UTC 2025


commit: https://git.busybox.net/busybox/commit/?id=82bbbd2e538c29a585a6cb00be2e999f50bf865c
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
pw_encrypt                                           941     945      +4
bits32                                               128       -    -128
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/0 up/down: 4/-128)           Total: -124 bytes
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/pw_encrypt_des.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/libbb/pw_encrypt_des.c b/libbb/pw_encrypt_des.c
index 8b5edaaed..38c76a15c 100644
--- a/libbb/pw_encrypt_des.c
+++ b/libbb/pw_encrypt_des.c
@@ -186,17 +186,6 @@ static const uint8_t pbox[32] ALIGN1 = {
 	 2,  8, 24, 14, 32, 27,  3,  9, 19, 13, 30,  6, 22, 11,  4, 25
 };
 
-static const uint32_t bits32[32] ALIGN4 = {
-	0x80000000, 0x40000000, 0x20000000, 0x10000000,
-	0x08000000, 0x04000000, 0x02000000, 0x01000000,
-	0x00800000, 0x00400000, 0x00200000, 0x00100000,
-	0x00080000, 0x00040000, 0x00020000, 0x00010000,
-	0x00008000, 0x00004000, 0x00002000, 0x00001000,
-	0x00000800, 0x00000400, 0x00000200, 0x00000100,
-	0x00000080, 0x00000040, 0x00000020, 0x00000010,
-	0x00000008, 0x00000004, 0x00000002, 0x00000001
-};
-
 static const uint8_t bits8[8] ALIGN1 = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 };
 
 
@@ -335,11 +324,18 @@ des_init(struct des_ctx *ctx, const struct const_des_ctx *cctx)
 	int i, j, b, k, inbit, obit;
 	uint32_t p;
 	const uint32_t *bits28, *bits24;
+	uint32_t bits32[32];
 
 	if (!ctx)
 		ctx = xmalloc(sizeof(*ctx));
 	const_ctx = cctx;
 
+	p = 0x80000000U;
+	for (i = 0; p; i++) {
+		bits32[i] = p;
+		p >>= 1;
+	}
+
 #if USE_REPETITIVE_SPEEDUP
 	old_rawkey0 = old_rawkey1 = 0;
 	old_salt = 0;


More information about the busybox-cvs mailing list