A simple desktop application for generating OTP codes.
You can always download the latest version from releases page.
I just wanted use an open-source OTP application on my desktop, and it seems that there were no good options. Alternatives explored:
- WinAuth - unmaintained (latest release 3.5.1 on Oct 25, 2017; repository is archived); Windows-only
- LinOTP - does not provide either Windows pre-built binaries or at least build instructions for this OS (it seems that LinOTP only supports Linux). It also looks like a more enterprise-oriented solution, not a customer one, and it is an overkill for my purposes.
- andOTP, FreeOTP - mobile applications only
- Authy - proprietary (or at least I was unable to find the application's source code)
- CMake 3.19 or newer
- A compiler with C++20 support
- PkgConfig (is used to find some dependencies)
- qt5-base
- liboath
- libgcrypt
- ntc-cmake. It is bundled in this repository as a submodule (see
cmake/ntc-cmake
directory).
Download the code and make sure that cmake/ntc-cmake
directory contains ntc-cmake repository contents.
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
cmake --build build --target install --config Release
If some of dependencies are installed in non-standard prefixes, provide path(es) to them in -D CMAKE_PREFIX_PATH
as a semicolon-separated list. If you want to install the application to a non-standard prefix, provide it with -D CMAKE_INSTALL_PREFIX
option. Example:
cmake \
-S . \
-B build \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_PREFIX_PATH=/path/to/liboath/prefix \
-D CMAKE_INSTALL_PREFIX=/path/to/desired/prefix
You can also use conan to handle dependencies. Please use .github/workflows/linux.yml as an example of such approach.