nassl
Experimental OpenSSL wrapper for Python 3.10+ and SSLyze.
What it is and what it does
nassl is an experimental OpenSSL wrapper designed to provide access to low-level SSL/TLS functions that are not exposed by Python's standard ssl module or other common wrappers. It consists of two layers: a C extension (_nassl namespace) that closely mirrors OpenSSL's C API, and higher-level Python classes (nassl namespace) that provide a simpler interface for SSL connections. The package was created to support SSLyze, an SSL scanner that requires capabilities like testing for insecure renegotiation and session resumption.
The package explicitly warns that it is experimental and not production-ready, having not been thoroughly tested or reviewed. It supports Python 3.10 through 3.14 and is actively maintained, with prebuilt wheels available for major platforms. Installation requires a C compiler and OpenSSL development headers due to the compiled extension component.
Use it for:
- Building SSL/TLS security scanners that need access to low-level OpenSSL functions unavailable in standard libraries
- Testing SSL servers for specific vulnerabilities or misconfigurations like insecure renegotiation
- Implementing custom SSL session resumption tests or protocol-level diagnostics
- Extending SSLyze or similar security tools that require fine-grained control over SSL connections
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
nassl is an OpenSSL wrapper for Python that exposes low-level SSL/TLS functions needed for SSL server scanning and testing, with a C extension layer that closely mirrors OpenSSL's API.
Yes, if you are building SSL security testing tools and need low-level OpenSSL access that standard Python ssl or pyOpenSSL do not provide. No, if you need production-ready code—the package explicitly disclaims production readiness. Be aware of AGPL v3 licensing obligations if incorporating into a larger project.
Install
nassl on PyPI
pip
pip install nassluv
uv add nasslpoetry
poetry add nasslInstalling nassl
Before you install
Medium install friction due to C extension compilation requirements. The package is actively maintained with recent commits and supports Python 3.10 through 3.14, with prebuilt wheels available for common platforms (macOS, Linux, Windows across multiple architectures).
License in practice
Licensed under AGPL v3, which requires derivative works and modifications to be released under the same license. This is a copyleft license with stronger obligations than permissive alternatives; review your project's licensing compatibility before use.
Quickstart
pip install nassl
import nassl
# Access low-level SSL functions via nassl._nassl namespace or higher-level interfaces via nassl namespace
Requires Python 3.10 or later. C extension compilation may require OpenSSL development headers on your system.
Verify before relying
- Specific example code or API documentation showing how to perform common SSL testing tasks
- Performance characteristics or limitations when scanning large numbers of servers
- Current state of production readiness given the 'experimental' and 'not production ready' disclaimer in the description
Package facts
| License | not declared (agpl) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 228 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 176,248/month — #10,249 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: nassl-5.4.0-cp310-cp310-macosx_11_0_arm64.whl; nassl-5.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; nassl-5.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; nassl-5.4.0-cp310-cp310-musllinux_1_2_aarch64.whl; nassl-5.4.0-cp310-cp310-musllinux_1_2_x86_64.whl; nassl-5.4.0-cp310-cp310-win_amd64.whl; nassl-5.4.0-cp311-cp311-macosx_11_0_arm64.whl; nassl-5.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; nassl-5.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; nassl-5.4.0-cp311-cp311-musllinux_1_2_aarch64.whl; nassl-5.4.0-cp311-cp311-musllinux_1_2_x86_64.whl; nassl-5.4.0-cp311-cp311-win_amd64.whl; nassl-5.4.0-cp312-cp312-macosx_11_0_arm64.whl; nassl-5.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; nassl-5.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; nassl-5.4.0-cp312-cp312-musllinux_1_2_aarch64.whl; nassl-5.4.0-cp312-cp312-musllinux_1_2_x86_64.whl; nassl-5.4.0-cp312-cp312-win_amd64.whl; nassl-5.4.0-cp313-cp313-macosx_11_0_arm64.whl; nassl-5.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Keywords: ssl, tls, scan, security, library
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
sslyzeSSLyze is a fast SSL/TLS scanning tool and…
agpl · top 15,000 on PyPI
tls-parserParses TLS records from binary data, extracting…
unclear · top 15,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
M2CryptoM2Crypto wraps OpenSSL via SWIG to provide…
permissive · top 15,000 on PyPI
oscryptooscrypto provides TLS sockets, key generation,…
permissive · top 1,000 on PyPI
backports.sslProvides the Python 3.4 ssl module API on older…
permissive · top 15,000 on PyPI
ndg-httpsclientProvides enhanced HTTPS support for Python's…
permissive · top 5,000 on PyPI
openssl-ocsp-responderWraps OpenSSL's command-line OCSP responder to…
permissive · top 15,000 on PyPI
tlslite-ngPure Python implementation of SSL/TLS protocols…
copyleft · top 15,000 on PyPI
awscrtPython bindings for the AWS Common Runtime,…
permissive · top 5,000 on PyPI