Metadata-Version: 2.1
Name: purehle
Version: 1.0.0
Summary: Pure Python hash length extension.
Home-page: https://github.com/oshawk/purehle
Author: Oshawk
Keywords: hash,cryptography
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.7, <4
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: purehash (==1.1.0)
Provides-Extra: dev
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: twine ; extra == 'dev'
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'

# PureHLE

Pure Python hash length extension.

## Installation

```
pip install purehle
```

## Usage

```python
import hashlib

import purehle

hle = purehle.MD5(hashlib.md5(b"ABCDE").digest(), b"DE")
padding, m = hle.with_length(3)
m.update(b"FG")
message = hle.original + padding + b"FG"

message  # b"DE\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\x00\x00\x00\x00\x00\x00\x00FG"
m.hexdigest() # 4bbc3725884dad7b4e1358c51959f0b0

hashlib.md5(b"ABC" + message).digest() == m.digest()
```

## Supported Hash Algorithms

- MD5 (`MD%`)
- SHA-1 (`SHA1`)
- SHA-256 (`SHA256`)
- SHA-512 (`SHA512`)

