diff options
Diffstat (limited to 'src/org')
-rw-r--r-- | src/org/connectbot/transport/SSH.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/org/connectbot/transport/SSH.java b/src/org/connectbot/transport/SSH.java index 9d08592..a54e091 100644 --- a/src/org/connectbot/transport/SSH.java +++ b/src/org/connectbot/transport/SSH.java @@ -131,6 +131,7 @@ public class SSH extends AbsTransport implements ConnectionMonitor, InteractiveC private int height; private String useAuthAgent = HostDatabase.AUTHAGENT_NO; + private String agentLockPassphrase; public class HostKeyVerifier implements ServerHostKeyVerifier { public boolean verifyServerHostKey(String hostname, int port, @@ -883,4 +884,26 @@ public class SSH extends AbsTransport implements ConnectionMonitor, InteractiveC public boolean removeIdentity(byte[] publicKey) { return manager.removeKey(publicKey); } + + public boolean isAgentLocked() { + return agentLockPassphrase != null; + } + + public boolean requestAgentUnlock(String unlockPassphrase) { + if (agentLockPassphrase == null) + return false; + + if (agentLockPassphrase.equals(unlockPassphrase)) + agentLockPassphrase = null; + + return agentLockPassphrase == null; + } + + public boolean setAgentLock(String lockPassphrase) { + if (agentLockPassphrase != null) + return false; + + agentLockPassphrase = lockPassphrase; + return true; + } } |