diff options
| author | Kali Kaneko (leap communications) <kali@leap.se> | 2015-12-16 12:27:46 -0400 | 
|---|---|---|
| committer | Kali Kaneko (leap communications) <kali@leap.se> | 2015-12-16 12:37:54 -0400 | 
| commit | c4984f7e631f770f2bef17f037a23b9347fec85f (patch) | |
| tree | f5e6257182b1d86329560c15e792ae0b3f406bdc | |
| parent | d9b4b041035c018d3b24b4866647df6092c8f55b (diff) | |
add command to download smtp certificate
| -rw-r--r-- | bonafide/src/leap/bonafide/_protocol.py | 19 | ||||
| -rw-r--r-- | bonafide/src/leap/bonafide/service.py | 17 | 
2 files changed, 28 insertions, 8 deletions
| diff --git a/bonafide/src/leap/bonafide/_protocol.py b/bonafide/src/leap/bonafide/_protocol.py index 617c93c..f1c3834 100644 --- a/bonafide/src/leap/bonafide/_protocol.py +++ b/bonafide/src/leap/bonafide/_protocol.py @@ -114,17 +114,20 @@ class BonafideProtocol(object):          d.addCallback(lambda _: '%s logged out' % full_id)          return d -    def do_stats(self): -        log.msg('Calculating Bonafide Service STATS') -        mem = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss -        return '[+] Bonafide service: [%s sessions] [Mem usage: %s KB]' % ( -            len(self._sessions), mem / 1024) +    def do_get_smtp_cert(self, full_id): +        session = self._get_session(full_id) +        d = session.get_smtp_cert() +        return d      def do_get_vpn_cert(self):          pass -    def do_get_smtp_cert(self): -        pass -      def do_update_user(self):          pass + +    def do_stats(self): +        log.msg('Calculating Bonafide Service STATS') +        mem = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss +        return '[+] Bonafide service: [%s sessions] [Mem usage: %s KB]' % ( +            len(self._sessions), mem / 1024) + diff --git a/bonafide/src/leap/bonafide/service.py b/bonafide/src/leap/bonafide/service.py index 2ff4eed..468721b 100644 --- a/bonafide/src/leap/bonafide/service.py +++ b/bonafide/src/leap/bonafide/service.py @@ -24,6 +24,7 @@ import os  from leap.bonafide._protocol import BonafideProtocol  from twisted.application import service +from twisted.internet import defer  class BonafideService(service.Service): @@ -35,6 +36,10 @@ class BonafideService(service.Service):          self._basedir = os.path.expanduser(basedir)          self.service_hooks = {} +        # XXX this is a quick hack to get a ref +        # to the latest authenticated user. +        self._active_user = None +      def register_hook(self, kind, trigger):          self.service_hooks[kind] = trigger @@ -66,6 +71,7 @@ class BonafideService(service.Service):                      this_hook,                      username=username, token=token, uuid=uuid,                      password=password) +            self._active_user = username              return result          # XXX I still have doubts from where it's best to trigger this. @@ -91,3 +97,14 @@ class BonafideService(service.Service):          d = self._bonafide.do_logout(username, password)          d.addCallback(lambda response: 'LOGOUT -> ok')          return d + +    def do_get_smtp_cert(self, username=None): +        if not username: +            username = self._active_user +        if not username: +            return defer.fail( +                RuntimeError('No active user, cannot get SMTP cert.')) + +        d = self._bonafide.do_get_smtp_cert(username) +        d.addCallback(lambda response: (username, response)) +        return d | 
