Skip to main content

Access your OS root certificates with utmost ease

Project description

Wassima 🔒

I named this library after my wife, whom I trust the most. ❤️

Download Count Total

This project offers you a great alternative to certifi. It is a simple yet efficient wrapper around MIT licensed rustls-native-certs.

This project allows you to access your original operating system trust store, thus helping you to verify the remote peer certificates.

It works as-is out-of-the-box for MacOS, Windows, and Linux. Automatically fallback on Certifi otherwise. Available on PyPy and Python 3.7+

If your particular operating system is not supported, we will make this happen! Open an issue on the repository.

For now, it is not supported to call your OS certificate verify native function. Use your Python native capabilities for it.

✨ Installation

Using pip:

pip install wassima -U

Get started

A) Create a SSLContext

import wassima

ctx = wassima.create_default_ssl_context()
# ... The context magically contain your system root CAs, the rest is up to you!

B) Retrieve individually root CAs in a binary form (DER)

import wassima

certs = wassima.root_der_certificates()
# ... It contains a list of certificate represented in bytes

C) Retrieve individually root CAs in a string form (PEM)

import wassima

certs = wassima.root_pem_certificates()
# ... It contains a list of certificate represented in string

D) Retrieve a single bundle (concatenated) list of PEM certificates like certifi does

import wassima

bundle = wassima.generate_ca_bundle()
# ... It contains a string with all of your root CAs!
# It is not a path but the file content itself.

C) Register your own CA in addition to the system's

import wassima

wassima.register_ca(open("./myrootca.pem", "r").read())
bundle = wassima.generate_ca_bundle()
# ... It contains a string with all of your root CAs, PLUS your own 'myrootca.pem'.
# It is not a path but the file content itself.

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

wassima-1.1.4.tar.gz (16.3 kB view hashes)

Uploaded Source

Built Distributions

wassima-1.1.4-py3-none-any.whl (7.6 kB view hashes)

Uploaded Python 3

wassima-1.1.4-pp310-pypy310_pp73-win_amd64.whl (132.8 kB view hashes)

Uploaded PyPy Windows x86-64

