예제 #1
0
void PasswordVault::displayVaultContents()
{
   QMap<QString,QString> vault(Preferences::PasswordVaultContents());
   qDebug() << "Printing the contents of the Password Vault";

   QMap<QString,QString>::iterator iter;
   for (iter = vault.begin(); iter != vault.end(); ++iter) {
       qDebug() << iter.key() << " -> " << iter.value();
   }
   
}
예제 #2
0
void PasswordVault::storeServerPassword(QString const& server, QString const& password)
{
   if (unlock()) {
      std::string str(m_enigmaMachine->encrypt(password.toStdString()));
      QMap<QString, QString> vault(Preferences::PasswordVaultContents());
      vault.insert(server, QString::fromStdString(str));
      Preferences::PasswordVaultContents(vault);
      displayVaultContents();
   }else {
      QLOG_DEBUG() << "EnigmaMachine uninitialized";
   }
}
예제 #3
0
QString PasswordVault::getServerPassword(QString const& server)
{
   QString password;
   if (unlock()) {
      QMap<QString, QString> vault(Preferences::PasswordVaultContents());
      password = vault.value(server);
      if (!password.isEmpty()) {
         std::string str(m_enigmaMachine->decrypt(password.toStdString()));
         password = QString::fromStdString(str);
         OverwriteString(str);
      }
      displayVaultContents();
   }else {
      QLOG_DEBUG() << "EnigmaMachine uninitialized";
   }
   return password;
}
예제 #4
0
/* deal with a new player command in dungeon or city mode*/
void p_process(void)
{
    static int searchval=0;

    if (Player.status[BERSERK])
        if (goberserk()) {
            setgamestatus(SKIP_PLAYER);
            drawvision(Player.x,Player.y);
        }
    if (! gamestatusp(SKIP_PLAYER)) {
        if (searchval > 0) {
            searchval--;
            if (searchval == 0) resetgamestatus(FAST_MOVE);
        }
        drawvision(Player.x,Player.y);
        if (! gamestatusp(FAST_MOVE)) {
            searchval = 0;
            Cmd = mgetc();
            clear_if_necessary();
        }
        Command_Duration = 0;
        switch (Cmd) {
        case ' ':
        case 13:
            setgamestatus(SKIP_MONSTERS);
            break; /*no op on space or return*/
        case 6:
            abortshadowform();
            break; /* ^f */
        case 7:
            wizard();
            break; /* ^g */
        case 4:
            player_dump();
            break; /* ^d */
        case 9:
            display_pack();
            morewait();
            xredraw();
            break; /* ^i */
        case 11:
            if (gamestatusp(CHEATED)) frobgamestatus();
            break;
        case 12:
            xredraw();
            setgamestatus(SKIP_MONSTERS);
            break; /* ^l */
#if !defined(WIN32)
        case 16:
            bufferprint();
            setgamestatus(SKIP_MONSTERS);
            break; /* ^p */
#else
        case 15:
            bufferprint();
            setgamestatus(SKIP_MONSTERS);
            break; /* ^o */
#endif
        case 18:
            redraw();
            setgamestatus(SKIP_MONSTERS);
            break; /* ^r */
        case 23:
            if (gamestatusp(CHEATED)) drawscreen();
            break; /* ^w */
        case 24: /* ^x */
            if (gamestatusp(CHEATED) ||
                    Player.rank[ADEPT])
                wish(1);
            Command_Duration = 5;
            break;
        case 'a':
            zapwand();
            Command_Duration = Player.speed*8/5;
            break;
        case 'c':
            closedoor();
            Command_Duration = Player.speed*2/5;
            break;
        case 'd':
            drop();
            Command_Duration = Player.speed*5/5;
            break;
        case 'e':
            eat();
            Command_Duration = 30;
            break;
        case 'f':
            fire();
            Command_Duration = Player.speed*5/5;
            break;
        case 'g':
            pickup();
            Command_Duration = Player.speed*10/5;
            break;
        case 'i':
            do_inventory_control();
            break;
        case 'm':
            magic();
            Command_Duration = 12;
            break;
        case 'o':
            opendoor();
            Command_Duration = Player.speed*5/5;
            break;
        case 'p':
            pickpocket();
            Command_Duration = Player.speed*20/5;
            break;
        case 'q':
            quaff();
            Command_Duration = 10;
            break;
        case 'r':
            peruse();
            Command_Duration = 20;
            break;
        case 's':
            search(&searchval);
            Command_Duration = 20;
            break;
        case 't':
            talk();
            Command_Duration = 10;
            break;
        case 'v':
            vault();
            Command_Duration = Player.speed*10/5;
            break;
        case 'x':
            examine();
            Command_Duration = 1;
            break;
        case 'z':
            bash_location();
            Command_Duration = Player.speed*10/5;
            break;
        case 'A':
            activate();
            Command_Duration = 10;
            break;
        case 'C':
            callitem();
            break;
        case 'D':
            disarm();
            Command_Duration = 30;
            break;
        case 'E':
            dismount_steed();
            Command_Duration = Player.speed*10/5;
            break;
        case 'F':
            tacoptions();
            break;
        case 'G':
            give();
            Command_Duration = 10;
            break;
        case 'I':
            if (! optionp(TOPINV)) top_inventory_control();
            else {
                display_possessions();
                inventory_control();
            }
            break;
        case 'M':
            city_move();
            Command_Duration = 10;
            break;
        case 'O':
            setoptions();
#if defined(WIN32)
            show_screen();
            xredraw();
#endif
            break;
        case 'P':
            show_license();
            break; /* actually show_license is in file.c */
        case 'Q':
            quit();
            break;
        case 'R':
            rename_player();
            break;
        case 'S':
            save(FALSE);
            break;
        case 'T':
            tunnel();
            Command_Duration =  Player.speed*30/5;
            break;
        case 'V':
            version();
            break;
        case 'Z':
            bash_item();
            Command_Duration = Player.speed*10/5;
            break;
        case '.':
            rest();
            Command_Duration = 10;
            break;
        case ',':
            Command_Duration = 10;
            nap();
            break;
        case '>':
            downstairs();
            break;
        case '<':
            upstairs();
            break;
        case '@':
            p_movefunction(Level->site[Player.x][Player.y].p_locf);
            Command_Duration = 5;
            break;
        case '#':
            if (gamestatusp(CHEATED)) editstats();
            break; /* RAC - char editor */
        case '/':
            charid();
            setgamestatus(SKIP_MONSTERS);
            break;
        case '?':
            help();
            setgamestatus(SKIP_MONSTERS);
            break;
        case '4':
        case 'h':
            moveplayer(-1,0);
            Command_Duration = Player.speed*5/5;
            break;
        case '2':
        case 'j':
            moveplayer(0,1);
            Command_Duration = Player.speed*5/5;
            break;
        case '8':
        case 'k':
            moveplayer(0,-1);
            Command_Duration = Player.speed*5/5;
            break;
        case '6':
        case 'l':
            moveplayer(1,0);
            Command_Duration = Player.speed*5/5;
            break;
        case '1':
        case 'b':
            moveplayer(-1,1);
            Command_Duration = Player.speed*5/5;
            break;
        case '3':
        case 'n':
            moveplayer(1,1);
            Command_Duration = Player.speed*5/5;
            break;
        case '7':
        case 'y':
            moveplayer(-1,-1);
            Command_Duration = Player.speed*5/5;
            break;
        case '9':
        case 'u':
            moveplayer(1,-1);
            Command_Duration = Player.speed*5/5;
            break;
        case '5':
            setgamestatus(SKIP_MONSTERS); /* don't do anything; a dummy turn */
            Cmd = mgetc();
            while ((Cmd != ESCAPE) &&
                    ((Cmd < '1') || (Cmd > '9') || (Cmd=='5'))) {
                print3("Run in keypad direction [ESCAPE to abort]: ");
                Cmd = mgetc();
            }
            if (Cmd != ESCAPE) 
                setgamestatus(FAST_MOVE);
            else
                clearmsg3();
            break;
        case 'H':
            setgamestatus(FAST_MOVE);
            Cmd = 'h';
            moveplayer(-1,0);
            Command_Duration = Player.speed*4/5;
            break;
        case 'J':
            setgamestatus(FAST_MOVE);
            Cmd = 'j';
            moveplayer(0,1);
            Command_Duration = Player.speed*4/5;
            break;
        case 'K':
            setgamestatus(FAST_MOVE);
            Cmd = 'k';
            moveplayer(0,-1);
            Command_Duration = Player.speed*4/5;
            break;
        case 'L':
            setgamestatus(FAST_MOVE);
            Cmd = 'l';
            moveplayer(1,0);
            Command_Duration = Player.speed*4/5;
            break;
        case 'B':
            setgamestatus(FAST_MOVE);
            Cmd = 'b';
            moveplayer(-1,1);
            Command_Duration = Player.speed*4/5;
            break;
        case 'N':
            setgamestatus(FAST_MOVE);
            Cmd = 'n';
            moveplayer(1,1);
            Command_Duration = Player.speed*4/5;
            break;
        case 'Y':
            setgamestatus(FAST_MOVE);
            Cmd = 'y';
            moveplayer(-1,-1);
            Command_Duration = Player.speed*4/5;
            break;
        case 'U':
            setgamestatus(FAST_MOVE);
            Cmd = 'u';
            moveplayer(1,-1);
            Command_Duration = Player.speed*4/5;
            break;
        default:
            commanderror();
            setgamestatus(SKIP_MONSTERS);
            break;
        }
    }
    if (Current_Environment != E_COUNTRYSIDE) roomcheck();
    screencheck(Player.x,Player.y);
}
예제 #5
0
//Function to enter password or reset password
void enterVault()
{
	char display[8];
	pass[0] = 0x00;
	pass[1] = 0x00;
	pass[2] = 0x00;
	if(buttonPressed(BTN_ROTARY))	//Section for entering password
	{	
		UINT8 mem[3];
		eepromRead(0x0000, 3, mem);	//Read stored password from eeprom
		int y;
		y = 0;
		lcdInstruction("j");
		lcdString("   Enter Key   "); 
		lcdInstruction("1;0H");
		lcdString("    ");
		sprintf(display, "%2.2X-%2.2X-%2.2X", pass[0], pass[1], pass[2]);
		lcdString(display);		
		while(TRUE)
		{
			int x;
			x = 0;
			if(buttonPressed(BTN_ROTARY))
				y++;
			x = readRotaryKnob();
			if(x != 0 || y == 3)
			{	
				if(switchState(SWITCH_ROTARY))
					x = x*8;
				pass[y] += x;
				lcdInstruction("j");
				lcdString("   Enter Key   "); 
				lcdInstruction("1;0H");
				lcdString("    ");
				sprintf(display, "%2.2X-%2.2X-%2.2X", pass[0], pass[1], pass[2]);
				lcdString(display); 
				if(y == 3)				
				{
					lcdInstruction("j");
					if(mem[0] == pass[0] && mem[1] == pass[1] && mem[2] == pass[2])		//Compare passwords
					{
						lcdString("  Key Correct! ");
						while(!secondTick());
						while(!secondTick());
						vault();				//If correct go to data editing function
						break;
					}
					else
					{
						lcdString(" Key Incorrect! ");		//If incorrect print message and break
						while(!secondTick());
						while(!secondTick());
						break;
					}
				}
			}
		}			
	}
	
	else if(buttonPressed(BTN3))		//Section for resetting password
	{
		char data[17] = "abcdefghijklmnop";		//Used to reset data on eeprom
		int y;
		y = 0;
		lcdInstruction("j");
		lcdString("   Reset Key   "); 
		lcdInstruction("1;0H");
		lcdString("    ");
		sprintf(display, "%2.2X-%2.2X-%2.2X", pass[0], pass[1], pass[2]);
		lcdString(display);
		while(TRUE)
		{
			int x;
			x = 0;
			if(buttonPressed(BTN_ROTARY))
				y++;
			x = readRotaryKnob();
			if(x != 0 || y == 3)
			{	
					if(switchState(SWITCH_ROTARY))	
						x = x*8;
					pass[y] += x;
					lcdInstruction("j");
					lcdString("   Reset Key   "); 
					lcdInstruction("1;0H");
					lcdString("    ");
					sprintf(display, "%2.2X-%2.2X-%2.2X", pass[0], pass[1], pass[2]);
					lcdString(display); 
					if(y == 3)
					{
						lcdInstruction("j");
						lcdString("   Key Reset!   ");
						eepromWrite(0x0000, 3, pass);		//store new password
						while(!secondTick());
						while(!secondTick());
						while(!secondTick());
						eepromWrite(0x0003, 16, data);		//reset data
						vault();
						break;
					}
				}
			}
	}
}