Переглянути джерело

Remove all calls to _callback.<method>

Instead call the methods as if they where methods of CryptoEngine
itself
oz123 10 роки тому
батько
коміт
7676c8424c
1 змінених файлів з 11 додано та 12 видалено
  1. 11 12
      pwman/util/crypto.py

+ 11 - 12
pwman/util/crypto.py

@@ -230,6 +230,8 @@ class CryptoEngine(object):
     def callback(self, callback):
         if isinstance(callback, Callback):
             self._callback = callback
+            self._getsecret = callback.getsecret
+            self._getnewsecret = callback.getnewsecret
         else:
             raise CryptoNoCallbackException("callback must be an instance of"
                                             " Callback!")
@@ -250,22 +252,19 @@ class CryptoEngine(object):
             randombytes = random.read(32)
             key = base64.b64encode(str(randombytes))+'\n'
         else:
-            password = self._callback.getsecret(("Please enter your current "
-                                                 "password"))
+            password = self._getsecret("Please enter your current password")
             cipher = self._getcipher_real(password, self._algo)
-            plainkey = cipher.decrypt(str(self._keycrypted).decode('base64'))
+            plainkey = cipher.decrypt(base64.b64decode(self._keycrypted))
+            # python2 only ...
+            # plainkey = cipher.decrypt(str(self._keycrypted).decode('base64'))
             key = self._retrievedata(plainkey)
 
-        newpassword1 = self._callback.getnewsecret(("Please enter your new"
-                                                    " password"))
-        newpassword2 = self._callback.getnewsecret(("Please enter your new"
-                                                   "password again"))
+        newpassword1 = self._getnewsecret("Please enter your new password")
+        newpassword2 = self._getnewsecret("Please enter your new password again")
         while newpassword1 != newpassword2:
             print("Passwords do not match!")
-            newpassword1 = self._callback.getnewsecret(("Please enter your new"
-                                                        " password"))
-            newpassword2 = self._callback.getnewsecret(("Please enter your new"
-                                                        " password again"))
+            newpassword1 = self._getnewsecret("Please enter your new password")
+            newpassword2 = self._getnewsecret("Please enter your new password again")
 
         newcipher = self._getcipher_real(newpassword1, self._algo)
         self._keycrypted = str(newcipher.encrypt(
@@ -325,7 +324,7 @@ class CryptoEngine(object):
 
         while tries < max_tries:
             try:
-                password = self._callback.getsecret("Please enter your "
+                password = self._getsecret("Please enter your "
                                                     "password")
                 tmpcipher = self._getcipher_real(password, self._algo)
                 plainkey = tmpcipher.decrypt(str(self._keycrypted).decode(