{ "info": { "author": "Digital Gold Institute", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering", "Topic :: Security :: Cryptography", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# btclib: a python3 library for 'bitcoin cryptography'\n\n\n\n[![Build Status](https://travis-ci.org/dginst/btclib.svg)](https://travis-ci.org/dginst/btclib)\n[![Coverage Status](https://coveralls.io/repos/github/dginst/btclib/badge.svg)](https://coveralls.io/github/dginst/btclib)\n[![PyPI status](https://img.shields.io/pypi/status/btclib.svg)](https://pypi.python.org/pypi/btclib/)\n[![PyPI pyversions](https://img.shields.io/pypi/pyversions/btclib.svg)](https://pypi.python.org/pypi/btclib/)\n[![PyPI version](https://img.shields.io/pypi/v/btclib.svg)](https://pypi.python.org/pypi/btclib/)\n[![GitHub License](https://img.shields.io/github/license/dginst/btclib.svg)](https://github.com/dginst/btclib/blob/master/LICENSE)\n[![ReadtheDocs](https://img.shields.io/readthedocs/btclib.svg)](https://btclib.readthedocs.io)\n\nbtclib is a python3 type annotated library intended for teaching and\ndemonstration of the elliptic curve cryptography used in bitcoin.\n\nIt does not have external requirements or dependencies;\nto install (and upgrade) it:\n\n```shell\npython -m pip install --upgrade btclib\n```\n\nOriginally developed for the\n[_Bitcoin and Blockchain Technology_](https://www.ametrano.net/bbt/) course\nat Milano Bicocca and Politecnico di Milano, its algorithms are not intended\nfor production environments: they could be broken using side-channel attacks;\nmoreover, they are often refactored without care for backward compatibility.\n\nThe library includes:\n\n- modulo algebra functions (gcd, inverse, legendre symbol, square root)\n- octets / integer / point conversion functions\n- elliptic curve class\n - fast algebra implemented using Jacobian coordinates\n - double scalar multiplication (Straus's algorithm, also known as\n Shamir's trick)\n - multi scalar multiplication (Bos-coster's algorithm)\n - point simmetry solution: odd/even, low/high, and quadratic residue\n- available curves: SEC 1 v1 and v2, NIST, Brainpool, and\n low cardinality test curves\n- DSA signature with (transaction) DER encoding and (message) compact encoding\n- Schnorr signature (according to\n [bip-schnorr](https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki)\n bitcoin standardization)\n - batch validation\n - threshold signature (see test-suite)\n - MuSig multi-signature (see test-suite)\n- Borromean ring signature\n- [RFC 6979](https://tools.ietf.org/html/rfc6979:) to make signature\n schemes deterministic\n- Sign-to-contract commitment\n- Diffie-Hellman\n- Pedersen Committment\n- Base58 encoding, addresses, WIFs\n- [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)\n hierarchical deterministic wallets\n- [BIP39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki)\n wordlists and mnemonic for generating deterministic keys\n- [Electrum](https://electrum.org/#home) standard for mnemonic\n\nA very extensive test suite reproduces results from major official sources\nand [covers 100%](https://coveralls.io/github/dginst/btclib) of the library\ncode base.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/dginst/btclib", "keywords": "bitcoin cryptography elliptic-curves dsa schnorr RFC-6979 bip32 bip39 electrum base58", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "btclib", "package_url": "https://pypi.org/project/btclib/", "platform": "", "project_url": "https://pypi.org/project/btclib/", "project_urls": { "Homepage": "http://github.com/dginst/btclib" }, "release_url": "https://pypi.org/project/btclib/2019.6.12/", "requires_dist": null, "requires_python": ">=3.6", "summary": "A bitcoin cryptography library.", "version": "2019.6.12" }, "last_serial": 5389928, "releases": { "2019.1.20": [ { "comment_text": "", "digests": { "md5": "4748c6c3a3fe34e2147f228e0b09a42f", "sha256": "925191035df9d7a38b58428063266a2b46d05d9987f70cbac38df2830635c1c2" }, "downloads": -1, "filename": "btclib-2019.1.20-py3-none-any.whl", "has_sig": false, "md5_digest": "4748c6c3a3fe34e2147f228e0b09a42f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 74178, "upload_time": "2019-01-20T03:34:28", "url": "https://files.pythonhosted.org/packages/aa/30/e091505de59f7312b8b4b7635098fb6ffe377ad69260db9ec7f44be50289/btclib-2019.1.20-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e975d033158258fe6e9e4a9e6301167", "sha256": "72c91d206065fb9ca7607264dd3ea2005250478cd2154140f4e74e7a079e1b36" }, "downloads": -1, "filename": "btclib-2019.1.20.tar.gz", "has_sig": false, "md5_digest": "3e975d033158258fe6e9e4a9e6301167", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 53278, "upload_time": "2019-01-20T03:34:30", "url": "https://files.pythonhosted.org/packages/6c/e7/4d32c2d55ae25606ab7f101b27a376413b3b711349c5a10ac0e5d3870d2f/btclib-2019.1.20.tar.gz" } ], "2019.1.7": [ { "comment_text": "", "digests": { "md5": "787692759fe761bcb04a7cadad050c2b", "sha256": "d7eb63f490bb7bbc170bd62042ea61385bcacab77ec9cbc9617a37aebee72f2a" }, "downloads": -1, "filename": "btclib-2019.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "787692759fe761bcb04a7cadad050c2b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 55387, "upload_time": "2019-01-04T22:16:58", "url": "https://files.pythonhosted.org/packages/72/98/2513a2535a9772d3c3904145ae124bd821cc2da43350f2f106706eb18798/btclib-2019.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee3632b89e09d528391bc0189b0651bf", "sha256": "c499de71cd32405514e64334ff5127374ebfee2c18f58d1da132e1b09c5bbe0d" }, "downloads": -1, "filename": "btclib-2019.1.7.tar.gz", "has_sig": false, "md5_digest": "ee3632b89e09d528391bc0189b0651bf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 47950, "upload_time": "2019-01-04T22:17:00", "url": "https://files.pythonhosted.org/packages/f9/d8/dd543050995dc2067b5997ed3362218ef4d21773b84363a1b583bbd0633d/btclib-2019.1.7.tar.gz" } ], "2019.2.5": [ { "comment_text": "", "digests": { "md5": "171a574cc1d5b7fa33cf6ecd1be3e393", "sha256": "a25bc08dfc0d323dd13ec544fcc5b9d668a0119e3b5968539e4ab2056fc65708" }, "downloads": -1, "filename": "btclib-2019.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "171a574cc1d5b7fa33cf6ecd1be3e393", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 60398, "upload_time": "2019-02-05T11:19:58", "url": "https://files.pythonhosted.org/packages/35/d2/026f3e496ea79b990d7fff1982ba7bd334246a35a0f58c4736c6603907fc/btclib-2019.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe7d0bbad738a08ccb129f6f48d25c31", "sha256": "9203a9eb5d05aabe50789622b591471c48cf4684c94b6255ca00c95790cb4f39" }, "downloads": -1, "filename": "btclib-2019.2.5.tar.gz", "has_sig": false, "md5_digest": "fe7d0bbad738a08ccb129f6f48d25c31", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 53469, "upload_time": "2019-02-05T11:20:00", "url": "https://files.pythonhosted.org/packages/5b/81/78966aca93025d2285ecbce906abd450cdc1469a1b1ca637c129369043ad/btclib-2019.2.5.tar.gz" } ], "2019.6.12": [ { "comment_text": "", "digests": { "md5": "7f63ac07b690699dd08b37c4e2eadc21", "sha256": "05bcd7fb00d7d650f3018735d237042d88c2701cf42b034b5ad1a630fbe58303" }, "downloads": -1, "filename": "btclib-2019.6.12-py3-none-any.whl", "has_sig": false, "md5_digest": "7f63ac07b690699dd08b37c4e2eadc21", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 68032, "upload_time": "2019-06-12T07:41:12", "url": "https://files.pythonhosted.org/packages/f0/3a/6026c8575006fac58ebce5d9ec75e9f22e135a74316d2cc6887b7f2154d5/btclib-2019.6.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a4009b8cc87807ff768765daa6f0af0", "sha256": "a2e906906f360a9a33c50bd5761c6d969a7b029a0de7ac49564e890e88c56f35" }, "downloads": -1, "filename": "btclib-2019.6.12.tar.gz", "has_sig": false, "md5_digest": "9a4009b8cc87807ff768765daa6f0af0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 57477, "upload_time": "2019-06-12T07:41:14", "url": "https://files.pythonhosted.org/packages/d6/6b/b2c1eb91563fa47cd36190163d9e1828e395bb609a3074dcfe9012821606/btclib-2019.6.12.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7f63ac07b690699dd08b37c4e2eadc21", "sha256": "05bcd7fb00d7d650f3018735d237042d88c2701cf42b034b5ad1a630fbe58303" }, "downloads": -1, "filename": "btclib-2019.6.12-py3-none-any.whl", "has_sig": false, "md5_digest": "7f63ac07b690699dd08b37c4e2eadc21", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 68032, "upload_time": "2019-06-12T07:41:12", "url": "https://files.pythonhosted.org/packages/f0/3a/6026c8575006fac58ebce5d9ec75e9f22e135a74316d2cc6887b7f2154d5/btclib-2019.6.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a4009b8cc87807ff768765daa6f0af0", "sha256": "a2e906906f360a9a33c50bd5761c6d969a7b029a0de7ac49564e890e88c56f35" }, "downloads": -1, "filename": "btclib-2019.6.12.tar.gz", "has_sig": false, "md5_digest": "9a4009b8cc87807ff768765daa6f0af0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 57477, "upload_time": "2019-06-12T07:41:14", "url": "https://files.pythonhosted.org/packages/d6/6b/b2c1eb91563fa47cd36190163d9e1828e395bb609a3074dcfe9012821606/btclib-2019.6.12.tar.gz" } ] }