# python-challenge-bypass-ristretto
Python bindings for Brave's [privacy pass](https://github.com/brave-intl/challenge-bypass-ristretto) library
using the provided [ffi](https://github.com/brave-intl/challenge-bypass-ristretto-ffi) APIs.
# Usage
The API largely mirrors that of the underlying Rust library with a few classes thrown in.
For example:
```
>>> from challenge_bypass_ristretto import RandomToken
>>> print(RandomToken.create().blind().encode_base64())
QxE220HfZvvOJSNdDx3hgYNfQntxeT+mkRr55LNMNyYdXdFOfkrHRoQz+MXlqfyoiWPWc7dG3k4sa5ZWDv+9WtPkZf1uZVhTwBW4YKgyPXK3jj4Ig7kKDjcGMGtoCdgJ
```
# How to install
Binary wheels for Linux (manylinux2010), macOS, and Windows are distributed on PyPI.
```
pip install python-challenge-bypass-ristretto
```
# How to build
The Rust FFI library is a git submodule, so to clone all sources needed for a build:
```
git clone --recursive https://github.com/LeastAuthority/python-challenge-bypass-ristretto
```
Then, with the Rust and Python toolchains installed:
```
python setup.py build sdist bdist_wheel
pip install --editable .
```
There is also Nix-based package which manages most of this complexity for you and only requires a checkout:
```
nix-build
```
# License
Currently the same license as the Brave's library, Mozilla Public License v2.
# Copyright
Least Authority TFA GmbH
Raw data
{
"_id": null,
"home_page": "https://github.com/LeastAuthority/python-challenge-bypass-ristretto",
"name": "python-challenge-bypass-ristretto",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Ramakrishnan Muthukrishnan",
"author_email": "ram@leastauthority.com",
"download_url": "",
"platform": "any",
"description": "# python-challenge-bypass-ristretto\n\nPython bindings for Brave's [privacy pass](https://github.com/brave-intl/challenge-bypass-ristretto) library\nusing the provided [ffi](https://github.com/brave-intl/challenge-bypass-ristretto-ffi) APIs.\n\n# Usage\n\nThe API largely mirrors that of the underlying Rust library with a few classes thrown in.\nFor example:\n\n```\n>>> from challenge_bypass_ristretto import RandomToken\n>>> print(RandomToken.create().blind().encode_base64())\nQxE220HfZvvOJSNdDx3hgYNfQntxeT+mkRr55LNMNyYdXdFOfkrHRoQz+MXlqfyoiWPWc7dG3k4sa5ZWDv+9WtPkZf1uZVhTwBW4YKgyPXK3jj4Ig7kKDjcGMGtoCdgJ\n```\n\n# How to install\n\nBinary wheels for Linux (manylinux2010), macOS, and Windows are distributed on PyPI.\n\n```\npip install python-challenge-bypass-ristretto\n```\n\n# How to build\n\nThe Rust FFI library is a git submodule, so to clone all sources needed for a build:\n\n```\ngit clone --recursive https://github.com/LeastAuthority/python-challenge-bypass-ristretto\n```\n\nThen, with the Rust and Python toolchains installed:\n\n```\npython setup.py build sdist bdist_wheel\npip install --editable .\n```\n\nThere is also Nix-based package which manages most of this complexity for you and only requires a checkout:\n\n```\nnix-build\n```\n\n# License\n\nCurrently the same license as the Brave's library, Mozilla Public License v2.\n\n# Copyright\n\nLeast Authority TFA GmbH\n\n\n",
"bugtrack_url": null,
"license": "Mozilla Public License v2",
"summary": "Bindings for Brave's Ristretto-flavored Privacy Pass library.",
"version": "2022.6.30",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "02b991d13cbd1df3de398c9ee9416d000facd753eaf429dd6d63470d6f40e0d8",
"md5": "fefb88c5dd59957f3a1dc11617403bc2",
"sha256": "2059e46a01f5ce8b890f4d694a862924c1df19e8a31a54325efc79bab1597ccf"
},
"downloads": -1,
"filename": "python_challenge_bypass_ristretto-2022.6.30-py2.py3-none-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "fefb88c5dd59957f3a1dc11617403bc2",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 260258,
"upload_time": "2022-06-30T17:09:26",
"upload_time_iso_8601": "2022-06-30T17:09:26.096561Z",
"url": "https://files.pythonhosted.org/packages/02/b9/91d13cbd1df3de398c9ee9416d000facd753eaf429dd6d63470d6f40e0d8/python_challenge_bypass_ristretto-2022.6.30-py2.py3-none-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "20be73fc7b234105497ed880283434adfe919b9c6711db43e8655f1a9f3a67f2",
"md5": "fe058d14ff975f2b532e13e739ead0e3",
"sha256": "1c28f4eb6fc00896f787df4910bf4b472a41fe230de6e0d9093996547d9c81ef"
},
"downloads": -1,
"filename": "python_challenge_bypass_ristretto-2022.6.30-py2.py3-none-macosx_11_0_x86_64.whl",
"has_sig": false,
"md5_digest": "fe058d14ff975f2b532e13e739ead0e3",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 260256,
"upload_time": "2022-06-30T17:07:47",
"upload_time_iso_8601": "2022-06-30T17:07:47.767719Z",
"url": "https://files.pythonhosted.org/packages/20/be/73fc7b234105497ed880283434adfe919b9c6711db43e8655f1a9f3a67f2/python_challenge_bypass_ristretto-2022.6.30-py2.py3-none-macosx_11_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e32b8042cfde4f3159ff17fdfe591eb8384f8392400b057081fc35bba7b8c7af",
"md5": "0fba98b109cb5a95e79a786772559b4e",
"sha256": "88ce3693e14a7369fecc9e7dc023b2d07b66a4038d89514d2995c13934720827"
},
"downloads": -1,
"filename": "python_challenge_bypass_ristretto-2022.6.30-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"has_sig": false,
"md5_digest": "0fba98b109cb5a95e79a786772559b4e",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 1025939,
"upload_time": "2022-06-30T17:08:11",
"upload_time_iso_8601": "2022-06-30T17:08:11.775795Z",
"url": "https://files.pythonhosted.org/packages/e3/2b/8042cfde4f3159ff17fdfe591eb8384f8392400b057081fc35bba7b8c7af/python_challenge_bypass_ristretto-2022.6.30-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d7652291309cd706548519b294f05b0099cba27cbcc27fce09e2d3f51402320d",
"md5": "8180e9a262c59cba5a5eaa2af2abc5cc",
"sha256": "67a54ea3ab480b08bdc07ededaf41619f765b4da3d7e45913405c32311ab08fd"
},
"downloads": -1,
"filename": "python_challenge_bypass_ristretto-2022.6.30-py2.py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "8180e9a262c59cba5a5eaa2af2abc5cc",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 160649,
"upload_time": "2022-06-30T17:10:51",
"upload_time_iso_8601": "2022-06-30T17:10:51.151559Z",
"url": "https://files.pythonhosted.org/packages/d7/65/2291309cd706548519b294f05b0099cba27cbcc27fce09e2d3f51402320d/python_challenge_bypass_ristretto-2022.6.30-py2.py3-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-06-30 17:09:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "LeastAuthority",
"github_project": "python-challenge-bypass-ristretto",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"circle": true,
"appveyor": true,
"lcname": "python-challenge-bypass-ristretto"
}