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); } }
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; } }