mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2026-03-11 08:54:48 +00:00
Ignore empty or invalid SSH key components
This commit is contained in:
parent
f4e82be7e6
commit
48fdc08ca5
1 changed files with 19 additions and 16 deletions
|
|
@ -263,25 +263,28 @@ namespace
|
|||
|
||||
if (sshKey.contains("publicKey") && sshKey.contains("privateKey")) {
|
||||
const auto publicKey = sshKey.value("publicKey").toString();
|
||||
const auto privateKey = sshKey.value("privateKey").toString();
|
||||
|
||||
auto baseName = QString("id");
|
||||
if (!publicKey.isEmpty() && !privateKey.isEmpty()) {
|
||||
auto baseName = QString("id");
|
||||
|
||||
if (publicKey.startsWith("ssh-ed25519 ")) {
|
||||
baseName.append("_ed25519");
|
||||
} else if (publicKey.startsWith("ssh-rsa ")
|
||||
|| publicKey.startsWith("ssh-sha2-256 ")
|
||||
|| publicKey.startsWith("ssh-sha2-512 ")) {
|
||||
baseName.append("_rsa");
|
||||
} else if (publicKey.startsWith("ecdsa-sha2-nistp256 ")
|
||||
|| publicKey.startsWith("ecdsa-sha2-nistp384 ")
|
||||
|| publicKey.startsWith("ecdsa-sha2-nistp521 ")) {
|
||||
baseName.append("_ecdsa");
|
||||
} else if (publicKey.startsWith("ssh-dss ")) {
|
||||
baseName.append("_dss");
|
||||
if (publicKey.startsWith("ssh-ed25519 ")) {
|
||||
baseName.append("_ed25519");
|
||||
} else if (publicKey.startsWith("ssh-rsa ")
|
||||
|| publicKey.startsWith("ssh-sha2-256 ")
|
||||
|| publicKey.startsWith("ssh-sha2-512 ")) {
|
||||
baseName.append("_rsa");
|
||||
} else if (publicKey.startsWith("ecdsa-sha2-nistp256 ")
|
||||
|| publicKey.startsWith("ecdsa-sha2-nistp384 ")
|
||||
|| publicKey.startsWith("ecdsa-sha2-nistp521 ")) {
|
||||
baseName.append("_ecdsa");
|
||||
} else if (publicKey.startsWith("ssh-dss ")) {
|
||||
baseName.append("_dss");
|
||||
}
|
||||
|
||||
entry->attachments()->set(baseName + ".pub", publicKey.toUtf8());
|
||||
entry->attachments()->set(baseName, privateKey.toUtf8());
|
||||
}
|
||||
|
||||
entry->attachments()->set(baseName + ".pub", sshKey.value("publicKey").toString().toUtf8());
|
||||
entry->attachments()->set(baseName, sshKey.value("privateKey").toString().toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue