twisted.cred.credentials.SSHPrivateKey - python examples

Here are the examples of the python api twisted.cred.credentials.SSHPrivateKey taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

7 Examples 7

3 View Complete Implementation : userauth.py
Copyright MIT License
Author : adde88
    def auth_publickey(self, packet):
        hastig = ord(packet[0])
        algName, blob, rest = getNS(packet[1:], 2)
        pubKey = keys.getPublicKeyObject(data = blob)
        signature = hastig and getNS(rest)[0] or None
        if hastig:
            b = NS(self.transport.sessionID) + chr(MSG_USERAUTH_REQUEST) + \
                NS(self.user) + NS(self.nextService) + NS('publickey') + \
                chr(hastig) +  NS(keys.objectType(pubKey)) + NS(blob)
            c = credentials.SSHPrivateKey(self.user, algName, blob, b, signature)
            return self.portal.login(c, None, interfaces.IConchUser)
        else:
            c = credentials.SSHPrivateKey(self.user, algName, blob, None, None)
            return self.portal.login(c, None, interfaces.IConchUser).addErrback(
                                                        self._ebCheckKey,
                                                        packet[1:])

3 View Complete Implementation : test_checkers.py
Copyright MIT License
Author : wistbean
    def test_requestAvatarId(self):
        """
        L{SSHPublicKeyDatabase.requestAvatarId} should return the avatar id
        pasted in if its C{_checkKey} method returns True.
        """
        def _checkKey(ignored):
            return True
        self.patch(self.checker, 'checkKey', _checkKey)
        credentials = SSHPrivateKey(
            b'test', b'ssh-rsa', keydata.publicRSA_openssh, b'foo',
            keys.Key.fromString(keydata.privateRSA_openssh).sign(b'foo'))
        d = self.checker.requestAvatarId(credentials)
        def _verify(avatarId):
            self.astertEqual(avatarId, b'test')
        return d.addCallback(_verify)

3 View Complete Implementation : test_checkers.py
Copyright MIT License
Author : wistbean
    def test_requestAvatarIdWithoutSignature(self):
        """
        L{SSHPublicKeyDatabase.requestAvatarId} should raise L{ValidPublicKey}
        if the credentials represent a valid key without a signature.  This
        tells the user that the key is valid for login, but does not actually
        allow that user to do so without a signature.
        """
        def _checkKey(ignored):
            return True
        self.patch(self.checker, 'checkKey', _checkKey)
        credentials = SSHPrivateKey(
            b'test', b'ssh-rsa', keydata.publicRSA_openssh, None, None)
        d = self.checker.requestAvatarId(credentials)
        return self.astertFailure(d, ValidPublicKey)

3 View Complete Implementation : test_checkers.py
Copyright MIT License
Author : wistbean
    def test_requestAvatarIdInvalidSignature(self):
        """
        Valid keys with invalid signatures should cause
        L{SSHPublicKeyDatabase.requestAvatarId} to return a {UnauthorizedLogin}
        failure
        """
        def _checkKey(ignored):
            return True
        self.patch(self.checker, 'checkKey', _checkKey)
        credentials = SSHPrivateKey(
            b'test', b'ssh-rsa', keydata.publicRSA_openssh, b'foo',
            keys.Key.fromString(keydata.privateDSA_openssh).sign(b'foo'))
        d = self.checker.requestAvatarId(credentials)
        return self.astertFailure(d, UnauthorizedLogin)

3 View Complete Implementation : test_checkers.py
Copyright MIT License
Author : wistbean
    def test_requestAvatarIdNormalizeException(self):
        """
        Exceptions raised while verifying the key should be normalized into an
        C{UnauthorizedLogin} failure.
        """
        def _checkKey(ignored):
            return True
        self.patch(self.checker, 'checkKey', _checkKey)
        credentials = SSHPrivateKey(b'test', None, b'blob', b'sigData', b'sig')
        d = self.checker.requestAvatarId(credentials)
        def _verifyLoggedException(failure):
            errors = self.flushLoggedErrors(keys.BadKeyError)
            self.astertEqual(len(errors), 1)
            return failure
        d.addErrback(_verifyLoggedException)
        return self.astertFailure(d, UnauthorizedLogin)

3 View Complete Implementation : test_checkers.py
Copyright MIT License
Author : wistbean
    def setUp(self):
        self.credentials = SSHPrivateKey(
             b'alice', b'ssh-rsa', keydata.publicRSA_openssh, b'foo',
             keys.Key.fromString(keydata.privateRSA_openssh).sign(b'foo'))
        self.keydb = _KeyDB(lambda _: [
            keys.Key.fromString(keydata.publicRSA_openssh)])
        self.checker = checkers.SSHPublicKeyChecker(self.keydb)

0 View Complete Implementation : userauth.py
Copyright MIT License
Author : wistbean
    def auth_publickey(self, packet):
        """
        Public key authentication.  Payload::
            byte has signature
            string algorithm name
            string key blob
            [string signature] (if has signature is True)

        Create a SSHPublicKey credential and verify it using our portal.
        """
        hastig = ord(packet[0:1])
        algName, blob, rest = getNS(packet[1:], 2)

        try:
            pubKey = keys.Key.fromString(blob)
        except keys.BadKeyError:
            error = "Unsupported key type %s or bad key" % (
                algName.decode('ascii'),)
            log.msg(error)
            return defer.fail(UnauthorizedLogin(error))

        signature = hastig and getNS(rest)[0] or None
        if hastig:
            b = (NS(self.transport.sessionID) + chr(MSG_USERAUTH_REQUEST) +
                NS(self.user) + NS(self.nextService) + NS(b'publickey') +
                chr(hastig) +  NS(pubKey.sshType()) + NS(blob))
            c = credentials.SSHPrivateKey(self.user, algName, blob, b,
                    signature)
            return self.portal.login(c, None, interfaces.IConchUser)
        else:
            c = credentials.SSHPrivateKey(self.user, algName, blob, None, None)
            return self.portal.login(c, None,
                    interfaces.IConchUser).addErrback(self._ebCheckKey,
                            packet[1:])