static char *make_ext_salt_para(int rounds, char *saltpara) { static char salt[10]; sprintf(salt, "_%s%s", int_to_base64(rounds), saltpara); return salt; }
static char *make_ext_salt(int rounds) { static char salt[10]; sprintf(salt, "_%s", int_to_base64(rounds)); generate_random_salt(&salt[5], 4); salt[9] = '\0'; return salt; }
size_t simple_vsnprintf(char *buf, size_t size, const char *format, va_list va) { char *s = NULL; char *fp = (char *) format; size_t c = 0; unsigned long i = 0; long width = 0; bool islong = 0, caps = false, width_modifier = false, rpad = false; char pad = ' '; re_eval: while (*fp && c < size - 1) { if (*fp == '%' || width_modifier) { re_eval_with_modifier: ++fp; if (unlikely(width_modifier)) { if (egg_isdigit(*fp)) { width = 10 * width + (*fp - '0'); goto re_eval; } else width_modifier = false; } switch (*fp) { /* Left padding with zeroes */ case '0': width_modifier = true; pad = '0'; goto re_eval_with_modifier; /* Right padding with spaces */ case '-': rpad = true; goto re_eval_with_modifier; /* Left padding with spaces */ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': width_modifier = true; width = 10 * width + (*fp - '0'); pad = ' '; goto re_eval_with_modifier; case 'z': case 'l': islong = 1; goto re_eval_with_modifier; case '^': //STRING caps = true; goto re_eval_with_modifier; case 's': //string s = va_arg(va, char *); break; case 'd': //int case 'i': if (islong) { i = va_arg(va, long); islong = 0; } else i = va_arg(va, int); s = int_to_string(i, 10); break; case 'D': //stupid eggdrop base64 i = va_arg(va, int); s = int_to_base64((unsigned int) i); break; case 'u': //unsigned if (islong) { i = va_arg(va, unsigned long); islong = 0; } else i = va_arg(va, unsigned int); s = unsigned_int_to_string(i, 10); break; case 'X': //HEX caps = true; case 'x': //hex if (islong) { i = va_arg(va, unsigned long); islong = 0; } else