'Try to load the private key from the last used file identified by
C{getPublicKey}, potentially asking for the passphrase if the key is
encrypted.'

def getPrivateKey(self):

    file = os.path.expanduser(self.usedFiles[(-1)])
    if (not os.path.exists(file)):
        return None
    try:
        return defer.succeed(keys.Key.fromFile(file))
    except keys.EncryptedKeyError:
        for i in range(3):
            prompt = ("Enter    passphrase    for    key    '%s':    " % self.usedFiles[(-1)])
            try:
                p = self._getPassword(prompt).encode(sys.getfilesystemencoding())
                return defer.succeed(keys.Key.fromFile(file, passphrase=p))
            except (keys.BadKeyError, ConchError):
                pass
            return defer.fail(ConchError('bad    password'))
        raise
    except KeyboardInterrupt:
        print()
        reactor.stop()
