summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 06:48:25 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 06:48:25 +0000
commit5b6b6a48142d6e1a3457c1aa08bd11cc2adfbb73 (patch)
tree1542595bb635f47c362dbb5a437234822ead8029
parentbff631cede444f8adc4f78278ced5b0a4a9542ae (diff)
automatic import of python-nkeysopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-nkeys.spec246
-rw-r--r--sources1
3 files changed, 248 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..a50c813 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/nkeys-0.1.0.tar.gz
diff --git a/python-nkeys.spec b/python-nkeys.spec
new file mode 100644
index 0000000..16960e3
--- /dev/null
+++ b/python-nkeys.spec
@@ -0,0 +1,246 @@
+%global _empty_manifest_terminate_build 0
+Name: python-nkeys
+Version: 0.1.0
+Release: 1
+Summary: A public-key signature system based on Ed25519 for the NATS ecosystem.
+License: Apache 2 License
+URL: https://github.com/nats-io/nkeys.py
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/73/fe/d788a4fe70442e527d73f52d3091be3a980d539b63b8574349b5a3732881/nkeys-0.1.0.tar.gz
+BuildArch: noarch
+
+
+%description
+# NKEYS for Python3
+
+[![License Apache 2](https://img.shields.io/badge/License-Apache2-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
+
+A public-key signature system based on [Ed25519](https://ed25519.cr.yp.to/) for the NATS ecosystem.
+
+## About
+
+The NATS ecosystem will be moving to [Ed25519](https://ed25519.cr.yp.to/) keys for identity, authentication and authorization for entities such as Accounts, Users, Servers and Clusters.
+
+Ed25519 is fast and resistant to side channel attacks. Generation of a seed key is all that is needed to be stored and kept safe, as the seed can generate both the public and private keys.
+
+The NATS system will utilize Ed25519 keys, meaning that NATS systems will never store or even have access to any private keys. Authentication will utilize a random challenge response mechanism.
+
+Dealing with 32 byte and 64 byte raw keys can be challenging. NKEYS is designed to formulate keys in a much friendlier fashion and references work done in cryptocurrencies, specifically [Stellar](https://www.stellar.org/). Bitcoin and others used a form of Base58 (or Base58Check) to endode raw keys. Stellar utilized a more traditonal Base32 with a CRC16 and a version or prefix byte. NKEYS utilizes a similar format where the prefix will be 1 byte for public and private keys and will be 2 bytes for seeds. The base32 encoding of these prefixes will yield friendly human readbable prefixes, e.g. '**N**' = server, '**C**' = cluster, '**O**' = operator, '**A**' = account, and '**U**' = user. '**P**' is used for private keys. For seeds, the first encoded prefix is '**S**', and the second character will be the type for the public key, e.g. "**SU**" is a seed for a user key pair, "**SA**" is a seed for an account key pair.
+
+## Installation
+
+```sh
+pip install nkeys
+```
+
+## Basic API Usage
+
+```python
+import nkeys
+import os
+
+# Create an NKEYS KeyPair from a seed file.
+user = None
+with open("user.nkey", 'rb', buffering=0) as f:
+
+ # We compute the size of the file to allocate the required
+ # bytearray size in order to have control over the memory
+ # and be able to wipe it once the keys are not needed anymore.
+ seed = bytearray(os.fstat(f.fileno()).st_size)
+ f.readinto(seed)
+ user = nkeys.from_seed(seed)
+
+# Sign some data with the KeyPair user.
+data = b'arGTKH8q7XDmgy0'
+sig = user.sign(data)
+
+# Verify the signature
+try:
+ user.verify(data, sig)
+except nkeys.ErrInvalidSignature as e:
+ print("Error:", e)
+
+# Access the seed, the only thing that needs to be stored and kept safe.
+print(user.seed)
+
+# Remove any secrets that were in use by the KeyPair.
+user.wipe()
+```
+
+## License
+
+Unless otherwise noted, the NATS source files are distributed under the Apache Version 2.0 license found in the LICENSE file.
+
+%package -n python3-nkeys
+Summary: A public-key signature system based on Ed25519 for the NATS ecosystem.
+Provides: python-nkeys
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-nkeys
+# NKEYS for Python3
+
+[![License Apache 2](https://img.shields.io/badge/License-Apache2-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
+
+A public-key signature system based on [Ed25519](https://ed25519.cr.yp.to/) for the NATS ecosystem.
+
+## About
+
+The NATS ecosystem will be moving to [Ed25519](https://ed25519.cr.yp.to/) keys for identity, authentication and authorization for entities such as Accounts, Users, Servers and Clusters.
+
+Ed25519 is fast and resistant to side channel attacks. Generation of a seed key is all that is needed to be stored and kept safe, as the seed can generate both the public and private keys.
+
+The NATS system will utilize Ed25519 keys, meaning that NATS systems will never store or even have access to any private keys. Authentication will utilize a random challenge response mechanism.
+
+Dealing with 32 byte and 64 byte raw keys can be challenging. NKEYS is designed to formulate keys in a much friendlier fashion and references work done in cryptocurrencies, specifically [Stellar](https://www.stellar.org/). Bitcoin and others used a form of Base58 (or Base58Check) to endode raw keys. Stellar utilized a more traditonal Base32 with a CRC16 and a version or prefix byte. NKEYS utilizes a similar format where the prefix will be 1 byte for public and private keys and will be 2 bytes for seeds. The base32 encoding of these prefixes will yield friendly human readbable prefixes, e.g. '**N**' = server, '**C**' = cluster, '**O**' = operator, '**A**' = account, and '**U**' = user. '**P**' is used for private keys. For seeds, the first encoded prefix is '**S**', and the second character will be the type for the public key, e.g. "**SU**" is a seed for a user key pair, "**SA**" is a seed for an account key pair.
+
+## Installation
+
+```sh
+pip install nkeys
+```
+
+## Basic API Usage
+
+```python
+import nkeys
+import os
+
+# Create an NKEYS KeyPair from a seed file.
+user = None
+with open("user.nkey", 'rb', buffering=0) as f:
+
+ # We compute the size of the file to allocate the required
+ # bytearray size in order to have control over the memory
+ # and be able to wipe it once the keys are not needed anymore.
+ seed = bytearray(os.fstat(f.fileno()).st_size)
+ f.readinto(seed)
+ user = nkeys.from_seed(seed)
+
+# Sign some data with the KeyPair user.
+data = b'arGTKH8q7XDmgy0'
+sig = user.sign(data)
+
+# Verify the signature
+try:
+ user.verify(data, sig)
+except nkeys.ErrInvalidSignature as e:
+ print("Error:", e)
+
+# Access the seed, the only thing that needs to be stored and kept safe.
+print(user.seed)
+
+# Remove any secrets that were in use by the KeyPair.
+user.wipe()
+```
+
+## License
+
+Unless otherwise noted, the NATS source files are distributed under the Apache Version 2.0 license found in the LICENSE file.
+
+%package help
+Summary: Development documents and examples for nkeys
+Provides: python3-nkeys-doc
+%description help
+# NKEYS for Python3
+
+[![License Apache 2](https://img.shields.io/badge/License-Apache2-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
+
+A public-key signature system based on [Ed25519](https://ed25519.cr.yp.to/) for the NATS ecosystem.
+
+## About
+
+The NATS ecosystem will be moving to [Ed25519](https://ed25519.cr.yp.to/) keys for identity, authentication and authorization for entities such as Accounts, Users, Servers and Clusters.
+
+Ed25519 is fast and resistant to side channel attacks. Generation of a seed key is all that is needed to be stored and kept safe, as the seed can generate both the public and private keys.
+
+The NATS system will utilize Ed25519 keys, meaning that NATS systems will never store or even have access to any private keys. Authentication will utilize a random challenge response mechanism.
+
+Dealing with 32 byte and 64 byte raw keys can be challenging. NKEYS is designed to formulate keys in a much friendlier fashion and references work done in cryptocurrencies, specifically [Stellar](https://www.stellar.org/). Bitcoin and others used a form of Base58 (or Base58Check) to endode raw keys. Stellar utilized a more traditonal Base32 with a CRC16 and a version or prefix byte. NKEYS utilizes a similar format where the prefix will be 1 byte for public and private keys and will be 2 bytes for seeds. The base32 encoding of these prefixes will yield friendly human readbable prefixes, e.g. '**N**' = server, '**C**' = cluster, '**O**' = operator, '**A**' = account, and '**U**' = user. '**P**' is used for private keys. For seeds, the first encoded prefix is '**S**', and the second character will be the type for the public key, e.g. "**SU**" is a seed for a user key pair, "**SA**" is a seed for an account key pair.
+
+## Installation
+
+```sh
+pip install nkeys
+```
+
+## Basic API Usage
+
+```python
+import nkeys
+import os
+
+# Create an NKEYS KeyPair from a seed file.
+user = None
+with open("user.nkey", 'rb', buffering=0) as f:
+
+ # We compute the size of the file to allocate the required
+ # bytearray size in order to have control over the memory
+ # and be able to wipe it once the keys are not needed anymore.
+ seed = bytearray(os.fstat(f.fileno()).st_size)
+ f.readinto(seed)
+ user = nkeys.from_seed(seed)
+
+# Sign some data with the KeyPair user.
+data = b'arGTKH8q7XDmgy0'
+sig = user.sign(data)
+
+# Verify the signature
+try:
+ user.verify(data, sig)
+except nkeys.ErrInvalidSignature as e:
+ print("Error:", e)
+
+# Access the seed, the only thing that needs to be stored and kept safe.
+print(user.seed)
+
+# Remove any secrets that were in use by the KeyPair.
+user.wipe()
+```
+
+## License
+
+Unless otherwise noted, the NATS source files are distributed under the Apache Version 2.0 license found in the LICENSE file.
+
+%prep
+%autosetup -n nkeys-0.1.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-nkeys -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..6f35775
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+870fd02211baf8536c19fe6713c29ba4 nkeys-0.1.0.tar.gz