Skip to main content

A Python API for Mac OS X Keychain, port of https://github.com/jprichardson/keychain_manager

Project description

https://badge.fury.io/py/keychain_manager.png https://pypip.in/d/keychain_manager/badge.png

A Python api for Mac OS X Keychain. It is a port of https://github.com/jprichardson/keychain_manager

  • Free software: BSD license

Getting started

To install the package do:

pip install keychain-manager

Usage

Example of generating Apple Push Certificate

from keychain_manager import KeychainManager
import os.path

USER = 'youremail@example.com'
# 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 = '~/Downloads/'

RSA_FILE = '/tmp/myrsa.key'
KeychainManager.generate_rsa_key(RSA_FILE)

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():
    kcm.delete()
kcm.create()

kcm.import_rsa_key(RSA_FILE)

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

P12_FILE = '/tmp/push_prod.p12'
kcm.export_identites(P12_FILE)

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

kcm.delete()

Tests

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 setup.py test

History

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.

Source Distribution

keychain_manager-0.1.1.tar.gz (5.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page