diff options
Diffstat (limited to 'libbb')
| -rw-r--r-- | libbb/yescrypt/alg-yescrypt-common.c | 13 | ||||
| -rw-r--r-- | libbb/yescrypt/alg-yescrypt.h | 2 |
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 | ||
