bool App::askSslPassphrasePromptDialog(ConnectionSettings *connSettings) const { auto sslSettings = connSettings->sslSettings(); bool ok = false; std::stringstream s; s << "In order to continue, please provide the passphrase"; s << "." << std::endl << std::endl; s << "Server: " << connSettings->serverHost() << ":" << connSettings->serverPort() << std::endl; s << "PEM file: " << sslSettings->pemKeyFile() << std::endl; s << std::endl << "Enter your PEM key passphrase (will never be stored):"; QString userInput = QInputDialog::getText(NULL, tr("SSL Authentication"), QtUtils::toQString(s.str()), QLineEdit::Password, "", &ok); if (!ok) { return false; } sslSettings->setPemPassPhrase(QtUtils::toStdString(userInput)); return ok; }
void SslSettings::fromVariant(const QVariantMap &map) { enableSSL(map.value("sslEnabled").toBool()); setCaFile(QtUtils::toStdString(map.value("caFile").toString())); setUsePemFile(map.value("usePemFile").toBool()); setPemKeyFile(QtUtils::toStdString(map.value("pemKeyFile").toString())); // From version Robo 1.3 "pemPassPhraseEncrypted" is used instead of "pemPassPhrase" in config. file if (map.contains("pemPassPhrase")) // Robo 1.2 and below setPemPassPhrase((map.value("pemPassPhrase").toString().toStdString())); else if (map.contains("pemPassPhraseEncrypted")) // From Robo 1.3 setPemPassPhrase(RoboCrypt::decrypt((map.value("pemPassPhraseEncrypted").toString().toStdString()))); setUseAdvancedOptions(map.value("useAdvancedOptions").toBool()); setCrlFile(QtUtils::toStdString(map.value("crlFile").toString())); setAllowInvalidHostnames(map.value("allowInvalidHostnames").toBool()); setAllowInvalidCertificates(map.value("allowInvalidCertificates").toBool()); setAskPassphrase(map.value("askPassphrase").toBool()); }