![pyshamir banner](https://user-images.githubusercontent.com/5201843/232241639-22034903-87c2-4bf0-9b36-2ae9a8481b71.png)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)
[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=coverage)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/konidev20/pyshamir/badge)](https://api.securityscorecards.dev/projects/github.com/konidev20/pyshamir)
## Description
Python port of Shamir key Split and Combine methods from Hashicorp Vault.
## Installation
```sh
pip install pyshamir
```
## Usage
### Split & Combine
```py
from pyshamir import split, combine
import secrets
# generate a random secret, here secret is a 32 bytes
secret = secrets.token_bytes(32)
# set the number of shares; i.e. the number of parts to split the secret into
num_of_shares = 5
# threshold is minimum number of keys required to get back the secret
threshold = 3
# split to get a list of bytearrays which can be combined later to get back the secret
parts = split(secret, num_of_shares, threshold)
# Now, the parts be combined to get back the secret
recomb_secret = combine(parts)
```
## References
1. [Shamir Secret Sharing | Wikipedia](https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing)
2. [Go Implementation | HashiCorp Vault](https://github.com/hashicorp/vault/tree/main/shamir)
Raw data
{
"_id": null,
"home_page": "https://github.com/konidev20/pyshamir",
"name": "pyshamir",
"maintainer": "Srigovind Nayak",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "sgovind.dev@outlook.com",
"keywords": "shamir,pyshamir",
"author": "Srigovind Nayak",
"author_email": "sgovind.dev@outlook.com",
"download_url": "https://files.pythonhosted.org/packages/b5/1b/95e9c6f58f54b2a76e6861bf60241eac0001af93b7bbde42290af7511ee3/pyshamir-1.0.4.tar.gz",
"platform": null,
"description": "![pyshamir banner](https://user-images.githubusercontent.com/5201843/232241639-22034903-87c2-4bf0-9b36-2ae9a8481b71.png)\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=konidev20_pyshamir&metric=coverage)](https://sonarcloud.io/summary/new_code?id=konidev20_pyshamir)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/konidev20/pyshamir/badge)](https://api.securityscorecards.dev/projects/github.com/konidev20/pyshamir)\n\n## Description\n\nPython port of Shamir key Split and Combine methods from Hashicorp Vault.\n\n## Installation\n\n```sh\npip install pyshamir \n```\n\n## Usage\n\n### Split & Combine\n\n```py\nfrom pyshamir import split, combine\nimport secrets\n\n# generate a random secret, here secret is a 32 bytes\nsecret = secrets.token_bytes(32)\n\n# set the number of shares; i.e. the number of parts to split the secret into\nnum_of_shares = 5\n\n# threshold is minimum number of keys required to get back the secret\nthreshold = 3\n\n# split to get a list of bytearrays which can be combined later to get back the secret\nparts = split(secret, num_of_shares, threshold)\n\n# Now, the parts be combined to get back the secret\nrecomb_secret = combine(parts)\n```\n\n## References\n\n1. [Shamir Secret Sharing | Wikipedia](https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing)\n2. [Go Implementation | HashiCorp Vault](https://github.com/hashicorp/vault/tree/main/shamir)\n",
"bugtrack_url": null,
"license": "",
"summary": "Python port of Shamir key Split and Combine methods from Hashicorp Vault.",
"version": "1.0.4",
"project_urls": {
"Documentation": "https://github.com/konidev20/pyshamir",
"Homepage": "https://github.com/konidev20/pyshamir",
"Issue Tracker": "https://github.com/konidev20/pyshamir/issues",
"Source Code": "https://github.com/konidev20/pyshamir"
},
"split_keywords": [
"shamir",
"pyshamir"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2da8615132073ef0cf47a3f8c81786b213ed92e5498b102d871cd87b76adf7e7",
"md5": "ee8fbeeeffc12d43b1961c9c128e4a06",
"sha256": "69f9ab0277ed1fc7de99a52f5373619efae0355d54ba75d049ea694c463d9bc8"
},
"downloads": -1,
"filename": "pyshamir-1.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ee8fbeeeffc12d43b1961c9c128e4a06",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 4558,
"upload_time": "2023-08-31T20:47:16",
"upload_time_iso_8601": "2023-08-31T20:47:16.103983Z",
"url": "https://files.pythonhosted.org/packages/2d/a8/615132073ef0cf47a3f8c81786b213ed92e5498b102d871cd87b76adf7e7/pyshamir-1.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b51b95e9c6f58f54b2a76e6861bf60241eac0001af93b7bbde42290af7511ee3",
"md5": "1456524c26af4fa5b48e7f5de72ecf3c",
"sha256": "971fa89a054f351afb3ac788e25c845486ebe0a200ea0d570beec4ca81c73b24"
},
"downloads": -1,
"filename": "pyshamir-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "1456524c26af4fa5b48e7f5de72ecf3c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 4726,
"upload_time": "2023-08-31T20:47:17",
"upload_time_iso_8601": "2023-08-31T20:47:17.700782Z",
"url": "https://files.pythonhosted.org/packages/b5/1b/95e9c6f58f54b2a76e6861bf60241eac0001af93b7bbde42290af7511ee3/pyshamir-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-31 20:47:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "konidev20",
"github_project": "pyshamir",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyshamir"
}