
TRILLIAN
GetPasswd(WORD *laenge, char **inbuf, int Len, char *outbuf)
{
  char  Buffer[80 + 1];
  char *bufpoi;
  char  zeichen;
  WORD  i;
  char *p = *inbuf;
  WORD  n = *laenge;

  skipsp(&n, &p);

  bufpoi = Buffer;
  i = 0;
  while (n > 0)
  {
    if (((zeichen = (char)(*p)) == ' ' ))
      break;

    if (i++ == Len - 1)
      return(ERRORS);

    *bufpoi++ = zeichen;
    ++p;
    --n;
  }

  if (i == 0)
    return(NO);

  Buffer[i] = 0;

  memset(outbuf, 0, sizeof(outbuf));

  strncpy(outbuf, Buffer, NAMESIZE);
  *laenge = n;
  *inbuf  = p;

  return(YES);
}


/* Eine SIMPLE Kodierung eines Strings.      */
/* Koennte man spaeter noch weiter ausbauen! */
void PasswdKodierung(const char *in, char *out)
{
  char passwd[80 + 1] = DEFAULT_PASS;
  int  i,
       a = 0;
  int  j = 0;

  /* String leer? */
  if (in[0] == FALSE)
  {
    out[0] = 0;
    return;
  }

  j = strlen(in);

  if (  (j < 5)
      ||(j > 81))
  {
    out[0] = 0;
    return;
  }

  /* Frischer Buffer. */
  memset(out, 0, sizeof(out));

  for (i = 0; i < j; i++)
  {
    a = passwd[i] + in[i];
    out[i] = a;
  }

  /* Und zum Schluss das 0 Zeichen. */
  out[i] = 0;
  return;
}

/* Eine SIMPLE Dekodierung eines Strings.    */
/* Koennte man spaeter noch weiter ausbauen! */
void PasswdDekodierung(const char *in, char *out)
{
  char passwd[80 + 1] = DEFAULT_PASS;
  int  i,
       a = 0;
  int  j;

  /* String leer? */
  if (in[0] == FALSE)
  {
    out[0] = 0;
    return;
  }

  j = strlen(in);

  if (  (j < 5)
      ||(j > 81))
  {
    out[0] = 0;
    return;
  }

  /* Frischer Buffer. */
  memset(out, 0, sizeof(out));

  for (i = 0; i < j; i++)
  {
    a = in[i] - passwd[i];
    out[i] = a;
  }

  /* Und zum Schluss das 0 Zeichen. */
  out[i] = 0;
  return;
}

/* End of src/cvs_passwd.c */
