[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