diff --git a/README.md b/README.md index ae38786..897a985 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ $ sudo apt install python3-pip python3-tk libusb-1.0-0-dev libudev-dev $ pip3 install onlykey $ wget https://raw.githubusercontent.com/trustcrypto/trustcrypto.github.io/master/49-onlykey.rules $ sudo cp 49-onlykey.rules /etc/udev/rules.d/ -$ sudo udevadm control --reload-rules && udevadm trigger +$ sudo bash -c 'udevadm control --reload-rules && udevadm trigger' ``` ### Debian Install with dependencies @@ -47,7 +47,7 @@ $ sudo apt install python3-pip python3-tk libusb-1.0-0-dev libudev-dev $ pip3 install onlykey $ wget https://raw.githubusercontent.com/trustcrypto/trustcrypto.github.io/master/49-onlykey.rules $ sudo cp 49-onlykey.rules /etc/udev/rules.d/ -$ sudo udevadm control --reload-rules && udevadm trigger +$ sudo bash -c 'udevadm control --reload-rules && udevadm trigger' ``` ### RedHat Install with dependencies @@ -58,7 +58,7 @@ $ yum install python3-pip python3-devel python3-tk libusb-devel libudev-devel \ $ pip3 install onlykey $ wget https://raw.githubusercontent.com/trustcrypto/trustcrypto.github.io/master/49-onlykey.rules $ sudo cp 49-onlykey.rules /etc/udev/rules.d/ -$ sudo udevadm control --reload-rules && udevadm trigger +$ sudo bash -c 'udevadm control --reload-rules && udevadm trigger' ``` ### Fedora Install with dependencies @@ -68,7 +68,7 @@ $ dnf install python3-pip python3-devel python3-tkinter libusb-devel libudev-dev $ pip3 install onlykey $ wget https://raw.githubusercontent.com/trustcrypto/trustcrypto.github.io/master/49-onlykey.rules $ sudo cp 49-onlykey.rules /etc/udev/rules.d/ -$ sudo udevadm control --reload-rules && udevadm trigger +$ sudo bash -c 'udevadm control --reload-rules && udevadm trigger' ``` ### OpenSUSE Install with dependencies @@ -77,7 +77,7 @@ $ zypper install python3-pip python3-devel python3-tk libusb-1_0-devel libudev-d $ pip3 install onlykey $ wget https://raw.githubusercontent.com/trustcrypto/trustcrypto.github.io/master/49-onlykey.rules $ sudo cp 49-onlykey.rules /etc/udev/rules.d/ -$ sudo udevadm control --reload-rules && udevadm trigger +$ sudo bash -c 'udevadm control --reload-rules && udevadm trigger' ``` ### Arch Linux Install with dependencies @@ -86,7 +86,7 @@ $ sudo pacman -Sy git python3-setuptools python3 libusb python3-pip $ pip3 install onlykey $ wget https://raw.githubusercontent.com/trustcrypto/trustcrypto.github.io/master/49-onlykey.rules $ sudo cp 49-onlykey.rules /etc/udev/rules.d/ -$ sudo udevadm control --reload-rules && udevadm trigger +$ sudo bash -c 'udevadm control --reload-rules && udevadm trigger' ``` ### FreeBSD Install with dependencies diff --git a/onlykey/cli.py b/onlykey/cli.py index f4faa22..9f0db8c 100644 --- a/onlykey/cli.py +++ b/onlykey/cli.py @@ -27,23 +27,27 @@ def cli(): logging.basicConfig(level=logging.DEBUG) - # ContrlT handling + # Control-T handling hidden = [True] # Nonlocal key_bindings = KeyBindings() @key_bindings.add('c-t') def _(event): - ' When ControlT has been pressed, toggle visibility. ' + ' When Control-T has been pressed, toggle visibility. ' hidden[0] = not hidden[0] def prompt_pass(): print('Type Control-T to toggle password visible.') - password = prompt('Password/Key: ', is_password=True) + password = prompt('Password/Key: ', + is_password=Condition(lambda: hidden[0]), + key_bindings=key_bindings) return password def prompt_key(): print('Type Control-T to toggle key visible.') - key = prompt('Key: ', is_password=True) + key = prompt('Key: ', + is_password=Condition(lambda: hidden[0]), + key_bindings=key_bindings) return key def prompt_pin(): @@ -185,7 +189,7 @@ def prompt_pin(): only_key.setslot(slot_id, MessageField.TFATYPE, sys.argv[4]) elif sys.argv[3] == 'gkey': totpkey = prompt_key() - totpkey = base64.b32decode(totpkey) + totpkey = base64.b32decode("".join(totpkey.split()).upper()) totpkey = binascii.hexlify(totpkey) # pad with zeros for even digits totpkey = totpkey.zfill(len(totpkey) + len(totpkey) % 2) @@ -419,7 +423,7 @@ def mprompt(): only_key.setslot(slot_id, MessageField.TFATYPE, data[3]) elif data[2] == 'gkey': totpkey = prompt_key() - totpkey = base64.b32decode(totpkey) + totpkey = base64.b32decode("".join(totpkey.split()).upper()) totpkey = binascii.hexlify(totpkey) # pad with zeros for even digits totpkey = totpkey.zfill(len(totpkey) + len(totpkey) % 2)