Changeset 9861 for trunk/src/common/stanza_session.py
- Timestamp:
- 06/29/08 06:39:29 (5 months ago)
- Files:
-
- 1 modified
-
trunk/src/common/stanza_session.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/common/stanza_session.py
r9802 r9861 184 184 self._kc_o = None 185 185 186 # has the remote contact's identity ever been verified? 187 self.verified_identity = False 188 186 189 # keep the encrypter updated with my latest cipher key 187 190 def set_kc_s(self, value): … … 339 342 340 343 if i_o == 'a' and self.sas_algs == 'sas28x5': 341 # XXX not necessary if there's a verified retained secret 344 # we don't need to calculate this if there's a verified retained secret 345 # (but we do anyways) 342 346 self.sas = crypto.sas_28x5(m_o, self.form_s) 343 347 … … 845 849 self.control.print_esession_details() 846 850 847 # calculate and store the new retained secret848 # prompt the user to check the remote party's identity (if necessary)849 def do_retained_secret(self, k, srs): 851 def do_retained_secret(self, k, old_srs): 852 '''calculate the new retained secret. determine if the user needs to check the remote party's identity. set up callbacks for when the identity has been verified.''' 853 850 854 new_srs = self.hmac(k, 'New Retained Secret') 855 self.srs = new_srs 856 851 857 account = self.conn.name 852 858 bjid = self.jid.getStripped() 853 859 854 if srs: 855 if secrets.secrets().srs_verified(account, bjid, srs): 856 secrets.secrets().replace_srs(account, bjid, srs, new_srs, True) 860 self.verified_identity = False 861 862 if old_srs: 863 if secrets.secrets().srs_verified(account, bjid, old_srs): 864 # already had a stored secret verified by the user. 865 secrets.secrets().replace_srs(account, bjid, old_srs, new_srs, True) 866 # continue without warning. 867 self.verified_identity = True 857 868 else: 858 def _cb(verified): 859 secrets.secrets().replace_srs(account, bjid, srs, new_srs, verified) 860 861 self.check_identity(_cb) 862 else: 863 def _cb(verified): 864 secrets.secrets().save_new_srs(account, bjid, new_srs, verified) 865 866 self.check_identity(_cb) 869 # had a secret, but it wasn't verified. 870 secrets.secrets().replace_srs(account, bjid, old_srs, new_srs, False) 871 else: 872 # we don't even have an SRS 873 secrets.secrets().save_new_srs(account, bjid, new_srs, False) 874 875 def _verified_srs_cb(self): 876 secrets.secrets().replace_srs(self.conn.name, self.jid.getStripped(), self.srs, self.srs, True) 867 877 868 878 def make_dhfield(self, modp_options, sigmai):
