Example #1
0
int main()
{
   // password checks using regex_match:
   CString pwd = "abcDEF---";
   CString pwd_check = "(?=.*[[:lower:]])(?=.*[[:upper:]])(?=.*[[:punct:]]).{6,}";
   bool b = is_valid_password(pwd, pwd_check);
   assert(b);
   pwd = "abcD-";
   b = is_valid_password(pwd, pwd_check);
   assert(!b);

   // filename extraction with regex_match:
   CString file = "abc.hpp";
   file = get_filename(file);
   assert(file == "abc.hpp");
   file = "c:\\a\\b\\c\\d.h";
   file = get_filename(file);
   assert(file == "d.h");

   // postcode extraction with regex_search:
   CString address = "Joe Bloke, 001 Somestreet, Somewhere,\nPL2 8AB";
   CString postcode = extract_postcode(address);
   assert(postcode = "PL2 8NV");

   // html link extraction with regex_iterator:
   CString text = "<dt><a href=\"syntax_perl.html\">Perl Regular Expressions</a></dt><dt><a href=\"syntax_extended.html\">POSIX-Extended Regular Expressions</a></dt><dt><a href=\"syntax_basic.html\">POSIX-Basic Regular Expressions</a></dt>";
   enumerate_links(text);
   enumerate_links2(text);

   CString credit_card_number = "1234567887654321";
   credit_card_number = human_readable_card_number(credit_card_number);
   assert(credit_card_number == "1234-5678-8765-4321");
   return 0;
}
Example #2
0
std::string get_next_password(const std::string& password) {
    std::string tmp = password;
    do {
        tmp = increment_password(tmp);
    } while (!is_valid_password(tmp));
    return tmp;
}
Example #3
0
int PromptForAccountInfo( ACCOUNT *acct, int for_self )
{
  PASSWD passcfm;
  char ans[4];
  int lineno, userok = 0, passok, cfm = 1;
  memset(acct, 0, sizeof(*acct));
  if (for_self) {
    prints("Welcome, new user! Enter a userid, 1-%d characters, no spaces.\n",
	   NAMELEN);
    lineno = 0;
  }
  else lineno = 3;
  while (!userok) {
    if (getdata(lineno,0,"Userid: ",acct->userid,NAMELEN+1,DOECHO,1) == -1)
      return -1;

    switch (CheckUserid(acct->userid)) {
    case 0: userok = 1;
      break;
    case 1: if (!for_self) return -1;   /* bail out */
      break;
    case 2: bbperror(S_USEREXISTS, NULL);
      break;
    case 3: bbperror(S_BADUSERID, NULL);
      break;
    }
  }
  if (lineno) lineno++;
  while (cfm) {
    do {
      getdata(lineno,0,"Enter Passwd: ", acct->passwd, PASSLEN+1, NOECHO, 0);
      passok = is_valid_password(acct->passwd);
      if (!passok) bbperror(S_BADPASSWD, NULL);
    } while (!passok);
    getdata(lineno+1,0,"Confirm Passwd: ", passcfm, PASSLEN+1, NOECHO, 0);
    if (cfm = strcmp(acct->passwd, passcfm))
      prints("\nPasswords did not match! Try again.\n");
  }
  if (lineno) lineno++;
  getdata(lineno,0,"User Name: ", acct->username, UNAMELEN+1, DOECHO, 0);
  if (lineno) lineno++;
  getdata(lineno,0,"Terminal type (default=vt100): ",
	  acct->terminal, TERMLEN+1, DOECHO, 0);
  getdata(lineno,0,"Charset (default=ascii): ",
          acct->charset, CSETLEN+1, DOECHO, 0);
  if (!for_self) {
    if (lineno) lineno++;
    getdata(lineno,0,"Real Name: ", acct->realname, RNAMELEN+1,DOECHO,0);
    if (lineno) lineno++;
    getdata(lineno,0,"Postal Address: ", acct->address, ADDRLEN+1,DOECHO,0);
  }
  if (lineno) lineno++;
  getdata(lineno,0,"E-mail address, if any: ",acct->email,MAILLEN+1,DOECHO,0);
  return 0;
}
Example #4
0
SetPasswd()
{
  ACCOUNT acct;
  int rc;
  PASSWD passbuf, passcfm;
  move(3,0);
  clrtobot();
  if ((rc = bbs_owninfo(&acct)) != S_OK) {
    move(4,0);
    prints("\n");
    bbperror(rc, "Cannot fetch old password");
    return PARTUPDATE;
  }
  if (getdata(3,0,"Old password: "******"\nSorry.\n");
    return PARTUPDATE;
  } 
  getdata(4,0,"New Password: "******"\nBad Password\n");
    return PARTUPDATE;
  }
  getdata(5,0,"Confirm Password: "******"Error entering password.\n");
    return PARTUPDATE;		
  }
  rc = bbs_set_passwd(passbuf);
  if (rc == S_OK)
    prints("Password was changed.\n");
  else 
    bbperror(rc, "Password change failed");

  return PARTUPDATE;
}