[git commit] libbb/yescrypt: remove YESCRYPT_INIT_SHARED flag and code using it
Denys Vlasenko
vda.linux at googlemail.com
Sat Jul 5 23:29:14 UTC 2025
commit: https://git.busybox.net/busybox/commit/?id=bf8231d11ddd49abcded8b18b63ddeaea49c7fc8
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
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 at googlemail.com>
---
libbb/yescrypt/alg-yescrypt-kdf.c | 46 ++++++++++-----------------------------
libbb/yescrypt/alg-yescrypt.h | 3 +--
2 files changed, 13 insertions(+), 36 deletions(-)
diff --git a/libbb/yescrypt/alg-yescrypt-kdf.c b/libbb/yescrypt/alg-yescrypt-kdf.c
index da23c1b59..6c1108514 100644
--- a/libbb/yescrypt/alg-yescrypt-kdf.c
+++ b/libbb/yescrypt/alg-yescrypt-kdf.c
@@ -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
diff --git a/libbb/yescrypt/alg-yescrypt.h b/libbb/yescrypt/alg-yescrypt.h
index 09638e3e1..fb791e899 100644
--- a/libbb/yescrypt/alg-yescrypt.h
+++ b/libbb/yescrypt/alg-yescrypt.h
@@ -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
/**
More information about the busybox-cvs
mailing list