Skip to main content

Utilities that assist with trust relationship checking of X.509 Certificates for various end-user devices with disparate root trust stores.

Project description

tlstrust

Utilities that assist with trust relationship checking of X.509 Certificates for various end-user devices with disparate root trust stores.

Documentation

In your app you can:

import os
from pathlib import Path
from OpenSSL.crypto import FILETYPE_ASN1
from tlstrust import TrustStore

der = Path(os.path.join(os.path.dirname(__file__), "cacert.der")).read_bytes()
trust_store = TrustStore(FILETYPE_ASN1, der)
print(trust_store.check_trust())

Platform specific checking

all_trusted = trust_store.check_trust()
assert all_trusted is True
assert trust_store.apple # Until December 1st 2021
assert trust_store.android
assert trust_store.linux
assert trust_store.ccadb # Windows, Mozilla, and Apple (from December 1st 2021)
assert trust_store.java
assert trust_store.certifi

Windows only

from tlstrust.context import PLATFORM_WINDOWS

assert trust_store.exists(PLATFORM_WINDOWS)
assert trust_store.expired_in_store(PLATFORM_WINDOWS)
assert trust_store.get_certificate_from_store(PLATFORM_WINDOWS)
assert trust_store.check_trust(PLATFORM_WINDOWS)

Other Platform

from tlstrust.context import PLATFORM_ANDROID
from tlstrust.context import PLATFORM_JAVA
from tlstrust.context import PLATFORM_APPLE
from tlstrust.context import PLATFORM_LINUX

Browser Trust Stores

from tlstrust.context import BROWSER_AMAZON_SILK, BROWSER_SAMSUNG_INTERNET_BROWSER, BROWSER_GOOGLE_CHROME, BROWSER_CHROMIUM, BROWSER_FIREFOX, BROWSER_BRAVE, BROWSER_SAFARI, BROWSER_MICROSOFT_EDGE, BROWSER_YANDEX_BROWSER, BROWSER_OPERA, BROWSER_VIVALDI, BROWSER_TOR_BROWSER

assert trust_store.check_trust(BROWSER_AMAZON_SILK)
assert trust_store.check_trust(BROWSER_SAMSUNG_INTERNET_BROWSER)
assert trust_store.check_trust(BROWSER_GOOGLE_CHROME)
assert trust_store.check_trust(BROWSER_CHROMIUM)
assert trust_store.check_trust(BROWSER_FIREFOX)
assert trust_store.check_trust(BROWSER_BRAVE)
assert trust_store.check_trust(BROWSER_SAFARI)
assert trust_store.check_trust(BROWSER_MICROSOFT_EDGE)
assert trust_store.check_trust(BROWSER_YANDEX_BROWSER)
assert trust_store.check_trust(BROWSER_OPERA)
assert trust_store.check_trust(BROWSER_VIVALDI)
assert trust_store.check_trust(BROWSER_TOR_BROWSER)

Programming Language Trust (Microservice architecture and APIs)

Python:

from tlstrust.context import PYTHON_WINDOWS_SERVER, PYTHON_LINUX_SERVER, PYTHON_MACOS_SERVER, PYTHON_CERTIFI, PYTHON_URLLIB, PYTHON_REQUESTS, PYTHON_DJANGO

assert trust_store.check_trust(PYTHON_WINDOWS_SERVER)
assert trust_store.check_trust(PYTHON_LINUX_SERVER)
assert trust_store.check_trust(PYTHON_MACOS_SERVER)
assert trust_store.check_trust(PYTHON_CERTIFI)
assert trust_store.check_trust(PYTHON_URLLIB)
assert trust_store.check_trust(PYTHON_REQUESTS)
assert trust_store.check_trust(PYTHON_DJANGO)

Change Log

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

tlstrust-1.1.1.tar.gz (2.6 MB view hashes)

Uploaded Source

Built Distribution

tlstrust-1.1.1-py2.py3-none-any.whl (2.7 MB view hashes)

Uploaded Python 2 Python 3

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