aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
Diffstat (limited to 'libbb')
-rw-r--r--libbb/yescrypt/alg-yescrypt-common.c13
-rw-r--r--libbb/yescrypt/alg-yescrypt.h2
2 files changed, 9 insertions, 6 deletions
diff --git a/libbb/yescrypt/alg-yescrypt-common.c b/libbb/yescrypt/alg-yescrypt-common.c
index a54e21ce2..da7fa5e0f 100644
--- a/libbb/yescrypt/alg-yescrypt-common.c
+++ b/libbb/yescrypt/alg-yescrypt-common.c
@@ -197,15 +197,15 @@ uint8_t *yescrypt_r(
197 src = setting + 3; 197 src = setting + 3;
198 198
199 src = decode64_uint32(&flavor, src, 0); 199 src = decode64_uint32(&flavor, src, 0);
200 dbg("yescrypt flavor=0x%x YESCRYPT_RW:%u", 200 /* "j9T" returns: 0x2f */
201 (unsigned)flavor, !!(flavor & YESCRYPT_RW) 201 dbg("yescrypt flavor=0x%x YESCRYPT_RW:%u", (unsigned)flavor, !!(flavor & YESCRYPT_RW));
202 );
203 //if (!src) 202 //if (!src)
204 // goto fail; 203 // goto fail;
205 204
206 if (flavor < YESCRYPT_RW) { 205 if (flavor < YESCRYPT_RW) {
207 yctx->param.flags = flavor; 206 yctx->param.flags = flavor;
208 } else if (flavor <= YESCRYPT_RW + (YESCRYPT_RW_FLAVOR_MASK >> 2)) { 207 } else if (flavor <= YESCRYPT_RW + (YESCRYPT_RW_FLAVOR_MASK >> 2)) {
208 /* "j9T" sets flags to 0xb6 */
209 yctx->param.flags = YESCRYPT_RW + ((flavor - YESCRYPT_RW) << 2); 209 yctx->param.flags = YESCRYPT_RW + ((flavor - YESCRYPT_RW) << 2);
210 dbg("yctx->param.flags=0x%x", (unsigned)yctx->param.flags); 210 dbg("yctx->param.flags=0x%x", (unsigned)yctx->param.flags);
211 dbg(" YESCRYPT_RW:%u" , !!(yctx->param.flags & YESCRYPT_RW )); 211 dbg(" YESCRYPT_RW:%u" , !!(yctx->param.flags & YESCRYPT_RW ));
@@ -231,12 +231,15 @@ uint8_t *yescrypt_r(
231 if (/*!src ||*/ N_log2 > 63) 231 if (/*!src ||*/ N_log2 > 63)
232 goto fail; 232 goto fail;
233 yctx->param.N = (uint64_t)1 << N_log2; 233 yctx->param.N = (uint64_t)1 << N_log2;
234 /* "j9T" sets to 4096 (1<<12) */
234 dbg("yctx->param.N=%llu (1<<%u)", (unsigned long long)yctx->param.N, (unsigned)N_log2); 235 dbg("yctx->param.N=%llu (1<<%u)", (unsigned long long)yctx->param.N, (unsigned)N_log2);
235 236
236 src = decode64_uint32(&yctx->param.r, src, 1); 237 src = decode64_uint32(&yctx->param.r, src, 1);
238 /* "j9T" sets to 32 */
239 dbg("yctx->param.r=%u", yctx->param.r);
240
237 if (!src) 241 if (!src)
238 goto fail; 242 goto fail;
239 dbg("yctx->param.r=%u", yctx->param.r);
240 if (*src != '$') { 243 if (*src != '$') {
241 uint32_t have; 244 uint32_t have;
242 src = decode64_uint32(&have, src, 1); 245 src = decode64_uint32(&have, src, 1);
@@ -269,7 +272,7 @@ uint8_t *yescrypt_r(
269 yctx->saltlen = sizeof(yctx->salt); 272 yctx->saltlen = sizeof(yctx->salt);
270 saltend = decode64(yctx->salt, &yctx->saltlen, saltstr, saltstrlen); 273 saltend = decode64(yctx->salt, &yctx->saltlen, saltstr, saltstrlen);
271 if (saltend != saltstr + saltstrlen) 274 if (saltend != saltstr + saltstrlen)
272 goto fail; /* saltbin[] is too small, or bad char during decode */ 275 goto fail; /* salt[] is too small, or bad char during decode */
273 276
274 need = prefixlen + 1 + HASH_LEN + 1; 277 need = prefixlen + 1 + HASH_LEN + 1;
275 if (need > buflen || need < prefixlen) 278 if (need > buflen || need < prefixlen)
diff --git a/libbb/yescrypt/alg-yescrypt.h b/libbb/yescrypt/alg-yescrypt.h
index ebd705cf0..edabbc222 100644
--- a/libbb/yescrypt/alg-yescrypt.h
+++ b/libbb/yescrypt/alg-yescrypt.h
@@ -113,7 +113,7 @@ typedef struct {
113 yescrypt_params_t param; 113 yescrypt_params_t param;
114 114
115 /* salt in binary form */ 115 /* salt in binary form */
116 /* stored here to cut down on the amont of function paramaters */ 116 /* stored here to cut down on the amount of function paramaters */
117 unsigned char salt[64]; 117 unsigned char salt[64];
118 size_t saltlen; 118 size_t saltlen;
119 119