Skip to content

stan-janssen/tinysasl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TinySASL

Small Python package to generate SASL messages.

Installation

pip install --user tinysasl

Usage

from tinysasl import SASL

# Create a SASL object that can generate the messages
sasl = SASL('username', 'password')

# Create the initial message to send
initial_message = sasl.initial_message()

# After receiving the challenge, calculate the response:
response_message = sasl.response_message(challenge)

# After receiving the reply to the challenge-response, verify the final message
try:
    sasl.verify_server_final_message(final_message)
except ValueError:
    print("Verification failed!")

Base64 mode or bytes-mode

By default, the SASL object expects and returns bytes. If your protocol requires sending the SASL messages as base64-encoded strings, you can enable that when initializing:

sasl = SASL('username', 'password', base64=True)

Using a different hash method

By default, the SASL object will use the sha256 digest method. If you need a different method, you can pass a string into the initialization that is supported by Python's hashlib on your system. You can get a list of supported methods from hashlib.algorithms_available. For example, to use the blake2b algo:

sasl = SASL('username', 'password', hash_name='blake2b')

License

TinySASL is made available under the Apache 2.0 license.

Development

You can follow the development of TinySASL on GitHub.

Contributing

To contribute to TinySASL, please open an issue on our GitHub issue tracker and/or leave a Pull Request. Thanks!