Metadata-Version: 2.1
Name: chacha20poly1305
Version: 0.0.3
Summary: Chacha20Poly1305
Home-page: https://github.com/ph4r05/py-chacha20poly1305
Author: Dusan Klinec
Author-email: dusan.klinec@gmail.com
License: LGPL
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Security
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: pep8 ; extra == 'dev'
Requires-Dist: pypandoc ; extra == 'dev'
Requires-Dist: tox ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: Sphinx >=1.0 ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Requires-Dist: sphinxcontrib-programoutput ; extra == 'docs'

# Chacha20poly1305

Simple pure-python chacha20-poly1305 implementation based on [tlslite-ng] code.
Designed to be compatible with Cryptography API.


```python
import os
from chacha20poly1305 import ChaCha20Poly1305

key = os.urandom(32)
cip = ChaCha20Poly1305(key)

nonce = os.urandom(12)
ciphertext = cip.encrypt(nonce, b'test')

plaintext = cip.decrypt(nonce, ciphertext)
print(plaintext)
```

## Pip

```bash
pip install chacha20poly1305
```

## Note

Please note the pure python implementation probably suffers form side-channels leakage (timing, memory access).
For constant time implementations use compiled versions:

- https://github.com/ph4r05/py-trezor-crypto
- https://github.com/AntonKueltz/rfc7539


[tlslite-ng]: https://github.com/tomato42/tlslite-ng

