diff options
author | Kenny Root <kenny@the-b.org> | 2016-02-07 14:18:39 -0800 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2016-02-21 14:43:32 -0800 |
commit | ac40fcb2412142ac2bca7d2ae27a838dd09f78bc (patch) | |
tree | d7b1248a82857a5d57af434ccfe9c5de01a0c82a /app/src/main/java/org/connectbot/transport | |
parent | f7190764fd2329f258717625f165b034d7d204f3 (diff) | |
download | connectbot-ac40fcb2412142ac2bca7d2ae27a838dd09f78bc.tar.gz connectbot-ac40fcb2412142ac2bca7d2ae27a838dd09f78bc.tar.bz2 connectbot-ac40fcb2412142ac2bca7d2ae27a838dd09f78bc.zip |
Support multiple known keys per host
This will allow hosts we originally saw with a certain hostkey algorithm
to continue to use those keys without warning us.
Diffstat (limited to 'app/src/main/java/org/connectbot/transport')
-rw-r--r-- | app/src/main/java/org/connectbot/transport/SSH.java | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/app/src/main/java/org/connectbot/transport/SSH.java b/app/src/main/java/org/connectbot/transport/SSH.java index 158b2c9..cb6703e 100644 --- a/app/src/main/java/org/connectbot/transport/SSH.java +++ b/app/src/main/java/org/connectbot/transport/SSH.java @@ -62,10 +62,10 @@ import com.trilead.ssh2.Connection; import com.trilead.ssh2.ConnectionInfo; import com.trilead.ssh2.ConnectionMonitor; import com.trilead.ssh2.DynamicPortForwarder; +import com.trilead.ssh2.ExtendedServerHostKeyVerifier; import com.trilead.ssh2.InteractiveCallback; import com.trilead.ssh2.KnownHosts; import com.trilead.ssh2.LocalPortForwarder; -import com.trilead.ssh2.ServerHostKeyVerifier; import com.trilead.ssh2.Session; import com.trilead.ssh2.crypto.PEMDecoder; import com.trilead.ssh2.signature.DSASHA1Verify; @@ -136,7 +136,7 @@ public class SSH extends AbsTransport implements ConnectionMonitor, InteractiveC private String useAuthAgent = HostDatabase.AUTHAGENT_NO; private String agentLockPassphrase; - public class HostKeyVerifier implements ServerHostKeyVerifier { + public class HostKeyVerifier extends ExtendedServerHostKeyVerifier { public boolean verifyServerHostKey(String hostname, int port, String serverHostKeyAlgorithm, byte[] serverHostKey) throws IOException { @@ -209,6 +209,20 @@ public class SSH extends AbsTransport implements ConnectionMonitor, InteractiveC } } + @Override + public List<String> getKnownKeyAlgorithmsForHost(String host, int port) { + return manager.hostdb.getHostKeyAlgorithmsForHost(host, port); + } + + @Override + public void removeServerHostKey(String host, int port, String algorithm, byte[] hostKey) { + manager.hostdb.removeKnownHost(host, port, algorithm, hostKey); + } + + @Override + public void addServerHostKey(String host, int port, String algorithm, byte[] hostKey) { + manager.hostdb.saveKnownHost(host, port, algorithm, hostKey); + } } private void authenticate() { |