wassima-1.1.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (423.2 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

wassima-1.1.4-pp310-pypy310_pp73-musllinux_1_1_i686.whl (443.6 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ i686

wassima-1.1.4-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl (520.4 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARMv7l

wassima-1.1.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (438.8 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

wassima-1.1.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (254.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

wassima-1.1.4-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (303.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

wassima-1.1.4-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (289.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

wassima-1.1.4-pp310-pypy310_pp73-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (292.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64

wassima-1.1.4-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (259.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

wassima-1.1.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (253.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

wassima-1.1.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl (270.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

wassima-1.1.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl (228.5 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

wassima-1.1.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (232.3 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

wassima-1.1.4-pp310-pypy310_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (455.0 kB view hashes)

Uploaded PyPy macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

wassima-1.1.4-pp39-pypy39_pp73-win_amd64.whl (132.8 kB view hashes)

Uploaded PyPy Windows x86-64

wassima-1.1.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (423.2 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

wassima-1.1.4-pp39-pypy39_pp73-musllinux_1_1_i686.whl (443.6 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ i686

wassima-1.1.4-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl (520.4 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARMv7l

wassima-1.1.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (438.8 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

wassima-1.1.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (254.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

wassima-1.1.4-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (303.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

wassima-1.1.4-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (289.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

wassima-1.1.4-pp39-pypy39_pp73-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (292.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64

wassima-1.1.4-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (259.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

wassima-1.1.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (253.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

wassima-1.1.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl (270.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

wassima-1.1.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl (228.5 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

wassima-1.1.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (232.3 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

wassima-1.1.4-pp39-pypy39_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (455.0 kB view hashes)

Uploaded PyPy macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

wassima-1.1.4-pp38-pypy38_pp73-win_amd64.whl (132.8 kB view hashes)

Uploaded PyPy Windows x86-64

wassima-1.1.4-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl (423.1 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

wassima-1.1.4-pp38-pypy38_pp73-musllinux_1_1_i686.whl (443.7 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ i686

wassima-1.1.4-pp38-pypy38_pp73-musllinux_1_1_armv7l.whl (520.3 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARMv7l

wassima-1.1.4-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl (438.8 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

wassima-1.1.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (254.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

wassima-1.1.4-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (303.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

wassima-1.1.4-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (289.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

wassima-1.1.4-pp38-pypy38_pp73-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (292.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64

wassima-1.1.4-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (259.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

wassima-1.1.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (253.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

wassima-1.1.4-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl (270.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

wassima-1.1.4-pp38-pypy38_pp73-macosx_11_0_arm64.whl (228.5 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

wassima-1.1.4-pp38-pypy38_pp73-macosx_10_12_x86_64.whl (232.3 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

wassima-1.1.4-pp38-pypy38_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (455.0 kB view hashes)

Uploaded PyPy macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

wassima-1.1.4-pp37-pypy37_pp73-win_amd64.whl (134.8 kB view hashes)

Uploaded PyPy Windows x86-64

wassima-1.1.4-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl (425.6 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

wassima-1.1.4-pp37-pypy37_pp73-musllinux_1_1_i686.whl (446.8 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ i686

wassima-1.1.4-pp37-pypy37_pp73-musllinux_1_1_armv7l.whl (523.4 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARMv7l

wassima-1.1.4-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl (441.6 kB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

wassima-1.1.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (257.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

wassima-1.1.4-pp37-pypy37_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (306.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

wassima-1.1.4-pp37-pypy37_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (292.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

wassima-1.1.4-pp37-pypy37_pp73-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (295.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64

wassima-1.1.4-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (261.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

wassima-1.1.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (256.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

wassima-1.1.4-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl (272.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

wassima-1.1.4-pp37-pypy37_pp73-macosx_11_0_arm64.whl (230.7 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

wassima-1.1.4-pp37-pypy37_pp73-macosx_10_12_x86_64.whl (234.4 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

wassima-1.1.4-pp37-pypy37_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (459.8 kB view hashes)

Uploaded PyPy macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

wassima-1.1.4-cp37-abi3-win_arm64.whl (127.7 kB view hashes)

Uploaded CPython 3.7+ Windows ARM64

wassima-1.1.4-cp37-abi3-win_amd64.whl (132.9 kB view hashes)

Uploaded CPython 3.7+ Windows x86-64

wassima-1.1.4-cp37-abi3-musllinux_1_1_x86_64.whl (422.8 kB view hashes)

Uploaded CPython 3.7+ musllinux: musl 1.1+ x86-64

wassima-1.1.4-cp37-abi3-musllinux_1_1_i686.whl (444.1 kB view hashes)

Uploaded CPython 3.7+ musllinux: musl 1.1+ i686

wassima-1.1.4-cp37-abi3-musllinux_1_1_armv7l.whl (520.6 kB view hashes)

Uploaded CPython 3.7+ musllinux: musl 1.1+ ARMv7l

wassima-1.1.4-cp37-abi3-musllinux_1_1_aarch64.whl (438.4 kB view hashes)

Uploaded CPython 3.7+ musllinux: musl 1.1+ ARM64

wassima-1.1.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (254.5 kB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ x86-64

wassima-1.1.4-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (303.5 kB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ s390x

wassima-1.1.4-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (290.0 kB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ ppc64le

wassima-1.1.4-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (292.6 kB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ ppc64

wassima-1.1.4-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (258.8 kB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ ARMv7l

wassima-1.1.4-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (253.8 kB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ ARM64

wassima-1.1.4-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl (269.6 kB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.5+ i686

wassima-1.1.4-cp37-abi3-macosx_11_0_arm64.whl (227.9 kB view hashes)

Uploaded CPython 3.7+ macOS 11.0+ ARM64

wassima-1.1.4-cp37-abi3-macosx_10_12_x86_64.whl (231.9 kB view hashes)

Uploaded CPython 3.7+ macOS 10.12+ x86-64

wassima-1.1.4-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (454.0 kB view hashes)

Uploaded CPython 3.7+ macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

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