24
24
* **OSXKeychain**: supports the Keychain service in Mac OS X.
25
25
* **KDEKWallet**: supports the KDE's Kwallet service.
26
* **GnomeKeyring**: for Gnome environment.
26
* **GnomeKeyring**: for Gnome 2 environment.
27
* **SecretServiceKeyring**: for newer GNOME and KDE environments.
28
29
Besides these native password storing services provided by operating systems.
29
30
Python keyring lib also provides following build-in keyrings.
80
81
2. The home directory for current user
82
83
The lib will first look for the config file in the working directory. If no
83
config file exists **or** the config file is not write properly, the lib will
84
look up in the home folder.
84
config file exists **or** the config file cannot be written properly, keyring
85
will reference the config in the home directory.
87
Beginning with keyring 0.8, the config root is platform specific. To determine
88
where in the home directory the config file (and other data files) are stored,
91
python -c "import keyring.util.platform; print(keyring.util.platform.data_root())"
86
93
Config file content
87
94
-------------------
282
In order to be able to run the tests of the project you first have to bootstrap it. In order
283
to do this you can do the following:
285
1. python bootstrap # generate the buildbot
286
2. bin/buildbot # run the builbot it self.
287
3. bin/test # execute the test runner.
289
For more information about the options that the script provides do execute
291
> python bin/test --help
293
If this is the first time you are using a buildbot you can get the bootstrap script
296
> svn cat svn://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap/bootstrap.py > /tmp/bootstrap
298
And from that point you can use the following as step 1:
300
> python /tmp/bootstrap
289
To run the tests, you'll want keyring installed to some environment in which
290
it can be tested. Two recommended techniques are described below.
292
Using virtualenv and pytest/nose/unittest2
293
------------------------------------------
295
Pytest and Nose are two popular test runners that will discover tests and run
296
them. Unittest2 (also known as simply unittest in Python 3) also has a mode
299
First, however, these test runners typically need a test environment in which
300
to run. It is recommended that you install keyring to a virtual environment
301
to avoid interfering with your system environment. For more information, see
302
the `virtualenv homepage <http://www.virtualenv.org>`_.
304
After you've created (or designated) your environment, install keyring into
305
the environment by running::
307
python setup.py develop
309
Then, invoke your favorite test runner, e.g.::
320
The keyring repo bundles buildout's bootstrap script as a subrepo, so using
321
buildout is three easy steps::
323
1. python buildout/bootstrap # bootstrap the buildout.
324
2. bin/buildout # prepare the buildout.
325
3. bin/test # execute the test runner.
327
For more information about the options that the script provides do execute::
329
python bin/test --help
352
* Keyring 0.9.1 introduced a whole different storage format for the
353
CryptedFileKeyring, but this introduced some potential compatibility issues.
354
This release incorporates the security updates but reverts to the INI file
355
format for storage, only encrypting the passwords and leaving the service
356
and usernames in plaintext. Subsequent releases may incorporate a new
357
keyring to implement a whole-file encrypted version. Fixes #64.
358
* The CryptedFileKeyring now requires simplejson for Python 2.5 clients.
364
* Fix for issue where SecretServiceBackend.set_password would raise a
365
UnicodeError on Python 3 or when a unicode password was provided on Python
367
* CryptedFileKeyring now uses PBKDF2 to derive the key from the user's
368
password and a random hash. The IV is chosen randomly as well. All the
369
stored passwords are encrypted at once. Any keyrings using the old format
370
will be automatically converted to the new format (but will no longer be
371
compatible with 0.9 and earlier). The user's password is no longer limited
372
to 32 characters. PyCrypto 2.5 or greater is now required for this keyring.
378
* Add support for GTK 3 and secret service D-Bus. Fixes #52.
379
* Issue #60 - Use correct method for decoding.
385
* Fix regression in keyring lib on Windows XP where the LOCALAPPDATA
386
environment variable is not present.
392
* Mac OS X keyring backend now uses subprocess calls to the `security`
393
command instead of calling the API, which with the latest updates, no
394
longer allows Python to invoke from a virtualenv. Fixes issue #13.
395
* When using file-based storage, the keyring files are no longer stored
396
in the user's home directory, but are instead stored in platform-friendly
397
locations (`%localappdata%\Python Keyring` on Windows and according to
398
the freedesktop.org Base Dir Specification
399
(`$XDG_DATA_HOME/python_keyring` or `$HOME/.local/share/python_keyring`)
400
on other operating systems). This fixes #21.
402
*Backward Compatibility Notice*
404
Due to the new storage location for file-based keyrings, keyring 0.8
405
supports backward compatibility by automatically moving the password
406
files to the updated location. In general, users can upgrade to 0.8 and
407
continue to operate normally. Any applications that customize the storage
408
location or make assumptions about the storage location will need to take
409
this change into consideration. Additionally, after upgrading to 0.8,
410
it is not possible to downgrade to 0.7 without manually moving
411
configuration files. In 1.0, the backward compatibilty