Skip to main content

Unofficial implementation of 2fas for Python (as a library)

Project description

lib2fas Python

Unofficial implementation of 2fas for Python (as a library). This library serves as the backend for the robinvandernoord/2fas-python CLI, a command-line tool that provides an easy interface to interact with the 2fas TOTP.

Installation

To install this project, use pip:

pip install lib2fas
# or to also install the cli tool:
pip install 2fas

Usage

After installing the package, you can import it in your Python scripts as follows:

import lib2fas

services = lib2fas.load_services("/path/to/file.2fas", passphrase="optional")  # -> TwoFactorStorage

services.generate()  # generate all TOTP keys

gmail = services["gmail"]  # exact match (case-insensitive), returns a list of 'TwoFactorAuthDetails' instances.

github = services.find("githbu")  # fuzzy match should find GitHub, returns a new TwoFactorStorage.

for label, services in github.items():
    # one label can have multiple services!
    for service in services:  # 'service' is a TwoFactorAuthDetails instance
        # Print label, service name, and TOTP code
        print("Label:", label)
        print("Service Name:", service.name)
        print("TOTP Code:", service.generate())  # or .generate_int() to get the code as a number.

The passphrase option of load_services is optional. If you don't provide a password, but your file is encrypted, you will be prompted for the passphrase. If possible, this will be safely stored in the keychain manager of your OS* until the next reboot.

  • Note: only the "Secret Storage" keychain backend on Ubuntu Linux has been tested.

License

This project is licensed under the MIT License.

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

lib2fas-0.1.10.tar.gz (98.3 kB view details)

Uploaded Source

Built Distribution

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

lib2fas-0.1.10-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file lib2fas-0.1.10.tar.gz.

File metadata

  • Download URL: lib2fas-0.1.10.tar.gz
  • Upload date:
  • Size: 98.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for lib2fas-0.1.10.tar.gz
Algorithm Hash digest
SHA256 23631753bebf3f0f96750cefbe4d751bba4e2efeb9e4ba859d55b2b7fa501157
MD5 10a792e488acfe2f04fdba0fa79f36c1
BLAKE2b-256 784c2a54c16b306287190eaaaf499f0f3aad8d882726ab091a244fabaa0b3a06

See more details on using hashes here.

File details

Details for the file lib2fas-0.1.10-py3-none-any.whl.

File metadata

  • Download URL: lib2fas-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for lib2fas-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 7e637a9c228f2fb26994a70562a50259df2494fd88e9caf889cacae2460b6a09
MD5 d5f42aab975f7e0436fac1b2470dd7b7
BLAKE2b-256 e16dfc60e98bac3420e7e6964f2db7d373f34ed4b944aec73a9900b8c5c0492f

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