Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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