wincertstore (original) (raw)

wincertstore provides an interface to access Windows’ CA and CRL certificates. It uses ctypes and Windows’s sytem cert store API through crypt32.dll.

Example

import wincertstore for storename in ("CA", "ROOT"): with wincertstore.CertSystemStore(storename) as store: for cert in store.itercerts(usage=wincertstore.SERVER_AUTH): print(cert.get_pem().decode("ascii")) print(cert.get_name()) print(cert.enhanced_keyusage_names())

SERVER_AUTH is the default enhanced key usage. In order to get all certificates for any usage, use None. The module offers more OIDs likeCLIENT_AUTH, too.

For Python versions without the with statement:

for storename in ("CA", "ROOT"): store = wincertstore.CertSystemStore(storename) try: for cert in store.itercerts(): print(cert.get_pem().decode("ascii") finally: store.close()

See CertOpenSystemStore

CertFile helper:

import wincertstore import atexit import ssl

certfile = wincertstore.CertFile() certfile.addstore("CA") certfile.addstore("ROOT") atexit.register(certfile.close) # cleanup and remove files on shutdown)

ssl_sock = ssl.wrap_socket(sock, ca_certs=certfile.name, cert_reqs=ssl.CERT_REQUIRED)

Requirements

License

Copyright (c) 2013, 2014 by Christian Heimes <christian@python.org>

Licensed to PSF under a Contributor Agreement.

See http://www.python.org/psf/license for licensing details.

Acknowledgements

http://fixunix.com/openssl/254866-re-can-openssl-use-windows-certificate-store.html

http://bugs.python.org/issue17134

References

ChangeLog

wincertstore 0.2

Release date: 26-Feb-2013

wincertstore 0.1

Release date: 22-Mar-2013