nassl
Experimental OpenSSL wrapper for Python 3.10+ and SSLyze.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- C extension compilation may require OpenSSL development headers on your system.
- Medium install friction due to C extension compilation requirements.
License · maintenance · safety
(agpl) — 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.
last release 2025-12-29 (228 days) · last repo commit 2026-07-29 · 42 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 176,248 downloads/mo, #10,249 on PyPI
Alternatives
Verify before relying
pip install nassl
import nassl
# Access low-level SSL functions via nassl._nassl namespace or higher-level interfaces via nassl namespace- 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
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 on it.
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
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).
Requires Python 3.10 or later. C extension compilation may require OpenSSL development headers on your system.
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
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 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: System AdministratorsLicense :: OSI Approved :: GNU Affero General Public License v3Natural Language :: FrenchProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: SecurityTopic :: System :: MonitoringTopic :: System :: NetworkingTopic :: System :: Networking :: Monitoring |
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
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “ssl tls testing library”
- nasslnassl is an OpenSSL wrapper for Python that exposes low-level SSL/TLS…
- sslyzeSSLyze is a fast SSL/TLS scanning tool and Python library that…
- tlslite-ngPure Python implementation of SSL/TLS protocols (SSLv3.0, TLS…
Give your agent the search over MCP, or paste the wish link into any chat.
More Monitoring packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.
Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.
Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.
Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.
Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.
Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.
Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.
Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.
See also sslyze · tls-parser · pyOpenSSL · M2Crypto · oscrypto · backports.ssl · ndg-httpsclient · openssl-ocsp-responder · tlslite-ng · awscrt