summaryrefslogtreecommitdiff
path: root/python-bna.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-bna.spec')
-rw-r--r--python-bna.spec365
1 files changed, 365 insertions, 0 deletions
diff --git a/python-bna.spec b/python-bna.spec
new file mode 100644
index 0000000..e61780d
--- /dev/null
+++ b/python-bna.spec
@@ -0,0 +1,365 @@
+%global _empty_manifest_terminate_build 0
+Name: python-bna
+Version: 5.1.0
+Release: 1
+Summary: Blizzard Authenticator and OTP library in Python
+License: MIT
+URL: https://github.com/jleclanche/python-bna
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/9c/ad/0fc9852ebd44187830c4c1998e6d1aa697d003b59fae6890eabb1456b374/bna-5.1.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-click
+Requires: python3-pyotp
+
+%description
+# python-bna
+
+## Requirements
+
+- Python 3.6+
+
+
+## Command-line usage
+
+bna is a command line interface to the python-bna library. It can store
+and manage multiple authenticators, as well as create new ones.
+
+
+Remember: Using an authenticator on the same device as the one you log in with
+is less secure than keeping the devices separate. Use this at your own risk.
+
+Configuration is stored in `~/.config/bna/bna.conf`. You can pass a
+different config path with `bna --config=~/.bna.conf` for example.
+
+
+### Creating a new authenticator
+
+ $ bna new
+
+If you do not already have an authenticator, it will be set as default.
+You can pass `--set-default` otherwise.
+
+
+### Getting an authentication token
+
+ $ bna
+ 01234567
+ $ bna EU-1234-1234-1234
+ 76543210
+
+
+### Getting an authenticator's restore code
+
+ $ bna show-restore-code
+ Z45Q9CVXRR
+ $ bna restore EU-1234-1234-1234 ABCDE98765
+ Restored EU-1234-1234-1234
+
+
+### Getting an OTPAuth URL
+
+To display the OTPAuth URL (used for setup QR Codes):
+
+ $ bna show-url
+ otpauth://totp/Blizzard:EU123412341234:?secret=ASFAS75ASDF75889G9AD7S69AS7697AS&issuer=Blizzard&digits=8
+
+Now paste this to your OTP app, or convert to QRCode and scan, or
+manually enter the secret.
+
+This is compatible with standard TOTP clients and password managers such as:
+- [andOTP](https://play.google.com/store/apps/details?id=org.shadowice.flocke.andotp) (Android),
+- [KeepassXC](https://keepassxc.org/) (Cross-platform)
+- [1Password](https://1password.com/) (Cross-platform)
+
+
+#### Getting a QR code
+
+To encode to a QRCode on your local system install \'qrencode\'
+
+For a PNG file saved to disk :
+
+ $ bna show-url | qrencode -o ~/BNA-qrcode.png
+ # Scan QRCode
+ $ rm ~/BNA-qrcode.png
+
+Or to attempt ot display QRCode in terminal as text output :
+
+ $ bna --otpauth-url | qrencode -t ANSI
+
+
+## Python library usage
+
+### Requesting a new authenticator
+
+```py
+import bna
+try:
+ # region is EU or US
+ # note that EU authenticators are valid in the US, and vice versa
+ serial, secret = bna.request_new_serial("US")
+except bna.HTTPError as e:
+ print("Could not connect:", e)
+```
+
+### Getting a token
+
+```py
+ # Get and print a token using PyOTP
+ from pyotp import TOTP
+ totp = TOTP(secret, digits=8)
+ print(totp.now())
+```
+
+
+%package -n python3-bna
+Summary: Blizzard Authenticator and OTP library in Python
+Provides: python-bna
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-bna
+# python-bna
+
+## Requirements
+
+- Python 3.6+
+
+
+## Command-line usage
+
+bna is a command line interface to the python-bna library. It can store
+and manage multiple authenticators, as well as create new ones.
+
+
+Remember: Using an authenticator on the same device as the one you log in with
+is less secure than keeping the devices separate. Use this at your own risk.
+
+Configuration is stored in `~/.config/bna/bna.conf`. You can pass a
+different config path with `bna --config=~/.bna.conf` for example.
+
+
+### Creating a new authenticator
+
+ $ bna new
+
+If you do not already have an authenticator, it will be set as default.
+You can pass `--set-default` otherwise.
+
+
+### Getting an authentication token
+
+ $ bna
+ 01234567
+ $ bna EU-1234-1234-1234
+ 76543210
+
+
+### Getting an authenticator's restore code
+
+ $ bna show-restore-code
+ Z45Q9CVXRR
+ $ bna restore EU-1234-1234-1234 ABCDE98765
+ Restored EU-1234-1234-1234
+
+
+### Getting an OTPAuth URL
+
+To display the OTPAuth URL (used for setup QR Codes):
+
+ $ bna show-url
+ otpauth://totp/Blizzard:EU123412341234:?secret=ASFAS75ASDF75889G9AD7S69AS7697AS&issuer=Blizzard&digits=8
+
+Now paste this to your OTP app, or convert to QRCode and scan, or
+manually enter the secret.
+
+This is compatible with standard TOTP clients and password managers such as:
+- [andOTP](https://play.google.com/store/apps/details?id=org.shadowice.flocke.andotp) (Android),
+- [KeepassXC](https://keepassxc.org/) (Cross-platform)
+- [1Password](https://1password.com/) (Cross-platform)
+
+
+#### Getting a QR code
+
+To encode to a QRCode on your local system install \'qrencode\'
+
+For a PNG file saved to disk :
+
+ $ bna show-url | qrencode -o ~/BNA-qrcode.png
+ # Scan QRCode
+ $ rm ~/BNA-qrcode.png
+
+Or to attempt ot display QRCode in terminal as text output :
+
+ $ bna --otpauth-url | qrencode -t ANSI
+
+
+## Python library usage
+
+### Requesting a new authenticator
+
+```py
+import bna
+try:
+ # region is EU or US
+ # note that EU authenticators are valid in the US, and vice versa
+ serial, secret = bna.request_new_serial("US")
+except bna.HTTPError as e:
+ print("Could not connect:", e)
+```
+
+### Getting a token
+
+```py
+ # Get and print a token using PyOTP
+ from pyotp import TOTP
+ totp = TOTP(secret, digits=8)
+ print(totp.now())
+```
+
+
+%package help
+Summary: Development documents and examples for bna
+Provides: python3-bna-doc
+%description help
+# python-bna
+
+## Requirements
+
+- Python 3.6+
+
+
+## Command-line usage
+
+bna is a command line interface to the python-bna library. It can store
+and manage multiple authenticators, as well as create new ones.
+
+
+Remember: Using an authenticator on the same device as the one you log in with
+is less secure than keeping the devices separate. Use this at your own risk.
+
+Configuration is stored in `~/.config/bna/bna.conf`. You can pass a
+different config path with `bna --config=~/.bna.conf` for example.
+
+
+### Creating a new authenticator
+
+ $ bna new
+
+If you do not already have an authenticator, it will be set as default.
+You can pass `--set-default` otherwise.
+
+
+### Getting an authentication token
+
+ $ bna
+ 01234567
+ $ bna EU-1234-1234-1234
+ 76543210
+
+
+### Getting an authenticator's restore code
+
+ $ bna show-restore-code
+ Z45Q9CVXRR
+ $ bna restore EU-1234-1234-1234 ABCDE98765
+ Restored EU-1234-1234-1234
+
+
+### Getting an OTPAuth URL
+
+To display the OTPAuth URL (used for setup QR Codes):
+
+ $ bna show-url
+ otpauth://totp/Blizzard:EU123412341234:?secret=ASFAS75ASDF75889G9AD7S69AS7697AS&issuer=Blizzard&digits=8
+
+Now paste this to your OTP app, or convert to QRCode and scan, or
+manually enter the secret.
+
+This is compatible with standard TOTP clients and password managers such as:
+- [andOTP](https://play.google.com/store/apps/details?id=org.shadowice.flocke.andotp) (Android),
+- [KeepassXC](https://keepassxc.org/) (Cross-platform)
+- [1Password](https://1password.com/) (Cross-platform)
+
+
+#### Getting a QR code
+
+To encode to a QRCode on your local system install \'qrencode\'
+
+For a PNG file saved to disk :
+
+ $ bna show-url | qrencode -o ~/BNA-qrcode.png
+ # Scan QRCode
+ $ rm ~/BNA-qrcode.png
+
+Or to attempt ot display QRCode in terminal as text output :
+
+ $ bna --otpauth-url | qrencode -t ANSI
+
+
+## Python library usage
+
+### Requesting a new authenticator
+
+```py
+import bna
+try:
+ # region is EU or US
+ # note that EU authenticators are valid in the US, and vice versa
+ serial, secret = bna.request_new_serial("US")
+except bna.HTTPError as e:
+ print("Could not connect:", e)
+```
+
+### Getting a token
+
+```py
+ # Get and print a token using PyOTP
+ from pyotp import TOTP
+ totp = TOTP(secret, digits=8)
+ print(totp.now())
+```
+
+
+%prep
+%autosetup -n bna-5.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-bna -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed Mar 08 2023 Python_Bot <Python_Bot@openeuler.org> - 5.1.0-1
+- Package Spec generated