scramp
An implementation of the SCRAM protocol.
Decision gist · record as of 2026-08-14
Yes. Scramp is actively maintained, has no known vulnerabilities, installs cleanly with minimal dependencies, and is the standard Python implementation of SCRAM. Install it if you need to authenticate against a SCRAM-capable service or build SCRAM authentication into your application. The permissive MIT-0 license poses no restrictions.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Low install friction with a single runtime dependency (asn1crypto).
- Active maintenance with a release 7 days ago.
License · maintenance · safety
MIT No Attribution (permissive) — MIT No Attribution (MIT-0) is a permissive license with minimal restrictions—you can use, modify, and distribute the package freely with no attribution requirement.
last release 2026-08-07 (7 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 66,810,516 downloads/mo, #483 on PyPI
Alternatives
Verify before relying
pip install scramp
from scramp import ScramClient
c = ScramClient(['SCRAM-SHA-256'], 'user', 'password')
cfirst = c.get_client_first()
# Send cfirst to server, receive server response, continue handshake- Whether the package handles all edge cases in SCRAM-SHA3-512 and channel binding flows reliably in production.
- Performance characteristics when handling many concurrent authentication sessions.
- Compatibility with specific SASL server implementations beyond the documented standards.
What it is and what it does
Scramp is a Python library that implements the Salted Challenge Response Authentication Mechanism (SCRAM), a family of SASL authentication protocols. It provides both client and server implementations, allowing you to authenticate users over untrusted channels without transmitting passwords in the clear. The library supports multiple hash algorithms (SHA-1, SHA-256, SHA-512, SHA3-512) and optional channel binding for additional security.
The package is designed for applications that need to integrate SCRAM authentication—such as database clients, messaging systems, or custom authentication services. You instantiate either a ScramClient or ScramServer, exchange protocol messages through a series of method calls, and the library handles the cryptographic operations and validation. It depends only on asn1crypto for ASN.1 encoding, keeping the dependency footprint minimal.
Use it for
- Authenticate users to a database or message broker that requires SCRAM (e.g., MongoDB, RabbitMQ).
- Build a custom authentication service that uses SCRAM for client-server credential exchange.
- Implement SASL authentication in a custom protocol or application layer.
- Add channel-binding-aware authentication to protect against man-in-the-middle attacks.
- Test SCRAM server implementations by writing a client that exercises the protocol.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Scramp is actively maintained, has no known vulnerabilities, installs cleanly with minimal dependencies, and is the standard Python implementation of SCRAM. Install it if you need to authenticate against a SCRAM-capable service or build SCRAM authentication into your application. The permissive MIT-0 license poses no restrictions.
Install
scramp on PyPI
Before you install
Low install friction with a single runtime dependency (asn1crypto). Active maintenance with a release 7 days ago. Requires Python 3.10 or later.
Requires Python 3.10 or later.
License in practice
MIT No Attribution (MIT-0) is a permissive license with minimal restrictions—you can use, modify, and distribute the package freely with no attribution requirement.
Quickstart
pip install scramp
from scramp import ScramClient
c = ScramClient(['SCRAM-SHA-256'], 'user', 'password')
cfirst = c.get_client_first()
# Send cfirst to server, receive server response, continue handshake
Verify before relying
- Whether the package handles all edge cases in SCRAM-SHA3-512 and channel binding flows reliably in production.
- Performance characteristics when handling many concurrent authentication sessions.
- Compatibility with specific SASL server implementations beyond the documented standards.
Package facts
| License | MIT No Attribution permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packageasn1crypto |
| Maintenance | Actively maintained 7 days since the last release |
| First released | |
| Downloads | 66,810,516 / month, #483 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT No Attribution License (MIT-0)Operating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: ImplementationProgramming Language :: Python :: Implementation :: CPython |
Evidence: scramp-1.4.17-py3-none-any.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 › “SCRAM authentication protocol”
- scrampScramp implements the SCRAM authentication protocol in Python,…
- pg8000pg8000 is a pure-Python PostgreSQL driver that implements the DB-API…
- pyradpyrad implements RADIUS client and server functionality per RFC2865,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Cryptography packages
Certifi provides Mozilla's curated collection of root SSL certificates for Python applications to validate TLS hosts and verify certificate trustworthiness.
cryptography provides cryptographic recipes and low-level primitives for symmetric encryption, message digests, key derivation, and other common cryptographic algorithms in Python.
Pure-Python RSA encryption, decryption, signing, and key generation following PKCS#1 v1.5, with command-line and library interfaces.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
Provides Microsoft Entra ID token-based authentication for Azure SDK clients through a set of TokenCredential implementations that handle OAuth flows and managed identity support.
PyNaCl provides Python bindings to libsodium for digital signatures, secret-key and public-key encryption, hashing, message authentication, and password-based key derivation.
See also kerberos · pure-sasl · pykerberos · srptools · tlslite-ng · pyscrypt · python-binary-memcached · pysodium · gssapi · requests-negotiate-sspi