forked from qt-creator/qt-creator
Qnx: Fixing incorrect ssh key generation
blackberry-connect tool requires to have public key with no comment
or comment with 'usename@hostname' format
QSsh::SshKeyGenerator creates comments in 'QtCreator/TIMEZONE' format
there we are stripping them out
This issue has been introduced by commit:
bd064d50e6
Task-number: QTCREATORBUG-9888
Change-Id: Ied96720b004cfe4f5bb95adec3401b6b6d30db5c
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
@@ -249,11 +249,6 @@ bool BlackBerryDeviceConfigurationWizardSshKeyPage::saveKeys(const QByteArray &p
|
|||||||
|
|
||||||
Utils::FileSaver pubSaver(publicKeyPath);
|
Utils::FileSaver pubSaver(publicKeyPath);
|
||||||
|
|
||||||
// blackberry-connect requires an @ character to be included in the RSA comment
|
|
||||||
const QString atHost = QLatin1Char('@') + QHostInfo::localHostName();
|
|
||||||
QByteArray pubKeyContent = publicKey;
|
|
||||||
pubKeyContent.append(atHost.toLocal8Bit());
|
|
||||||
|
|
||||||
pubSaver.write(publicKey);
|
pubSaver.write(publicKey);
|
||||||
if (!pubSaver.finalize(this))
|
if (!pubSaver.finalize(this))
|
||||||
return false;
|
return false;
|
||||||
|
@@ -53,8 +53,20 @@ void BlackBerrySshKeysGenerator::run()
|
|||||||
const bool success = m_keyGen->generateKeys(QSsh::SshKeyGenerator::Rsa,
|
const bool success = m_keyGen->generateKeys(QSsh::SshKeyGenerator::Rsa,
|
||||||
QSsh::SshKeyGenerator::Mixed, 4096,
|
QSsh::SshKeyGenerator::Mixed, 4096,
|
||||||
QSsh::SshKeyGenerator::DoNotOfferEncryption);
|
QSsh::SshKeyGenerator::DoNotOfferEncryption);
|
||||||
if (success)
|
if (success) {
|
||||||
emit sshKeysGenerationFinished(m_privateKeyPath, m_keyGen->privateKey(), m_keyGen->publicKey());
|
// BB10 devices allow to use public key with no comment
|
||||||
else
|
// or a comment in username@hostname format
|
||||||
|
// QSsh::SshKeyGenerator class creates comments in 'QtCreator/TIMEZONE' format
|
||||||
|
// therefore stripping this comment out
|
||||||
|
QByteArray publicKey = m_keyGen->publicKey();
|
||||||
|
int firstSpace = publicKey.indexOf(' ');
|
||||||
|
if (firstSpace >= 0) {
|
||||||
|
int secondSpace = publicKey.indexOf(' ', firstSpace + 1);
|
||||||
|
if (secondSpace >= 0)
|
||||||
|
publicKey.truncate(secondSpace);
|
||||||
|
}
|
||||||
|
|
||||||
|
emit sshKeysGenerationFinished(m_privateKeyPath, m_keyGen->privateKey(), publicKey);
|
||||||
|
} else
|
||||||
emit sshKeysGenerationFailed(m_keyGen->error());
|
emit sshKeysGenerationFailed(m_keyGen->error());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user