From a1291364854c4a84a26fa8ca90b7978ad592dc9e Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sun, 16 Dec 2018 12:36:42 +0100 Subject: [PATCH] TODO: Add known hosts checking This needs some user dialogs to display the fingerprint hash and ask if the users e.g. wants to accept the known hosts entry to write it to disk. --- ext/qsshsocket/qsshsocket.cpp | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/ext/qsshsocket/qsshsocket.cpp b/ext/qsshsocket/qsshsocket.cpp index 89de9c6..8073778 100644 --- a/ext/qsshsocket/qsshsocket.cpp +++ b/ext/qsshsocket/qsshsocket.cpp @@ -95,6 +95,46 @@ void QSshSocket::run() else error(SessionCreationError); + // TODO: Add known hosts checking + //{ + // enum ssh_known_hosts_e state; + // ssh_key srv_pubkey; + // int rc; + + // rc = ssh_get_server_publickey(session, &srv_pubkey); + // if (rc != SSH_OK) { + // // ?? + // } + + // rc = ssh_get_publickey_hash(srv_pubkey, + // SSH_PUBLICKEY_HASH_SHA256, + // &hash, + // &hlen); + // ssh_key_free(srv_pubkey); + // if (rc != SSH_OK) { + // // ??? + // } + + // state = ssh_session_is_known_server(session) + // switch(state) { + // case SSH_KNOWN_HOSTS_CHANGED: + // /* FAIL */ + // case SSH_KNOWN_HOSTS_OTHER: + // /* FAIL */ + // case SSH_KNOWN_HOSTS_NOT_FOUND: + // /* FALL_THROUGH */ + // case SSH_SERVER_NOT_KNOWN: + // /* Ask user to accept key */ + // if (accept) { + // rc = ssh_session_update_known_hosts(m_session); + // } + // break; + // case SSH_KNOWN_HOSTS_ERROR: + // /* FAIL */ + // case SSH_KNOWN_HOSTS_OK: + // break; /* OK */ + // } + //} } }