paolostivanin / OTPClient

Highly secure and easy to use OTP client written in C/GTK3 that supports both TOTP and HOTP
GNU General Public License v3.0
458 stars 47 forks source link
2fa 2fa-client 2fa-security 2factor c gnome gtk3 hotp otp totp

OTPClient

CircleCI

<img alt="Coverity Scan Build Status" src="https://scan.coverity.com/projects/12749/badge.svg"/>

Highly secure and easy to use GTK+ software for two-factor authentication that supports both Time-based One-time Passwords (TOTP) and HMAC-Based One-Time Passwords (HOTP).

Requirements

Name Min Version
GTK+ 3.24
Glib 2.68.0
jansson 2.12
libgcrypt 1.10.1
libpng 1.6.30
libcotp 3.0.0
zbar 0.20
protobuf-c 1.3.0
protobuf 3.6.0
uuid 2.34
libsecret 0.20
qrencode 4.0.2

:warning: Please note that the memlock value should be >= 64 MB. Any value less than this may cause issues when dealing with tens of tokens (especially when importing from third parties backups). See this wiki section for info on how to check the current value and set, if needed, a higher one.

Features

Testing

Protobuf

The protobuf files needed to decode Google's otpauth-migration qr codes have been generated with protoc --c_out=src/ proto/google-migration.proto

Wiki

For things like roadmap, screenshots, how to use OTPClient, etc, please have a look at the project's wiki. You'll find a lot of useful information there.

Manual installation

If OTPClient hasn't been packaged for your distro (check here) and your distro doesn't support Flatpak, then you'll have to manually compile and install OTPClient.

  1. install all the needed libraries listed under requirements
  2. clone and install OTPClient:
    git clone https://github.com/paolostivanin/OTPClient.git
    cd OTPClient
    mkdir build && cd build
    cmake -DCMAKE_INSTALL_PREFIX=/usr ..
    make
    sudo make install

License

This software is released under the GPLv3 license. Please have a look at the LICENSE file for more details.