libbb/yescrypt: remove YESCRYPT_INIT_SHARED flag and code using it

It's only used by libxcrypt-4.4.38/lib/alg-yescrypt-opt.c code
(optimized code version?) which wasn't ported to busybox

function                                             old     new   delta
yescrypt_kdf                                         449     442      -7
static.smix                                          755     739     -16
alloc_region                                          72       -     -72
yescrypt_kdf_body                                   1467    1239    -228
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/3 up/down: 0/-323)           Total: -323 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2025-07-06 01:29:14 +02:00
parent 10196929da
commit bf8231d11d
2 changed files with 13 additions and 36 deletions

View file

@ -731,9 +731,7 @@ static void smix(uint8_t *B, size_t r, uint32_t N, uint32_t p, uint32_t t,
}
Nloop_rw = 0;
if (flags & YESCRYPT_INIT_SHARED)
Nloop_rw = Nloop_all;
else if (flags & YESCRYPT_RW)
if (flags & YESCRYPT_RW)
Nloop_rw = Nloop_all / p;
Nchunk &= ~(uint32_t)1; /* round down to even */
@ -872,19 +870,6 @@ static int yescrypt_kdf_body(
V = NULL;
V_size = (size_t)128 * r * N;
need = V_size;
if (flags & YESCRYPT_INIT_SHARED) {
if (local->aligned_size < need) {
if (local->base || local->aligned ||
local->base_size || local->aligned_size)
goto out_EINVAL;
if (!alloc_region(local, need))
return -1;
}
if (flags & YESCRYPT_ALLOC_ONLY)
return -2; /* expected "failure" */
V = (salsa20_blk_t *)local->aligned;
need = 0;
}
B_size = (size_t)128 * r * p;
need += B_size;
if (need < B_size)
@ -899,25 +884,18 @@ static int yescrypt_kdf_body(
if (need < S_size)
goto out_EINVAL;
}
if (flags & YESCRYPT_INIT_SHARED) {
if (!alloc_region(&tmp, need))
init_region(&tmp);
if (local->aligned_size < need) {
if (free_region(local))
return -1;
if (!alloc_region(local, need))
return -1;
B = (uint8_t *)tmp.aligned;
XY = (salsa20_blk_t *)((uint8_t *)B + B_size);
} else {
init_region(&tmp);
if (local->aligned_size < need) {
if (free_region(local))
return -1;
if (!alloc_region(local, need))
return -1;
}
if (flags & YESCRYPT_ALLOC_ONLY)
return -3; /* expected "failure" */
B = (uint8_t *)local->aligned;
V = (salsa20_blk_t *)((uint8_t *)B + B_size);
XY = (salsa20_blk_t *)((uint8_t *)V + V_size);
}
if (flags & YESCRYPT_ALLOC_ONLY)
return -3; /* expected "failure" */
B = (uint8_t *)local->aligned;
V = (salsa20_blk_t *)((uint8_t *)B + B_size);
XY = (salsa20_blk_t *)((uint8_t *)V + V_size);
S = NULL;
if (flags & YESCRYPT_RW)
S = (uint8_t *)XY + XY_size;
@ -1021,7 +999,7 @@ int yescrypt_kdf(
return -1;
}
if ((flags & (YESCRYPT_RW | YESCRYPT_INIT_SHARED)) == YESCRYPT_RW
if ((flags & YESCRYPT_RW)
&& p >= 1
&& N / p >= 0x100
&& N / p * r >= 0x20000

View file

@ -83,7 +83,6 @@ typedef uint32_t yescrypt_flags_t;
/* Private */
#define YESCRYPT_MODE_MASK 0x003
#define YESCRYPT_RW_FLAVOR_MASK 0x3fc
#define YESCRYPT_INIT_SHARED 0x01000000
#define YESCRYPT_ALLOC_ONLY 0x08000000
#define YESCRYPT_PREHASH 0x10000000
#endif
@ -98,7 +97,7 @@ typedef uint32_t yescrypt_flags_t;
#ifdef YESCRYPT_INTERNAL
#define YESCRYPT_KNOWN_FLAGS \
(YESCRYPT_MODE_MASK | YESCRYPT_RW_FLAVOR_MASK | \
YESCRYPT_INIT_SHARED | YESCRYPT_ALLOC_ONLY | YESCRYPT_PREHASH)
YESCRYPT_ALLOC_ONLY | YESCRYPT_PREHASH)
#endif
/**