[tor-commits] [stem/master] Now use the decrypt method in our Circuit class

atagar at torproject.org atagar at torproject.org
Sun Aug 26 20:49:21 UTC 2018


commit eaa871fa08b3920baa9d24b3338c7c4b6973ee40
Author: Dave Rolek <dmr-x at riseup.net>
Date:   Sat Aug 18 04:12:35 2018 +0000

    Now use the decrypt method in our Circuit class
    
    This also now actually checks the 'recognized' field and digest, unlike
    before.
    
    Keep in mind that this implementation is really meant for illustrative
    purposes, in the interim. (There are some limitations to it.)
---
 stem/client/__init__.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/stem/client/__init__.py b/stem/client/__init__.py
index a228bebc..33ac0d8d 100644
--- a/stem/client/__init__.py
+++ b/stem/client/__init__.py
@@ -255,8 +255,11 @@ class Circuit(object):
           elif raw_cell.circ_id != self.id:
             raise stem.ProtocolError('Response should be for circuit id %i, not %i' % (self.id, raw_cell.circ_id))
 
-          decrypted_payload = self.backward_key.update(raw_cell.payload)
-          reply_cells.append(stem.client.cell.RelayCell._unpack(decrypted_payload, self.id, self.relay.link_protocol))
+          decrypted_cell, fully_decrypted, self.backward_digest, self.backward_key = raw_cell.decrypt(self.backward_digest, self.backward_key, interpret = True)
+          if not fully_decrypted:
+            raise stem.ProtocolError('Response for circuit id %i was not fully decrypted, when expected to be' % self.id)
+
+          reply_cells.append(decrypted_cell)
 
         return reply_cells
       except:





More information about the tor-commits mailing list