Example #1
0
 def __init__(self):
     from sipsimple.application import SIPApplication
     if SIPApplication.storage is None:
         raise RuntimeError(
             "Cannot access the OTR cache before SIPApplication.storage is defined"
         )
     if ISIPSimpleApplicationDataStorage.providedBy(SIPApplication.storage):
         self.key_file = os.path.join(SIPApplication.storage.directory,
                                      'otr.key')
         self.trusted_file = os.path.join(SIPApplication.storage.directory,
                                          'otr.trusted')
         try:
             self.private_key = DSAPrivateKey.load(self.key_file)
             if self.private_key.key_size != 1024:
                 raise ValueError
         except (EnvironmentError, ValueError):
             self.private_key = DSAPrivateKey.generate()
             self.private_key.save(self.key_file)
         try:
             self.trusted_peers = pickle.load(open(self.trusted_file, 'rb'))
             if not isinstance(self.trusted_peers,
                               OTRTrustedPeerSet) or not all(
                                   isinstance(item, OTRTrustedPeer)
                                   for item in self.trusted_peers):
                 raise ValueError("invalid OTR trusted peers file")
         except Exception:
             self.trusted_peers = OTRTrustedPeerSet()
             self.save()
     else:
         self.key_file = self.trusted_file = None
         self.private_key = DSAPrivateKey.generate()
         self.trusted_peers = OTRTrustedPeerSet()
Example #2
0
 def __init__(self):
     from sipsimple.application import SIPApplication
     if SIPApplication.storage is None:
         raise RuntimeError("Cannot access the OTR cache before SIPApplication.storage is defined")
     if ISIPSimpleApplicationDataStorage.providedBy(SIPApplication.storage):
         self.key_file = os.path.join(SIPApplication.storage.directory, 'otr.key')
         self.trusted_file = os.path.join(SIPApplication.storage.directory, 'otr.trusted')
         try:
             self.private_key = DSAPrivateKey.load(self.key_file)
             if self.private_key.key_size != 1024:
                 raise ValueError
         except (EnvironmentError, ValueError):
             self.private_key = DSAPrivateKey.generate()
             self.private_key.save(self.key_file)
         try:
             self.trusted_peers = pickle.load(open(self.trusted_file, 'rb'))
             if not isinstance(self.trusted_peers, OTRTrustedPeerSet) or not all(isinstance(item, OTRTrustedPeer) for item in self.trusted_peers):
                 raise ValueError("invalid OTR trusted peers file")
         except Exception:
             self.trusted_peers = OTRTrustedPeerSet()
             self.save()
     else:
         self.key_file = self.trusted_file = None
         self.private_key = DSAPrivateKey.generate()
         self.trusted_peers = OTRTrustedPeerSet()
Example #3
0
 def __init__(self, name):
     self.name = name
     self.secret = None
     self.private_key = DSAPrivateKey.generate()
     self.otr_session = OTRSession(self.private_key, transport=self)
     self.peer = None
     self.send_queue = EventQueue(handler=self._send_handler)
     self.send_queue.start()
     self.ake_done = Event()
     self.smp_done = Event()
     self.all_done = Event()
     self.otr_done = Event()
     self.smp_status = None
     self.same_secrets = None
     self.sent_message = None
     self.received_message = None
     NotificationCenter().add_observer(self, sender=self.otr_session)
Example #4
0
 def __init__(self, name):
     self.name = name
     self.secret = None
     self.private_key = DSAPrivateKey.generate()
     self.otr_session = OTRSession(self.private_key, transport=self)
     self.peer = None
     self.send_queue = EventQueue(handler=self._send_handler)
     self.send_queue.start()
     self.ake_done = Event()
     self.smp_done = Event()
     self.all_done = Event()
     self.otr_done = Event()
     self.smp_status = None
     self.same_secrets = None
     self.sent_message = None
     self.received_message = None
     NotificationCenter().add_observer(self, sender=self.otr_session)