TypeError after upgrade to 2.0

51 views
Skip to first unread message

Krystian Rosiński

unread,
Aug 19, 2013, 6:08:00 PM8/19/13
to python-...@googlegroups.com
After upgrade keyring to 2.0 I got the TypeError (traceback below). New version select keyring.backends.Windows.RegistryKeyring as default backend on Windows and it looks like a bug in _win_crypto.py module. Could someone confirm this? 

keyring.backends.file.PlaintextKeyring and keyring.backends.Windows.EncryptedKeyring are working properly.

Windows 7 64-bit, Python 3.3.2 32 bit

Traceback (most recent call last):
  File "D:\Workspace\Marker\src\dialogs\settings.py", line 105, in accept
    mailSettingsSaved = self.mailPage.saveSettings()
  File "D:\Workspace\Marker\src\dialogs\settings.py", line 274, in saveSettings
    EmailSettings.setPasswd(passwd)
  File "D:\Workspace\Marker\src\settings.py", line 100, in setPasswd
    keyring.set_password("Email", cls.__email, value)
  File "D:\env\marker\lib\site-packages\keyring\core.py", line 42, in set_passwo
rd
    _keyring_backend.set_password(service_name, username, password)
  File "D:\env\marker\lib\site-packages\keyring\backends\Windows.py", line 188,
in set_password
    password_encrypted = _win_crypto.encrypt(password)
  File "D:\env\marker\lib\site-packages\keyring\backends\_win_crypto.py", line 6
8, in encrypt
    pbData=cast(c_char_p(data),
TypeError: bytes or integer address expected instead of str instance

Simple test:

>>> import ctypes
>>> ctypes.c_char_p("foo")
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    ctypes.c_char_p("foo")
TypeError: bytes or integer address expected instead of str instance

Regards,
Krystian 

Krystian Rosiński

unread,
Aug 25, 2013, 7:30:06 AM8/25/13
to python-...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages