Ejemplo n.º 1
0
void IdentityRedirectInserter::StartInsert(const long localidentityid, const std::string &redirect)
{
	std::string idstring("");

	StringFunctions::Convert(localidentityid,idstring);

	SQLite3DB::Statement st=m_db->Prepare("SELECT PrivateKey FROM tblLocalIdentity WHERE LocalIdentityID=?");
	st.Bind(0, localidentityid);
	st.Step();

	if(st.RowReturned())
	{
		std::string privatekey("");
		std::string messagebase("");
		Option option(m_db);

		option.Get("MessageBase",messagebase);

		st.ResultText(0, privatekey);

		FCPv2::Message mess("ClientPut");
		mess["URI"]="USK"+privatekey.substr(3)+messagebase+"|IdentityRedirect/0/";
		mess["Identifier"]="IdentityRedirectInserter|"+idstring+"|"+mess["URI"];
		mess["UploadFrom"]="redirect";
		mess["TargetURI"]=redirect;
		m_fcp->Send(mess);

		m_log->debug("IdentityRedirectInserter::StartInsert inserting redirect for "+idstring+" to "+redirect);
	}
}
Ejemplo n.º 2
0
void MainWindow::on_pushAsymmDecrypt_clicked()
{
	if(lastUsedAlgo != selectedAsymmAlgo())
	{
		QMessageBox::critical(this, "Ошибка", "Строка была зашифрована другим алгоритмом.", QMessageBox::Ok);
		return;
	}

	switch(lastUsedAlgo)
	{
	case Scrambler::ElGamalCypher:
	{
		if(ui->editAsymmEncrypted->text() == ""
				|| ui->editAsymmPrivateKey->text() == ""
				|| ui->editAsymmPubKey->text() == "")
		{
			QMessageBox::critical(this, "Ошибка", "Зашифрованная строка и ключи не должны быть пустыми.", QMessageBox::Ok);
			return;
		}

		QStringList key = ui->editAsymmPubKey->text().split(" ", QString::SkipEmptyParts);
		if(key.length() < 3)
		{
			QMessageBox::critical(this, "Ошибка", "Открытый ключ должен состоять из трех чисел, разделенных пробелом.", QMessageBox::Ok);
			return;
		}

		Scrambler::ElGamal::openKey pubkey(key[0], key[1], key[2]);
		ui->editAsymmSource->setText(Scrambler::ElGamal::DecryptElGamal(ui->editAsymmEncrypted->text(), pubkey, ui->editAsymmPrivateKey->text()));
		break;
	}

	case Scrambler::Rsa:
	{
		if(ui->editAsymmEncrypted->text() == ""
				|| ui->editAsymmPrivateKey->text() == "")
		{
			QMessageBox::critical(this, "Ошибка", "Зашифрованная строка и закрытый ключ не должны быть пустыми.", QMessageBox::Ok);
			return;
		}

		QStringList key = ui->editAsymmPrivateKey->text().split(" ", QString::SkipEmptyParts);
		if(key.length() < 2)
		{
			QMessageBox::critical(this, "Ошибка", "Закрытый ключ должен состоять из двух чисел, разделенных пробелом.", QMessageBox::Ok);
			return;
		}

		Scrambler::RSA::closedKey privatekey(key[0], key[1]);
		ui->editAsymmSource->setText(Scrambler::RSA::DecryptRSA(ui->editAsymmEncrypted->text(), privatekey));
		break;
	}

	case Scrambler::Caesar:
	case Scrambler::Invalid:
	case Scrambler::SingleReshuffle:
	case Scrambler::SingleWithKey:
	case Scrambler::DoubleReshuffle:
	case Scrambler::Gronsfeld:
	case Scrambler::ManyAlphabet:
	case Scrambler::GammaCypher:
		break;
	}
}