404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.14.132.221: ~ $
# Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.

"""
Tests for L{twisted.conch.tap}.
"""

try:
    import cryptography
except ImportError:
    cryptography = None

try:
    import pyasn1
except ImportError:
    pyasn1 = None

try:
    from twisted.conch import unix
except ImportError:
    unix = None

if cryptography and pyasn1 and unix:
    from twisted.conch import tap
    from twisted.conch.openssh_compat.factory import OpenSSHFactory

from twisted.application.internet import StreamServerEndpointService
from twisted.cred import error
from twisted.cred.credentials import ISSHPrivateKey
from twisted.cred.credentials import IUsernamePassword, UsernamePassword

from twisted.trial.unittest import TestCase



class MakeServiceTests(TestCase):
    """
    Tests for L{tap.makeService}.
    """

    if not cryptography:
        skip = "can't run without cryptography"

    if not pyasn1:
        skip = "Cannot run without PyASN1"

    if not unix:
        skip = "can't run on non-posix computers"

    usernamePassword = (b'iamuser', b'thisispassword')

    def setUp(self):
        """
        Create a file with two users.
        """
        self.filename = self.mktemp()
        with open(self.filename, 'wb+') as f:
            f.write(b':'.join(self.usernamePassword))
        self.options = tap.Options()


    def test_basic(self):
        """
        L{tap.makeService} returns a L{StreamServerEndpointService} instance
        running on TCP port 22, and the linked protocol factory is an instance
        of L{OpenSSHFactory}.
        """
        config = tap.Options()
        service = tap.makeService(config)
        self.assertIsInstance(service, StreamServerEndpointService)
        self.assertEqual(service.endpoint._port, 22)
        self.assertIsInstance(service.factory, OpenSSHFactory)


    def test_defaultAuths(self):
        """
        Make sure that if the C{--auth} command-line option is not passed,
        the default checkers are (for backwards compatibility): SSH and UNIX
        """
        numCheckers = 2

        self.assertIn(ISSHPrivateKey, self.options['credInterfaces'],
            "SSH should be one of the default checkers")
        self.assertIn(IUsernamePassword, self.options['credInterfaces'],
            "UNIX should be one of the default checkers")
        self.assertEqual(numCheckers, len(self.options['credCheckers']),
            "There should be %d checkers by default" % (numCheckers,))


    def test_authAdded(self):
        """
        The C{--auth} command-line option will add a checker to the list of
        checkers, and it should be the only auth checker
        """
        self.options.parseOptions(['--auth', 'file:' + self.filename])
        self.assertEqual(len(self.options['credCheckers']), 1)


    def test_multipleAuthAdded(self):
        """
        Multiple C{--auth} command-line options will add all checkers specified
        to the list ofcheckers, and there should only be the specified auth
        checkers (no default checkers).
        """
        self.options.parseOptions(['--auth', 'file:' + self.filename,
                                   '--auth', 'memory:testuser:testpassword'])
        self.assertEqual(len(self.options['credCheckers']), 2)


    def test_authFailure(self):
        """
        The checker created by the C{--auth} command-line option returns a
        L{Deferred} that fails with L{UnauthorizedLogin} when
        presented with credentials that are unknown to that checker.
        """
        self.options.parseOptions(['--auth', 'file:' + self.filename])
        checker = self.options['credCheckers'][-1]
        invalid = UsernamePassword(self.usernamePassword[0], 'fake')
        # Wrong password should raise error
        return self.assertFailure(
            checker.requestAvatarId(invalid), error.UnauthorizedLogin)


    def test_authSuccess(self):
        """
        The checker created by the C{--auth} command-line option returns a
        L{Deferred} that returns the avatar id when presented with credentials
        that are known to that checker.
        """
        self.options.parseOptions(['--auth', 'file:' + self.filename])
        checker = self.options['credCheckers'][-1]
        correct = UsernamePassword(*self.usernamePassword)
        d = checker.requestAvatarId(correct)

        def checkSuccess(username):
            self.assertEqual(username, correct.username)

        return d.addCallback(checkSuccess)


    def test_checkers(self):
        """
        The L{OpenSSHFactory} built by L{tap.makeService} has a portal with
        L{ISSHPrivateKey} and L{IUsernamePassword} interfaces registered as
        checkers.
        """
        config = tap.Options()
        service = tap.makeService(config)
        portal = service.factory.portal
        self.assertEqual(
            set(portal.checkers.keys()),
            set([ISSHPrivateKey, IUsernamePassword]))

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 14 B 0644
keydata.py File 17.06 KB 0644
loopback.py File 757 B 0644
test_address.py File 1.59 KB 0644
test_agent.py File 12.78 KB 0644
test_cftp.py File 49.7 KB 0644
test_channel.py File 11.82 KB 0644
test_checkers.py File 30.76 KB 0644
test_ckeygen.py File 19.8 KB 0644
test_conch.py File 24.55 KB 0644
test_connection.py File 27.49 KB 0644
test_default.py File 11.31 KB 0644
test_endpoints.py File 51.96 KB 0644
test_filetransfer.py File 26.65 KB 0644
test_forwarding.py File 2.16 KB 0644
test_helper.py File 20.01 KB 0644
test_insults.py File 32.79 KB 0644
test_keys.py File 53.57 KB 0644
test_knownhosts.py File 48.26 KB 0644
test_manhole.py File 12.52 KB 0644
test_manhole_tap.py File 4.14 KB 0644
test_mixin.py File 1.03 KB 0644
test_openssh_compat.py File 4.52 KB 0644
test_recvline.py File 24.81 KB 0644
test_scripts.py File 1.84 KB 0644
test_session.py File 38.54 KB 0644
test_ssh.py File 31.62 KB 0644
test_tap.py File 4.83 KB 0644
test_telnet.py File 25.9 KB 0644
test_text.py File 3.85 KB 0644
test_transport.py File 89.71 KB 0644
test_unix.py File 2.47 KB 0644
test_userauth.py File 31.84 KB 0644
test_window.py File 2.07 KB 0644