Browse Source

new file: documentation/general_notes.txt

oz123 12 years ago
parent
commit
e31fee549f
1 changed files with 56 additions and 0 deletions
  1. 56 0
      documentation/general_notes.txt

+ 56 - 0
documentation/general_notes.txt

@@ -0,0 +1,56 @@
+# Work in progress
+
+
+enc = CryptoEngine.get() in ui/cli.py (L:940)
+
+is called before the db is even set !
+
+when priniting nodes, decrypt is first called by:
+this initializes CryptoEngine instance,
+and sets the following instance properties:
+    - _callback
+    - _instance 
+    - _keycrypted
+    - _timeout
+    - _cypher
+
+this initialization asks the user for the decryption key
+of the database. 
+
+the action that user does called the respective db function which
+returns an ENCRYPTED STRING!, 
+which is then given to decryption via nodes.py or tags.py which do the
+actual decryption on each decrypted string returned from the DB.
+
+for example print_node:
+
+initializing a _db instance, then we call _db.open()
+
+calling do_print(10) calls _db.getnodes([i]) at this point
+the database is still not decrypted ... e.g. _cypher is still empty
+
+when _db.getnodes([i]) is done node inside  print_node is containing 
+alot of encrypted string.
+
+now print_node will be called, at which point the different methods
+of node instance will decrypt their respective string:
+
+e.g. get_username(self) instide nodes.py:
+     
+     self._username -> OexYH7vT/WVpXO0ZBM93RF/l8+o8/QU8ykgDB4qY8+BxBaKylAOeJWEQ+edjpLTU\n
+     enc = CryptoEngine.get() 
+     enc.decrypt(self._username) -> nahum.oz@gmail.com
+
+
+to see this in work:
+insert 
+        import ipdb; ipdb.set_trace()
+to def getnodes(self, ids) in "pwman/data/drivers/sqlite.py.
+
+continue to pwman3/pwman/ui/cli.py(382) self.print_node(node[0])
+and then step into this function. 
+continue further into  def print_node(self, node) inside pwman3/pwman/ui/cli.py, 
+finally you should step into:
+
+    node.get_username()
+