Skip to main content

A Python API for Mac OS X Keychain, port of

Project description

A Python api for Mac OS X Keychain. It is a port of

  • Free software: BSD license

Getting started

To install the package do:

pip install keychain-manager


Example of generating Apple Push Certificate

from keychain_manager import KeychainManager
import os.path

USER = ''
# let's choose a keychain name, so we won't pollute the 'login' keychain
KEYCHAIN = 'apple_push_keychain'
# this is where the file aps_production_identity.cer will be downloaded
YOUR_DOWNLOADS_DIR = os.path.expanduser('~/Downloads/')

RSA_FILE = '/tmp/myrsa.key'

CERT_FILE = '/tmp/CertificateSigningRequest.certSigningRequest'
# 'US' is the country abbreviation.
KeychainManager.generate_cert_request(USER, 'US', RSA_FILE, CERT_FILE)

kcm = KeychainManager(KEYCHAIN)
if kcm.exists():


# now from your browser, you'll have downloaded a file from Apple
# typically named: aps_production.cer
kcm.import_apple_cert(os.path.join(YOUR_DOWNLOADS_DIR, 'aps_production.cer'))

P12_FILE = '/tmp/push_prod.p12'

PEM_FILE = '/tmp/push_prod.pem'
KeychainManager.convert_p12_to_pem(P12_FILE, PEM_FILE)



Tests are running on the Mac OS X only, since we need to have actualy Keychain Manager. Just clone the repo on your Mac computer and run:

python test


0.1.0 (2013-09-11)

  • First release on PyPI.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
keychain_manager-0.1.3.tar.gz (6.5 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page