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.5.tar.gz (236.8 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.5-py2.py3-none-any.whl (304.2 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: PyAuth-1.2.5.tar.gz
  • Upload date:
  • Size: 236.8 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.5.tar.gz
Algorithm Hash digest
SHA256 33b15145ae9a317c26fbf99566c0ca1a81d81b82b8aec925385e7ad1709b6512
MD5 4e7a24fcdbe143b5536486af7d6ffea4
BLAKE2b-256 9f58023aaa93d106c3f19328df018b17ae5911dd805aff7e94e6207e7594550b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: PyAuth-1.2.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 304.2 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.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 eeb118c0f034aed9040e63e97cc578dccc719a89ac86e1108cde36059db5fe1c
MD5 e435def50a32c8586941d4774d7de673
BLAKE2b-256 dc0c3a8541ac5d7ad304ac57dc65d4001c780c5d86548356e8b30d970fa1f142

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