[git commit] libbb/yescrypt: code shrink

Denys Vlasenko vda.linux at googlemail.com
Sat Jul 19 15:20:35 UTC 2025


commit: https://git.busybox.net/busybox/commit/?id=51b45ce28a6a5bbc035b200f170d520f94b7e59f
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
blockmix_xor_save                                   1169     708    -461

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/yescrypt/alg-yescrypt-kdf.c | 53 ++++++++++++++++++---------------------
 1 file changed, 25 insertions(+), 28 deletions(-)

diff --git a/libbb/yescrypt/alg-yescrypt-kdf.c b/libbb/yescrypt/alg-yescrypt-kdf.c
index f75361d96..01503c6e0 100644
--- a/libbb/yescrypt/alg-yescrypt-kdf.c
+++ b/libbb/yescrypt/alg-yescrypt-kdf.c
@@ -368,10 +368,10 @@ typedef struct {
  * be 128r bytes in length; the output Bout must also be the same size.
  */
 static void blockmix(
-		    const salsa20_blk_t *restrict Bin,
-		    salsa20_blk_t *restrict Bout,
-		    size_t r,
-		    pwxform_ctx_t *restrict ctx)
+		const salsa20_blk_t *restrict Bin,
+		salsa20_blk_t *restrict Bout,
+		size_t r,
+		pwxform_ctx_t *restrict ctx)
 {
 	uint8_t *S0 = ctx->S0, *S1 = ctx->S1, *S2 = ctx->S2;
 	size_t w = ctx->w;
@@ -386,22 +386,25 @@ static void blockmix(
 	DECL_SMASK2REG;
 
 	i = 0;
-	do {
+	for (;;) {
 		XOR_X(Bin[i]);
 		PWXFORM;
 		if (unlikely(i >= r))
 			break;
 		WRITE_X(Bout[i]);
 		i++;
-	} while (1);
+	}
 
-	ctx->S0 = S0; ctx->S1 = S1; ctx->S2 = S2;
+	ctx->S0 = S0;
+	ctx->S1 = S1;
+	ctx->S2 = S2;
 	ctx->w = w;
 
 	SALSA20_2(Bout[i]);
 }
 
-static uint32_t blockmix_xor(const salsa20_blk_t *Bin1,
+static uint32_t blockmix_xor(
+		const salsa20_blk_t *Bin1,
 		const salsa20_blk_t *restrict Bin2,
 		salsa20_blk_t *Bout,
 		size_t r,
@@ -462,24 +465,18 @@ static uint32_t blockmix_xor_save(
 
 	i = 0;
 	r--;
-	do {
+	for (;;) {
 		XOR_X_WRITE_XOR_Y_2(Bin2[i], Bin1out[i]);
 		PWXFORM;
-		WRITE_X(Bin1out[i]);
-
-		XOR_X_WRITE_XOR_Y_2(Bin2[i + 1], Bin1out[i + 1]);
-		PWXFORM;
-
-		if (unlikely(i >= r))
+		if (unlikely(i > r))
 			break;
+		WRITE_X(Bin1out[i]);
+		i++;
+	}
 
-		WRITE_X(Bin1out[i + 1]);
-
-		i += 2;
-	} while (1);
-	i++;
-
-	ctx->S0 = S0; ctx->S1 = S1; ctx->S2 = S2;
+	ctx->S0 = S0;
+	ctx->S1 = S1;
+	ctx->S2 = S2;
 	ctx->w = w;
 
 	SALSA20_2(Bin1out[i]);
@@ -801,7 +798,7 @@ static void smix(uint8_t *B, size_t r, uint32_t N, uint32_t p, uint32_t t,
 		if (flags___YESCRYPT_RW) {
 			uint8_t *Si = S + i * Salloc;
 			smix1(Bp, 1, Sbytes / 128, 0 /* no flags */,
-			    (salsa20_blk_t *)Si, 0, NULL, XYp, NULL);
+				(salsa20_blk_t *)Si, 0, NULL, XYp, NULL);
 			ctx_i = (pwxform_ctx_t *)(Si + Sbytes);
 			ctx_i->S2 = Si;
 			ctx_i->S1 = Si + Sbytes / 3;
@@ -809,7 +806,7 @@ static void smix(uint8_t *B, size_t r, uint32_t N, uint32_t p, uint32_t t,
 			ctx_i->w = 0;
 			if (i == 0)
 				hmac_block(
-				        /* key,len: */ Bp + (128 * r - 64), 64,
+					/* key,len: */ Bp + (128 * r - 64), 64,
 					/* hash fn: */ sha256_begin,
 					/* in,len: */  passwd, 32,
 					/* outbuf: */  passwd
@@ -817,7 +814,7 @@ static void smix(uint8_t *B, size_t r, uint32_t N, uint32_t p, uint32_t t,
 		}
 		smix1(Bp, r, Np, flags, Vp, NROM, VROM, XYp, ctx_i);
 		smix2(Bp, r, p2floor(Np), Nloop_rw, flags, Vp,
-		    NROM, VROM, XYp, ctx_i);
+			NROM, VROM, XYp, ctx_i);
 	}
 
 	if (Nloop_all > Nloop_rw) {
@@ -830,8 +827,8 @@ static void smix(uint8_t *B, size_t r, uint32_t N, uint32_t p, uint32_t t,
 				ctx_i = (pwxform_ctx_t *)(Si + Sbytes);
 			}
 			smix2(Bp, r, N, Nloop_all - Nloop_rw,
-                              flags & (uint32_t)~YESCRYPT_RW,
-                              V, NROM, VROM, XYp, ctx_i);
+				flags & (uint32_t)~YESCRYPT_RW,
+				V, NROM, VROM, XYp, ctx_i);
 		}
 	}
 }
@@ -1046,7 +1043,7 @@ static int yescrypt_kdf32_body(
 		uint32_t i;
 		for (i = 0; i < p; i++) {
 			smix(&B[(size_t)128 * r * i], r, N, 1, t, flags, V,
-			    YCTX_param_NROM, VROM, XY, NULL, NULL);
+				YCTX_param_NROM, VROM, XY, NULL, NULL);
 		}
 	}
 


More information about the busybox-cvs mailing list