Metadata-Version: 2.4
Name: libpep-py
Version: 0.13.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Topic :: Security :: Cryptography
Requires-Dist: maturin>=1.0 ; extra == 'dev'
Provides-Extra: dev
Summary: Python bindings for libpep - implementation of PEP primitives, offering pseudonymization and encryption interfaces
Keywords: crypto,pep,pseudonymization
Author-email: Bernard van Gastel <bvgastel@bitpowder.com>, Job Doesburg <job@jobdoesburg.nl>
License: Apache-2.0
Requires-Python: >=3.8
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://docs.rs/libpep
Project-URL: Homepage, https://github.com/NOLAI/libpep
Project-URL: Repository, https://github.com/NOLAI/libpep

# libpep-py: Python bindings for libpep

Python bindings for [libpep](https://github.com/NOLAI/libpep), a library for polymorphic encryption and pseudonymization implementing the *n-PEP* scheme: end-to-end encrypted, pseudonymized data sharing where semi-trusted *transcryptors* blindly re-encrypt data and convert pseudonyms between domains, with distributed trust over `n` transcryptors.

## Installation

```bash
pip install libpep-py
```

The module is importable as `libpep`:

```python
from libpep.data import Pseudonym
from libpep.keys import make_global_keys, make_session_keys
from libpep.client import encrypt, decrypt
```

See the [repository README](https://github.com/NOLAI/libpep) for the full documentation, the cryptographic background, and the papers describing the scheme.

## Development

Build and test from the repository root:

```bash
cd bindings/python
maturin develop
python -m unittest discover tests -v
python generate_stubs.py   # regenerate the type stubs after an API change
```

