userauth.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:hostapd-mana 作者: adde88 项目源码 文件源码
def ssh_USERAUTH_PK_OK(self, packet):
        if self.lastAuth == 'publickey':
            # this is ok
            publicKey = self.lastPublicKey
            keyType =  getNS(publicKey)[0]
            b = NS(self.transport.sessionID) + chr(MSG_USERAUTH_REQUEST) + \
            NS(self.user) + NS(self.instance.name) + NS('publickey') + '\xff' +\
            NS(keyType) + NS(publicKey)
            d  = self.signData(publicKey, b)
            if not d:
                self.askForAuth('none', '')
                # this will fail, we'll move on
                return
            d.addCallback(self._cbSignedData)
            d.addErrback(self._ebAuth)
        elif self.lastAuth == 'password':
            prompt, language, rest = getNS(packet, 2)
            self._oldPass = self._newPass = None
            self.getPassword('Old Password: ').addCallbacks(self._setOldPass, self._ebAuth)
            self.getPassword(prompt).addCallbacks(self._setNewPass, self._ebAuth)
        elif self.lastAuth == 'keyboard-interactive':
            name, instruction, lang, data = getNS(packet, 3)
            numPrompts = struct.unpack('!L', data[:4])[0]
            data = data[4:]
            prompts = []
            for i in range(numPrompts):
                prompt, data = getNS(data)
                echo = bool(ord(data[0]))
                data = data[1:]
                prompts.append((prompt, echo))
            d = self.getGenericAnswers(name, instruction, prompts)
            d.addCallback(self._cbGenericAnswers)
            d.addErrback(self._ebAuth)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号