Python implementation of 1Password keychains
Clone or download
Roguelazer Merge pull request #13 from hayderimran7/patch-1
Update the requirements for system libs
Latest commit 6d96ab4 Nov 11, 2015
Failed to load latest commit information.
data Working integration tests Apr 22, 2014
onepassword update to v0.0.3 Oct 9, 2015
tests Remove random_util, use os.urandom instead. Aug 22, 2015
.gitignore start adding python 3.3 support Oct 29, 2013
.travis.yml update README, remove --use-mirrors Oct 9, 2015
LICENSE.txt Add documentation Feb 10, 2013
README.markdown Update the requirements for system libs Nov 11, 2015
requirements-tests-py2.txt start adding python 3.3 support Oct 29, 2013
requirements-tests-py3.txt start adding python 3.3 support Oct 29, 2013
requirements-tests.txt start adding python 3.3 support Oct 29, 2013
requirements.txt Remove PyCrypto, use cryptography instead Aug 16, 2015
setup.cfg Much better CloudKeychain support Apr 22, 2014, too Oct 29, 2013


Build Status

onepasswordpy is a pure-python library for manipulating 1Password's .agilekeychain files. Right now, it supports decrypting and loading all data types. Creation of new items will come in a future release. It will also support .cloudkeychain files in a future release. See TODO.markdown for other things that might come in future releases.

IMPORTANT NOTE: I am not in any way affiliated with AgileBits, the makers of 1Password. Their software is awesome and you should probably go buy it. Please don't sue me!


This project depends on the following major third-party libraries:

  • simplejson
  • cryptography

In addition to that, you also need to have following crypto libs installed on your system:

  • On Ubuntu ( openssl-dev , libffi-dev )
  • On RHEL/SuSE ( openssl-devel, libffi48-devel )

This is a human-readable denormalized list; for the actual list, look at

There are three different providers for the most expensive crypto operation (key derivation via PBKDF2):

  • nettle (via ctypes): finishes test suite in 0.35s
  • cryptography: finishes test suite in 1.4s

These will be imported in that order. If you don't have nettle, everything will fall back gracefully to cryptography (which is also used for the speedy symmetric crypto).

Unit tests are written using nose and unittest2; you should install those (with yum, apt-get, pip, or whatever else suits your fancy) and run nosetests tests to run the tests.

This library ought to work with Python 2.6, 2.7, and 3.3+.


This work is licensed under the ISC license. The full contents of this license are available as the file LICENSE.txt