bna is a command line interface to the python-bna library. It can store and manage multiple authenticators, as well as create new ones.
- Two things to remember:
- Using an authenticator on the same computer as the one you're playing on is not secure.
- It is impossible (without knowing the secret) to import an existing authenticator
Configuration is stored in ~/.config/bna/bna.conf. You can pass a different config directory with --config=~/.bna.conf for example.
$ bna --new
If you do not already have an authenticator, it will be set as default. You can pass --set-default otherwise.
$ bna 01234567 $ bna EU-1234-1234-1234 76543210
$ bna --restore-code Z45Q9CVXRR $ bna --restore EU-1234-1234-1234 ABCDE98765 Restored serial EU-1234-1234-1234
import bna
try:
# region is EU or US
# note that EU authenticators are valid in the US, and vice versa
serial, secret = bna.requestNewSerial("US")
except bna.HTTPError as e:
print("Could not connect:", e)
# Get and print a token
token, timeRemaining = bna.getToken(secret=secret)
print(token)
# print a new token every time the previous one expires
from time import sleep
while True:
token, timeRemaining = bna.getToken(secret=secret)
print(token)
sleep(timeRemaining)