summaryrefslogtreecommitdiff
path: root/python-py-ecc.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-py-ecc.spec')
-rw-r--r--python-py-ecc.spec283
1 files changed, 283 insertions, 0 deletions
diff --git a/python-py-ecc.spec b/python-py-ecc.spec
new file mode 100644
index 0000000..890a520
--- /dev/null
+++ b/python-py-ecc.spec
@@ -0,0 +1,283 @@
+%global _empty_manifest_terminate_build 0
+Name: python-py-ecc
+Version: 6.0.0
+Release: 1
+Summary: Elliptic curve crypto in python including secp256k1 and alt_bn128
+License: MIT
+URL: https://github.com/ethereum/py_ecc
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5e/e3/12234aef5f578457f10e1cdd28737445b5918c1cf4049da5d34587647fa1/py_ecc-6.0.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-eth-typing
+Requires: python3-eth-utils
+Requires: python3-mypy-extensions
+Requires: python3-cached-property
+Requires: python3-bumpversion
+Requires: python3-twine
+Requires: python3-pytest
+Requires: python3-pytest-xdist
+Requires: python3-flake8
+Requires: python3-mypy
+Requires: python3-mypy-extensions
+Requires: python3-flake8
+Requires: python3-mypy
+Requires: python3-mypy-extensions
+Requires: python3-pytest
+Requires: python3-pytest-xdist
+
+%description
+Elliptic curve crypto in python including secp256k1, alt_bn128, and bls12_381.
+> **Warning**: This library contains some experimental codes that have **NOT** been audited.
+[![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/ethereum/py_ecc) [![Build Status](https://circleci.com/gh/ethereum/py_ecc.svg?style=shield)](https://circleci.com/gh/ethereum/py_ecc) [![PyPI version](https://badge.fury.io/py/py-ecc.svg)](https://badge.fury.io/py/py-ecc)
+## Quickstart
+```sh
+pip install py_ecc
+```
+## BLS Signatures
+`py_ecc` implements the [IETF BLS draft standard v4](https://tools.ietf.org/html/draft-irtf-cfrg-bls-signature-04) as per the inter-blockchain standardization agreement. The BLS standards specify [different ciphersuites](https://tools.ietf.org/html/draft-irtf-cfrg-bls-signature-04#section-4) which each have different functionality to accommodate various use cases. The following ciphersuites are available from this library:
+- `G2Basic` also known as `BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_`
+- `G2MessageAugmentation` also known as `BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_AUG_`
+- `G2ProofOfPossession` also known as `BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_`
+### Basic Usage
+```python
+from py_ecc.bls import G2ProofOfPossession as bls_pop
+private_key = 5566
+public_key = bls_pop.SkToPk(private_key)
+message = b'\xab' * 32 # The message to be signed
+# Signing
+signature = bls_pop.Sign(private_key, message)
+# Verifying
+assert bls_pop.Verify(public_key, message, signature)
+```
+### Aggregating Signatures
+```python
+private_keys = [3, 14, 159]
+public_keys = [bls_pop.SkToPk(key) for key in private_keys]
+signatures = [bls_pop.Sign(key, message) for key in private_keys]
+# Aggregating
+agg_sig = bls_pop.Aggregate(signatures)
+# Verifying signatures over the same message.
+# Note this is only safe if Proofs of Possession have been verified for each of the public keys beforehand.
+# See the BLS standards for why this is the case.
+assert bls_pop.FastAggregateVerify(public_keys, message, agg_sig)
+```
+### Multiple Aggregation
+```python
+messages = [b'\xaa' * 42, b'\xbb' * 32, b'\xcc' * 64]
+signatures = [bls_pop.Sign(key, message) for key, message in zip(private_keys, messages)]
+agg_sig = bls_pop.Aggregate(signatures)
+# Verify aggregate signature with different messages
+assert bls_pop.AggregateVerify(public_keys, messages, agg_sig)
+```
+## Developer Setup
+If you would like to hack on py_ecc, please check out the [Ethereum Development Tactical Manual](https://github.com/ethereum/ethereum-dev-tactical-manual) for information on how we do:
+- Testing
+- Pull Requests
+- Code Style
+- Documentation
+## Got bug?
+Feel free to create issue under https://github.com/ethereum/py_ecc/issues
+## Copyright and Licensing
+Project is licensed under the MIT license.
+## Release setup
+To release a new version:
+```sh
+make release bump=$$VERSION_PART_TO_BUMP$$
+```
+#### How to bumpversion
+The version format for this repo is `{major}.{minor}.{patch}` for stable, and
+`{major}.{minor}.{patch}-{stage}.{devnum}` for unstable (`stage` can be alpha or beta).
+To issue the next version in line, specify which part to bump,
+like `make release bump=minor` or `make release bump=devnum`.
+If you are in a beta version, `make release bump=stage` will switch to a stable.
+To issue an unstable version when the current version is stable, specify the
+new version explicitly, like `make release bump="--new-version 4.0.0-alpha.1 devnum"`
+
+%package -n python3-py-ecc
+Summary: Elliptic curve crypto in python including secp256k1 and alt_bn128
+Provides: python-py-ecc
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-py-ecc
+Elliptic curve crypto in python including secp256k1, alt_bn128, and bls12_381.
+> **Warning**: This library contains some experimental codes that have **NOT** been audited.
+[![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/ethereum/py_ecc) [![Build Status](https://circleci.com/gh/ethereum/py_ecc.svg?style=shield)](https://circleci.com/gh/ethereum/py_ecc) [![PyPI version](https://badge.fury.io/py/py-ecc.svg)](https://badge.fury.io/py/py-ecc)
+## Quickstart
+```sh
+pip install py_ecc
+```
+## BLS Signatures
+`py_ecc` implements the [IETF BLS draft standard v4](https://tools.ietf.org/html/draft-irtf-cfrg-bls-signature-04) as per the inter-blockchain standardization agreement. The BLS standards specify [different ciphersuites](https://tools.ietf.org/html/draft-irtf-cfrg-bls-signature-04#section-4) which each have different functionality to accommodate various use cases. The following ciphersuites are available from this library:
+- `G2Basic` also known as `BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_`
+- `G2MessageAugmentation` also known as `BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_AUG_`
+- `G2ProofOfPossession` also known as `BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_`
+### Basic Usage
+```python
+from py_ecc.bls import G2ProofOfPossession as bls_pop
+private_key = 5566
+public_key = bls_pop.SkToPk(private_key)
+message = b'\xab' * 32 # The message to be signed
+# Signing
+signature = bls_pop.Sign(private_key, message)
+# Verifying
+assert bls_pop.Verify(public_key, message, signature)
+```
+### Aggregating Signatures
+```python
+private_keys = [3, 14, 159]
+public_keys = [bls_pop.SkToPk(key) for key in private_keys]
+signatures = [bls_pop.Sign(key, message) for key in private_keys]
+# Aggregating
+agg_sig = bls_pop.Aggregate(signatures)
+# Verifying signatures over the same message.
+# Note this is only safe if Proofs of Possession have been verified for each of the public keys beforehand.
+# See the BLS standards for why this is the case.
+assert bls_pop.FastAggregateVerify(public_keys, message, agg_sig)
+```
+### Multiple Aggregation
+```python
+messages = [b'\xaa' * 42, b'\xbb' * 32, b'\xcc' * 64]
+signatures = [bls_pop.Sign(key, message) for key, message in zip(private_keys, messages)]
+agg_sig = bls_pop.Aggregate(signatures)
+# Verify aggregate signature with different messages
+assert bls_pop.AggregateVerify(public_keys, messages, agg_sig)
+```
+## Developer Setup
+If you would like to hack on py_ecc, please check out the [Ethereum Development Tactical Manual](https://github.com/ethereum/ethereum-dev-tactical-manual) for information on how we do:
+- Testing
+- Pull Requests
+- Code Style
+- Documentation
+## Got bug?
+Feel free to create issue under https://github.com/ethereum/py_ecc/issues
+## Copyright and Licensing
+Project is licensed under the MIT license.
+## Release setup
+To release a new version:
+```sh
+make release bump=$$VERSION_PART_TO_BUMP$$
+```
+#### How to bumpversion
+The version format for this repo is `{major}.{minor}.{patch}` for stable, and
+`{major}.{minor}.{patch}-{stage}.{devnum}` for unstable (`stage` can be alpha or beta).
+To issue the next version in line, specify which part to bump,
+like `make release bump=minor` or `make release bump=devnum`.
+If you are in a beta version, `make release bump=stage` will switch to a stable.
+To issue an unstable version when the current version is stable, specify the
+new version explicitly, like `make release bump="--new-version 4.0.0-alpha.1 devnum"`
+
+%package help
+Summary: Development documents and examples for py-ecc
+Provides: python3-py-ecc-doc
+%description help
+Elliptic curve crypto in python including secp256k1, alt_bn128, and bls12_381.
+> **Warning**: This library contains some experimental codes that have **NOT** been audited.
+[![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/ethereum/py_ecc) [![Build Status](https://circleci.com/gh/ethereum/py_ecc.svg?style=shield)](https://circleci.com/gh/ethereum/py_ecc) [![PyPI version](https://badge.fury.io/py/py-ecc.svg)](https://badge.fury.io/py/py-ecc)
+## Quickstart
+```sh
+pip install py_ecc
+```
+## BLS Signatures
+`py_ecc` implements the [IETF BLS draft standard v4](https://tools.ietf.org/html/draft-irtf-cfrg-bls-signature-04) as per the inter-blockchain standardization agreement. The BLS standards specify [different ciphersuites](https://tools.ietf.org/html/draft-irtf-cfrg-bls-signature-04#section-4) which each have different functionality to accommodate various use cases. The following ciphersuites are available from this library:
+- `G2Basic` also known as `BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_`
+- `G2MessageAugmentation` also known as `BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_AUG_`
+- `G2ProofOfPossession` also known as `BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_`
+### Basic Usage
+```python
+from py_ecc.bls import G2ProofOfPossession as bls_pop
+private_key = 5566
+public_key = bls_pop.SkToPk(private_key)
+message = b'\xab' * 32 # The message to be signed
+# Signing
+signature = bls_pop.Sign(private_key, message)
+# Verifying
+assert bls_pop.Verify(public_key, message, signature)
+```
+### Aggregating Signatures
+```python
+private_keys = [3, 14, 159]
+public_keys = [bls_pop.SkToPk(key) for key in private_keys]
+signatures = [bls_pop.Sign(key, message) for key in private_keys]
+# Aggregating
+agg_sig = bls_pop.Aggregate(signatures)
+# Verifying signatures over the same message.
+# Note this is only safe if Proofs of Possession have been verified for each of the public keys beforehand.
+# See the BLS standards for why this is the case.
+assert bls_pop.FastAggregateVerify(public_keys, message, agg_sig)
+```
+### Multiple Aggregation
+```python
+messages = [b'\xaa' * 42, b'\xbb' * 32, b'\xcc' * 64]
+signatures = [bls_pop.Sign(key, message) for key, message in zip(private_keys, messages)]
+agg_sig = bls_pop.Aggregate(signatures)
+# Verify aggregate signature with different messages
+assert bls_pop.AggregateVerify(public_keys, messages, agg_sig)
+```
+## Developer Setup
+If you would like to hack on py_ecc, please check out the [Ethereum Development Tactical Manual](https://github.com/ethereum/ethereum-dev-tactical-manual) for information on how we do:
+- Testing
+- Pull Requests
+- Code Style
+- Documentation
+## Got bug?
+Feel free to create issue under https://github.com/ethereum/py_ecc/issues
+## Copyright and Licensing
+Project is licensed under the MIT license.
+## Release setup
+To release a new version:
+```sh
+make release bump=$$VERSION_PART_TO_BUMP$$
+```
+#### How to bumpversion
+The version format for this repo is `{major}.{minor}.{patch}` for stable, and
+`{major}.{minor}.{patch}-{stage}.{devnum}` for unstable (`stage` can be alpha or beta).
+To issue the next version in line, specify which part to bump,
+like `make release bump=minor` or `make release bump=devnum`.
+If you are in a beta version, `make release bump=stage` will switch to a stable.
+To issue an unstable version when the current version is stable, specify the
+new version explicitly, like `make release bump="--new-version 4.0.0-alpha.1 devnum"`
+
+%prep
+%autosetup -n py-ecc-6.0.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-py-ecc -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 6.0.0-1
+- Package Spec generated