Skip to main content

Google Authenticator (TOTP) desktop client

Project description

Latest Version Latest Version Latest Version

Copyright 2016 Todd T Knarr <tknarr@silverglass.org>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. The Fernet AES256 implementation (fernet256.py) is dual licensed under the terms of the Apache License version 2.0 and the BSD License as noted in the source file.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License (included in LICENSE.html) for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Summary

PyAuth is a two-factor authentication program compatible with Google Authenticator and other software and hardware using the standard TOTP algorithm outlined in RFC 6238 (support for the HOTP algorithm outlined in RFC 4226 is planned).

Secrets are encrypted using AES256, there is no option for storing unencrypted secrets. If you were using an older beta version, you will be prompted for a password and the stored secrets will be migrated to the current encryption without requiring any more user intervention.

PyPI page: https://pypi.python.org/pypi/PyAuth

Prerequisites

Developers

See the Branches page of the project Wiki on GitHub for details on which branches are used for what and which ones you should pull from. The project follows the Git Flow branching scheme.

Status

Everything in the v0.0.x series is a development version. v0.0.1 includes the minimal functionality to be usable. The commit messages up to this point aren’t too useful.

Basic functionality (listed in TODO.md) will get added as versions v0.1.x through v0.4.x. v0.5.0 is expected to have all functionality checked and working with the possible exception of the help system. Once I’ve made sure any loose ends are taken care of, the version will jump to v0.9.x for testing. v1.0.0 is planned to be a stable release ready for normal use. The enhancements listed in TODO.md will occur after v1.0.0 is released.

Known areas of concern

Currently the TOTP implementation is coded to use a 30-second time period compatible with Google Authenticator. Future work will include allowing for different time periods.

Usage

Command line:

PyAuth [-n] [-s] [-m] [--icons=(white|grey|dark|transparent)] [--logfile FILENAME] [--no-logfile] [--loglevel (debug|info|warning|error|critical)]

  • -s enables use of the notification (systray) icon if possible.

  • -m acts as -s plus hides the main window on startup (minimized to systray).

  • -n forces the program to display in a normal window without using the notification icon. This overrides -s and -m and any remembered settings for the notification icon.

  • --icons selects a set of icons with the named background (default white).

  • --logfile allows you to set a log file for errors and messages logged by the program. Errors always appear on the console regardless. You may use variable and user expansions in the filename.

  • --no-logfile suppresses the log file completely.

  • --loglevel sets the level of log messages to output to the log file.

  • --version requests that the program print out it’s version number.

  • --help requests help on the command-line syntax.

The GUI interface should be fairly straightforward at this point. Each entry is displayed in a pane in a scrolling list showing the service provider and account, the current OTP (Google Authenticator) code and a timer bar counting down the time to the next code.

Clicking on an entry selects it. If codes are being masked, selecting an entry also unmasks it’s code while it’s selected. Clicking on a selected entry deselects it. Double-clicking on an entry selects it and copies the current code for it to the clipboard. The toolbar contains a tool for copying the code of the currently-selected entry to the clipboard, and tools to move the currently-selected entry up and down in the list so you can order entries the way you want them. Right-clicking on an item brings up a context menu to let you copy the provisioning URI for the entry to the clipboard or display the QR code representation of the provisioning URI for scanning into another authenticator app.

When you run PyAuth with an empty database of authentication entries, it’ll display a single dummy entry with a fake code that won’t change. The first new real entry you create will replace it. If you select and edit it, you’ll be given the new-entry dialog instead and your new entry will replace the dummy one.

In the View menu are options for showing/hiding the toolbar, putting an icon in the system notification area (systray), showing the timer bars and masking codes for unselected entries. If the notification icon is visible, the minimize button on the window frame is removed as you can simply close the window and leave the notification icon. Clicking the notification icon toggles the main window off and on. Right-clicking the notification icon brings up a menu with the option to completely exit the program.

When using the notification icon, the program will not appear in the taskbar list of active applications. When starting minimized and using the notification icon, the program’s window will initially be hidden and can be shown by clicking the notification icon. When starting minimized without using the notification icon, the program will start with it’s window shown and minimized.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyAuth-1.2.3.tar.gz (236.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PyAuth-1.2.3-py2.py3-none-any.whl (304.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file PyAuth-1.2.3.tar.gz.

File metadata

  • Download URL: PyAuth-1.2.3.tar.gz
  • Upload date:
  • Size: 236.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/36.2.7 requests-toolbelt/0.8.0 tqdm/4.15.0 CPython/2.7.15rc1

File hashes

Hashes for PyAuth-1.2.3.tar.gz
Algorithm Hash digest
SHA256 255ccb05955770cbad729c59d4bc7b236bdc0a67ac32028e82d5a58f8857e0fd
MD5 25959c78b048cdaafedfc7a9b690ea61
BLAKE2b-256 a9af9093051fa6189e51a15783e5dd1f9bc7fbd3abed150cf41cb3669f49c68f

See more details on using hashes here.

File details

Details for the file PyAuth-1.2.3-py2.py3-none-any.whl.

File metadata

  • Download URL: PyAuth-1.2.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 304.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/36.2.7 requests-toolbelt/0.8.0 tqdm/4.15.0 CPython/2.7.15rc1

File hashes

Hashes for PyAuth-1.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 28f90940e3fc9ffcfe4f7bbf7ed7a3b3b45bfecf71a83b03c97ee262a1ca2924
MD5 4b81117240957f1c965ea31c24180f7f
BLAKE2b-256 c0226401e8f29f7b0caadf68189d6810e7844a7561cb267fb370545f33cf9143

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page