Hi,Please find the attached patch which will fix the password encryption/decryption for python3.I have modified the fix suggested by Ladislav to work with both python2 and python3.Thanks,KhushbooOn Tue, Jun 27, 2017 at 4:41 PM, Ladislav Jech <archenroot@gmail.com> wrote:Hi,It will be good if you support fully github or any GIT repository for managing pull requests. Is there any or you wan't me to generate *.patch file? I am new to pgadmin 4, so not sure how this works. Let me know.Ladislav2017-06-27 11:52 GMT+02:00 Khushboo Vashi <khushboo.vashi@enterprisedb.com>:Hi,Can you send the patch for the same. I think this is the valid fix.Thanks,KhushbooOn Tue, Jun 27, 2017 at 3:02 PM, Ladislav Jech <archenroot@gmail.com> wrote:I am running on following Gentoo system with Python 3.5 as default (although i have 2.7 and 3.4 available to switch as well). I compiled from source code via github:commit 15cb9fc35b41736a331a452b9303a79e8f13ee36 (HEAD -> master, origin/master, origin/HEAD)The error appears when I want to click on Save while adding new server to the list, I put few lines into the code to detect the times:2017-06-27 13:21:48,329: DEBUG pgadmin: Not running under the desktop runtime, port: 5050Starting pgAdmin 4. Please navigate to http://127.0.0.1:5050 in your browser.str var python type is <class 'str'>str var object's type is strpadding_string var python type is <class 'bytes'>padding_string var object's type is bytes2017-06-27 13:21:53,028: ERROR pgadmin: Can't convert 'bytes' object to str implicitlyTraceback (most recent call last): File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py", line 619, in create password = encrypt(password, current_user.password) File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py", line 31, in encrypt cipher = AES.new(pad(key), AES.MODE_CFB, iv) File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py", line 80, in pad return str + ((32 - len(str) % 32) * padding_string)TypeError: Can't convert 'bytes' object to str implicitly2017-06-27 13:21:53,031: INFO werkzeug: 127.0.0.1 - - [27/Jun/2017 13:21:53] "POST /browser/server/obj/2/ HTTP/1.1" 410 -2017-06-27 13:22:49,936: INFO werkzeug: * Detected change in '/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py', reloading2017-06-27 13:22:50,138: INFO werkzeug: * Restarting with reloaderSo this is the error:Can't convert 'bytes' object to str implicitlyTo fix this on Python 3.5 I simply changed in pgadmin4/web/pgadmin/utils/crypto.py file this line:return str + ((32 - len(str) % 32) * padding_string)toreturn str + ((32 - len(str) % 32) * padding_string.decode())Another solution could be to change whole str into bytes. Not sure what is better, but now it works.
Hi,It will be good if you support fully github or any GIT repository for managing pull requests. Is there any or you wan't me to generate *.patch file? I am new to pgadmin 4, so not sure how this works. Let me know.Ladislav2017-06-27 11:52 GMT+02:00 Khushboo Vashi <khushboo.vashi@enterprisedb.com>:Hi,Can you send the patch for the same. I think this is the valid fix.Thanks,KhushbooOn Tue, Jun 27, 2017 at 3:02 PM, Ladislav Jech <archenroot@gmail.com> wrote:I am running on following Gentoo system with Python 3.5 as default (although i have 2.7 and 3.4 available to switch as well). I compiled from source code via github:commit 15cb9fc35b41736a331a452b9303a79e8f13ee36 (HEAD -> master, origin/master, origin/HEAD)The error appears when I want to click on Save while adding new server to the list, I put few lines into the code to detect the times:2017-06-27 13:21:48,329: DEBUG pgadmin: Not running under the desktop runtime, port: 5050Starting pgAdmin 4. Please navigate to http://127.0.0.1:5050 in your browser.str var python type is <class 'str'>str var object's type is strpadding_string var python type is <class 'bytes'>padding_string var object's type is bytes2017-06-27 13:21:53,028: ERROR pgadmin: Can't convert 'bytes' object to str implicitlyTraceback (most recent call last): File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py", line 619, in create password = encrypt(password, current_user.password) File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py", line 31, in encrypt cipher = AES.new(pad(key), AES.MODE_CFB, iv) File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py", line 80, in pad return str + ((32 - len(str) % 32) * padding_string)TypeError: Can't convert 'bytes' object to str implicitly2017-06-27 13:21:53,031: INFO werkzeug: 127.0.0.1 - - [27/Jun/2017 13:21:53] "POST /browser/server/obj/2/ HTTP/1.1" 410 -2017-06-27 13:22:49,936: INFO werkzeug: * Detected change in '/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py', reloading2017-06-27 13:22:50,138: INFO werkzeug: * Restarting with reloaderSo this is the error:Can't convert 'bytes' object to str implicitlyTo fix this on Python 3.5 I simply changed in pgadmin4/web/pgadmin/utils/crypto.py file this line:return str + ((32 - len(str) % 32) * padding_string)toreturn str + ((32 - len(str) % 32) * padding_string.decode())Another solution could be to change whole str into bytes. Not sure what is better, but now it works.
Hi,Can you send the patch for the same. I think this is the valid fix.Thanks,KhushbooOn Tue, Jun 27, 2017 at 3:02 PM, Ladislav Jech <archenroot@gmail.com> wrote:I am running on following Gentoo system with Python 3.5 as default (although i have 2.7 and 3.4 available to switch as well). I compiled from source code via github:commit 15cb9fc35b41736a331a452b9303a79e8f13ee36 (HEAD -> master, origin/master, origin/HEAD)The error appears when I want to click on Save while adding new server to the list, I put few lines into the code to detect the times:2017-06-27 13:21:48,329: DEBUG pgadmin: Not running under the desktop runtime, port: 5050Starting pgAdmin 4. Please navigate to http://127.0.0.1:5050 in your browser.str var python type is <class 'str'>str var object's type is strpadding_string var python type is <class 'bytes'>padding_string var object's type is bytes2017-06-27 13:21:53,028: ERROR pgadmin: Can't convert 'bytes' object to str implicitlyTraceback (most recent call last): File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py", line 619, in create password = encrypt(password, current_user.password) File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py", line 31, in encrypt cipher = AES.new(pad(key), AES.MODE_CFB, iv) File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py", line 80, in pad return str + ((32 - len(str) % 32) * padding_string)TypeError: Can't convert 'bytes' object to str implicitly2017-06-27 13:21:53,031: INFO werkzeug: 127.0.0.1 - - [27/Jun/2017 13:21:53] "POST /browser/server/obj/2/ HTTP/1.1" 410 -2017-06-27 13:22:49,936: INFO werkzeug: * Detected change in '/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py', reloading2017-06-27 13:22:50,138: INFO werkzeug: * Restarting with reloaderSo this is the error:Can't convert 'bytes' object to str implicitlyTo fix this on Python 3.5 I simply changed in pgadmin4/web/pgadmin/utils/crypto.py file this line:return str + ((32 - len(str) % 32) * padding_string)toreturn str + ((32 - len(str) % 32) * padding_string.decode())Another solution could be to change whole str into bytes. Not sure what is better, but now it works.
I am running on following Gentoo system with Python 3.5 as default (although i have 2.7 and 3.4 available to switch as well). I compiled from source code via github:commit 15cb9fc35b41736a331a452b9303a79e8f13ee36 (HEAD -> master, origin/master, origin/HEAD)The error appears when I want to click on Save while adding new server to the list, I put few lines into the code to detect the times:2017-06-27 13:21:48,329: DEBUG pgadmin: Not running under the desktop runtime, port: 5050Starting pgAdmin 4. Please navigate to http://127.0.0.1:5050 in your browser.str var python type is <class 'str'>str var object's type is strpadding_string var python type is <class 'bytes'>padding_string var object's type is bytes2017-06-27 13:21:53,028: ERROR pgadmin: Can't convert 'bytes' object to str implicitlyTraceback (most recent call last): File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py", line 619, in create password = encrypt(password, current_user.password) File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py", line 31, in encrypt cipher = AES.new(pad(key), AES.MODE_CFB, iv) File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py", line 80, in pad return str + ((32 - len(str) % 32) * padding_string)TypeError: Can't convert 'bytes' object to str implicitly2017-06-27 13:21:53,031: INFO werkzeug: 127.0.0.1 - - [27/Jun/2017 13:21:53] "POST /browser/server/obj/2/ HTTP/1.1" 410 -2017-06-27 13:22:49,936: INFO werkzeug: * Detected change in '/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py', reloading2017-06-27 13:22:50,138: INFO werkzeug: * Restarting with reloaderSo this is the error:Can't convert 'bytes' object to str implicitlyTo fix this on Python 3.5 I simply changed in pgadmin4/web/pgadmin/utils/crypto.py file this line:return str + ((32 - len(str) % 32) * padding_string)toreturn str + ((32 - len(str) % 32) * padding_string.decode())Another solution could be to change whole str into bytes. Not sure what is better, but now it works.
pgadmin-hackers by date:
Соглашаюсь с условиями обработки персональных данных