protocol: allow debugging SSH message handler

nistp521
Roman Zeyde 8 years ago
parent 7f36097c15
commit 50b627ed45

@ -29,9 +29,10 @@ class MissingKey(Error):
class Handler(object):
def __init__(self, keys, signer):
def __init__(self, keys, signer, debug=False):
self.public_keys = keys
self.signer = signer
self.debug = debug
self.methods = {
SSH_AGENTC_REQUEST_RSA_IDENTITIES: Handler.legacy_pubs,
@ -40,13 +41,15 @@ class Handler(object):
}
def handle(self, msg):
log.debug('request: %d bytes', len(msg))
debug_msg = ': {!r}'.format(msg) if self.debug else ''
log.debug('request: %d bytes%s', len(msg), debug_msg)
buf = io.BytesIO(msg)
code, = util.recv(buf, '>B')
method = self.methods[code]
log.debug('calling %s()', method.__name__)
reply = method(buf=buf)
log.debug('reply: %d bytes', len(reply))
debug_reply = ': {!r}'.format(reply) if self.debug else ''
log.debug('reply: %d bytes%s', len(reply), debug_reply)
return reply
@staticmethod

Loading…
Cancel
Save